04-Creating An Architecture

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

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.

Understanding Quality Attributes


Spring 2006 Software Architecture
Spring 2006

Software Architecture

Functionality and Architecture


Functionality:
The ability of the system to do the work for which it was intended

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

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

Spring 2006

Software Architecture
Spring 2006

Software Architecture

A Tour of Quality Attributes


System Qualities Business Qualities Architecture Qualities

Spring 2006

Software Architecture
Spring 2006

Software Architecture

System Quality Attributes


Traditional definitions and taxonomies Problems
Not operational Difficult classification Diverse vocabulary

Spring 2006

Software Architecture
Spring 2006

Software Architecture

Definitions are not operational


Example: "The system should be modifiable"
With respect to which set of changes?

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

Quality Attribute Scenarios


A means of characterizing quality attributes

Spring 2006

Software Architecture
Spring 2006

11

Software Architecture

Two Kinds of Scenarios


General Scenarios
System independent

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

Availability General Scenarios

Spring 2006

Software Architecture
Spring 2006

14

Software Architecture

Sample Availability Scenario

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

Modifiability General Scenarios


Portion of Scenario Source Stimulus Artifact Environment Response Response Measure
Spring 2006

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

Quality Aspects Covered


Availability Modifiability Performance Security Testability Usability
See "Useability Mea Culpa" Sidebar!
Spring 2006 Software Architecture
Spring 2006

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

Controlling quality attribute responses


Spring 2006

Ensuring achievement of system functionality


23

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

Patterns package tactics

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

Preventing Ripple Effects


Hide information Maintain existing interfaces Restrict communication paths Use an intermediary

Spring 2006

Software Architecture
Spring 2006

30

Software Architecture

Defer Binding Time


Rutime registration Configuration files Polymorphism Component replacement Adherence to defined protocols

Spring 2006

Software Architecture
Spring 2006

31

Software Architecture

Hierarchy of Modifiability Tactics

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

Tactics and Arch. Patterns


Active Object Pattern

Spring 2006

Software Architecture
Spring 2006

43

Software Architecture

Tactics Used in Active Object


Main Purpose:
Introduce Concurrency (Performance)

Other Tactics:
Information hiding (modifiability) Intermediary (modifiability) Binding time (modifiability) Scheduling policy (performance)

Spring 2006

Software Architecture
Spring 2006

44

Software Architecture

You might also like