45
SAF - An SAF - An introduction introduction Arnon Rotem-Gal-Oz Arnon Rotem-Gal-Oz Product Line Architect Product Line Architect www.rgoarchitects.com www.rgoarchitects.com

SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Embed Size (px)

Citation preview

Page 1: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

SAF - An introduction SAF - An introduction

Arnon Rotem-Gal-OzArnon Rotem-Gal-OzProduct Line ArchitectProduct Line Architect

www.rgoarchitects.comwww.rgoarchitects.com

Page 2: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

What SAF isn’tWhat SAF isn’t

Detailed guidance on how to design Detailed guidance on how to design your next architectureyour next architecture

Detailed guidance on how to document Detailed guidance on how to document your next architectureyour next architecture

Guidance on the Architect’s soft skillsGuidance on the Architect’s soft skills

Prescriptive ProcessPrescriptive Process

Page 3: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

So why do I need SAF So why do I need SAF

Congratulations !!!Congratulations !!! You are the new lead Architect for Project XYou are the new lead Architect for Project X

Page 4: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

What SAF isWhat SAF is

An Architecture Framework An Architecture Framework Activities – focus on needsActivities – focus on needs Techniques to help accomplish the Techniques to help accomplish the

activitiesactivities

Focused on Solution/Project Focused on Solution/Project architecturearchitecture Lightweight Lightweight

Page 5: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Core Activities Core Activities

S – identify StakeholdersS – identify Stakeholders P – set Principles, guidelines & constraints P – set Principles, guidelines & constraints A – define quality AttributesA – define quality Attributes M – ModelM – Model M –Map to technology M –Map to technology E – EvaluateE – Evaluate D - DeployD - Deploy

Page 6: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

identify Stakeholdersidentify Stakeholders

Page 7: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

The Usual SuspectsThe Usual Suspects

CustomerCustomer End-UserEnd-User Project ManagerProject Manager ManagementManagement DevelopersDevelopers MaintainersMaintainers

Security AnalystsSecurity Analysts Project New Project New

comerscomers TestersTesters Customer’s IT Customer’s IT

groupgroup

Page 8: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Mapping StakeholdersMapping Stakeholders

lowlow HighHighlowlow

HighHigh

ConcernConcernImportanceImportance(or Power)(or Power)

InterestInterest

MonitorMonitor(Minimum Effort)(Minimum Effort)

Keep Keep InformedInformed

Keep Keep SatisfiedSatisfied

ManageManageCloselyClosely

Based on Schekkerman - IEAD

Page 9: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

set Principles, guidelines & set Principles, guidelines & constraints constraints

Page 10: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Principles & GuidelinePrinciples & Guideline

Set an direction for the solution Set an direction for the solution

Initial directions to consider for the Initial directions to consider for the solutionsolution

Page 11: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

ConstraintsConstraints

constraints limit the (architectural) solution space Vs. requirements that set goals for the

system

Stakeholders should therefore not only specify requirements, but also constraints!

Page 12: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

OriginsOrigins

Past ExperiencePast Experience StakeholdersStakeholders StandardsStandards

CompanyCompany CustomerCustomer InternationalInternational

Page 13: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Multiple Tiers (1/2)Multiple Tiers (1/2)principle exampleprinciple example What – Hardware architecture, What – Hardware architecture,

deployment unto multiple computersdeployment unto multiple computers

Rationale/Benefits Rationale/Benefits Easier to purchase, deploy, upgradeEasier to purchase, deploy, upgrade Easier to solve security, performance Easier to solve security, performance

issuesissues Enables administrator specializationEnables administrator specialization

Page 14: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Multiple Tiers (2/2)Multiple Tiers (2/2)principle exampleprinciple example Implications Implications

Need to carefully consider Need to carefully consider communications of communications of layers/components/services that cross layers/components/services that cross tier boundariestier boundaries

AlternativesAlternatives Single-Tier Single-Tier N-Tiers (i.e. preset number of tiers)N-Tiers (i.e. preset number of tiers)

Scope Scope Installable modulesInstallable modules

Page 15: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Other examplesOther examples

PrinciplesPrinciples Layered architecture, federated databaseLayered architecture, federated database

GuidanceGuidance At least 2 threads on UIAt least 2 threads on UI

ConstraintsConstraints Technical – Platform/technology (e.g. Technical – Platform/technology (e.g.

use .NET)use .NET) Financial – Budget Financial – Budget (don’t event think about (don’t event think about

that fancy Rule Engine)that fancy Rule Engine)

Page 16: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

define quality Attributesdefine quality Attributes

Page 17: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

System Quality AttributeSystem Quality Attribute

PerformancePerformance AvailabilityAvailability UsabilityUsability SecuritySecurity

MaintainabilitMaintainabilityy

PortabilityPortability ReusabilityReusability TestabilityTestability

End User’s view

Developer’s view

Time To MarketTime To Market Cost and BenefitsCost and Benefits Projected life timeProjected life time Targeted MarketTargeted Market Integration with Integration with

Legacy SystemLegacy System Roll back Roll back

ScheduleSchedule

BusinessCommunityview

A list of quality attributes exists inA list of quality attributes exists inISO/IEC 9126-2001 Information Technology – Software Product Quality ISO/IEC 9126-2001 Information Technology – Software Product Quality

Page 18: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

decompose and refines the business decompose and refines the business goals and quality attributesgoals and quality attributes

The root of the tree is “utility” – the The root of the tree is “utility” – the overall “goodness” of the systemoverall “goodness” of the system

Building a Utility Tree (1/2)Building a Utility Tree (1/2)

Page 19: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Building a Utility Tree (2/2)Building a Utility Tree (2/2)

Select the most important quality goals Select the most important quality goals to be the high-level nodesto be the high-level nodes E.g. performance, modifiability, security, E.g. performance, modifiability, security,

and availabilityand availability

The tree reflects the hierarchical nature The tree reflects the hierarchical nature of quality attributes and provides the of quality attributes and provides the basis for prioritizationbasis for prioritization

Page 20: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Adding Scenarios (1/2)Adding Scenarios (1/2)

Represent stakeholders’ interestsRepresent stakeholders’ interests weighted according to stakeholder consensus of weighted according to stakeholder consensus of

their relative importancetheir relative importance

Help Understand quality attribute Help Understand quality attribute requirementsrequirements

Make the goals concrete and Make the goals concrete and measurablemeasurable

Reflect both run-time and non-run-time Reflect both run-time and non-run-time considerationsconsiderations

Page 21: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Adding Scenarios (2/2)Adding Scenarios (2/2)

Scenarios should cover a range ofScenarios should cover a range of Anticipated uses of (“use case” Anticipated uses of (“use case”

scenarios),scenarios), Anticipated changes to (growth Anticipated changes to (growth

scenarios)scenarios) Unanticipated stresses (“Soap opera Unanticipated stresses (“Soap opera

scenarios”) to the system.scenarios”) to the system. A scenario is a statement that incorporatesA scenario is a statement that incorporates

A context; a stimulus; a responseA context; a stimulus; a response

Scenarios should be as specific as possible.Scenarios should be as specific as possible.

Page 22: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Senarios Examples (1/3)Senarios Examples (1/3) examples examples Use case scenario

Under normal operation, perform a database transaction Under normal operation, perform a database transaction

in under 100 milliseconds.in under 100 milliseconds.

Remote user requests a database report via the Web during peak Remote user requests a database report via the Web during peak period and receives it within 5 seconds.period and receives it within 5 seconds.

Growth scenarioGrowth scenario Add a new data server to reduce latency in scenario 1 to 2.5 Add a new data server to reduce latency in scenario 1 to 2.5

seconds within 1 person-week.seconds within 1 person-week. For a new release, integrate a new component implementation in For a new release, integrate a new component implementation in

three weeks.three weeks. Exploratory scenarioExploratory scenario

Half of the servers go down during normal operation without Half of the servers go down during normal operation without affecting overall system availability.affecting overall system availability.

Context Stimulus

Response

Page 23: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Scenarios examples (2/3)Scenarios examples (2/3)

PerformancePerformance ResponseResponse

Under normal conditions update 100 moving Under normal conditions update 100 moving objects on the map < 200 miliseconsobjects on the map < 200 milisecons

LatencyLatency Under normal or stress conditions, a critical Under normal or stress conditions, a critical

alert generated by the system will be alert generated by the system will be displayed to the user in less than 1 seconddisplayed to the user in less than 1 second

Data lossData loss Under all conditions a message acknowledged Under all conditions a message acknowledged

by the system shall not be lost (10^5 by the system shall not be lost (10^5 probability)probability)

Page 24: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Scenarios example (3/3)Scenarios example (3/3)

Availability Availability Hardware failureHardware failure

When a mission is in progress, upon a server When a mission is in progress, upon a server mal-function, the system will be fully operable mal-function, the system will be fully operable within 30 seconds or lesswithin 30 seconds or less

Changeability Changeability Add FeatureAdd Feature

Add a new sensor-type to the system in 2 Add a new sensor-type to the system in 2 man-months or lessman-months or less

Page 25: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

ModelModel

Page 26: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Choose viewsChoose views

To satisfy stakeholders’ concerns To satisfy stakeholders’ concerns

Minimal set of viewsMinimal set of views System contextSystem context Logical (e.g. Packages)Logical (e.g. Packages) Physical (e.g. Deployment)Physical (e.g. Deployment)

Page 27: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Documentation & PresentationDocumentation & Presentation

Keep “Barely good enough”Keep “Barely good enough” Unless required otherwise by Unless required otherwise by

customer/company standardscustomer/company standards

Match the intended audience Match the intended audience

Page 28: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Services & ESB take 1Services & ESB take 1id Serv ice View

UI

«Service»

COP

«Service»

Nav igation

«Service»

OwnSiteESB

«Service»

Alerts

Page 29: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Services & ESB – take 2 Services & ESB – take 2

COPCOP

AlertsAlerts

UIUI OwnOwnSiteSite

NavigatioNavigationnESBESB

Page 30: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Map to tools/technologyMap to tools/technology

Page 31: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

MappingMapping

Work in lock-step with designWork in lock-step with design

Buy vs. Make vs. Reuse vs. Customize Buy vs. Make vs. Reuse vs. Customize

The wrong tools can compromise your The wrong tools can compromise your architecture / increase your costs architecture / increase your costs significantly significantly

Page 32: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Example – Mapping Example – Mapping mismatchmismatch

Management introduced a distributed Management introduced a distributed objects framework as a constraintobjects framework as a constraint

Project decided on SOAProject decided on SOA

A lot of energy & effort making the A lot of energy & effort making the distributed objects act like a message distributed objects act like a message busbus

Page 33: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

EvaluateEvaluate

Page 34: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Evaluation MethodsEvaluation Methods

On PaperOn Paper SEISEI

ATAM; SAAM; ARIDATAM; SAAM; ARID

LAAAMLAAAM Active Design ReviewsActive Design Reviews

In CodeIn Code POCsPOCs Architectural prototypeArchitectural prototype (GUI Prototype)(GUI Prototype)

Page 35: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Formal Evaluation Example Formal Evaluation Example LAAAMLAAAM

Assessment MatrixAssessment Matrix Evaluate suitability of strategies against Evaluate suitability of strategies against

scenariosscenarios

ValueValueCostCost

Strategies

Scenarios

Based on Jeromy Carriere

Page 36: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

LAAAM – Assessment ApproachLAAAM – Assessment Approach

Each dimension is rated on a five point Each dimension is rated on a five point scale, from High to Lowscale, from High to Low

Each dimension is given a weight, to Each dimension is given a weight, to express its importance relative to the other express its importance relative to the other dimensionsdimensions

Assessment is performed in two passes:Assessment is performed in two passes:1.1. Treat each cell as independentTreat each cell as independent

2.2. Normalize across each rowNormalize across each row

ValueValue Development CostDevelopment Cost Operations CostOperations Cost

LowLow 00 22 22

Low-ModerateLow-Moderate .5.5 1.51.5 1.51.5

ModerateModerate 11 11 11

Moderate-HighModerate-High 1.51.5 .5.5 .5.5

HighHigh 22 00 00

Based on Jeromy Carriere

Page 37: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

LAAAM – Example (1/2)LAAAM – Example (1/2)

StrategyStrategy

ScenarioScenario AnalysisAnalysis WeightWeight

A. Perform A. Perform no no rearchitectinrearchitecting. Maintain g. Maintain with minimal with minimal effort the effort the existing ABC existing ABC application application architecture. architecture. Introduce Introduce no new no new dependenciedependencies on ABC s on ABC components.components.

B. B. IncrementallIncrementally wrap y wrap existing ABC existing ABC application application components components in the model in the model provided provided with .NET.with .NET.

C. C. CompletelCompletely port y port existing existing ABC ABC applicationapplications to .NET.s to .NET.

D. D. Completely Completely port port existing existing ABC ABC applications applications to J2EE, to J2EE, using using existing existing enterprise enterprise frameworks.frameworks.

1. A new 1. A new application application leverages the leverages the XYZ data store.XYZ data store.

ValueValue 11 ModerateModerate Moderate-Moderate-HighHigh

ModerateModerate ModerateModerate

Development Development CostCost

1.51.5 HighHigh LowLow HighHigh HighHigh

Operations Operations CostCost

11 LowLow Low-Low-ModerateModerate

LowLow Low-Low-ModerateModerate

AssessmentAssessment 33 66 33 2.52.5Based on Jeromy Carriere

Page 38: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

LAAAM – Example (2/2)LAAAM – Example (2/2)

  ScenarioScenario AnalysisAnalysis WeightWeight   AA BB CC DD

2. The XYZ 2. The XYZ application's application's presentation presentation is customized is customized by the user to by the user to determine determine layout and layout and content.content.

ValueValue 11 LowLow Moderate-Moderate-HighHigh

HighHigh HighHigh

Development Development CostCost

1.51.5 N/AN/A ModerateModerate Moderate-Moderate-HighHigh

Moderate-Moderate-HighHigh

Operations Operations CostCost

11 N/AN/A Low-Low-ModerateModerate

LowLow Low-Low-ModerateModerate

AssessmentAssessment 00 4.54.5 4.754.75 4.254.25

3. The peak 3. The peak transaction transaction rate for the rate for the XYZ XYZ application application increases by increases by 10x (after 10x (after scenario 2).scenario 2).

ValueValue 11 LowLow Moderate-Moderate-HighHigh

HighHigh HighHigh

Development Development CostCost

1.51.5 HighHigh Low-Low-ModerateModerate

Moderate-Moderate-HighHigh

HighHigh

Operations Operations CostCost

11 HighHigh ModerateModerate LowLow ModerateModerate

AssessmentAssessment 00 4.754.75 4.754.75 33

Based on Jeromy Carriere

Page 39: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Code Evaluation ExamplesCode Evaluation Examples

POCsPOCs Service Broker suitability for POS Service Broker suitability for POS

scenariosscenarios MSMQ vs. Tibco RV + EMS MSMQ vs. Tibco RV + EMS

PrototypePrototype Moving the first serive to NHibernate Moving the first serive to NHibernate

Page 40: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

DeployDeploy

Page 41: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Architecture DeploymentArchitecture Deployment

Making sure the architecture really fits Making sure the architecture really fits the problemthe problem

Making sure the architecture is Making sure the architecture is followedfollowed

Tip: Short iterations allow for better Tip: Short iterations allow for better feedback loopfeedback loop Consider SCRUM’s 30 day sprintsConsider SCRUM’s 30 day sprints

Page 42: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Spiral ProcessSpiral Process

Riskanalys is

Riskanalys is

Riskanalys is

Riskanalysis Proto-

ty pe 1

Prototyp e 2Prototyp e 3

Opera-tionalprotoyp e

Concept o fOperation

Simulations, models, b en ch marks

S/Wrequi rements

Requi rementvalid ation

DesignV&V

Prod uctdesign Detailed

design

CodeUni t t es t

Integr ationtestAccep tance

testServ ice Develop, v erifynext-l evel p rod uct

Ev aluate altern ativesid en tify, resolve risks

Determine ob jectiv esalternatives and

cons traints

Plan next p has e

Integrationand test p lan

Develop mentplan

Requi rements planLife-cycle plan

REVIEW

Bohem

Page 43: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

Final WordsFinal Words

Page 44: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect

SAF SAF

S – identify StakeholdersS – identify Stakeholders P – set Principles, guidelines & constraints P – set Principles, guidelines & constraints A – define quality AttributesA – define quality Attributes M – ModelM – Model M –Map to technology M –Map to technology E – EvaluateE – Evaluate D - DeployD - Deploy

Page 45: SAF - An introduction Arnon Rotem-Gal-Oz Product Line Architect