Professional Documents
Culture Documents
Chapter One
Software Design
Lec-1
1
Topics to be discussed
Software Process
Software Process Phases
Software Crisis
Problems in software design
Software Modeling
UML-recap
Software Design Goals
Design Concepts
Design Principles
Linear/Sequential
Prototyping model
Evolutionary model
Incremental model
Spiral model
Correctness
Robustness
Flexibility
Reusability
Efficiency
Reliability
Usability
Robustness
Usability
An application has high usability if users find it easy to use
Abstraction
Refinement
Modularity
Cohesion
Coupling
Separation of Concerns
Each step in the software design process is a refinement in the level of abstraction
of the software solution
Encapsulation
Inheritance
Even when detailed procedural designs are created for program components, the level
of abstraction of the design model is higher than source code. The only design
decisions made at the coding level address the small implementation details that enable
the procedural design to be coded.
A variety of design concepts and design measures are available to assist the designer in
assessing quality.
A design team should ensure that major conceptual elements of the design (omissions,
ambiguity, inconsistency) have been addressed before worrying about the syntax of the
design model.