Professional Documents
Culture Documents
Overview
Architecture Design
Viewpoints and view models
Architectural styles
Architecture asssessment
Role of the software architect
requirements
solutions
client,
users
architect
developers
assess
creates
assess
prescribes
visualises
appearance,
behaviour
architectural
design
construction,
co-operation
stakeholders
(few)
requirements
quality
agreement
development
Characteristics
stakeholders
(few)
requirements
quality
agreement
architecture
detailed design
development
implementation
stakeholders
(many)
requirements
quality
architecture
agreement
development
Characteristics
10
11
Software Architecture
statement
procedure
module
(design) pattern
architecture
SE, Software Architecture, Hans van Vliet,
12
13
Software Architecture
14
Architectural Structures
module structure
conceptual, or logical structure
process, or coordination structure
physical structure
uses structure
calls structure
data flow
control flow
class structure
SE, Software Architecture, Hans van Vliet,
15
16
Software Architecture
Architecture is conceptual.
Architecture is about fundamental things.
Architecture exists in some context.
17
18
19
Overview
20
Repeat steps
21
22
Generalized model
Understand problem
Solve it
Evaluate solution
23
context
synthesis
architecture
evaluation
backlog
requirements
evaluation
results
24
assets
architecture
ideas
synthesis
backlog
evaluation
constraints
eval results
sign.reqs
25
26
Taking decisions
Problem
space
Design
problem
subproble
m
(or
issue)
subproble
m
(or
issue)
Decision =
best option
Desig
n
optio
n
Desig
n
option
Alternative
solutions
Desig
n
option
Alternative
solutions
Design
option
Decision
space
Decision =
best option
27
Decision space
client-server
client in a
separate
user interface
layer
Programmed in Java
thin-client
Programmed in C++
monolithic
no separate
user interface
layer
28
Tree or graph?
fat-client
client
style
client-server
client in a
separate
user interface
layer
thin-client
monolithic
flexibility
layered
MVC
no separate
user interface
layer
29
30
31
Types of decisions
Implicit, undocumented
Unaware, tacit, of course knowledge
Explicit, undocumented
Vaporizes over time
Explicit, documented
Preferred, exceptional situation
32
33
Evaluate impact
If we want to change an element, what are the elements
impacted (decisions, design, issues)?
..., Cleanup the architecture, identify important architectural
drivers
34
35
36
Overview
37
38
39
40
41
A small sample
42
43
44
45
46
47
So,
Different representations
For different people
For different purposes
These representations are both descriptive and
prescriptive
48
Mission
Env ironment
Concern
Sy stem
Architecture
Stakeholder
Architecture
Description
Viewpoint
View
Library
Viewpoint
Rationale
Model
49
50
Stakeholders
Architect
Requirements engineer
Designer (also of other systems)
Implementor
Tester, integrator
Maintainer
Manager
Quality assurance people
51
Viewpoint specification
Viewpoint name
Stakeholders addressed
Concerns addressed
Language, modeling techniques
52
End-user
Functionality
Logical
Viewpoint
Programmers
Software management
Implementation
Viewpoint
Scenarios
Process
Viewpoint
Integrators
Performance
Scalability
Deployment
Viewpoint
System engineers
Topology
Communications
53
4 + 1: Logical Viewpoint
54
4 + 1: Process Viewpoint
55
4 + 1: Deployment Viewpoint
56
4 + 1: Implementation Viewpoint
57
4 + 1: Scenario Viewpoint
58
Allocation views
Relationship between software elements and environment
Work assignment, deployment, implementation
59
Module views
60
61
Allocation views
62
63
Decision visualization
64
Business
viewpoint
65
A caveat on quality
66
Overview
67
Architectural styles
68
Alexanders patterns
69
70
71
Types of components
72
Types of connectors
73
74
Main-program-with-subroutines style
75
Abstract-data-type style
system model: component has its own local data (= secret it hides)
components: managers (servers, objects, adts)
connectors: procedure call (message)
control structure: single thread, usually; control is decentralized
76
Implicit-invocation style
77
Pipes-and-filters style
78
Repository style
Client
Client
Client
Shared
Data
79
Layered style
Layern
Layer2
Layer1
problem: distinct, hierarchical classes of services. Concentric circles of
functionality
context: a large system that requires decomposition (e.g., virtual machines,
OSI model)
solution:
80
View
n
Model
variants: Document-View
81
Overview
Architecture asssessment
Role of the software architect
82
Architecture evaluation/analysis
83
Software
architecture
Properties
implementation
properties
System
Qualities
84
Analysis techniques
85
86
87
88
Benefits
Financial gains
Forced preparation
Captured rationale
Early detection of problems
Validation of requirements
Improved architecture
89
Participants in ATAM
Evaluation team
Decision makers
Architecture stakeholders
90
Phases in ATAM
91
Present method
Present business drivers (by project manager of system)
Present architecture (by lead architect)
Identify architectural approaches/styles
Generate quality attribute utility tree (+ priority, and how
difficult)
Analyze architectural approaches
92
Performance
Throughput
150 transactions/sec
Training
Utility
Usability
Normal operations
Maintainability
93
Outputs of ATAM
94
95
Describe architecture(s)
Classify scenarios
direct -- use requires no change
indirect -- use requires change
96
97
Overview
98
99
Summary
100
Further reading
101