founda’ons of soware engineeringckaestne/15313/2017/... · • a decision is a step in the...
TRANSCRIPT
![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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042215/5ebc2a84136394336502cf1e/html5/thumbnails/69.jpg)
69Source:BCK13