Upload
appandai-rajan
View
226
Download
0
Embed Size (px)
Citation preview
8/2/2019 04-Creating an Architecture
1/44
Creating an
Architecture
Software Architecture Spring 2006
8/2/2019 04-Creating an Architecture
2/44
Spring 2006 Software Architecture 2
Software Architecture Spring 2006
Outline Understanding Quality Attributes (Ch. 4)
Achieving Qualities (Ch. 5)
Designing the Architecture (Ch. 7)
8/2/2019 04-Creating an Architecture
3/44
Spring 2006 Software Architecture 3
Software Architecture Spring 2006
Chapter 4.
Understanding Quality Attributes
8/2/2019 04-Creating an Architecture
4/44
Spring 2006 Software Architecture 4
Software Architecture Spring 2006
Functionality and Architecture
Functionality:
The ability of the system to do the work for whichit was intended
Functionality and quality attributes areorthogonal
If functionality is the only requirement
A single monolithic module works!
8/2/2019 04-Creating an Architecture
5/44
Spring 2006 Software Architecture 5
Software Architecture Spring 2006
Quality and Architecture Quality and phases of development
All phases must be considered
Architecture is often critical
Attributes have effects on each other
positive and negative
8/2/2019 04-Creating an Architecture
6/44
Spring 2006 Software Architecture 6
Software Architecture Spring 2006
A Tour of Quality Attributes System Qualities
Business Qualities
Architecture Qualities
8/2/2019 04-Creating an Architecture
7/44
Spring 2006 Software Architecture 7
Software Architecture Spring 2006
System Quality Attributes Traditional definitions and taxonomies
Problems
Not operational Difficult classification
Diverse vocabulary
8/2/2019 04-Creating an Architecture
8/44
Spring 2006 Software Architecture 8
Software Architecture Spring 2006
Definitions are not operational
Example:
"The system should be modifiable"
With respect to which set of changes?
8/2/2019 04-Creating an Architecture
9/44
Spring 2006 Software Architecture 9
Software Architecture Spring 2006
Difficult to classify Example:
Is a system failure
an aspect ofAvailability? an aspect ofSecurity?
an aspect ofUsability?
8/2/2019 04-Creating an Architecture
10/44
Spring 2006 Software Architecture 10
Software Architecture Spring 2006
Diverse Vocabulary Example:
Performance: event
Security:
attack
Availability:
failure Usability
user input
8/2/2019 04-Creating an Architecture
11/44
Spring 2006 Software Architecture 11
Software Architecture Spring 2006
Quality Attribute Scenarios A means of characterizing quality
attributes
8/2/2019 04-Creating an Architecture
12/44
Spring 2006 Software Architecture 12
Software Architecture Spring 2006
Two Kinds of Scenarios General Scenarios
System independent
Concrete Scenarios Specific to the system under consideration
8/2/2019 04-Creating an Architecture
13/44
Spring 2006 Software Architecture 13
Software Architecture Spring 2006
Usage of Scenarios
Genral Scenarios
Attribute characterizations Requirements for aparticular system
Concrete Scenarios
8/2/2019 04-Creating an Architecture
14/44
Spring 2006 Software Architecture 14
Software Architecture Spring 2006
Availability General Scenarios
8/2/2019 04-Creating an Architecture
15/44
Spring 2006 Software Architecture 15
Software Architecture Spring 2006
Sample Availability Scenario
8/2/2019 04-Creating an Architecture
16/44
Spring 2006 Software Architecture 16
Software Architecture Spring 2006
Specifying RequirementsFunctional Requirements
Use Cases
Quality Attributes Requirements
Concrete Scenarios
8/2/2019 04-Creating an Architecture
17/44
Spring 2006 Software Architecture 17
Software Architecture Spring 2006
Modifiability General Scenarios
Cost in terms of number of elements affected, effort, money;
extent to which this affects other functions or quality attributesResponse
Measure
Locates places in architecture to be modified; makes
modification without affecting other functionality; testsmodification; deploys modification
Response
At runtime, compile time, build time, design timeEnvironment
System user interface, platform, environment; system that
interoperates with target systemArtifact
Wishes to add/delete/modify/vary functionality, quality
attribute, capacityStimulus
End user, developer, system administratorSource
Possible ValuesPortion ofScenario
8/2/2019 04-Creating an Architecture
18/44
Spring 2006 Software Architecture 18
Software Architecture Spring 2006
Quality Aspects Covered Availability
Modifiability
Performance
Security Testability
Usability See "Useability Mea Culpa" Sidebar!
8/2/2019 04-Creating an Architecture
19/44
Spring 2006 Software Architecture 19
Software Architecture Spring 2006
Communicating Concepts Eliminating miscommunication between
stakeholders
8/2/2019 04-Creating an Architecture
20/44
Spring 2006 Software Architecture 20
Software Architecture Spring 2006
Business Qualities
Time to market
Cost and benefit
Projected lifetime of the system
Targeted markets Rollout schedule
Integration with legacy systems
8/2/2019 04-Creating an Architecture
21/44
Spring 2006 Software Architecture 21
Software Architecture Spring 2006
Architecture Quality
Conceptual integrity
Correctness and completeness
Buildability
8/2/2019 04-Creating an Architecture
22/44
Spring 2006 Software Architecture 22
Software Architecture Spring 2006
Chapter 5.
Achieving Quality
8/2/2019 04-Creating an Architecture
23/44
Spring 2006 Software Architecture 23
Software Architecture Spring 2006
System Design
A Set of Decisions
Ensuring achievementof system functionality
Controlling qualityattribute responses
8/2/2019 04-Creating an Architecture
24/44
Spring 2006 Software Architecture 24
Software Architecture Spring 2006
Tactics
A tactic is a design decision that
influences the control of a qualityattribute response.
8/2/2019 04-Creating an Architecture
25/44
Spring 2006 Software Architecture 25
Software Architecture Spring 2006
Example
Introduce redundancy to increase the
availability of the system
Consequence: the need forsynchronization
8/2/2019 04-Creating an Architecture
26/44
Spring 2006 Software Architecture 26
Software Architecture Spring 2006
Organizing Tactics
Tactics can refine other tactics
Hierarchical structure
Patterns package tactics
8/2/2019 04-Creating an Architecture
27/44
Spring 2006 Software Architecture 27
Software Architecture Spring 2006
Modifiability Tactics
Three Categories:
1. Localize modifications
2. Prevent ripple effects
3. Defer binding time
8/2/2019 04-Creating an Architecture
28/44
Spring 2006 Software Architecture 28
Software Architecture Spring 2006
Localize Modifications
Maintian Semantic Coherence
Anticipate Expected Changes Generalize the Module
Limit Possible Options
8/2/2019 04-Creating an Architecture
29/44
Spring 2006 Software Architecture 29
Software Architecture Spring 2006
Ripple Effects
Dependencies between modules
1. Syntax (of data or service)2. Semantics (of data or service)
3. Sequence (of data or service)
4. Identity of an interface5. Location
6. Quality of service/data
7. Existence8. Resource behavior
8/2/2019 04-Creating an Architecture
30/44
Spring 2006 Software Architecture 30
Software Architecture Spring 2006
Preventing Ripple Effects
Hide information
Maintain existing interfaces Restrict communication paths
Use an intermediary
8/2/2019 04-Creating an Architecture
31/44
Spring 2006 Software Architecture 31
Software Architecture Spring 2006
Defer Binding Time
Rutime registration
Configuration files Polymorphism
Component replacement
Adherence to defined protocols
8/2/2019 04-Creating an Architecture
32/44
Spring 2006 Software Architecture 32
Software Architecture Spring 2006
Hierarchy of Modifiability Tactics
8/2/2019 04-Creating an Architecture
33/44
Spring 2006 Software Architecture 33
Software Architecture Spring 2006
Availability Tactics
8/2/2019 04-Creating an Architecture
34/44
Spring 2006 Software Architecture 34
Software Architecture Spring 2006
Availability Tactics
8/2/2019 04-Creating an Architecture
35/44
Spring 2006 Software Architecture 35
Software Architecture Spring 2006
Performance Tactics
8/2/2019 04-Creating an Architecture
36/44
Spring 2006 Software Architecture 36
Software Architecture Spring 2006
Performance Tactics
8/2/2019 04-Creating an Architecture
37/44
Spring 2006 Software Architecture 37
Software Architecture Spring 2006
Security Tactics
8/2/2019 04-Creating an Architecture
38/44
Spring 2006 Software Architecture 38
Software Architecture Spring 2006
Security Tactics
8/2/2019 04-Creating an Architecture
39/44
Spring 2006 Software Architecture 39
Software Architecture Spring 2006
Testability Tactics
8/2/2019 04-Creating an Architecture
40/44
Spring 2006 Software Architecture 40
Software Architecture Spring 2006
Testability Tactics
8/2/2019 04-Creating an Architecture
41/44
Spring 2006 Software Architecture 41
Software Architecture Spring 2006
Usability Tactics
8/2/2019 04-Creating an Architecture
42/44
Spring 2006 Software Architecture 42
Software Architecture Spring 2006
Usability Tactics
8/2/2019 04-Creating an Architecture
43/44
Spring 2006 Software Architecture 43
Software Architecture Spring 2006
Tactics and Arch. Patterns
Active Object Pattern
8/2/2019 04-Creating an Architecture
44/44
Spring 2006 Software Architecture 44
Software Architecture Spring 2006
Tactics Used in Active Object
Main Purpose:
Introduce Concurrency (Performance) Other Tactics:
Information hiding (modifiability)
Intermediary (modifiability)
Binding time (modifiability)
Scheduling policy (performance)