Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software...

34
Software Architecture, SEI Award Ph. Kruchten June 2, 2020 1 Software Architecture: Perspectives on a maturing discipline Philippe Kruchten 1 Copyright © 2020 by P.Kruchten Jun. 2, 2020 1 Perspectives on an emerging discipline Jun. 2, 2020 Copyright © 2020 by P.Kruchten 2 Mary Shaw David Garlan 1996 2

Transcript of Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software...

Page 1: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

1

Software Architecture:Perspectives on a maturing discipline

Philippe Kruchten

1Copyright © 2020 by P.KruchtenJun. 2, 2020

1

Perspectives on an emerging discipline

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 2

Mary ShawDavid Garlan

1996

2

Page 2: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

2

Early history of software architecture

• NATO conference (1969)• Box & arrows (1960s-1980s)• Views & viewpoints (1990s-2000)• ADLs (1980s-2000s)• Architectural design methods (1990s-2000s)• Standards, reference architectures (1995-…)• Architectural design decisions (2004-…)

3Copyright © KESL 2011Kruchten Obbink Stafford 2006

3

My own trajectory

• 1984: I became “System Architect” at Alcatel– Butler Lampson (1983) Hints for computer system design– John Mills (1985) Pragmatic view of the system architect

• 1987: Technical consultant at Rational Software– Exposed to a wide range of large systems, all over the world– Internal community of practice– External software architecture community

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 4

4

Page 3: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

3

Software Architecture Tutorial ca. 1998

Outline1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ? (any tool support?)

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 5

5

Today’s 5 viewpoints

1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ? (any tool support?).

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 6

6

Page 4: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

4

From 1998 to 2020

1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ?

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 7

7

1. Semantics

• Hard to converge on a simple definition in the 1990s• Paul Clements’ collection of definitions

– Structure, Component, Connectors

• Standard IEEE 1471:2000 on represetnation– “Software architecture refers to the fundamental structures of a

software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.”

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 8

8

Page 5: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

5

• Software architecture encompasses the set of significant decisions about the organization of a software system …

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 9

1995, with Booch, Reitman and Bittnerderived from Shaw and Garlan’s definition

9

From the RUP (1998)

Software architecture encompasses the set of significant design decisions that shapes a software system, including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns.

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 10

TL; DR

10

Page 6: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

6

• The architecture is the set of significant design decisions that shape a software system, where significant is measured by cost of change.

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 11

Rhymes with Ralph Johnson’s, and Martin Fowler’s views

Booch 2006

11

Software architecture today

• Architecture as a common understanding of trajectory and boundaries.– Where is the project going– Shared mental model of “the design”– Conceptual integrity (handrails)

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 12

12

Page 7: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

7

From 1998 to 2020

1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ?

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 13

13

5. Process – the recipe

• “Mommy, where do software architecture come from?”– ICSE 1995 workshop on architecture of software system

• Theft, method, intuition

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 14

14

Page 8: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

8

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 15

ICSE 1995

15

Architectural Design Method

Architecture

ArchitecturalEvaluation

ArchitecturalSynthesis

Context, Constraints

Evaluation resultsArchitecturally

Requirements

Architecture

Backlog

ArchitecturalEvaluation

ArchitecturalSynthesis

ArchitecturalAnalysis

Significant

Source: Hofmeister, Kruchten, et al., 2005, 2007 16Copyright © KESL 2011

16

Page 9: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

9

Architectural Design

Ideas

Architecture

ArchitecturalEvaluation

ArchitecturalSynthesis

Ideas

Context, Constraints

Evaluation results

ArchitecturalAssets

Architecturally

Requirements

Architecture

Backlog

ArchitecturalEvaluation

ArchitecturalSynthesis

ArchitecturalAnalysis

Significant

Source: Hofmeister, Kruchten, et al., 2005, 2007 17Copyright © KESL 2011

17

Useful input: elements of design

• Catalogue of Styles (Shaw and Garlan)• Architectural Patterns (Stal, Buschmann & co)• Architectural mechanisms (in RUP), also called Architectural

Tactics at the SEI (Bass, Kazman, Clements & co)

• ….

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 18

18

Page 10: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

10

Today’s situation

• Many accessible sets of architectural solutions• Covering a wide range of problems or domains• Documented• Tested• Many are open-source• Some are developed or used by large companies• Large active communities• Reduced risks

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 19

19

Architectural nugget

• Concrete implementation of one or a small set of architectural patterns

• Around a programming language

• Stacks, ecosystems, solution framework, …

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 20

20

Page 11: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

11

• LAMP stack

• MEAN stack– MongoDB, Express, AngularJS, NodeJS

• Ruby on Rails ecosystem

• REACT Native

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 21

Examples

And dozens more

21

Today’s landscape

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 22

22

Page 12: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

12

Pick one

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 23

?

23

Less suitable choices

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 24

?

24

Page 13: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

13

Our architectural nuggets…

• Implicitly impose an architectural style• Coherence, consistency• Interfaces, API

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 25

25

Impedance mismatch

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 26

26

Page 14: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

14

Maybe no good choices

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 27

?

27

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 28

28

Page 15: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

15

Landscape has changed a lot

• Pick a general trajectory – Comes with a set of ready-made decisions– Experiment– Adapt

• Most of the remaining architectural work is about resolving impedance mismatch

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 29

29

Architecting today

• New issue or concern X => architectural backlog• How are the others doing in our ecosystem?

– Let us do the same they did for X

• We need something new or different?– How do we make to work? (impedance mismatch)– Risk? Let us experiment now

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 30

30

Page 16: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

16

Architecting today

• Mostly theft (= select, copy, adapt)• Very little intuition (= invention)

• Not much need for rigorous step by step method

• On the down side:– Trapped in a solution path– Architectural debt

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 31

In general

31

From 1998 to 2020

1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ?

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 32

32

Page 17: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

17

4. Who - the software architects

• Software architect– Job title, function, hierarchy, – badge of honour for services rendered, ivory tower

• Educating architects• Certification

• A few large places have succeeded doing so (e.g., Siemens)

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 33

33

4. Who - the software architects

• Issue with the title?• Architecture is design• Experience is key

– Little material available in the 1980s – 90s– Lots of visible architecture today

• Open source• Major players (Google, Amazon, Netflix, Spotify, …)• ecosystems

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 34

34

Page 18: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

18

Experience

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 35

35

Breadth of Experience

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 36

36

Page 19: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

19

Breadth of Experience

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 37

37

Depth of Expertise

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 38

38

Page 20: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

20

• Martin Fowler, Who needs an architect (2003):– Architectus reloadus => more breadth)– Architectus aryzus => more depth

• Architecture Owner

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 39

39

• How do you becomes an architect?– Course, books? Meh…– Practice, exposure to a wide array of cases

But not to forget:• Decision making• Cognitive biases

• Leadership• Communication

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 40

40

Page 21: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

21

From 1998 to 2020

1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ?

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 41

41

2. Representation

• 1990’s– Boxes and arrows– Icons– Colors– PowerPoint

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 42

42

Page 22: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

22

Copyright © 2013 by Philippe Kruchten

43

Views (ca. 1990)

• An idea that was ripe– Philips BAPO/CAFR– Siemens S4V– Rational’s 4+1 views

• Took root for a while: – Eoin Woods & Nick Rozanski book– IEEE 1471:2000, ISO 42010:2007

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 44

44

Page 23: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

23

The 4+1 view model of architecture

Logical View ImplementationView

ProcessView

DeploymentView

Use CaseView

ProgrammersSoftware management

PerformanceScalability Throughput

System Integrators

End-user, designers Functionality

System topology Delivery, installation

Communication

System Engineering

Users/Analysts/TestersBehavior

Kruchten 1995 45Copyright © KESL 2011

45

Views in 2020

• Still a useful concept in 2020 (?)• Not much evidence of actual application

– Simon Brown’s C4Model …?

• Visualization is still important– Ruth Malan & Dana B.

• Tool: back to PowerPoint

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 46

46

Page 24: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

24

Small detour: ADL

• Architecture Description Languages

• Many created (> 100)• A handful more noticeable• Almost no traction in industry

• UML 2.0 as an ADL? (2005)

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 47

47

Actor A

Use Case 1

Use Case 2

Actor B

user : Clerk

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repositorydocument : Document

gFile : GrpFile

9: sortByName ( )

L1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )

7: readFile ( )

3: create ( )

6: fillDocument ( )

4: create ( )

8: fillFile ( )

Window95

¹®¼°ü® Ŭ¶óÀ̾ðÆ®.EXE

WindowsNT

¹®¼°ü® ¿£Áø.EXE

WindowsNT

Windows95

Solaris

ÀÀ¿ë¼¹ö.EXEAlphaUNIX

IBM Mainframe

µ¥ÀÌź£À̽º¼¹ö

Windows95

¹®¼°ü® ¾ÖÇôDocument

FileManager

GraphicFileFile

Repository DocumentList

FileList

usermainWnd fileMgr :

FileMgrrepositorydocument :

DocumentgFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ÆÁ¤¹®¼¿¡ ëÇÑ º ±â¦ »ç¿ëÀÚ°¡ ¿äûÇÑÙ.

ÈÀÏ°ü®ÀÚ Àоî¿Â ¹®¼ÀÇ Á¤º ¦ ÇØç ¹®¼°Ã¼¿¡ ¼³Á¤À» ¿äûÇÑÙ.

Èé °Ã¼Â ÀоîµéÀÎ °Ã¼µé¿¡ ëÇØ ÀÌ §º°·Î Á¤·ÄÀ» ½ÃÄÑ Èé¿¡ º ¿©ÁØÙ.

Openning

Writing

Reading Closing

add file [ numberOffile==MAX ] / flag OFF

add file

close file

close fileUse Case 3

Use-CaseDiagram Class Diagram

Collaboration Diagram

Sequence Diagram

Component Diagram

StatechartDiagram

GrpFile

read( )open( )create( )fillFile( )

rep

Repository

name : char * = 0

readDoc( )readFile( )

(from Persistence)

FileMgr

fetchDoc( )sortByName( )

DocumentList

add( )delete( )

Document

name : intdocid : intnumField : int

get( )open( )close( )read( )sortFileList( )create( )fillDocument( )

fList

1

FileList

add( )delete( )

1

File

read( )

read() fill the code..

Deployment Diagram

Many kinds of diagrams, but not always very adapted to

architecture 48Copyright © KESL 2011

48

Page 25: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

25

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 49

49

Representation today

• Minimal documentation attached to pieces of an architectural nugget. No UML. No views.

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 50

50

Page 26: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

26

From 1998 to 2020

1. Semantics – definition: what is it?2. Representation – how does it look like?3. When – in the lifecycle is it done?4. Who – who’s doing it?5. Process – what is the process / method to

design a software architecture ? (any tool support?).

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 51

51

3. When does it happens

• 1990: waterfall lifecycle still prevalent

• 200: Start of the never ending debate Big Up-front Design versus Gradual emergence

• “Big design up front is dumb. Doing no design up front is even dumber.”

Dave Thomas, via Simon Brown

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 52

52

Page 27: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

27

Agile Manifesto - principle #11 (2000)

“The best architectures, requirements, and designs emerge from self-organizing teams.”

Really?

Refactoring

You need an “Architecture owner” to drive the emergence

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 53

53

Zipper model: Weaving functional and architectural bits

54Copyright © KESL 2011

54

Page 28: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

28

Actually, today….

• Once you’ve picked an architectural nugget, emergence is pretty fast:– There are ready-made, validated solutions to most issues or

architectural concerns– Narrow range of alternatives: stick with the family

• Architecture is slowly incorporated in more mature agile approaches:– SAFE, or LESS, for example

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 55

55

Recap: Software Architecture in 2020

1. Semantics – roughly understood2. Representation – Text and code, boxes and arrows, some

views and UML in rare cases3. When – Iteratively, early in the life-cycle; occasional

refactoring when no way forward4. Who – a software designer with expertise and/or authority5. Process – Steal, adapt, experiment, steal some more, adapt.

Manage impedance mismatches.

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 56

56

Page 29: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

29

A Mature Discipline?

1. Basic research2. Concept formulation3. Development and extension4. Internal enhancements and exploration5. External enhancements and exploration6. Popularization

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 57

Redwine Riddle 1985Shaw 2001Shaw Clements 2006Clements Shaw 2009

57

Mature Discipline?

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 58

1990 2000 2010 2020

Basic research

Concept formulation

Development & Extensions

Internal enhancements

External enhancements & exploration

Popularization

58

Page 30: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

30

A mature discipline?

In 2020:• Body of knowledge (books, etc)• The landscape has changed• Less general conferences, more specialized ones

– Saturn, O’Reilly, CompArch + WICSA– Architecture and XYZ

• where XYZ = DevOps, MicroServices, BlockChain, Tech Debt, HealthCare, Security, IoT, Social aspect, Industry 4.0, …

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 59

59

Mind the gap ?

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 60

1990 2000 2010 2020

Basic research

Concept formulation

Development & Extensions

Internal enhancements

External enhancements & exploration

Popularization

60

Page 31: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

31

A mature discipline?

External enhancements and exploration• Driven by

– Open source– New technologies– Speed

• Left behind much of the earlier progress• Discontinuity, Gap

– Left behind: definitions, standards, methods, representation

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 61

61

A mature discipline?Popularization• We have not done such a great job at popularization (hence the gap)• How to guides at O’Reilly

– The first book ever on software architecture was just published in 2020 (no kidding).• Diversity of approaches (which is good)

– More than one definition– More than one representation– More than one method

• Some standards

“Everything has been said before, but since nobody listens, everything must be said again.” André Gide 1891

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 62

62

Page 32: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

32

Where do we go from here?• External enhancement and exploration• Popularization

• On Software architecture:– Few key individuals– Develop their own ideas– Become star speakers at conferences– Write blogs and books

• On architectural nuggets:– Few key companies or groups of individuals– Develop their architectural solution– Create a community or ecosystem around it– Speak at more specialized conferences– And How-to books are published at O’Reilly

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 63

63

Where do we go from here?

• Internal enhancements and exploration

• Research on software architecture– Validate or invalidate some of the new ideas– Software Architecture & something

• Technology, domain, concern

– “Under the lamppost”– Constrained by the publishing game and the size

of PhD chunkJun. 2, 2020 Copyright © 2020 by P.Kruchten 64

64

Page 33: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

33

Topics needing more research

• Economic aspects– Value & cost– Technical debt (as an angle on this) hint, hint … =>

• Social aspects– Role, leadership, communication– Open-source development dynamics

• Decision making process, and cognitive biases• Representation & Tool support• Tactics

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 65

65

“Mommy, where do the architectural nuggets come from?”

• Who, How, Why,….

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 66

66

Page 34: Software Architecture: Perspectives on a maturing discipline · 2020. 6. 2. · Software architecture today •Architecture as a common understanding of trajectory and boundaries.

Software Architecture, SEI AwardPh. Kruchten

June 2, 2020

34

Thank you….

… Linda, James, the SEI, and all of our colleagues around the world

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 67

67

People to thank

M. Shaw, D. Garlan, D. Perry, A. Wolf, G. Booch, M. Fowler, I. Gorton, R. Malan & D. Bredemeyer, E. Rechtin & M. Maier,

R. Kazman, P. Clements, L. Bass, C. Hofmeister, H. Obbink, H. van Vliet, P. Lago, J. Bosch, F. Buschmann, M. Stal, C. Larman, A. Tang,

E. Woods, E. Poort, G. Hohpe, R. Hilliard, U. Olson, M. Klein, J. Klein, L. Northrop, R. Martin, M. Feathers, J. Coplien, C. Szyperski,

R. Nord, I. Ozkaya, The Siemens & Philips & ABB folks, W. Kozaczynski, R. Wirfs-Brock, D. Sotirovski, D. de Koning,

B. Hamilton, J. Barnes, N. Kruchten, and many more

Jun. 2, 2020 Copyright © 2020 by P.Kruchten 68

68