Software DesignDesign creates a representation or model of the software but unlike the analysis model, the design model provides detail about:
»components that are necessary to implement the system.
Why it is Important?
~ Can be assessed for quality and improved before code is generated,
~ Tests are conducted, and
~ More users are involved.
The 4 design models.
Characteristics of Good Design
~ Must implement all of the explicit requirements and it must accommodate all of the implicit
requirements desired by the customer.
~ Must be a readable, understandable guide for those who generate code and for those who test and
subsequently support the software.
~ Should provide a complete picture of the software
§The design process should not suffer from ‘tunnel vision.’
§The design should be traceable to the analysis model.
§The design should not reinvent the wheel.
§The design should “minimize the intellectual distance” [DAV95] between the software and the
problem as it exists in the real world.
§The design should exhibit uniformity and integration.
§The design should be structured to accommodate change.
§The design should be structured to degrade gently, even when irregular data, events, or operating
conditions are encountered.
§Design is not coding, coding is not design.
§The design should be assessed for quality as it is being created, not after the fact.
§The design should be reviewed to minimize conceptual (semantic) errors.
4) Separation of concerns
6) Information hiding
7) Functional Independence
11) OO Design concepts
12) Design classes
Architectural Design Elements
The architecrural derived from three sources :
~ information about the application domain for the software to be built
~ specific requirements model elements such as data flow diagrams or analysis classes, their
relationships and collaborations for the problem at hand, and
~ the availability of architectural patterns and styles.
Exampe Of Architectural Diagram
Example: Architectural styles
Design Support Tools
All aspects of the software engineering can be supported by software tools:
§ from project management software through tools for business and functional analysis, system
design, code storage, compilers, translation tools, test software, and so on.
• However, tools that are concerned with analysis and design, and with using design information
to create parts (or all) of the software product, are most frequently thought of as CASE tools.
• List of CASE tools:
Case Tools : Example
Design Evaluation - Point to ponder
Refer to SDD Sample.doc
~ Theepa Laknakumaran (SW086630)~