saf - an introduction arnon rotem-gal-oz product line architect
TRANSCRIPT
SAF - An introduction SAF - An introduction
Arnon Rotem-Gal-OzArnon Rotem-Gal-OzProduct Line ArchitectProduct Line Architect
www.rgoarchitects.comwww.rgoarchitects.com
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
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
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
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
identify Stakeholdersidentify Stakeholders
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
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
set Principles, guidelines & set Principles, guidelines & constraints constraints
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
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!
OriginsOrigins
Past ExperiencePast Experience StakeholdersStakeholders StandardsStandards
CompanyCompany CustomerCustomer InternationalInternational
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
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
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)
define quality Attributesdefine quality Attributes
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
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)
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
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
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.
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
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)
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
ModelModel
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)
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
Services & ESB take 1Services & ESB take 1id Serv ice View
UI
«Service»
COP
«Service»
Nav igation
«Service»
OwnSiteESB
«Service»
Alerts
Services & ESB – take 2 Services & ESB – take 2
COPCOP
AlertsAlerts
UIUI OwnOwnSiteSite
NavigatioNavigationnESBESB
Map to tools/technologyMap to tools/technology
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
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
EvaluateEvaluate
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)
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
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
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
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
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
DeployDeploy
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
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
Final WordsFinal Words
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