Chapter 10
Architectural Design
Software Engineering: A Practitioner’s Approach, 6th edition
by Roger S. Pressman
1
Software Architecture
The software architecture of a program or
computing system is the structure or
structures of the system, which comprise the
software components, the externally visible
properties of those components, and the
relationships among them.
—Bass. et al.
2
Why Architecture?
Architecture is a representation of a system
that enables the software engineer to:
1. analyze the effectiveness of the design in
meeting its stated requirements,
2. consider architectural alternatives at a stage
when making design changes is still relatively
easy, and
3. reduce the risks associated with the construction
of the software.
3
Data Design
Architectural level → Database design
data mining
data warehousing
Component level → Data structure
design
4
Architectural Styles
Each style describes a system category that
encompasses:
i a set of components (e.g., a database, computational
modules) that perform a function required by a system,
r a set of connectors that enable “communication,
coordination, and cooperation” among components,
d constraints that define how components can be integrated
to form the system, and
e semantic models that enable a designer to understand the
overall properties of a system.
5
Specific Styles
Data-centered architecture
Data flow architecture
Call and return architecture
Object-oriented architecture
Layered architecture
6
Data-Centered Architecture
7
Data-Flow Architecture
8
Call and Return Architecture
9
Object-Oriented Architecture
10
Layered Architecture
11
Architectural Patterns
Concurrency
operating system process management
task scheduler
Persistence
database management system
application level persistence
Distribution
broker
12
Architectural Design
Architectural context diagrams model how
software interacts with external entities
Archetypes are classes or patterns that
represent an abstraction critical to the system
Architectural components are derived from
the application domain, the infrastructure, and
the interface.
13
Arch. Context Diagram
14
SafeHome ACD
15
SafeHome Archetype
16
Component Structure
17
Component Elaboration
18