saf
DESCRIPTION
An presentation I gave in 2007 on architecture and the architecture processTRANSCRIPT
Getting SPAMMED for architecture
Arnon Rotem-Gal-Oz
Biometrics Line Development Manager
Rafael LTD.
Haifa, Israel
Famous Last Words…
“It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….”
(Fred Brooks - “Mythical Man-Month” p.47)
We don’t want to get there
So, What is Software Architecture exactly?
Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution
The architect doesn't talk, he acts.When this is done,the team says, "Amazing:we did it, all by ourselves!" (17)
The architect observes the worldbut trusts his inner vision.He allows things to come and go.His heart is open as the sky. (12)
Philippe Kruchten - http://www.bredemeyer.com/tao_by_Kruchten.htm
Explorer
Designer
Advocate
The role of the architect
Ron Jacobs
Yeah – but a better analogy is
The Role of the Architect – take II
Designer
Renaissance Man
Visionary & Leader
Mentor
At the end of the day it is the Architect who is ultimately
responsible for the quality of the system/product
OK, so how do we do that?
First, who are we working for?
The Usual Suspects
Customer End-User Project Manager Management Developers Maintainers Security Analysts
Project New comers Testers Customer’s IT group
Mapping Stakeholders
low Highlow
High
ConcernImportance(or Power)
Interest
Monitor(Minimum Effort)
Keep Informed
Keep Satisfied
ManageClosely
Based on Schekkerman - IEAD
Architecture Principles
Set the direction for the solution
Initial guidelines to consider for the solution
And there are always some constraints
Next, we have to think about the quality Attributes
Quality Attributes• Performance• Availability• Usability• Security
Maintainability Portability Reusability Testability
End User’s view
Developer’s view
Time To Market Cost and
Benefits Projected life
time Targeted Market Integration with
Legacy System Roll back
Schedule
BusinessCommunityview
A list of quality attributes exists inISO/IEC 9126-2001 Information Technology – Software Product Quality
Utility
Performance
Response
Under normal conditions - update of an entity in the persistent storage <0.5 Second
Latency
Under normal or stress conditions, critical alert generated by the system will be displayed in less than 1 seconds (for generation)
Data Loss
under all conditions, a message acknowledged by the system will not be lost
Availability
Hardware Issues
Under all conditions, when a server crash, the system will resume operation in less than 30 seconds
Usability
Compliance
The system should comply with maritime data standards (e.g. Mercator projection)
Operability
The system should handle user request without impeding the user's ability to continue controlling the system (e.g. initiate additional requests)
Security
Unauthorized users
under normal conditions and connectivity the system should alert an unauthorized login attempt (intrusion) within 1 minute
Adaptability
More Users
When additional users need access to the system, add new /more hardware (to support load) under 4 man weeks
Identify scenarios
and prioritize
them using Utility trees
Just remember that they actually look like this…
The secret to quality attribute analysis is the scenarios
Anatomy of a scenario
– Under normal operation, perform a database transaction
in under 100 milliseconds.
Context Stimulus
Response
Oh yeah – there’s also modeling and design…
RepositoryRepository
PCPC
UIEntityUIEntity
PCPC
PCPC
MapUIC+
MapUIC+
UICUIC
UICUIC
UIEntityUIEntity
UIEntityUIEntity
MAPMAP
BusIBUS
SomeService
IBUS
SomeService
MessageHandler
MessageHandler
Root U
ICR
oot U
IC
PCPC
MessageHandler
MessageHandler
MessageHandler
MessageHandler
UICUIC
CorrelatorCorrelator
Portal
sd Portal - Send Message
Portal Corrolator
ServiceMsg1
IBus MessageHandler MessageMapper
UIC Repository
ServiceMsg2
opt Needs new entity
loop All message handlers
1.0
1.1 Register
1.2 Send(ServiceMessage,Service)
2.0 message:=
2.1 handle(message)
2.2 entity:= Build(message)
2.3 insertEntity(entity)
2.4 RepositoryChanged
2.5 CorrelatedMessageRecieved
2.6 callback(cookie,EntitiesAffected)
Metacase –www.metacase.com
Pattern can save you the trouble of
reinventing the wheel
If you want the architecture to be effective it
has to be communicated
Two roads diverged in a yellow wood,And sorry I could not travel bothAnd be one traveler, long I stood
And looked down one as far as I couldTo where it bent in the undergrowth
(The road not taken, Robert Frost 1915)
When you present an architecture you should consider your
target audience
Compare this:id Serv ice View
UI
«Service»
COP
«Service»
Nav igation
«Service»
OwnSiteESB
«Service»
Alerts
With this
COP
Alerts
UI OwnSite
NavigationESB
Technology Mapping
v
Human Workflow
ECM DW OLTP
DALService Agents
Business RulesActivity
WorkflowAu
thor
izat
ion
Monitorin
gFaçade
Log &
Trace
Exception
Man
agement
Configuration
Au
then
tica
tion
Sign
ing
Rich UI Web UI
Logistics E-PublishFinance
K2
SQL 2005 SQL 2005
Generated C#
ILOG RulesC#
BizTalk 2004Tam
uz +
Win
200
3C
A U
nicenter
WCF
En
terprise Library
En
terprise Library
En
terprise Library
AzM
an
Sign
ing
Outlook + C# ASP.NET 2.0 on IIS 6.0
Documentum
WCF
SAP Logistics
Adobe Elements
SAP 4.6DFI
BizTalk 2004
Where are we at?
Architecture
Quality Attributes
Technology
Patterns & Anti-patterns
Principles
Community experience
Stakeholders
Architect
people
A “deliverable”
Produce
Key
Is an input
Constraints
OK then, so we are all set
The architecture has to be
Evaluated to make sure it is any good
Test Early
Total Risk ExposureRisk Exposure Reduction
TimeTime
Ris
kR
isk
Risk Reduction Period
Controlled risk management period
Total Risk Exposure
Sometimes we need to do more formal evaluations
ATAM flow – SEI - http://www.sei.cmu.edu/architecture/ata_method.html
Formal Evaluation Example LAAAM
• Assessment Matrix– Evaluate suitability of strategies against
scenariosValueCost
Strategies
Scenarios
Based on Jeromy Carriere
LAAAM – Example (1/2)
Strategy
Scenario Analysis Weight
A. Perform no rearchitecting. Maintain with minimal effort the existing ABC application architecture. Introduce no new dependencies on ABC components.
B. Incrementally wrap existing ABC application components in the model provided with .NET.
C. Completely port existing ABC applications to .NET.
D. Completely port existing ABC applications to J2EE, using existing enterprise frameworks.
1. A new application leverages the XYZ data store.
Value 1 Moderate Moderate-High
Moderate Moderate
Development Cost
1.5 High Low High High
Operations Cost
1 Low Low-Moderate
Low Low-Moderate
Assessment 3 6 3 2.5
Based on Jeromy Carriere
LAAAM – Example (2/2)
Scenario Analysis Weight A B C D
2. The XYZ application's presentation is customized by the user to determine layout and content.
Value 1 Low Moderate-High
High High
Development Cost
1.5 N/A Moderate Moderate-High
Moderate-High
Operations Cost
1 N/A Low-Moderate
Low Low-Moderate
Assessment 0 4.5 4.75 4.25
3. The peak transaction rate for the XYZ application increases by 10x (after scenario 2).
Value 1 Low Moderate-High
High High
Development Cost
1.5 High Low-Moderate
Moderate-High
High
Operations Cost
1 High Moderate Low Moderate
Assessment 0 4.75 4.75 3
Based on Jeromy Carriere
All we have to do now is to deploy the
architecture
StakeholdersPrinciplesAttributesModelingMappingEvaluationDeployment
It is “easy” in waterfall& incremental
Requirements
Architecture
Design
Code
Integration
Test
Requirements &
planning game
R,A,D,C,I,T (Time boxed)
R,A,D,C,I,T (Time boxed)
R,A,D,C,I,T (Time boxed)
R,A,D,C,I,T (Time boxed)
Final Test
Requirements
Architecture
Design, Code, Integrate, Tes
t
Design, Code, Integrate, Tes
t
Final
Integration
Final Test
Moving from Waterfall to Agilewaterfall
Incremental
Agile
based on Johanna Rothman
Building in small iterationscan be dangerous
Winchester Mystery House
Can you do Agile Architecture?
JEDUF vs. BDUF
Component A
Component B
Component C
Component D
Component F
Component H
Component I
Evolve the architecture
http://www.flickr.com/photos/hyperclouds/459716791/
Architect must implement?
StakeholdersPrinciplesAttributesModelingMappingEvaluationDeployment