You are on page 1of 13

Chapter 3.

Design Qualities:
3.1 Concept:
• Example of ‘good’ quality
• Quality of construction of the design rather than
design.
• To achieve high quality in design products it is
required to seek high standards in design process.
• Is associated with visual properties.
• Ultimate measure of quality should normally be
that of fitness for purpose.
3.2 Assessing design quality
‘when you can measure what you are speaking about,
and express it in numbers, you know something
about it, but when you cannot measure it, when you
cannot express it in numbers, your knowledge is of
a meager and unsatisfactory kind’
– Lord Kelvin
3.2.1 A Frame work for assessment: Fenton and
Pflegger (1997) have observed that measurement
is concerned with capturing information about
attributes of entities, so at this point it is useful
to identify more carefully how our ideas about
quality can be tied to ideas about measurement.
3.2.2. The ‘ilities’:

Are used to form a group of quality factors that need to be


considered when making any attempt to assess design quality.

They are

• Reliability, Efficiency, Maintainability, Usability

Reliability:

Complete: in the sense of being able to handle all combination of


events and system states;

Consistent: in that its behavior will be expected, and will be


repeatable, regardless of the overall system loading at any
time;

Robust: when faced with component failure or some similar

conflict
Efficiency: The efficiency of a system can be measured through its
use of resources such as processor time, memory, network access,
system facilities, disk space and so on.

• There is no single scale on which to specify an optimum efficiency

Maintainability: As systems get larger and more costly, the need to


offset this by ensuring a long life-time in service increases in
parallel. To help to achieve this, designs must allow for future
modification.
Implementation factors affect maintainability.

Usability: There are many issues that can affect usability, but for
many systems the design of the user interface (HCI) will form an
important component, and will influence other design decisions about
such features as module boundaries and data structures.
3.3 Quality attributes of the design product:

Some problems have been examined about design quality concepts:

• To identify a set of design attributes that are related to these


properties;

• To find ways of extracting information about these attributes from


the available forms of

3.3.1. Some Design attributes

3.3.2. Assessing design quality

3.3.1 Some Design Attributes:


 Simplicity,
 Modularity,
 Information-hiding,
Simplicity:
 Characteristic of almost all good designs, in whatever sphere of activity
they are produced, is a basic simplicity
 Often-quoted “a solution should be as simple as possible, but no simpler’,
which is usually attributed to Albert Einstein” is more profound than it
might seem at first.
 This is the opposite of the argument against attempting to oversimplify,
since the result will be a product that will not be able to do its job.
 One important aid to achieving simplification is abstraction but it is
necessary to use an abstraction that preserves the relevant attributes if
it is to be of any help in solving the problem.

Next Page… continues


(simplicity)..
Simplicity cannot be accessed, one can at least seek measures for its

converse characteristics of complexity. Measures..for s/w:


1. Complexity of control flow(McCabe,1976), concerned with the number of
possible paths of control during execution of a program unit;
2. Complexity of structure in terms of information flow around the
system(Henry and Kafura, 1984; Kitchenham et al., 1990; Shepperd and Ince,
1993);
3. Complexity of comprehension, as measured by the number of different
identifiers and operators (Halstead,1977);
4. Complexity of structure in terms of relationships between system
elements (Primarily object-oriented forms), with the measures proposed in
Chidamber and Kemerer(1994) being particulary widely cited, although by no
means the only candidated (Briand et al., 2000).
 There are no ready measures that can currently be used to help assess the
architectural complexity of a design.
 In terms of the design quality concepts, simplicity is clearly related to
maintainability and testability as well as reliability and possibly
efficiency.
Modularity:
 The use of an appropriate form of modular structuring makes

it possible for a given problem to be considered in terms of a set of


smaller components.
 Not only related to s/w but to engg.,

 To make good use of a modular structure, one needs to adopt a design


practice based on a separation of concerns.
 Simplify defining interfaces is not enough; a designer needs to group
functions within modules in such a way that their interdependence is
minimized.
 Such a grouping results in a less complex interface to the module; in
the case of hardware, it may simply be that fewer

interconnections are required; for software, we need to find

other criteria in order to measure this factor.


Modularity Benefits:
Modules are easy to replace
Each module captures one feature of problem, so aiding
comprehension
( and hence maintenance), as well as providing a framework for
designing
as a team;
A well-structured modules can easily be reused for another problem
So in terms of the design properties, modularity should be related to
such quality concepts as maintainability, testability and (possibly) to
usability and reliability too.

There are 2 quality measure to assess Modularity:


Coupling, Cohesion

Coupling: is a measure of intermodule connectivity, and is concerned


with identifying the forms of connection that exist
between modules and the strength of these connection
Forms of module coupling

Features Desirability
Form

Modules A and B communicate by parameters of data


Data coupling High
items that have no control element

Modules A and B make use of some common data type


Stamp coupling (although they might perform very different functions and Moderate
have no other connections

Control Coupling
A transfers control to B in a structured manner such as by
(i) Activating Necessary
means of a procedure call

A Passes a parameter to B that is used in B to determine


(ii) Coordinating Undesirable
the actions of B (typically a boolean ‘flag’)

A and B contain references to some shared data area that


incorporate knowledge about its structure and organization.
Common - Undesirable
Any change to the format of the block requires that all of
environment coupling the modules using it must also be modified
Cohesion: in its turn, provides a measure of the extent to which the
components of a module can be considered to be ‘functionally related’.

Form Features Desirability

Functional All the elements contribute to High


the execution of a single
problem-related task

Sequential The outputs from one element Quite high


of the module form the inputs to
another element

Communicational All elements are concerned with Fairly


operations that use the same
input or output data
Procedural The elements of the module are related by Not very
the order in which their operations must
occur

Temporal The elements involve operations that are Not very


related by the time at which they occur,
usually being linked to some event such as
‘system initialization’

Logical The elements perform operations that are Definitely not


logically similar, but which involve very
different actions internally

Coincidental The elements are not linked by any Definitely not


conceptual link(such modules may be
created to avoid having to repeat coding
tasks)
Information Hiding: related to modularity, and incorporates additional notions
about managing information in a system.
• It encourages the designer to keep information about the detailed forms of
such objects as data structures and device interfaces local to a module, or a
unit, and to ensure that such information should not be made ‘visible’ outside
that unit(Parnas, 1972).

3.3.2 Assessing the design Quality:

• Design review cannot provide any well-quantified measures of quality. Used


to identify weakness in design

• Technical review: mental execution of the design model, assessing dynamic


and static attributes,

• Management review: Schedule, project deadlines

• 8 requirements for a good design: Well structured, simple,


efficient, adequate, flexible, practical, implementable,
standardized,

You might also like