Analyzing an Architecture

Post on 20-Jan-2016

23 views 0 download

Tags:

description

Analyzing an Architecture. Why analyze an architecture?. Decide whether it solves the problem Compare to other architectures Assess what needs to change, given some major requirements change Find a problem. Methods. ATAM – Architecture Trade-off Analysis CBAM – Cost Benefit Analysis - PowerPoint PPT Presentation

transcript

Analyzing an Architecture

Why analyze an architecture?

Decide whether it solves the problemCompare to other architecturesAssess what needs to change, given some major requirements changeFind a problem

MethodsATAM – Architecture Trade-off AnalysisCBAM – Cost Benefit AnalysisArchitecture Review

ATAM

ATAM ParticipantsEvaluation TeamProject Decision Makers Sponsor, Customer, Management

Architecture Stakeholder Developers, Users, Testers, etc.

Evaluation TeamTeam LeaderEvaluation LeaderScenario ScribeProceedings ScribeTimekeeperProcess ObserverProcess EnforcerQuestioner

OutputsConcise presentation of the ArchitectureArticulation of Business GoalsQuality Requirements – collection of scenariosMapping of Architectural decisions to qualitiesIdentified sensitivity and trade-off pointsSet of risks and non-risksSet of risk themes

Phases of ATAM0 - Partnership and Preparation1 – Evaluation 1 -- 1 day 2 TO 3 WEEKS BREAK HERE!

2 – Evaluation 2 – 2 days4 – Follow-up -- 1 week

Evaluation Steps – Phase 11 - Present the ATAM2 - Present Business Drivers Most important functions Constraints – technical, economic,

political Business goals Major stakeholders Architectural drivers

Evaluation Steps3 – Present Architecture (~20 slides; 60 minutes)

4 – Identify Architectural Approaches

5 – Quality Attribute Utility Tree

Quality attribute utility treeTop level: quality attributesSecond level: attribute sub-categories (or, scenario groupings if you think bottom-up)Third level: quality attribute scenariosFor each scenario, two priority rankings (H/M/L): Importance Architect’s estimate of difficulty

See pp 296-297

Scenario priority hierarchy (Don’s)

HH Top

HM, MH Second level

MM Time permitting

HL, ML, LL

Ignore (you won't have time anyway, and they aren't hard to build)

LH, LM Why would you implement this in the first place?

Evaluation Steps6 – Analyze Architectural Approaches Focus on top priority scenarios first, then 2nd

level, … Understand the architectural decisions made for

the scenario, and the consequences For each architectural decision, generate lists of

Sensitivity points (scenarios influenced by the decision) Tradeoff points (one scenario helped, another one hurt)

For each sensitivity point and each tradeoff, decide whether it is a risk or non-risk

Sensitivities and tradeoffs: examples

Sensitivities Configuration files: good for modifiability Virtual machine: good for portability Virtual machine: bad for performance

Virtual machine is also a tradeoff point, because it is good for at least one attribute and bad for at least one other

Evaluation Steps – Phase 27 – Brainstorm and prioritize scenarios

8 - Analyze Architectural Approaches

9 – Present Results

CBAM

CBAMGoal of CBAM is quantifying decisionsUtility – a measure of valueCost – to implement a given strategyUse outputs of ATAM

This is a subjective process!

ScenarioFor each scenario of ATAM: Generate a set of scenarios The set has a range of responses The response measure needs to be

quantified

Assign Utility ValuesThis can be hard!Look at plots in text (pg. 311) Start by establishing worst-case and best-case limits (0 and 100)They also tried to find a current and desired value

PrioritiesPrioritize the scenarios in order firstThe add a weight for each one

Architectural StrategiesExpected value of the response (Interpolate on the plot)

Effect on other attributesCost to implement

BenefitBi = j(bi,j * Wj)

bi,j expected change in utility with respect to scenario j as a result of using strategy i.W is weight of scenarios

ROIR = B / C

SummaryATAM and CBAM provide structureCBAM can be hard, since quantification is called for!Next week we consider a less structured alternative.