THÈSE/UNIVERSITÉDEBRETAGNESUD présentéepar UFRSciencesetSciencesdel’Ingénieur souslesceaudel’UniversitéEuropéennedeBretagne Minh Tu TON THAT Pourobtenirlegradede: DOCTEURDEL’UNIVERSITÉDEBRETAGNESUD IRISA Mention:STIC ÉcoleDoctoraleSICMA Preserving Architectural Decisions Thèsesoutenuele30Octobre2014, devantlacommissiond’examencomposéede: M.Jean-MarcJézéquel through Architectural Patterns Professor,IRISA,UniversitédeRennes1/President M.DannyWeyns Professor,LinnaeusUniversity/Reviewer M.KhalilDrira Professor,LASS,Toulouse/Reviewer M.Jean-MarcJézéquel Professor,IRISA,UniversitédeRennes1/Examiner M.FlavioOquendo Professor,IRISA,UniversitédeBretagneSud,France/Advisor M.SalahSadou AssistantProfessor,IRISA,UniversitédeBretagneSud,France/Advisor Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Acknowledgements I thank my supervisor Assoc. Prof. Dr. Salah Sadou for an exceptional supervision and guidance of my Ph.D. project. Thank you for all the patience and care you gave me since the firstdayIcametoVannes. I thank my supervisor Prof. Dr. Flavio Oquendo for you kindness and inspiration. Thank youforyourencouragementandsupportivediscussionsdespitebusyschedules. Thankyoufor allthesupportduringthesethreeyears. I thank my colleagues at the ArchWare team at the University of South Brittany for nu- merous helpful discussions. I also thank all the people I met and had discussions with during conferencesandworkshops. IthasbeenapleasuretobepartofIRISA-UBSthelastthreeyears. Ienjoyedplentyoftalks inavarietyofsubjectsduringlunchtimeandhangoutswithotherPhDstudents. Inparticular, Ilovedtogettoknowyou,SalmaandAbdel. Youhavebeensuchgoodfriends,alwayscaring andsupportive. Last but not least, I thank my darling Khanh Ha and my family for supporting me during this long journey. I thank you for your unconditional love and sacrifice you made for me. I wouldhavenotbeenabletogothisfarwithoutyou. Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Contents TableofContents i ListofFigures vii ListofTables ix 1 Introduction 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problemstatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Aimofthethesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Dissertationplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Stateoftheart 5 2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 ArchitecturalDecision . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 ADabouttheapplicationofpattern . . . . . . . . . . . . . . . . . . . 6 2.2 ADdocumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Documentationofpattern-relatedAD . . . . . . . . . . . . . . . . . . 8 2.2.2 Checkingofpattern-relatedAD . . . . . . . . . . . . . . . . . . . . . 9 2.3 Architecturalpatternmodellinglanguages . . . . . . . . . . . . . . . . . . . . 14 2.4 Patterncomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Limitationsofexistingworks . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.1 TheproblemofStADmaintenanceandchecking . . . . . . . . . . . . 18 2.5.2 Theproblemofpatterncomposition . . . . . . . . . . . . . . . . . . . 22 2.6 Summaryanddiscussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3 COMLAN-COMposition-centeredpatterndescriptionLANguage 27 3.1 ProcessOverview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 TheCOMLANmeta-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.1 Exampleofpatterndefinition. . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Patternrefinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3.1 Stringingoperatortransformation . . . . . . . . . . . . . . . . . . . . 34 3.3.2 Overlappingoperatortransformation . . . . . . . . . . . . . . . . . . . 35 3.3.3 Nestedpatterntransformation . . . . . . . . . . . . . . . . . . . . . . 37 3.3.4 Supportoftraceabilityandreconstructability . . . . . . . . . . . . . . 37 3.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 ii Contents 4 Pattern-based approach for documenting the solution of structural architectural decision 41 4.1 GeneralApproach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.1.1 Patterndefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.2 StADcreation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.3 StADverification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2 Patterndefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.1 Generalpatternmeta-model . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.2 ArchitecturalPatternSpecification . . . . . . . . . . . . . . . . . . . . 46 4.3 UseofStAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 AssociatingaPatterntoanArchitecturalModel . . . . . . . . . . . . . 47 4.3.2 FilteringStADviews . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.3 StADChecking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5 Implementation 57 5.1 COMLANtool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.1 Usecases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.2 COMLANarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.2 ADManagertool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2.1 Usecases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2.2 ADManagerarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6 Empiricalevaluation 65 6.1 Empiricalevaluationforpatterncompositionapproach . . . . . . . . . . . . . 66 6.1.1 Experimentalsetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.1.2 Traceability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.1.3 Reconstructability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.1.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.1.5 Threatstovalidity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.2 EmpiricalevaluationforStADdocumentationapproach . . . . . . . . . . . . . 72 6.2.1 Applicationofpatterndefinitionlanguage . . . . . . . . . . . . . . . . 72 6.2.2 StADdocumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7 Conclusion 85 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 Contents iii Bibliography 91 Appendices 93 AppendixA Architecturalpatterncompositioncatalogue 93 A.1 EnabledCycleComponent[26,2,9] . . . . . . . . . . . . . . . . . . . . . . . 93 A.2 ForbiddenCycleComponent[2] . . . . . . . . . . . . . . . . . . . . . . . . . 93 A.3 Shield[53] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 A.4 Layers[2,9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 A.4.1 BasicLayer[2,9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 A.4.2 By-passedLayers[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 A.4.3 Notby-passedLayers[2,9] . . . . . . . . . . . . . . . . . . . . . . . 95 A.4.4 Client-ServerLayers[2] . . . . . . . . . . . . . . . . . . . . . . . . . 96 A.4.5 FilteredLayers[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 A.5 PipesandFilters[2,9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 A.5.1 BasicPipesandFilters[2][3] . . . . . . . . . . . . . . . . . . . . . . . 98 A.5.2 By-passedPipesandFilters[2]. . . . . . . . . . . . . . . . . . . . . . 98 A.5.3 Notby-passedPipesandFilters(orPipeline)[2,9] . . . . . . . . . . . 99 A.5.4 Internallylayer-structuredPipesandFilters[2] . . . . . . . . . . . . . 99 A.5.5 DatasharingPipesandFilters[2] . . . . . . . . . . . . . . . . . . . . 99 A.6 Sharedrepository[2,9,11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 A.6.1 BasicSharedRepository[2,9,11] . . . . . . . . . . . . . . . . . . . . 100 A.6.2 InternallyLayerstructuredSharedrepository[2] . . . . . . . . . . . . 100 A.7 Microkernel[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 A.7.1 BasicMicrokernel[2] . . . . . . . . . . . . . . . . . . . . . . . . . . 101 A.7.2 BrokerbetweenClientandExternalServer[2] . . . . . . . . . . . . . 102 A.8 PAC[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 A.9 IndirectionLayer[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 A.10 Client-Server[2,9,11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 A.10.1 BasicClient-Server[2,9,11] . . . . . . . . . . . . . . . . . . . . . . 103 A.10.2 Client-ServerwithBroker[2] . . . . . . . . . . . . . . . . . . . . . . 104 A.10.3 Client-ServerthroughMicrokernel[2] . . . . . . . . . . . . . . . . . . 104 A.11 MVC[2]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.12 Proxy[9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 A.13 Broker[2,9]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.14 Façade[53,11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.15 LegacyWrapper[11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.16 PipesandFilters+Repository[11] . . . . . . . . . . . . . . . . . . . . . . . . 108 AppendixB FormalizedSOApattern 111 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014 iv Contents AppendixC FormalizedCBApattern 115 AppendixD Listofarchitecturalmodels 117 AppendixE UndetectedcasesofStADviolations 119 Preserving Architectural Decisions through Architectural Patterns Minh Tu Ton That 2014
Description: