the past, present and future of software architecture

27
1 The Past, Present and Future of Software Architecture Eoin Woods UBS Investment Bank [email protected] www.eoinwoods.info About me I’m a working software architect Enterprise and software architecture Always worked as a software engineer 8 years of products, 7 of applications Recently moved to end-user company Stream architect in ETD area Major re-engineering effort Co-author of software architecture book With Nick Rozanski, Addison-Wesley, 2005 Participant in IFIP 2.10 WG

Upload: others

Post on 12-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

1

The Past, Present and Future of Software Architecture

Eoin WoodsUBS Investment Bank

[email protected]

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)

14

Functional View

Information View

StatsSet Variable

Observation

Deduction

DerivedMeasure

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

27

Eoin [email protected]

Comments and Questions?