04-Creating An Architecture
04-Creating An Architecture
04-Creating An Architecture
Software Architecture
Spring 2006
Outline
Understanding Quality Attributes (Ch. 4) Achieving Qualities (Ch. 5) Designing the Architecture (Ch. 7)
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Chapter 4.
Software Architecture
Functionality and quality attributes are orthogonal If functionality is the only requirement
A single monolithic module works!
Spring 2006 Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Difficult to classify
Example: Is a system failure
an aspect of Availability? an aspect of Security? an aspect of Usability?
Spring 2006
Software Architecture
Spring 2006
Software Architecture
Diverse Vocabulary
Example:
Performance:
event
Security:
attack
Availability:
failure
Usability
user input
Spring 2006 Software Architecture
Spring 2006
10
Software Architecture
Spring 2006
Software Architecture
Spring 2006
11
Software Architecture
Concrete Scenarios
Specific to the system under consideration
Spring 2006
Software Architecture
Spring 2006
12
Software Architecture
Usage of Scenarios
Attribute characterizations Requirements for a particular system
Genral Scenarios
Spring 2006
Concrete Scenarios
Software Architecture 13
Software Architecture
Spring 2006
Spring 2006
Software Architecture
Spring 2006
14
Software Architecture
Spring 2006
Software Architecture
Spring 2006
15
Software Architecture
Specifying Requirements
Functional Requirements Quality Attributes Requirements
Use Cases
Spring 2006
Concrete Scenarios
Software Architecture
Spring 2006
16
Software Architecture
Possible Values
End user, developer, system administrator Wishes to add/delete/modify/vary functionality, quality attribute, capacity System user interface, platform, environment; system that interoperates with target system At runtime, compile time, build time, design time Locates places in architecture to be modified; makes modification without affecting other functionality; tests modification; deploys modification Cost in terms of number of elements affected, effort, money; extent to which this affects other functions or quality attributes
Software Architecture
Spring 2006
17
Software Architecture
18
Software Architecture
Communicating Concepts
Eliminating miscommunication between stakeholders
Spring 2006
Software Architecture
Spring 2006
19
Software Architecture
Business Qualities
Time to market Cost and benefit Projected lifetime of the system Targeted markets Rollout schedule Integration with legacy systems
Spring 2006
Software Architecture
Spring 2006
20
Software Architecture
Architecture Quality
Conceptual integrity Correctness and completeness Buildability
Spring 2006
Software Architecture
Spring 2006
21
Software Architecture
Chapter 5.
Achieving Quality
Spring 2006 Software Architecture
Spring 2006
22
Software Architecture
System Design
A Set of Decisions
Software Architecture
Spring 2006
Software Architecture
Tactics
A tactic is a design decision that influences the control of a quality attribute response.
Spring 2006
Software Architecture
Spring 2006
24
Software Architecture
Example
Introduce redundancy to increase the availability of the system Consequence: the need for synchronization
Spring 2006
Software Architecture
Spring 2006
25
Software Architecture
Organizing Tactics
Tactics can refine other tactics
Hierarchical structure
Spring 2006
Software Architecture
Spring 2006
26
Software Architecture
Modifiability Tactics
Three Categories:
1. Localize modifications 2. Prevent ripple effects 3. Defer binding time
Spring 2006 Software Architecture
Spring 2006
27
Software Architecture
Localize Modifications
Maintian Semantic Coherence Anticipate Expected Changes Generalize the Module Limit Possible Options
Spring 2006
Software Architecture
Spring 2006
28
Software Architecture
Ripple Effects
Dependencies between modules
1. 2. 3. 4. 5. 6. 7. 8.
Spring 2006
Syntax (of data or service) Semantics (of data or service) Sequence (of data or service) Identity of an interface Location Quality of service/data Existence Resource behavior
Software Architecture
Spring 2006
29
Software Architecture
Spring 2006
Software Architecture
Spring 2006
30
Software Architecture
Spring 2006
Software Architecture
Spring 2006
31
Software Architecture
Spring 2006
Software Architecture
Spring 2006
32
Software Architecture
Availability Tactics
Spring 2006
Software Architecture
Spring 2006
33
Software Architecture
Availability Tactics
Spring 2006
Software Architecture
Spring 2006
34
Software Architecture
Performance Tactics
Spring 2006
Software Architecture
Spring 2006
35
Software Architecture
Performance Tactics
Spring 2006
Software Architecture
Spring 2006
36
Software Architecture
Security Tactics
Spring 2006
Software Architecture
Spring 2006
37
Software Architecture
Security Tactics
Spring 2006
Software Architecture
Spring 2006
38
Software Architecture
Testability Tactics
Spring 2006
Software Architecture
Spring 2006
39
Software Architecture
Testability Tactics
Spring 2006
Software Architecture
Spring 2006
40
Software Architecture
Usability Tactics
Spring 2006
Software Architecture
Spring 2006
41
Software Architecture
Usability Tactics
Spring 2006
Software Architecture
Spring 2006
42
Software Architecture
Spring 2006
Software Architecture
Spring 2006
43
Software Architecture
Other Tactics:
Information hiding (modifiability) Intermediary (modifiability) Binding time (modifiability) Scheduling policy (performance)
Spring 2006
Software Architecture
Spring 2006
44
Software Architecture