the past, present and future of software architecture
TRANSCRIPT
1
The Past, Present and Future of Software Architecture
Eoin WoodsUBS Investment Bank
About meI’m a working software architect
Enterprise and software architectureAlways worked as a software engineer
8 years of products, 7 of applicationsRecently moved to end-user company
Stream architect in ETD areaMajor re-engineering effort
Co-author of software architecture bookWith Nick Rozanski, Addison-Wesley, 2005
Participant in IFIP 2.10 WG
2
TopicsIntroducing Software ArchitectureThe PastThe PresentThe Future
What Is Software ArchitectureThe software architecture of a program or computing system is the structure or structuresof the system, which comprise software elements, the externally visible qualities of those elements, and the relationships among them
Bass, Clements, Kazman (SEI)Software Architecture in Practice
3
What is Software ArchitectureThe set of design decisions which, if made incorrectly, will cause your project to becancelled
Eoin Woods (heads the SEI definitions list!)
The SEI definitions list:www.sei.cmu.edu/architecture/definitions.html
Just Design, Surely?All architecture is design, not all design is architecture [Paul Clements]
Not all design decisions are equalsome have “architectural significance”
Architectural design is outward lookingfocus on stakeholder needs, not pure technology
Architecture more fluid than designcontext, scope, success criteria all unclear
4
Just Design, Surely?Architecturally Significant
concern, problem, system element; having wide impact on structure of the system; orwide impact on an important quality property (performance, availability, …)
(Philippe Kruchten, Intro to RUP, 2nd Edition, 2000)
Just Design, Surely?
ExtensionalLocalImplementation
IntentionalLocalDesign
IntentionalGlobalArchitecture
“Architecture, Design, Implementation”, Amnon Eden And Rick Kazman, ICSE 2003http://eden-study.org/articles/2003/icse03.pdf
5
Is It Really “Architecture” ?
Key Talent
Key Responsibility
Focus
Training
Technical designFeel for client need
Delivery of solutionVision, coordination
How it worksAesthetics, usability
Engineering basedArts based
Software ArchitectCivil Architect
But some similarities, both:need a “big picture” focus and awarenessact as a bridge from customer to builder
Software architect = civil architect + structural engineer?Don’t push the analogies too far!
The EssenceSoftware architecture is concerned with:
StakeholdersSystem-Level StructuresSystem Qualities
Software architecture involves:Understanding domains, problems and solutionsMaking design decisions & tradeoffsDelivering working systems
6
Architecture in Context
The crucial bridge between requirements and design“Three Peaks” model – after Bashar Nuseibeh
Design
Requirements
Architecture
Desires
Constraints
Realities
Possibilities
Why Architecture is ImportantStakeholder focus
who cares and whymore than just users and sponsors
Ensuring that the right system is builtcritical functions, crucial qualities
System-wide (or cross-system) consistencywhat should be constant, what should vary
Early identification of riskwhat is going to go wrong and how to avoid it
7
Types of IT Architect
InfrastructureArchitect
InfrastructureArchitect
InfrastructureArchitect
SoftwareArchitect
SoftwareArchitect
SoftwareArchitect
Enterprise Architects
Ope
ratio
ns A
rchi
tect
s
Cross-SystemDecisions
ProductionEnvironment
Technology Specific Focus
Single System Focus
TopicsIntroducing Software ArchitectureThe PastThe PresentThe Future
8
Where Did it Come From?Dates from mid-1980
roots as far back as late 1960smainstream interest from mid-1990s
Began largely as an academic interestfrom studying how systems were built
Enthusiastically transferred into industrylittle interchange between the two since!
Mirrors the rise in importance and status of the technical IT professional
The Past - People1985 – David Parnas and modules
1987 – Zachman Framework1992 – Dwayne Perry and Alex Wolf1994 - Witt/Baker/Merritt book (IBM FSD)1995 – Philippe Kruchten and 4+11996 – Shaw and Garlan’s book1998 – Bass, Clements, Kazman book2000 – Team produce IEEE 14712003 – Martin Fowler admits it exists!
9
The Past - ProcessConstant arguments over “what is architecture”No shared understanding of what to do & whenPioneering architects ploughed ahead
Brooks (of course) – S/360Witt/Baker/Merritt – IBM FSDKruchten - CATSCutler – Windows NTBooch – methods and analysisShaw/Garlan/Bass/Kazman/Clements/Obink/Ran/Muller/… – research and study
The Past - TechnologySome hopeful technologies never took hold
ADLsFormalisms have been and gone
numerous architectural calculiArchitects largely imposed architecture on resisting technology
components of COBOL !Little or no architectural thinking in many product lifecycles
ad-hoc structure and extensionlittle support for architectural practice
10
The Past - PoliticsConstantly answering the question “what is a software architect and why do I need one?”Early architects often had no recognition of role
constant explanation and educationLittle understanding of the benefits in most organisations
and conversely, limitations
TopicsIntroducing Software ArchitectureThe PastThe PresentThe Future
11
The Present - PeopleToday architects have some industry support
Organisations like IASA, conferences like WICSAOrganisations are seeing value
IBM, Microsoft, Hartford Financial, UBS, BP, …Some technology independent training
SEI, Open Group, various degree modules“Architect” appears in career frameworksBut no clear route to architect jobs
Software developers, BAs, PMs, hybrid pathsReflects confusion over nature of the role
The Present - ProcessSmall number of reliable techniques
Viewpoints & views, ATAM, perspectivesFocus on simple techniques to organise
Boxes and lines in PPT do tend to dominate!Little real analysis of descriptions is possible
Overall process is quite ad-hocLittle or no domain focus in approachesReasonably large set of (basic) booksSome standard terminology exists (e.g. 1471)
but not widely used
12
ATAMPhase 1 Phase 2
Stakeholder-centric activities
Architect-centric activities
Understand BusinessDrivers
Understandthe Architecture
Identify ArchitecturalApproaches
Generate QualityAttribute Trees
Analyse Approaches
Brainstorm / PrioritiseScenarios
Analyse Approaches
Present Results
Architecture Tradeoff Analysis Methodhttp://www.sei.cmu.edu/ata
Viewpoints
[Rozanski & Woods, 2005]
13
Viewpoints ExampleA statistics management system
Data bulk-loaded into the databaseDerived measures calculated automaticallyStatisticians view and report on the dataDeductions recorded and reviewed manually
Viewpoints ExampleDescribed through 5 views
FunctionalInformationConcurrencyDevelopmentDeployment(Operational view omitted)
15
Concurrency View
Development View
Domain
StatDate LibraryJava Numerical
Toolkit
Utility
Apache Axis Hibernate 2.1
Servlet 2.2 API
Platform
Java 1.4 LibraryOracle JDBC
Driver 9.0
16
Deployment View
{model=StorEdge3510FC, capacity=500GB}
Disk Array
{model=SunFIreV440, memory=16GB, CPU=2x1.6GHz, IO=FiberChannel}
Database Server
{memory>=500MB, CPU>=1.8GHz}
Client PC
<<process>>Stats_Client
{model=DellSC430, memory=8GB, CPU=2x3GHz}
Primary Server
<<process>>Stats_Server
<<process>>Calculator
<<processgroup>>DBMS_Process_Grp
<<process>>Loader
{type=FC}
Data Centre Resident
Viewpoints and Perspectives
Stakeholders
Security Perspective
Performance Perspective
Availability Perspective
Maintenance Perspective
Accessibility Perspective
Location Perspective
Regulation Perspective
etc.
Architecture
Development View
Deployment View
Operational View
Functional View
Information View
Information View
17
Perspectives Example: SecurityThe architecture we’ve described is credibleWhat would happen if the system needed to protect the system’s information?
Justice community system for criminal intelligence
Considering SecuritySensitive Resources
The data in the databaseSecurity Threats
Operators stealing backupsAdministrators querying data, seeing namesBribing investigating officersInternal attack on the database via network
18
Considering SecuritySecurity Countermeasures
Backups: encrypt data in the databaseHow about performance?Does this make availability (DR) harder?
Seeing names: use codes instead of names, protect codes at higher security level
More development complexityPossible performance impact
Considering SecuritySecurity Countermeasures
Network Attacks: firewalls, IDSMore costMore deployment / administration complexityOperational impact if IDS trips
Bribery: add audit trail for data accessPossible performance impactMore complexityProtecting / using the audit trail
19
Considering SecurityInformation View Impact
StatsSet Variable
Observation
Deduction
DerivedMeasure
Identifier Code
Isolate names
Considering SecurityDevelopment View Impact
Domain
StatDate LibraryJava Numerical
Toolkit
Utility
Apache Axis Hibernate 2.1
Controlled StatAccess
Library
Add audit whenaccessing data
20
Considering SecurityDeployment View Impact
Added network model making network security clear
Considering SecurityOther Impact
Need IDS added to Development viewNeed to capture impact on Operational viewNeed to consider impact on availabilityNeed to re-work performance models to allow for database encryption, audit, …
Note the need to change many viewsThis is “architecturally significant”
21
The Present - TechnologyToday it’s a design time game
Most architecture lost as we move to codeEven with so called MDA – the “A” doesn’t survive
Some styles codified in technologiesGrid, P2P, client/server, tuple space
First-class connectors in some placesMessaging oriented systems, ESBs, …
First tools for architects appearingLattix, Sotograph, Aspects, Troux’s Metix (for EA)
The Present - PoliticsEveryone’s an architect
10 years technical experience => “architect”Language of software architecture widely used
Even if rarely defined or understoodProducts sold through architecture
.NET, J2EE, SOA, distributed cachesLeads to mass confusion about “architecture”
Agile / architecture tension is fairly highCompeting professional organisations
IASA, WWISA, GEAO, AEA, …
22
TopicsIntroducing Software ArchitectureThe PastThe PresentThe Future
The Future - PeopleBetter defined role
Architect vs. developer, technologist, tester or PMHelps relationships with others
Career track recognitionAgreement of key skills and responsibilitiesPossibly certification (e.g. Microsoft, IASA, GEAO)
One or more key professional bodies emergeProbably IASA, perhaps others
EducationMSc in software architecture perhaps?
23
The Future - ProcessStandardised practice
domain specific approachesreal time vs. transactional vs. data centric vs. …
Different levels of architectural process in usefrom “agile” to “SEI” (or “kennel” to “skyscraper”)
Design decisions will become first classmove focus from structure to rationale
Fundamental agreed definitionsneed to decide if necessary or even desirable?
The Future - TechnologyMoving architecture to runtime
Views in the running systemBetter description languages & tools
Executable and queryable architecture descriptionArchitecture in the running system
ADLs / DSLs / AspectsArchitect-specific tool support
Lattix and Sotograph are just early examplesModelling and construction ripe for development
24
Runtime Architecture
ConcurrencyFunctional
Pricer Marginer
Trader
Information
Trade Account
Client
ORM
Specialist ADLs/DSLs
Binding Languages
The Future - PoliticsSomeone will win the hearts and minds
IASA?Selling to architects will get more intense and effectiveThe agile / architecture tension will settle down
Both will realise where their strengths areMore research / practice alignment?
WICSA6 and WICSA7 perhaps!
25
TopicsIntroducing Software ArchitectureThe PastThe PresentThe FutureSummary
Summary (i)Software architecture is still young
really a product of 1995 – 2005Mainstream since about 2002Good core of knowledge emerging
approaches and techniquesSome agreement on fundamentals
stakeholders, structures, qualitiesunderstanding, designing, trading-off, delivering
Much to do to raise level of sophisticationdescription, analysis, runtime representation
26
Summary (ii)Finally research & practice meeting
WICSA 5, IASA, Microsoft, …Better design time tools will come
describe and analyse architecturescreate architectures using dedicated languagesbeyond boxes and lines
The future is architecture in the running systemtoo much is lost todayarchitecture description as an executable deliverable
To Learn More
Software Systems Architecture: Working With Stakeholders Using Viewpoints andPerspectives
Nick Rozanski & Eoin WoodsAddison Wesley, 2005
http://www.viewpoints-and-perspectives.info