Table Of ContentY
L
F
M
A
E
T
Team-Fly®
Large-Scale
Software Architecture
A Practical Guide using UML
Jeff Garland
CrystalClear Software Inc.
Richard Anthony
Object Computing Inc.
Large-Scale
Software Architecture
Large-Scale
Software Architecture
A Practical Guide using UML
Jeff Garland
CrystalClear Software Inc.
Richard Anthony
Object Computing Inc.
Copyright#2003byJohnWiley&SonsLtd,TheAtrium,SouthernGate,Chichester,
WestSussexPO198SQ,England
Telephone(+44)1243779777
Email(forordersandcustomerserviceenquiries):cs-books@wiley.co.uk
VisitourHomePageonwww.wileyeurope.comorwww.wiley.com
AllRightsReserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystemortransmittedin
anyformorbyanymeans,electronic,mechanical,photocopying,recording,scanningorotherwise,exceptunderthe
termsoftheCopyright,DesignsandPatentsAct1988orunderthetermsofalicenceissuedbytheCopyright
LicensingAgencyLtd,90TottenhamCourtRoad,LondonW1T4LP,UK,withoutthepermissioninwritingofthe
Publisher,withtheexceptionofanymaterialsuppliedspecificallyforthepurposeofbeingenteredandexecutedona
computersystem,forexclusiveusebythepurchaserofthepublication.RequeststothePublishershouldbe
addressedtothePermissionsDepartment,JohnWiley&SonsLtd,TheAtrium,SouthernGate,Chichester,West
SussexPO198SQ,England,oremailedtopermreq@wiley.co.uk,orfaxedto(+44)1243770571.
NeithertheauthorsnorJohnWiley&Sons,Ltdacceptanyresponsibilityorliabilityforlossordamageoccasioned
toanypersonorpropertythroughusingthematerial,instructions,methodsorideascontainedherein,oractingor
frerainingfromactingasaresultofsuchuse.Theauthorsandpublisherexpresslydisclaimallimpliedwarranties,
includingmerchantabilityorfitnessforanyparticularpurpose.Therewillbenodutyontheauthorsorpublisherto
correctanyerrorsordefectsinthesoftware.
Designationsusedbycompaniestodistinguishtheirproductsareoftenclaimedastrademarks.Inallinstanceswhere
JohnWiley&Sons,Ltdisawareofaclaim,theproductnamesappearincapitalorallcapitalletters.Readers,
however,shouldcontacttheappropriatecompaniesformorecompleteinformationregardingtrademarksand
registration.
Thispublicationisdesignedtoprovideaccurateandauthoritativeinformationinregardtothesubjectmatter
covered.ItissoldontheunderstandingthatthePublisherisnotengagedinrenderingprofessionalservices.If
professionaladviceorotherexpertassistanceisrequired,theservicesofacompetentprofessionalshouldbesought.
OtherWileyEditorialOffices
JohnWiley&SonsInc.,111RiverStreet,Hoboken,NJ07030,USA
Jossey-Bass,989MarketStreet,SanFrancisco,CA94103-1741,USA
Wiley-VCHVerlagGmbH,Boschstr.12,D-69469Weinheim,Germany
JohnWiley&SonsAustraliaLtd,33ParkRoad,Milton,Queensland4064,Australia
JohnWiley&Sons(Asia)PteLtd,2ClementiLoop#02-01,JinXingDistripark,Singapore129809
JohnWiley&SonsCanadaLtd,22WorcesterRoad,Etobicoke,Ontario,CanadaM9W1L1
LibraryofCongressCataloging-in-PublicationData
(tofollow)
BritishLibraryCataloguinginPublicationData
AcataloguerecordforthisbookisavailablefromtheBritishLibrary
ISBN0470848499
Typesetin101/13ptSabonbyKeytecTypesetting,Bridport,Dorset
2
PrintedandboundinGreatBritainbyBiddlesLtd,GuildfordandKingsLynn
Thisbookisprintedonacid-freepaperresponsiblymanufacturedfromsustainableforestry
inwhichatleasttwotreesareplantedforeachoneusedforpaperproduction.
Contents
Preface xi
Acknowledgments xvii
1 Introduction 1
1.1 WhatisSoftwareArchitecture 1
1.1.1 Whatsoftwarearchitectureisnot 4
1.1.2 Attributesofsoftwarearchitecture 5
1.1.3 Definitionsofotherkeyarchitecture-relatedterms 7
1.1.4 Othertypesofarchitectures 8
1.2 WhyArchitect? 10
1.3 ArchitecturalViewpointSummary 12
1.4 OtherSoftwareArchitectureApproaches 16
1.4.1 The4+1Views 16
1.4.2 RM-ODPviewpoints 17
1.4.3 Bassarchitecturalstructures 19
1.4.4 Hofmeistersoftwarearchitectureviews 19
1.5 RecommendedReading 19
2 Roles of theSoftware Architect 21
2.1 Relationshiptootherkeyrolesindevelopmentorganization 25
Role:projectmanagement 25
Role:developmentteammanagers 25
Role:systemarchitect/chiefengineer 26
Role:chiefsoftwareengineer 26
Role:hardwarearchitect 27
Role:networkarchitect 27
vi
Contents
Role:technicalleadsofeachrelease 28
Role:dataarchitect 28
Role:systemsengineeringleads 28
Role:softwaresystemsengineeringlead 29
2.2 SkillsandBackgroundfortheArchitect 29
2.3 InjectingArchitectureExperience 31
2.4 StructuringtheArchitectureTeam 32
2.5 TrapsandPitfallsAssociatedwiththeRoleofSoftwareArchitect 33
2.5.1 Cleardefinitionofleadership 34
2.5.2 Reportingstructureforthesoftwarearchitect 34
2.5.3 Geographicallocationofsoftwarearchitectandtechnicalleads 35
2.5.4 Architectureteamsizeandcomposition 36
2.5.5 Softwarearchitectlifecycleparticipation 36
2.6 RecommendedReading 37
3 Software Architectureand theDevelopment
Process 39
3.1 OverviewofIterativeDevelopment 39
3.1.1 Overallprocessphases 40
3.1.2 Lifecyclestages 41
3.1.3 Architectureandagileprocesses 43
3.1.4 Startearly,refineconstantly 47
3.2 RequirementsManagement 48
3.2.1 Usecasesandrequirementsengineering 48
3.2.2 Additionalrequirementsthatimpactarchitecture 49
3.2.3 Requirementstracing 49
3.3 ManagementoftheTechnologyRoadmap 50
3.3.1 Externalsoftwareproducts 50
3.3.2 Softwaretechnologymanagementtrapsandpitfalls 53
3.3.3 Organizationaltechnologyroadmap 54
3.4 EffectiveTechnicalMeetings 55
3.4.1 Informaltechnicalmeetings 55
3.4.2 Peerreviewsandinspections 56
3.4.3 Designreviews 57
3.4.4 Designcommunicationmeetings 57
3.4.5 Managementmeetings 57
3.4.6 Vendorpresentations 58
3.4.7 Distributedtechnicalmeetings 58
3.5 TrapsandPitfallsoftheSoftwareArchitectureProcessActivities 59
Theout-of-toucharchitect 59
Analysisparalysis 60
Designforreuse 60
Usecases 60
Schedule 60
3.6 Computer-AidedSoftwareEngineering(CASE)Tools 61
3.7 RecommendedReading 62
vii
Contents
4 ExampleSystem Overview 63
4.1 SystemOverview 64
4.2 OverviewofSystemInterfaces 64
4.3 Constraints 67
4.4 MajorOperationalRequirementsandSoftwareRequirements 67
5 UML Quick Tour 69
5.1 UMLDiagramSummary 69
5.2 GeneralDiagrammingConventions 72
5.2.1 GeneralUMLfeatures:stereotypes,taggedvalues,multi-instance 73
5.2.2 Viewlabels 74
5.3 TheDiagrams 75
5.3.1 Componentinstancediagrams 75
5.3.2 Classandsubsystemdiagrams 76
5.3.3 Interaction(sequenceandcollaboration)diagrams 77
5.3.4 Deploymentdiagrams 79
5.3.5 Statechartdiagrams 80
5.3.6 Activitydiagrams 81
5.4 ManagingComplexity 81
5.4.1 UseCasefocusedmodeling 82
5.4.2 Elementfocusedmodeling 82
5.4.3 Levelofdetail 83
5.4.4 Controllingthenumberofmodels 83
5.4.5 UseSupplementalTexturalInformation 85
5.5 RecommendedReading 85
6 System Contextand Domain Analysis 87
6.1 ConceptualDiagrams 87
6.2 ContextViewpoint 89
6.3 DomainAnalysisTechniques 94
6.3.1 Aformalanalysistechnique 95
6.3.2 Othertechniquesforfindingdomainentities 98
6.3.3 Analysisshortcuts 100
6.4 AnalysisViewpoints 101
6.4.1 AnalysisInteractionViewpoint 101
6.4.2 AnalysisFocusedViewpoint 103
6.4.3 AnalysisOverallViewpoint 105
6.4.4 Candidatesubsystemidentification 107
6.5 RecommendedReading 108
7 ComponentDesign and Modeling 111
7.1 Overview 111
7.1.1 Component-baseddevelopment 111
7.1.2 Terminology 112
7.1.3 Communicationandinterfaces 115
7.1.4 Findingcomponents 115
7.1.5 Qualitiesofcomponentdesign 116