Chapter 1

crookpatedspongySoftware and s/w Development

Dec 2, 2013 (3 years and 6 months ago)

107 views

E
MBEDDED

S
YSTEMS

S
OFTWARE

T
RAINING

C
ENTER

S
OFTWARE

D
ESIGN

C
OPYRIGHT

© 2011 DSR C
ORPORATION

Objectives


Understand what software design is


Understand the software design techniques and
approaches

C
OPYRIGHT

© 2011 DSR C
ORPORATION

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

C
OPYRIGHT

© 2011 DSR C
ORPORATION

3

Coupling and Cohesion: Coupling




C
OPYRIGHT

© 2011 DSR C
ORPORATION

Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5

4

Coupling and Cohesion: Coupling (cont.)


We can measure coupling along a range of dependence




C
OPYRIGHT

© 2011 DSR C
ORPORATION

Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5

5

Coupling and Cohesion: Cohesion




C
OPYRIGHT

© 2011 DSR C
ORPORATION

Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5

6

Coupling and Cohesion: Cohesion Examples

C
OPYRIGHT

© 2011 DSR C
ORPORATION

Pfleeger and Atlee, Software Engineering: Theory and Practice, Chapter 5

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

C
OPYRIGHT

© 2011 DSR C
ORPORATION

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


C
OPYRIGHT

© 2011 DSR C
ORPORATION

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.



C
OPYRIGHT

© 2011 DSR C
ORPORATION

10