Chapter 1

advertisement
EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER
SOFTWARE DESIGN
COPYRIGHT © 2011 DSR CORPORATION
Objectives
 Understand what software design is
 Understand the software design techniques and
approaches
COPYRIGHT © 2011 DSR CORPORATION
2
Agenda
1. What is Software Design?
2. Software Design Strategies
3. Software Design Techniques
4. Key Issues in Software Design
5. Software Architectural Styles and Patterns
6. Software Design Documentation
7. Software Design Quality
COPYRIGHT © 2011 DSR CORPORATION
3
Coupling and Cohesion: Coupling
Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5
COPYRIGHT © 2011 DSR CORPORATION
4
Coupling and Cohesion: Coupling (cont.)
 We can measure coupling along a range of dependence
Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5
COPYRIGHT © 2011 DSR CORPORATION
5
Coupling and Cohesion: Cohesion
Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5
COPYRIGHT © 2011 DSR CORPORATION
6
Coupling and Cohesion: Cohesion Examples
Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5
COPYRIGHT © 2011 DSR CORPORATION
7
Summary
 Software Design is a crucial process of the software life
cycle
 It involves design strategies, techniques, styles, and
patterns
 Different aspects must be taken into consideration
 Software Design Document must contain as much as
possible the information necessary for implementation as
well as the design flow
 Design validation is one way to achieve good product
quality
COPYRIGHT © 2011 DSR CORPORATION
8
References
1. SWEBOK. Guide to the Software Engineering.
Body of Knowledge. 2004 Version / A project of the
IEEE Computer Society Professional Practices
Committee
2. Software Engineering: Theory and Practice / Shari
Lawrence Pfleeger
3. IEEE Std 610.12-1990, IEEE Standard Glossary of
Software Engineering Terminology
COPYRIGHT © 2011 DSR CORPORATION
9
Questions and exercises
1. What are the main and supplementary software design
activities? What are the input and output for every
activity?
2. What are the key software design strategies? Give the
characteristic for every strategy. When it is used? What
kind of the diagrams is used for its description?
3. What are the key software design techniques? Give the
short characteristic for every technique.
4. What are coupling and cohesion? What software quality
characteristic it influences the most? What the coupling
among components depends on? Give the example of
low cohesion and high cohesion.
COPYRIGHT © 2011 DSR CORPORATION
10
Download