I made this widget at MyFlashFetish.com.

Saturday, July 23, 2011

Module 4

Software Design

Design creates a representation or model of the software but unlike the analysis model, the design model provides detail about:

»software architecture,
»data structures,
»interfaces, and
»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

Design Principles

§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. 
Design Concepts
1)   Abstraction
2)   Architecture
3)   Patterns
4)   Separation of concerns
5)   Modularity
6)   Information hiding
7)   Functional Independence
8)   Refinement
9)   Aspects
10) Refactoring
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 

Source: http://blog.tmcnet.com/blog/tom-keating/2004/10/index.asp?page=7

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
Design Specification

Refer to SDD Sample.doc

References  :   

No comments:

Post a Comment

Facebook Comments

Our Countries :))

free counters