Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the...

69
Founda’ons of So,ware Engineering Lecture 8: Architectural Pa0erns, Tac5cs, and Evalua5on Claire Le Goues 15-313 SoAware Engineering 1

Transcript of Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the...

Page 1: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Founda'onsofSo,wareEngineering

Lecture8:ArchitecturalPa0erns,Tac5cs,andEvalua5onClaireLeGoues

15-313SoAwareEngineering1

Page 2: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

LearningGoals

•  Understandkeypartsofarchitecturalprocess•  Usearchitecturalstylesandtac5csfordesigndecisions•  Makejus5fiedarchitecturaldecisionsfornewsystemsandwithinexis5ngsystems•  Reviewaproposedarchitecture

15-313SoAwareEngineering2

Page 3: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Traceability-Defini'on

15-313SoAwareEngineering3

"Theabilitytointerrelateanyuniquelyiden5fiablesoAwareengineeringar5facttoanyother,maintainrequiredlinksover5me,andusetheresul5ngnetworktoanswerques5onsofboththesoAwareproductandit'sdevelopmentprocess"–CoEST

Page 4: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

TraceabilityinRequirements?

15-313SoAwareEngineering4

Page 5: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Traceability

15-313SoAwareEngineering5

QualityGoal:HighAvailability

Req.:Shouldrunonredundantservers

Architecture:Faultrecoverywithvo5ng

Faultpreven5on:Regularrestarts

OODesign/Impl.:Vo5ngmechanism,

socketcommunica5on

Test:Killingrandomserversintestsetup

Page 6: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

TraceabilityCompliance

•  Traceabilityrequiredinsomedomains(avionics)– WhydoesXpieceofcodeexist?

•  "Enableverifica5onoftheabsenceofundocumentedsourcecodeandverifica5onofthecompleteimplementa5onofthelow-levelrequirements"

•  Linktospecifica5onsandtestprocedures

15-313SoAwareEngineering6

Page 7: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

TraceabilityandArchitecture•  Architecturelinksqualitya0ributestothehigh-levelandlow-levelsystemdesign

•  Ensuresqualitya0ributesoAennotevenvisibleincode

•  Cost,effort,disciplineneededtocreateandmaintain.– OAenincomplete,incorrect,outdated

•  Developershateit,andoAendonotunderstandtheneed.–  "Unnecessaryevil"

15-313SoAwareEngineering7

Page 8: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

CaseStudy:TheGoogleFileSystem

15-313SoAwareEngineering8

Page 9: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering9

Ghemawat,Sanjay,HowardGobioff,andShun-TakLeung."TheGooglefilesystem."ACMSIGOPSopera/ngsystemsreview.Vol.37.No.5.ACM,2003.

Page 10: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Assump'ons•  Thesystemisbuiltfrommanyinexpensivecommodity

componentsthatoAenfail.•  Thesystemstoresamodestnumberoflargefiles.•  Theworkloadsprimarilyconsistoftwokindsofreads:large

streamingreadsandsmallrandomreads.•  Theworkloadsalsohavemanylarge,sequen5alwritesthat

appenddatatofiles.•  Thesystemmustefficientlyimplementwell-defined

seman5csformul5pleclientsthatconcurrentlyappendtothesamefile.

•  Highsustainedbandwidthismoreimportantthanlowlatency.

15-313SoAwareEngineering10

Ghemawat,Sanjay,HowardGobioff,andShun-TakLeung."TheGooglefilesystem."ACMSIGOPSopera/ngsystemsreview.Vol.37.No.5.ACM,2003.

Page 11: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering11

Ghemawat,Sanjay,HowardGobioff,andShun-TakLeung."TheGooglefilesystem."ACMSIGOPSopera/ngsystemsreview.Vol.37.No.5.ACM,2003.

Quali'es:ScalabilityReliabilityPerformanceCost

Page 12: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Ques'ons

1.  Whatarethemostimportantqualitya0ributesinthedesign?

2.  Howarethosequalitya0ributesrealizedinthedesign?

15-313SoAwareEngineering12

Page 13: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering13

Ghemawat,Sanjay,HowardGobioff,andShun-TakLeung."TheGooglefilesystem."ACMSIGOPSopera/ngsystemsreview.Vol.37.No.5.ACM,2003.

Quali'es:ScalabilityReliabilityPerformanceCost

Page 14: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Exercise

FortheGoogleFileSystem,createaphysicalarchitectureviewthataddressesarelevantqualitya0ribute

15-313SoAwareEngineering14

Page 15: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering15

Sofarincourse

Requirements

Architecture

Implementa5on

Page 16: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Levelsofabstrac'on•  Requirements–  high-level“what”needstobedone

•  Architecture(High-leveldesign)–  high-level“how”,mid-level“what”

•  OO-Design(Low-leveldesign,e.g.designpa0erns)– mid-level“how”,low-level“what”

•  Code–  low-level“how”

16 15-313SoAwareEngineering

Page 17: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Whatisarchitecture?

15-313SoAwareEngineering17

Architectureasstructuresandrela5ons(theactualsystem)

Architectureasdocumenta5on(representa5onsofthesystem)

Architectureasprocess(ac5vi5esaroundtheothertwo)

Page 18: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

ArchitecturalStylesandTac'cs

15-313SoAwareEngineering18

Page 19: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturalstyle(paMern)

•  Broadprincipleofsystemorganiza5on•  Describescomputa5onalmodel– E.g.,pipeandfilter,call-return,publish-subscribe,layered,services

•  Relatedtooneofcommonviewtypes– Sta5c,dynamic,physical

15-313SoAwareEngineering19

Page 20: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

ExampleArchitecturalPaMerns•  Systemorganiza5on– Repositorymodel– Client-servermodel–  Layeredmodel

•  Modulardecomposi5on– Objectoriented–  Func5on-orientedpipelining

•  Controlstyles– Centralizedcontrol– Event-drivensystems

15-313SoAwareEngineering20

Page 21: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturalstyle(paMern)

•  Broadprincipleofsystemorganiza5on•  Seereading

15-313SoAwareEngineering21

Source:codeproject.org

Page 22: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturalstyle(paMern)

15-313SoAwareEngineering22

Source:codeproject.org

Page 23: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Client-serverpaMern

•  Separa5onofclientsandservers– Serversprovideservices;knownand“stable”– Clientsrequestservices;comeandgo

•  Varie5es:synchronous/asynchronous•  Impactonsecurity,performance,scalability•  Examples:TCP,HTTP,X11

15-313SoAwareEngineering23

Page 24: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering24

Client

Server

Database

Wheretovalidateuserinput?

Example:YelpApp

Page 25: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Client-serverstyle

15-313SoAwareEngineering25

Source:wikimediacommons

Page 26: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Layeredsystem

15-313SoAwareEngineering26

Source:eclipse.org

Page 27: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Tieredarchitecture

15-313SoAwareEngineering27

Page 28: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

ArchitecturalStyle?

15-313SoAwareEngineering28

Ghemawat,Sanjay,HowardGobioff,andShun-TakLeung."TheGooglefilesystem."ACMSIGOPSopera/ngsystemsreview.Vol.37.No.5.ACM,2003.

Page 29: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Tac'cs•  Architecturaltechniquestoachievequali5es– More5edtospecificcontextandquality

•  Smallerscopethanarchitecturalpa0erns–  Problemsolvedbypa0erns:“HowdoIstructuremy(sub)system?”

–  Problemsolvedbytac5cs:“HowdoIgetbe0eratqualityX?”

•  Collec5onofcommonstrategiesandknownsolu5ons– ResembleOOdesignpa0erns

15-313SoAwareEngineering29

Page 30: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Manytac'csoutthere!

15-313SoAwareEngineering30

Page 31: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

ExampleTac'cDescrip'on:Record/playback•  Record/playbackreferstobothcapturinginforma5oncrossinganinterfaceandusingitasinputintothetestharness.Theinforma5oncrossinganinterfaceduringnormalopera5onissavedinsomerepositoryandrepresentsoutputfromonecomponentandinputtoanother.Recordingthisinforma5onallowstestinputforoneofthecomponentstobegeneratedandtestoutputforlatercomparisontobesaved.

15-313SoAwareEngineering31

Page 32: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

ExampleTac'cDescrip'on:Built-inmonitors•  Thecomponentcanmaintainstate,performanceload,capacity,security,orotherinforma5onaccessiblethroughaninterface.Thisinterfacecanbeapermanentinterfaceofthecomponentoritcanbeintroducedtemporarilyviaaninstrumenta5ontechniquesuchasaspect-orientedprogrammingorpreprocessormacros.Acommontechniqueistorecordeventswhenmonitoringstateshavebeenac5vated.Monitoringstatescanactuallyincreasethetes5ngeffortsincetestsmayhavetoberepeatedwiththemonitoringturnedoff.Increasedvisibilityintotheac5vi5esofthecomponentusuallymorethanoutweighthecostoftheaddi5onaltes5ng.

15-313SoAwareEngineering32

Page 33: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering33

Page 34: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering34

Page 35: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering35

Page 36: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering36

Page 37: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering37

Page 38: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering38

Page 39: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering39

Secondandmoredetailedthirdedi5onavailableasebookthroughCMUlibrary.

Manytac5csdescribedinChapter5Briefhigh-leveldescrip5ons(about1paragraphpertac5c)

Page 40: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

ArchitectureDesignProcess

15-313SoAwareEngineering40

Page 41: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Whatisarchitecture?

15-313SoAwareEngineering41

Architectureasstructuresandrela5ons(theactualsystem)

Architectureasdocumenta5on(representa5onsofthesystem)

Architectureasprocess(ac5vi5esaroundtheothertwo)

Page 42: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturedesignprocess•  Choosepartorwholesystemtofocuson•  Understandrelevantrequirements•  Chooseanota5on– Typeofview,vocabularyofelements

•  Createadesign– Pa0erns,tac5cs

•  Evaluate•  Govsno-go– Issuesfeedbackintoprocess

15-313SoAwareEngineering42

Page 43: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturedesignprocess

43

Choosescope Understandrelevantrequirements

Chooseanota5on

Create/refineadesignEvaluate

Source:ACDM,ADD

“Go”

Page 44: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturaldecisions

•  Heartofarchitecture–decidingwhichpathtogo•  Involvetradeoffanalysis•  Represen5ngthealterna5vesclearly–halfofwork

15-313SoAwareEngineering44

Page 45: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturaldecisions

•  SoAwarearchitectureisdesign

•  Adecisionisastepintheprocess– Recordra'onale!(notjustdiagrams)– Tradeoffs– Backtracking

15-313SoAwareEngineering45

“Engineeringdesignis[…]adecision-makingprocess(oCenitera/ve),inwhichthebasicsciences,mathema/cs,andengineeringsciencesareappliedtoconvertresourcesop/mallytomeetastatedobjec/ve”–ABET

Page 46: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturedesignprocess

46

Choosescope Understandrelevantrequirements

Chooseanota5on

Create/refineadesignEvaluate

Source:ACDM,ADD

Page 47: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturaldecisions

•  SoAwarearchitectureisdesign

•  Adecisionisastepintheprocess– Recordra'onale!(notjustdiagrams)– Tradeoffs– Backtracking

15-313SoAwareEngineering47

“Engineeringdesignis[…]adecision-makingprocess(oCenitera/ve),inwhichthebasicsciences,mathema/cs,andengineeringsciencesareappliedtoconvertresourcesop/mallytomeetastatedobjec/ve”–ABET

Page 48: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architectureevalua'on•  Goal:doesthearchitecturesa5sfyrequirements?

•  ATAM–ArchitectureTradeoffAnalysisMethod– Presentrequirements– Presentarchitecture– Analyzearchitecture– Presentresults–risksandnon-risks

15-313SoAwareEngineering48

Page 49: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering49

Source:sei.cmu.edu

Page 50: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

U'litytree

15-313SoAwareEngineering50

Source:arnon.me

Page 51: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Athena–codereviewsystem

15-313SoAwareEngineering51

Source:JansenandBosch2005

Page 52: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering52

Source:JansenandBosch2005

Page 53: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturedesignprocess

53

Choosescope Understandrelevantrequirements

Chooseanota5on

Create/refineadesignEvaluate

Source:ACDM,ADD

Page 54: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Challengesofarchitec'ng

•  Describethesystemthatisnotbuiltyet•  Domainknowledgeisessen5al•  Hugespaceofop5ons•  Heavilyreliantonjudgment

15-313SoAwareEngineering54

Page 55: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Howmucharchitecture?

•  Designanddocumentwhenneeded,basedonrisk• When:– Beginning– Whenevercircumstanceschange

•  Agile

15-313SoAwareEngineering55

Page 56: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Howmucharchitecture?

•  YAGNI•  Risk• Whentostart:– Beforeimplementa5on– Circumstanceschange

• Whentostop:– Well-defined,requirementsaddressed,passesevalua5on

15-313SoAwareEngineering56

Page 57: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering57

Source:BoehmandTurner2003

Page 58: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering58

Studentapplica'onsystem

Source:BoehmandTurner2003

Page 59: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

15-313SoAwareEngineering59

Mannedspacemissionso,ware

Source:BoehmandTurner2003

Page 60: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Challengesofarchitec'ng

•  Describethesystemthatisnotbuiltyet•  Domainknowledgeisessen5al•  Hugespaceofop5ons•  Heavilyreliantonjudgment

15-313SoAwareEngineering60

Page 61: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Summary

15-313SoAwareEngineering61

Architectureasstructuresandrela5ons•  Pa0erns•  Tac5cs

Architectureasdocumenta5on•  Views•  Ra5onale

Architectureasprocess•  Decisions•  Evalua5on•  Reconstruc5on•  Agile

Page 62: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

References•  Bass,Clements,Kazman.SoAwareArchitectureinPrac5ce,2013.

•  La0anze.Architec5ngSoAwareIntensiveSystems:aPrac55oner’sGuide,2009.

•  Clements,Bachmann,Bass,Garlan,Ivers,Li0le,Merson,Nord,Stafford.Documen5ngSoAwareArchitectures:ViewsandBeyond,2010.

•  BoehmandTurner.BalancingAgilityandDiscipline:AGuideforthePerplexed,2003.

•  JansenandBosch.SoAwareArchitectureasaSetofArchitecturalDesignDecisions,WICSA2005.

15-313SoAwareEngineering62

Page 63: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

FurtherReadings•  Bass,Clements,Kazman.SoAwareArchitectureinPrac5ce,2013.

•  La0anze.Architec5ngSoAwareIntensiveSystems:aPrac55oner’sGuide,2009.

•  Clements,Bachmann,Bass,Garlan,Ivers,Li0le,Merson,Nord,Stafford.Documen5ngSoAwareArchitectures:ViewsandBeyond,2010.

•  BoehmandTurner.BalancingAgilityandDiscipline:AGuideforthePerplexed,2003.

•  JansenandBosch.SoAwareArchitectureasaSetofArchitecturalDesignDecisions,WICSA2005.

15-313SoAwareEngineering63

Page 64: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Levelsofabstrac'on•  Requirements–  high-level“what”needstobedone

•  Architecture(High-leveldesign)–  high-level“how”,mid-level“what”

•  OO-Design(Low-leveldesign,e.g.designpa0erns)– mid-level“how”,low-level“what”

•  Code–  low-level“how”

64 15-313SoAwareEngineering

Page 65: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturereconstruc'on

•  Goal:describearchitectureofanexis5ngsystemgivenitssourcecode•  Difficulty:levelofabstrac5oninprogramminglanguageistoolow•  Process:– Itera5ve– Interpre5ve– Interac5ve

15-313SoAwareEngineering65

Page 66: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Reconstruc'onsteps

•  Extractrawviews– Toolassistance,sta5c&dynamicanalysis

•  Constructadatabase– Aggregatelargevolumesofdata

•  Viewfusion– Synthesizeahypothe5calview

•  Checkforviola5ons15-313SoAwareEngineering66

Page 67: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Architecturereconstruc'on

15-313SoAwareEngineering67

•  Itera5ve•  Interpre5ve•  Interac5ve

Page 68: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

Reconstruc'onsteps

•  Extractrawviews– Toolassistance,sta5c&dynamicanalysis

•  Constructadatabase– Aggregatelargevolumesofdata

•  Viewfusion– Synthesizeahypothe5calview

•  Checkforviola5ons15-313SoAwareEngineering68

Page 69: Founda’ons of Soware Engineeringckaestne/15313/2017/... · • A decision is a step in the process – Record ra’onale! (not just diagrams) – Tradeoffs – Backtracking 45

69Source:BCK13