Professional Documents
Culture Documents
Design Process
Design Process
Design Process
Design Process
/
level can be directly traced to the specific system objective and requirements
Appl~cation
such as data, functional and behavioral requirements. Design is an iterative
Development
Life Cycle process which leads to the refined design representation at lower level of
abstraction.
As said earlier, design process is required for better quality software. This
quality is achieved by a series of formal technical reviews. Three
characteristics are· important in constructing a good design:
• Design must consider and fulfill the entire customer's requirement that
are implicit and must implement explicit requirements contained in the
analysis model.
There are few guidelines which are the characteristics of a good design. They
are followed to evaluate the quality of a design. Some criteria's such as
technical criteria is established for good design:
4. A design should explore the data structures useful for the classes to be
implemented and are drawn from recognizable data patterns.
10
/
/
6. A design should lead to interfaces that reduce the complexity of Analysis and
. connections between components and with the external environment. Application
Design
7. A design should be achieved from an iterative method that is driven by
information obtained during software requirements analysis.
• The design should clearly represent the interface applicable in the system.
This causes ease while providing connections between various modules of
the software as well as between the software and its vicinity of
implementation
• The design should consist of all the independent modules (i.e. the modules
capable of functioning independently).
• The design should exhibit clearly all the modules of the software.
• Using this design, a software engineer should directly build data structure
which is suitable for the implementation classes. Also these designs should
be outcome of easily recognizable components.
11
/
(v) Information hiding (vi) Functional independence
AppJication
Development (vii) Refinement (viii) Refactoring
Life Cycle
(i) Abstraction
For example: We can specify the FIFa property of a stack without concern for
the representation scheme to be used in implementing the stack or queue.
a) Functional Abstraction
c) Control Abstraction.
j
j
l
j
12 J
~
l
1
/
/
a) Functional Abstraction: in functional abstraction, a module is specified Analysis and
by the function it performs. Application
Design
For example: A module to compute the log of a value can be abstractly
represented by the function log.
(ii) Architecture
13
/
11
(iii) Patterns
(iv) Modularity
14
/
/
I
According to Mr. Parnas, design should begin with a list of difficult design Analysis and
decisions and design decisions that are likely to change. Each module is Application
Design
designed to hide such a decision from the other modules. Because these design
decisions transcend execution time, design modules may not correspond to
processing steps in the implementation of the system. In addition to hiding of
difficult and changeable design decisions, other candidates for information
hiding include:
(a) A data structure, its internal linkage, and the implementation details of the
procedures that manipulate it (this is 'the principle of data abstraction).
(b) The format of control blocks such as those for queues in an operating
system (a "control block" module).
(vii) Refinement
15