Lecture 02 Architecture Design
Lecture 02 Architecture Design
Software Architecture
By Engr Muhammad Usman Malik
Performance
Security
Safety
Reliability
Availability
Maintainability
Quality
Abstraction
Modularity, coupling and cohesion
Information hiding
Limit complexity
Hierarchical structure
Understandability
Adaptability
abstraction subproblems
time
simpler data
general structure
data structures
28
Sommerville, Mejia-Alvarez, 2009 Software Engineering, Slide 16
Tight coupling
Module A Module B
Module C Module D
Shared data
area
A’s data
Module B Module C
Module D
D’s data
Sub-system
level
32
Sommerville, Mejia-Alvarez, 2009 Software Engineering, Slide 24
Adaptability
A design is adaptable if:
• Its components are loosely coupled
• It is well-documented and the documentation is up to date
• There is an obvious correspondence between design levels
(design visibility)
• Each component is a self-contained entity (tightly cohesive)
To adapt a design, it must be possible to trace the
links between design components so that change
consequences can be analysed
33
Sommerville, Mejia-Alvarez, 2009 Software Engineering, Slide 25
Design traceability
C
F
B
D Object interaction
A level
P O R
Object decomposition
level
36
Sommerville, Mejia-Alvarez, 2009 Software Engineering, Slide 27