28
PATTERN ORIENTED SOFTWARE ARCHITECTURE - VOLUME1 Chapter 1 - Patterns

Software Architecture Session10

Embed Size (px)

DESCRIPTION

Software Architecture

Citation preview

Page 1: Software Architecture Session10

PATTERN ORIENTED SOFTWARE

ARCHITECTURE - VOLUME1Chapter 1 - Patterns

Page 2: Software Architecture Session10

Pattern Categories

• To refine our classification, we group patterns into three categories:o Architectural patternso Design patternso Idioms

• Each category consists of patterns having a similar range of scale or abstraction.

1/18/2011

Page 3: Software Architecture Session10

Architectural Patterns

• An architectural pattern expresses a fundamental structural organization schema for software systems.

• It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.

1/18/2011

Page 4: Software Architecture Session10

Design Patterns

• A design pattern provides a scheme for refining the subsystems or components of a software system, or the relationships between them.

• It describes a commonly-recurring structure of communicating components that solves a general design problem within a particular context

1/18/2011

Page 5: Software Architecture Session10

Design Patterns

• Design patterns are medium-scale patterns. • They are smaller in scale than architectural

patterns, but tend to be independent of a particular programming language or programming paradigm

1/18/2011

Page 6: Software Architecture Session10

Idioms

• An idiom is a low-level pattern specific to a programming language.

• An idiom describes how to implement particular aspects of components or the relationships between them using the features of the given language.

• Idioms represent the lowest-level patterns. They address aspects of both design and implementation.

1/18/2011

Page 7: Software Architecture Session10

Integration with S/w Development

• Architectural patterns can be used at the beginning of coarse-grained design

• Design patterns during the whole design phase• Idioms during the implementation phase.

1/18/2011

Page 8: Software Architecture Session10

Relationships between Patterns

• A close look at many patterns reveals that, despite initial impressions, their components and relationships are not always as 'atomic' as they first appear to be.

• A pattern solves a particular problem, but its application may raise new problems.

• Single components or relationships inside a particular pattern may therefore be described by smaller patterns, all of them integrated by the larger pattern in which they are contained.

1/18/2011

Page 9: Software Architecture Session10

SOFTWARE ARCHITECTURE IN

PRACTICE Part 3 -

Analyzing Architecture

1/18/2011

Page 10: Software Architecture Session10

Overview

• What, why, when• Architecture analysis (ATAM –

Architecture Tradeoff Analysis Merhod)• Software Architecture Analysis

Method (SAAM)

1/18/2011

Page 11: Software Architecture Session10

Architecture evaluation / analysis

• Assess whether architecture meets certain quality goals, such as those w.r.t. maintainability, modifiability, reliability, performance

• Mind: the architecture is assessed, while we hope the results will hold for a system yet to be built

1/18/2011

Page 12: Software Architecture Session10

Two kinds of questions

• Is this architecture suitable?• Which of two or more architectures is the

most suitable?

1/18/2011

Page 13: Software Architecture Session10

Alice in Wonderland analogy

• Alice meets the Cheshire Cat and asks for directions. • The cat responds: it depends on where you want to

go. • Alice says she doesn’t know. • The cat tells her it doesn’t matter which way she

walks.

• If the stakeholders cannot articulate their quality goals, any architecture will do

1/18/2011

Page 14: Software Architecture Session10

Software Architecture Analysis

1/18/2011

Page 15: Software Architecture Session10

Analysis techniques

• Questioning techniques: how does the system react to various situations; often make use of scenarios

• Measuring techniques: rely on quantitative measures; architecture metrics, simulation, etc

1/18/2011

Page 16: Software Architecture Session10

Scenarios in Architecture Analysis

• Different types of scenarios, e.g. use-cases, likely changes, stress situations, risks, far into the future scenarios

• Which stakeholders to ask for scenarios?• When do you have enough scenarios?

1/18/2011

Page 17: Software Architecture Session10

Preconditions for successful assessment

• Clear goals and requirements for the Architecture

• Controlled scope• Cost-effectiveness• Key personnel availability• Competent evaluation team• Managed expectations

1/18/2011

Page 18: Software Architecture Session10

Architecture Tradeoff Analysis Method (ATAM)

• Reveals how well architecture satisfies quality goals, how well quality attributes interact, i.e. how they trade off

• Elicits business goals for system and its Architecture

• Uses those goals and stakeholder participation to focus attention to key portions of the architecture

1/18/2011

Page 19: Software Architecture Session10

Benefits

• Financial gains• Forced preparation• Captured rationale• Early detection of problems• Validation of requirements• Improved architecture

1/18/2011

Page 20: Software Architecture Session10

Participants in ATAM

• Evaluation team• Decision makers• Architecture stakeholders

1/18/2011

Page 21: Software Architecture Session10

Phases of ATAM

• Present method to stakeholders• Present business drivers (by project manager of

system)• Present architecture (by lead architect)• Identify architectural approaches/styles• Generate quality attribute utility tree• Analyze architectural approaches• Brainstorm and prioritize scenarios• Analyze architectural approaches• Present results

1/18/2011

Page 22: Software Architecture Session10

Example Utility tree

1/18/2011

Page 23: Software Architecture Session10

Outputs of ATAM

• Concise presentation of the architecture• Articulation of business goals• Quality requirements expressed as set of

scenarios• Mapping of architectural decisions to quality

requirements• Set of sensitivity points and tradeoff points• Set of risks, nonrisks, risk themes

1/18/2011

Page 24: Software Architecture Session10

Important concepts in ATAM

• Sensitivity point: property critical for certain quality attribute

• Tradeoff point: property that affects more than one quality attribute

• Risk: potential problem• These concepts are overlapping

1/18/2011

Page 25: Software Architecture Session10

Software Architecture AnalysisMethod (SAAM)• Develop scenarios for

o kinds of activities the system must supporto kinds of changes anticipated

• Describe architecture(s)• Classify scenarios

o direct -- use requires no changeo indirect -- use requires change

• Evaluate indirect scenarios: changes and cost• Reveal scenario interaction• Overall evaluation

1/18/2011

Page 26: Software Architecture Session10

Scenario interaction in SAAM

• Two (indirect) scenarios interact if they require changes to the same component

• Scenario interaction is important for two reasons:o Exposes allocation of functionality to the designo Architecture might not be at right level of detail

1/18/2011

Page 27: Software Architecture Session10

Summary

• At architecture time, 90% of the cost is determined in 10% of the time

• Architecture analysis, with a broad range of stakeholders, is extremely valuable

1/18/2011

Page 28: Software Architecture Session10

5:24 AM SEPS ZG651 Software Architectures