Model-Driven Evolution of Software Architectures - Software and ...
Model-Driven Evolution of Software Architectures - Software and ...
Model-Driven Evolution of Software Architectures - Software and ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Model</strong>-<strong>Driven</strong><strong>Evolution</strong><br />
<strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong>
<strong>Model</strong>-<strong>Driven</strong><strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong><br />
Proefschrift<br />
terverkrijgingv<strong>and</strong>egraadv<strong>and</strong>octor<br />
a<strong>and</strong>eTechnischeUniversiteitDelft,<br />
opgezagv<strong>and</strong>eRectorMagnificuspr<strong>of</strong>.dr.ir.J.T.Fokkema,<br />
voorzittervanhetCollegevoorPromoties,<br />
inhetopenbaarteverdedigenopdinsdag27november2007om12:30uur<br />
door<br />
BastiaanStephanGRAAF<br />
informaticaingenieur<br />
geborenteDenHaag
Ditproefschriftisgoedgekeurddoordepromotor:<br />
Pr<strong>of</strong>.dr.A.vanDeursen<br />
Samenstellingpromotiecommissie:<br />
RectorMagnificus,voorzitter<br />
Pr<strong>of</strong>.dr.A.vanDeursen,TechnischeUniversiteitDelft,promotor<br />
Pr<strong>of</strong>.dr.ir.H.J.Sips,TechnischeUniversiteitDelft<br />
Pr<strong>of</strong>.dr.ir.A.Verbraeck,TechnischeUniversiteitDelft<br />
Pr<strong>of</strong>.dr.M.G.J.v<strong>and</strong>enBr<strong>and</strong>,TechnischeUniversiteitEindhoven<br />
Pr<strong>of</strong>.Dr.rer.nat.R.Koschke,UniversitätBremen<br />
Dr.L.Somers,OcéenTechnischeUniversiteitEindhoven<br />
Theworkinthisthesishasbeencarriedoutundertheauspices<strong>of</strong>theresearchschoolIPA(InstituteforProgrammingresearch<strong>and</strong>Algorithmics).<br />
Theresearchdescribedinthisthesiswasmadepossiblethroughsuppport<br />
<strong>of</strong>SenterNovem(Mooseproject)<strong>and</strong>NWO(Reconstructorproject).<br />
IPADissertationSeries2007-16<br />
Copyright c○2007byBasGraaf<br />
Aboutthecover:Thecovershowsafragment<strong>of</strong>JohannesVermeer:<br />
‘ViewonDelft’,Mauritshuis,TheHague(ca.1661-1664.Oiloncanvas)<br />
<strong>and</strong>apicturetakenfromthesameviewpointbyRenév<strong>and</strong>erKrogtin<br />
May2006.<br />
PrintedbyUniversalPress,Veenendaal<br />
ISBN:978-90-9022390-2
Preface<br />
Atlast!TimehascometowritetheprefacetomyPhD-thesis.Duringthe<br />
almostfive<strong>and</strong>ahalfyearsittookmetoarriveatthispoint,Istartedto<br />
comparetheprocess<strong>of</strong>doingaPhDwiththerunningexercisesIdoinbetweentw<strong>of</strong>ootballseasons.Ialwaysstartveryenthusiastic<strong>and</strong>motivated;<br />
halfwayIdoubtthatIwillevermakeit<strong>and</strong>almostregrettohavestarted;<br />
neartheendItryhardtoputinallremainingenergytomakeittothe<br />
finish;<strong>and</strong>afterwardsIfeelgood,happy,<strong>and</strong>proudaboutwhatI’vedone.<br />
LikeIfeelnow.OnebigdifferenceisthatduringmyPhD-careerIencounteredmanypeoplethathelpedmeorthatmadethewholeexercisemore<br />
pleasant.Thosepeopledeservetobeacknowledged.Well,hereitgoes.<br />
Ifcrossingthefinishlinehastobeattributedtooneperson,thanthat<br />
personhasgottobeArievanDeursen.Arie,Iamverygratefultoyoufor<br />
‘adopting’measaPhD-student.Formethebestremedytoovercomeseeminglydeadendsinmyresearchorwhenwritingarticleswasaconversation<br />
withyou.Youhavebeenatrulyinspiringteacher!Forthis<strong>and</strong>manyother<br />
reasonsitwasapleasuretoworkwithyou.<br />
IwanttothankHansToetenel<strong>and</strong>JanDietzfortalkingmeintothis<br />
excerciseinthefirstplace.IamalsogratefulforHans’supervisionduring<br />
thefirstphase<strong>of</strong>myworkasaPhD-student.<br />
Ofcoursesomebodyhastoreadtheresult<strong>of</strong>allthatwork.Forthis,my<br />
gratitudegoestothemembers<strong>of</strong>theexaminationcommittee: Pr<strong>of</strong>. H.J.<br />
Sips,Pr<strong>of</strong>.A.Verbraeck,Pr<strong>of</strong>.M.G.J.v<strong>and</strong>enBr<strong>and</strong>,Pr<strong>of</strong>.R.Koscke,<strong>and</strong><br />
Dr.L.Somers.<br />
I’vehadtheopportunitytoworkinseveralresearchprojects: Moose,<br />
Merlin,Ideals<strong>and</strong>Reconstructor. DuringalltheseprojectsIworkedtogetherwithinteresting<strong>and</strong>inspiringpeople.Thankyouallforthat!More<br />
inparticular,IwanttothankRinivanSolingenforallkinds<strong>of</strong>general<br />
adviceonhowtosucceedasaPhD-student.AlsoIwanttospeciallythank<br />
SvenWeberasaco-author<strong>of</strong>one<strong>of</strong>thepublicationsonwhichthisthesisis<br />
based.<br />
v
vi Preface<br />
Furthermore,Iwanttomentionall(former)colleagues<strong>of</strong>thes<strong>of</strong>tware<br />
engineeringdepartmentforallthenicelunches,drinks,<strong>and</strong>diners. In<br />
particularIamgratefultoHylkevanDijk<strong>and</strong>MarcoLormans.Hylkeasa<br />
co-author<strong>of</strong>twoarticlesonwhichthisthesisisbased,<strong>and</strong>foraskingthose<br />
nastyquestionsallthetime.WithMarcoIworkedtogetheralreadysince<br />
thebeginning<strong>of</strong>ourmaster-thesisprojectsevenyearsago,allthattime<br />
asroommates.Mostworkingtripshavebeenquitememorablebecause<strong>of</strong><br />
him.Thanks!<br />
Finally,IwanttothankDaanforbeingpatientenoughtocopewithme<br />
beingalmostfinishedforasuchalongtime<strong>and</strong>,puttingonholdallother<br />
plans;forbeingimpatientenoughtoapplytherightamount<strong>of</strong>pressure;<br />
<strong>and</strong>forbeingmygirl-friendalltheway.<br />
BasGraaf<br />
Delft,August2007
Contents<br />
Preface v<br />
List<strong>of</strong>Figures x<br />
Abbreviations xiii<br />
1 Introduction 1<br />
1.1 ProblemDescription:<strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong> . 4<br />
1.2 Objectives . ............................ 7<br />
1.2.1 IntegrationinPractice . ................. 7<br />
1.2.2 ProductLines . ...................... 7<br />
1.2.3 <strong>Model</strong>-<strong>Driven</strong>Engineering. ............... 8<br />
1.3 Approach .............................. 9<br />
1.4 Overview .............................. 10<br />
1.5 Origin<strong>of</strong>Chapters ........................ 13<br />
2 Background 17<br />
2.1 S<strong>of</strong>tware<strong>Evolution</strong> ........................ 17<br />
2.2 Architecture-<strong>Driven</strong>S<strong>of</strong>twareDevelopment.......... 20<br />
2.2.1 S<strong>of</strong>twareArchitecture . ................. 20<br />
2.2.2 S<strong>of</strong>twareArchitectureUsage .............. 22<br />
2.2.3 S<strong>of</strong>twareArchitectureDesign .............. 23<br />
2.2.4 S<strong>of</strong>twareArchitectureDescription . .......... 24<br />
2.2.5 S<strong>of</strong>twareArchitectureEvaluation . .......... 25<br />
2.2.6 S<strong>of</strong>twareProductLines. ................. 26<br />
2.3 <strong>Model</strong>-<strong>Driven</strong>Engineering.................... 27<br />
2.3.1 <strong>Model</strong>ling.......................... 28<br />
2.3.2 Metamodelling. ...................... 29<br />
2.3.3 <strong>Model</strong>Transformations. ................. 32<br />
2.3.4 MDE<strong>and</strong>OtherTechnologicalSpaces.......... 37<br />
vii
viii Contents<br />
2.4 <strong>Model</strong>-<strong>Driven</strong><strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong> . ..... 38<br />
3 Embedded-S<strong>of</strong>twareEngineering:TheState<strong>of</strong>thePractice 41<br />
3.1 Introduction ............................ 41<br />
3.2 Methods<strong>and</strong>Scope ........................ 42<br />
3.3 Embedded-S<strong>of</strong>twareDevelopmentContext .......... 45<br />
3.4 RequirementsEngineeringResults............... 47<br />
3.4.1 RequirementsSpecification ............... 48<br />
3.4.2 RequirementsManagement ............... 49<br />
3.5 S<strong>of</strong>twareArchitectureResults. ................. 50<br />
3.5.1 S<strong>of</strong>twareArchitectureDesign .............. 50<br />
3.5.2 S<strong>of</strong>twareArchitectureDescription . .......... 51<br />
3.5.3 S<strong>of</strong>twareArchitectureEvaluation . .......... 52<br />
3.5.4 Reuse ............................ 53<br />
3.6 Discussion . ............................ 54<br />
3.7 Outlook ............................... 55<br />
4 EvaluatinganEmbeddedS<strong>of</strong>twareReferenceArchitecture<br />
–IndustrialExperienceReport– 57<br />
4.1 Introduction ............................ 57<br />
4.2 Overview<strong>of</strong>theReferenceArchitecture ............ 59<br />
4.2.1 BusinessDrivers ..................... 59<br />
4.2.2 ReferenceArchitecture . ................. 60<br />
4.2.3 Structure.......................... 61<br />
4.2.4 Usage............................ 61<br />
4.3 EvaluationApproach . ...................... 63<br />
4.3.1 Selection<strong>of</strong>EvaluationMethod . ............ 63<br />
4.3.2 TailoringSAAM. ...................... 65<br />
4.4 ConductingtheEvaluation. ................... 67<br />
4.4.1 Preparation ........................ 67<br />
4.4.2 Scenarios.......................... 67<br />
4.4.3 Execution.......................... 68<br />
4.4.4 OverallEvaluation . ................... 70<br />
4.5 Discussion . ............................ 71<br />
4.5.1 ReferenceArchitecture . ................. 71<br />
4.5.2 DistributedSAAM ..................... 73<br />
4.6 RelatedWork............................ 75<br />
4.7 Conclusion . ............................ 76<br />
5 <strong>Model</strong>-<strong>Driven</strong>ConsistencyChecking<strong>of</strong>Behavioural<br />
Specifications 77<br />
5.1 Introduction ............................ 77<br />
5.2 RunningExample . ........................ 80
Contents ix<br />
5.3 RelatedWork............................ 82<br />
5.4 <strong>Model</strong>-<strong>Driven</strong>ConsistencyChecking .............. 83<br />
5.4.1 EnablingTechnologies . ................. 83<br />
5.4.2 Behavioural<strong>Model</strong>ling . ................. 85<br />
5.4.3 ConsistencyCheckingApproach ............ 87<br />
5.5 GeneratingStateMachines ................... 88<br />
5.5.1 InstantiatingaSource<strong>Model</strong> .............. 88<br />
5.5.2 <strong>Model</strong>Transformations. ................. 89<br />
5.6 ApplicationtoOcé. ........................ 94<br />
5.6.1 Source<strong>Model</strong>Normalisation............... 94<br />
5.6.2 Results . .......................... 95<br />
5.7 Discussion . ............................ 98<br />
5.8 Conclusions ............................ 101<br />
6 <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<strong>of</strong>Structural<br />
Specifications 103<br />
6.1 Introduction ............................ 103<br />
6.2 RunningExample . ........................ 105<br />
6.3 Approach .............................. 108<br />
6.3.1 ConformanceCheckingSystem . ............ 108<br />
6.3.2 <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking . ........ 109<br />
6.4 Viewpoints<strong>and</strong>Metamodels................... 110<br />
6.4.1 Component-<strong>and</strong>-ConnectorViews............ 111<br />
6.4.2 ModuleViews . ...................... 112<br />
6.5 Mappings<strong>and</strong><strong>Model</strong>Transformations . ............ 114<br />
6.5.1 <strong>Model</strong>Population ..................... 114<br />
6.5.2 <strong>Model</strong>Comparison . ................... 118<br />
6.5.3 <strong>Model</strong>Presentation . ................... 121<br />
6.6 Discussion . ............................ 121<br />
6.6.1 <strong>Model</strong>ware . ........................ 121<br />
6.6.2 ImprovingtheApproach ................. 123<br />
6.7 Relatedwork............................ 125<br />
6.8 Conclusions ............................ 126<br />
7 <strong>Model</strong>-drivenMigration<strong>of</strong>SupervisoryMachineControl<br />
<strong>Architectures</strong> 129<br />
7.1 Introduction ............................ 129<br />
7.2 RelatedWork............................ 132<br />
7.3 MigrationContext. ........................ 133<br />
7.3.1 SupervisoryMachineControl .............. 133<br />
7.3.2 RunningExample:AWaferScanner .......... 134<br />
7.3.3 ConcernsforSupervisoryMachineControlSystems . 135<br />
7.4 <strong>Model</strong>-<strong>Driven</strong>Migration ..................... 136
x Contents<br />
7.5 SourceMetamodel. ........................ 138<br />
7.6 NormalisationRules . ...................... 143<br />
7.7 TargetMetamodel. ........................ 147<br />
7.8 Transformation .......................... 151<br />
7.8.1 TheAtlasTransformationLanguage.......... 152<br />
7.8.2 BasicTarget<strong>Model</strong>Elements .............. 153<br />
7.8.3 Concern-BasedTransformationRules . ........ 156<br />
7.8.4 TransformationResults ................. 159<br />
7.9 Evaluation . ............................ 161<br />
7.10Conclusions<strong>and</strong>FutureWork . ................. 165<br />
8 Visualisation<strong>of</strong>Domain-Specific<strong>Model</strong>lingLanguages<br />
UsingUML 167<br />
8.1 Introduction ............................ 167<br />
8.2 Background ............................ 169<br />
8.2.1 S<strong>of</strong>twareArchitecture . ................. 169<br />
8.2.2 EnablingMDETechnologies ............... 171<br />
8.3 <strong>Model</strong>-<strong>Driven</strong>ArchitecturalViews ............... 172<br />
8.3.1 MDAVFramework . ................... 172<br />
8.3.2 MDAVProcess. ...................... 173<br />
8.4 UsingMDAVtoGenerateViews................. 174<br />
8.4.1 Module-UsesView . ................... 174<br />
8.4.2 Component-<strong>and</strong>-ConnectorView ............ 177<br />
8.5 IndustrialApplication ...................... 181<br />
8.6 Discussion . ............................ 185<br />
8.7 RelatedWork............................ 186<br />
8.8 ConcludingRemarks . ...................... 187<br />
9 Conclusion 189<br />
9.1 Contributions . .......................... 190<br />
9.2 IntegrationinPractice(RQ1) . ................. 190<br />
9.3 S<strong>of</strong>twareProductLines(RQ2).................. 193<br />
9.4 <strong>Model</strong>-<strong>Driven</strong>Engineering(RQ3) . ............... 194<br />
9.5 Supportfor<strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong>(RQ0) ... 199<br />
9.6 FutureWork<strong>and</strong>Recommendations .............. 201<br />
References 205<br />
Summary 221<br />
Samenvatting 225<br />
CurriculumVitae 229
List <strong>of</strong> Figures<br />
1.1 ASMLwaferscanner . ...................... 2<br />
1.2 S<strong>of</strong>twareevolutiontasks ..................... 5<br />
1.3 Océcopier . ............................ 12<br />
2.1 Complexityvs.sizeforsubsequentrevisions<strong>of</strong>copiers<strong>of</strong>tware 18<br />
2.2 Fundamentalrelationsbetweensystem, model, <strong>and</strong>metamodel<br />
. ............................... 28<br />
2.3 LayeredMDEmodellingstack . ................. 30<br />
2.4 Metamodel<strong>and</strong>conformingmodel ............... 31<br />
2.5 ConformstorelationinMDE ................... 31<br />
2.6 <strong>Model</strong>transformationmegamodel. ............... 33<br />
2.7 Ametamodelforsimpleclassmodels.............. 34<br />
2.8 Three-dimensionalevolutionframework............ 38<br />
3.1 The decomposition <strong>of</strong> the embedded-systems-development<br />
process ............................... 46<br />
3.2 Embedded-systems-developmentstakeholders<strong>and</strong>otherfactors<br />
................................. 47<br />
4.1 Mainflowsinacopier. ...................... 59<br />
4.2 Thereferencearchitecture<strong>and</strong>derivedprojects. ....... 62<br />
4.3 SAAMsteps . ............................ 64<br />
4.4 SAAMresults ............................ 69<br />
5.1 Typicaldevelopmentprocess................... 78<br />
5.2 Architectureforcopierengines ................. 81<br />
5.3 Constraints. ............................ 85<br />
5.4 Collaborations(simplified) . ................... 86<br />
5.5 Statemachines .......................... 86<br />
5.6 Flatstatemachine ........................ 92<br />
xi
xii List<strong>of</strong>Figures<br />
5.7 Examplescenario: requestacopierenginetogotost<strong>and</strong>by<br />
whileitisrunning. ........................ 96<br />
5.8 Mergedstatemodel<strong>of</strong>ESM(fragment) . ............ 97<br />
6.1 Aligningarchitecture<strong>and</strong>implementation. .......... 104<br />
6.2 Digitalmusicboxreadersystem . ............... 106<br />
6.3 Architecturalviews ........................ 107<br />
6.4 ConceptualConformanceCheckingSystem .......... 109<br />
6.5 Genericmetamodelelement ................... 111<br />
6.6 Metamodels ............................ 113<br />
6.7 ReconstructedMADLmodels................... 117<br />
6.8 ReconstructedCPADLmodels . ................. 119<br />
6.9 MergedMADLconformancemodel. ............... 119<br />
6.10MergedCPADLconformancemodel ............... 120<br />
7.1 Machinecontrolcontext ..................... 133<br />
7.2 Simplifiedlayout<strong>of</strong>awaferscanner .............. 134<br />
7.3 Generictwo-phasedmigrationapproach............ 137<br />
7.4 Sourcemetamodel. ........................ 139<br />
7.5 Processwaferrequest. ...................... 141<br />
7.6 Unloadwaferrequest....................... 142<br />
7.7 Normalisedprocesswaferrequest. ............... 148<br />
7.8 Normalisedunloadwaferrequest................ 149<br />
7.9 Moduleviewfortheproduct-lineSMCarchitecture ..... 150<br />
7.10Targetmetamodel......................... 151<br />
7.11Resultsforunloadwaferrequest . ............... 160<br />
7.12One<strong>of</strong>threeconcurrentstatemodels(madeanonymous) . . 164<br />
8.1 MDAVframework . ........................ 172<br />
8.2 C&Cmodel<strong>of</strong>CaPiTaLiZe(ACME). ............... 174<br />
8.3 MADL . ............................... 175<br />
8.4 CCADL. ............................... 178<br />
8.5 XMLmetamodel .......................... 180<br />
8.6 Task-resourcemetamodel,model,<strong>and</strong>UMLrepresentation . 184<br />
9.1 Megamodelformodel-drivenevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.................................<br />
195
Abbreviations<br />
ADL architecturedescriptionlanguage<br />
ALMA architecture-levelmodifiabilityanalysis[Bengtssonetal.,2004]<br />
API applicationprogramminginterface<br />
AST abstractsyntaxtree<br />
ATAM ArchitectureTrade<strong>of</strong>fAnalysisMethod[Clementsetal.,2002b]<br />
ATL AtlasTransformationLanguage[Jouault<strong>and</strong>Kurtev,2005]<br />
COTS commercial<strong>of</strong>f-the-shelf<br />
CMM CapabilityMaturity<strong>Model</strong>[Humphrey,1989]<br />
DSAAM DistributedSAAM<br />
DSL domain-specificlanguage<br />
DSML domain-specificmodellinglanguage<br />
DTD DocumentTypeDefinition<br />
EBNF ExtendedBackus-Naurform<br />
EMF Eclipse<strong>Model</strong>ingFramework 1<br />
FSM finitestatemachine<br />
GMF GraphicalEditingFramework 2<br />
GPL general-purposelanguage<br />
ITEA InformationTechnologyforEuropeanAdvancement 3<br />
1 http://www.eclipse.org/emf(June2007)<br />
2 http://www.eclipse.org/gmf(June2007)<br />
3 http://www.itea-<strong>of</strong>fice.org(June2007)<br />
xiii
xiv ABBREVIATIONS<br />
MDA <strong>Model</strong><strong>Driven</strong>Architecture 1<br />
MDE model-drivenengineering<br />
MDR MetadataRepository 2<br />
MOF MetaObjectFacility 3<br />
MOOSE S<strong>of</strong>twareEngineeringMethOdOlogieSforEmbeddedSystems 4<br />
OCL ObjectConstraintLanguage 5<br />
OMG ObjectManagementGroup 6<br />
QVT Query/View/Transformation[OMG,2005]<br />
SAAM S<strong>of</strong>twareArchitectureAnalysisMethod[Kazmanetal.,1996]<br />
SEI S<strong>of</strong>twareEngineeringInstitute 7<br />
SMC supervisorymachinecontrol<br />
SPICE S<strong>of</strong>twareProcessImprovement<strong>and</strong>CapabilitydEtermination[Emametal.,1997]<br />
SVG ScalableVectorGraphics 8<br />
UML Unified<strong>Model</strong>ingLanguage 9<br />
XMI XMLMetadataInterchange 10<br />
XML ExtensibleMarkupLanguage 11<br />
XSLT ExtensibleStylesheetLanguageTransformations 12<br />
1http://www.omg.org/mda(June2007) 2http://mdr.netbeans.org(June2007) 3http://www.omg.org/m<strong>of</strong>(June2007) 4http://www.mooseproject.org(June2007) 5http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL(June2007) 6http://www.omg.org(June2007) 7http://www.sei.cmu.edu(June2007) 8http://www.w3.org/Graphics/SVG(June2007) 9http://www.uml.org(June2007) 10http://www.omg.org/mda/specs.htm#XMI(June2007) 11http://www.w3.org/XML(June2007) 12http://www.w3.org/TR/xslt(June2007)
Chapter1<br />
Introduction 1<br />
Mosts<strong>of</strong>twarethatisreallyusedisexposedtomanyforcesthatrequire<br />
ittochange,suchaschanginguserrequirementsorachangingoperating<br />
environment. Asaresults<strong>of</strong>twarechangescontinuously. Thisprocessis<br />
calleds<strong>of</strong>twareevolution[Lehman<strong>and</strong>Belady,1985].<br />
When changes are required to a s<strong>of</strong>tware system, the question is<br />
whethertheycanbeimplementedwithintheboundssetbythecurrent<br />
architectureorrequirearedesign<strong>of</strong>thearchitecture.<br />
Theformercausestypes<strong>of</strong>s<strong>of</strong>twareevolutionreferredtoasarchitecturaldrift<strong>and</strong>erosion[Perry<strong>and</strong>Wolf,1992].<br />
Architecturaldriftoccurs<br />
whenthecurrentarchitectureisnotwell-understoodbythedevelopersinvolvedinmakingthesesmall-scalechanges.Asaresulttheirchangesarebasedonas<strong>of</strong>twarearchitecturethatisdifferentfromtheintendedarchitecture.<br />
Architecturalerosioniscausedbyviolations<strong>of</strong>thearchitecture.<br />
Bothhaveanegativeeffectonthemaintainability<strong>of</strong>s<strong>of</strong>tware.<br />
Eventuallyarchitecturaldrift<strong>and</strong>erosionmakearedesign<strong>of</strong>thearchitectureunavoidable.Inthisthesisweconsiderthistype<strong>of</strong>s<strong>of</strong>twareevolution,thatis,onthelevel<strong>of</strong>architecture.Althoughwediscusstheconcepts<strong>of</strong>s<strong>of</strong>twarearchitectureextensivelyinChapter2,fornowitsufficestodescribearchitectureasthehigh-levelorglobaldesign<strong>of</strong>as<strong>of</strong>twaresystem.Toillustratetheneedfor<strong>and</strong>implications<strong>of</strong>architecturalchanges,considerthefollowingsituationatASML,acompanythatdevelopsmanufacturingmachinesforthesemiconductorindustry.<br />
Anewarchitecturefor<br />
thecontrols<strong>of</strong>tware<strong>of</strong>one<strong>of</strong>ASML’sproducts,aso-calledwaferscanner<br />
(seeFigure1.1onthefollowingpage),isinvestigated[V<strong>and</strong>enNieuwelaar<br />
etal.,2003].Thisarchitectureisbasedongenericreusables<strong>of</strong>twarecomponents<strong>and</strong>enablesthe(automatic)generation<strong>of</strong>application-specificparts<br />
1 Thischapterisbasedon:Graaf,Bas. <strong>Model</strong>-drivenevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.<br />
InProceedings<strong>of</strong>the11 th EuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong>Reengineering(CSMR2007),pages357–360.IEEEComputerSociety,2007<br />
1
2 Chapter1. Introduction<br />
Figure 1.1:ASMLwaferscanner<br />
<strong>of</strong>controlcomponentsfromadeclarativespecification.Asaresult,therequiredeffortfordevelopment<strong>and</strong>maintenance<strong>of</strong>thecontrols<strong>of</strong>twarecan<br />
bereduced.<br />
Aproblemthatremainsisthemigration<strong>of</strong>existingcontrolcomponents<br />
tothisnewarchitecture. Apossibleapproachistostart-over<strong>and</strong>develop<br />
thesecomponentsfromscratchaccordingtothenewarchitecture. Inthis<br />
casethismeansthatforeachcontrolcomponentanewspecificationhas<br />
tobecreated. Unfortunately,theknowledgeincorporatedinthecode<strong>and</strong><br />
designs<strong>of</strong>alreadyexistingcontrolcomponentswillbelargelylostthisway.<br />
Consideringthefactthatthecurrentbehaviour<strong>of</strong>thesecomponentsdoes<br />
notneedtobechanged, thisconstitutesawaste<strong>of</strong>knowledge<strong>and</strong>resources,<strong>and</strong>anunnecessaryrisk.Analternativesolutionistoderivethespecifications<strong>of</strong>thesecomponentsforthenewarchitecturefromtheirexistingspecifications.<br />
Thescenariosketchedabove,whichisfullyexploredinChapter7,is<br />
aboutachangingorevolvings<strong>of</strong>twarearchitecture<strong>and</strong>illustratessome<br />
<strong>of</strong>theissuesweaddressinthisthesis. Manycompaniesareconfronted<br />
withsimilarscenarios.Anexampleinacompletelydifferentdomainisthe<br />
problem<strong>of</strong>makingexistinginformationsystemsaccessibleviatheWorld<br />
WideWeb.Thistypicallyalsorequiresarchitecturalchanges.Manyother<br />
scenarioscanbementionedthatinvolvearchitecturalchangesforreasons<br />
thatincludemaintainability<strong>and</strong>functionality.<br />
However, while<strong>of</strong>tenrequired, architecturalchangestypicallycome<br />
withasignificantrisk<strong>and</strong>areexpensivetoperform. Moreover,whenthe<br />
objective<strong>of</strong>suchchangesismaintainabilityimprovement,asinthescenarioabove,theirbenefitsareonlyexperiencedlateron.Thismakessuch
changesproblematic.Therefore,ourgoalistosupportevolution<strong>of</strong>s<strong>of</strong>tware<br />
architecturessuchthatrisk<strong>and</strong>costsarereduced.<br />
Consideringthedescribedscenario,nexttothequestion<strong>of</strong>howtomigrateexistingcomponents,otherquestionsarise,suchashowtoevaluatethatsuchchangesarenecessary,<strong>and</strong>,whethertheycanbeperformed<br />
(semi-)automatically.<br />
Anotherrelevantaspect<strong>of</strong>thisscenarioisthatitdealswithas<strong>of</strong>tware<br />
architecturebasedonaplatform(i.e.,thegenericreusablecomponents),<br />
whichappliestoawholeseries<strong>of</strong>systems(i.e.,thedifferentcontrolsystemsinawaferscanner).Sucharchitecturesarereferredtoasproductlinearchitectures[Clements<strong>and</strong>Northrop,2002].Torealiseeconomies<strong>of</strong><br />
scale,atrendinindustryistointegratethedevelopment<strong>of</strong>awholeset<strong>of</strong><br />
similarproductsinasingle(s<strong>of</strong>tware)productline.Thedevelopment<strong>of</strong>a<br />
s<strong>of</strong>twareproductlineisbasedonaproduct-linearchitecturethatdefines<br />
thecommonality<strong>and</strong>variabilitybetweentheproduct-linemembers(i.e.,<br />
individualproducts<strong>of</strong>theproductline). Inthecontext<strong>of</strong>s<strong>of</strong>twarearchitectureevolution,product-linearchitecturesareacomplicatingfactor<strong>and</strong>,<br />
aswewillexplaininthisthesis,requirespecialattention.<br />
Anothercomplicatingfactortoachieveourgoal<strong>of</strong>supportings<strong>of</strong>tware<br />
architectureevolutionistheintegration<strong>of</strong>evolutionsupportinindustrial<br />
practice.Industryisreluctanttoadoptnews<strong>of</strong>twareengineeringtechnologies.<br />
Animportantreasonforthisisthatittendstohavearisk-avoiding<br />
attitude.Thisproblemisalsoaddressedinthisthesis.<br />
Wewillsearchthesolutioninthearea<strong>of</strong>model-drivenengineering.We<br />
adoptthevision<strong>of</strong>model-drivenengineering(MDE)forthepurpose<strong>of</strong>supportings<strong>of</strong>twareevolution.MDEisthetermforanewgeneration<strong>of</strong>s<strong>of</strong>twaredevelopmentapproachesinwhichmodelsplayadominantrole<strong>and</strong>in<br />
which(part<strong>of</strong>)thedevelopmentstepsareperformedby(automatic)model<br />
transformations[Bézivin,2005].Intheseapproachess<strong>of</strong>twaremodelsare<br />
graduallytransformedintosourcecode,whichtypicallyexecutesontop<strong>of</strong><br />
as<strong>of</strong>twareplatform.<br />
MDEapproachesareenabledbytheavailability<strong>of</strong>st<strong>and</strong>ards,suchas<br />
formodelling<strong>and</strong>transformations. Theyhavebeendevelopedtohidethe<br />
behavioural<strong>and</strong>structuralcomplexity<strong>of</strong>theplatformsunderlyings<strong>of</strong>tware<br />
productlines[Schmidt,2006].Thiscorrespondstotheenvisionedsituation<br />
inthescenariowedescribedabove.Theconcept<strong>of</strong>MDEisfurtherdiscussed<br />
inChapter2.<br />
Ourapproachistoinvestigatetowhatextents<strong>of</strong>twarearchitecturecan<br />
bemadeexplicitasmodels, <strong>and</strong>whethertheexistingknowledge, st<strong>and</strong>ards,<strong>and</strong>toolsinthearea<strong>of</strong>MDEcanbeusedforthepurpose<strong>of</strong>s<strong>of</strong>tware<br />
architectureevolution. Thus,instead<strong>of</strong>applyingmodeltransformations<br />
forthedevelopment<strong>of</strong>s<strong>of</strong>twarebythegeneration<strong>of</strong>sourcecodefrommore<br />
abstracts<strong>of</strong>twaremodels,weapplymodeltransformationstosupportthe<br />
3
4 Chapter1. Introduction<br />
evolution<strong>of</strong>s<strong>of</strong>tware. Thisinvolvesdifferenttypes<strong>of</strong>s<strong>of</strong>twareengineeringtasks,suchasevaluation<strong>and</strong>migration.Weinvestigatetheextentto<br />
whichsuchtaskscanbeperformedbytheuse<strong>of</strong>modeltransformations.<br />
Additionally,wefocusonreal-lifesituationssuchasthemigration<strong>of</strong>controlcomponentsatASML.Intheremainder<strong>of</strong>thisintroductionwedescribetheproblem<strong>and</strong>formulatetheresearchquestionsthisthesisaddresses.Subsequently,weexplaintheapproachwefollowedtoanswerthesequestions<strong>and</strong>thescope<strong>of</strong><br />
ourwork.Weconcludewithanoutline<strong>of</strong>thisthesis<strong>and</strong>anoverview<strong>of</strong>its<br />
contributions.<br />
1.1 ProblemDescription: <strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong><br />
Inthisthesis,wefocusontheevolution<strong>of</strong>s<strong>of</strong>twareplatforms<strong>and</strong>thesystemstheysupport.Moreparticularly,weaddresstheproblem<strong>of</strong>theirevolutiononthearchitecturallevel.<br />
Perry<strong>and</strong>Wolf[1992]describearchitectureasthe‘load-bearingwalls’<br />
<strong>of</strong>as<strong>of</strong>twaresystem.Assuch,as<strong>of</strong>twarearchitectureallowssomechanges<br />
<strong>and</strong>precludesothers,thatis,itallowssomedegree<strong>of</strong>evolution.Changes<br />
thatitallowsdonotrequireamigration<strong>of</strong>thearchitecture.Changes,however,thatarenotsupportedbythecurrentarchitecturewillrequiresuch<br />
amigration. Assuch,anarchitecturedetermineswhichtype<strong>of</strong>evolution<br />
ischeap(i.e.,thetypethatinvolveschangesthatdonotrequirechangesto<br />
thearchitecture)<strong>and</strong>whichtypeisexpensive(i.e.,thetypethatinvolves<br />
changesthatdorequirechangestothearchitecture).Infact,areasonfor<br />
migratingtoadifferents<strong>of</strong>twarearchitectureistochangethis,thatis,<br />
makingadifferenttype<strong>of</strong>changescheap. Asanexample,intheASML<br />
scenariosketchedaboveone<strong>of</strong>thegoalswasindeedtoreducetheeffort<br />
requiredtochangethesequence<strong>of</strong>themanufacturingactivitiesawafer<br />
scannerperformsforthemanufacturing<strong>of</strong>microchips.<br />
Whenconsiderings<strong>of</strong>twareevolutionfromanarchitecturalperspective,<br />
itneedstobedeterminedifanarchitecturerequireschanges,<strong>and</strong>subsequentlyhowtoperformthosechanges.Theformerrequiresanarchitecture<br />
evaluation. Thelatterrequiresanapproachtomigrateas<strong>of</strong>twarearchitecture,<strong>and</strong>thecorresponding‘downstream’developmentartefacts.Inthecase<strong>of</strong>acomplexarchitecture,oraproductline,whereanarchitectureaffectsmultiplesystems,itpays<strong>of</strong>ftodothisautomatically.<br />
Todoso,an<br />
architecturecanbeconsideredasamodelthatcanbemanipulated. The<br />
technologytomakethishappenis<strong>of</strong>feredbyMDE. In-linewithMDE,we<br />
aimatthedevelopment<strong>of</strong>automatedtechniques,wherepossible.
1.1. ProblemDescription 5<br />
Evaluation<br />
Conformance Checking<br />
Documentation Migration<br />
Figure 1.2:S<strong>of</strong>twareevolutiontasks<br />
Aswewillseefromthisthesis,theautomaticmanipulation<strong>of</strong>(architectural)modelsishamperedbyindustry’sresistancetoadoption<strong>of</strong>state-<strong>of</strong>the-arts<strong>of</strong>twareengineeringtechnologies.Animportantreasonforthisisthatsuchtechnologies<strong>of</strong>tenhavealargeimpactoncurrentways<strong>of</strong>working,resultinginunacceptablerisks(seealsoChapter3).Thismeansthat,inthecontext<strong>of</strong>s<strong>of</strong>twareevolution,wehavetotakeintoaccount,forinstance,theinformaluse<strong>of</strong>modellinglanguagesinindustry[Langeetal.,<br />
2006].Thismakesautomationparticularlydifficult.Ingeneral,theimpact<br />
<strong>of</strong>solutions(technologiesorprocesses)tocurrentways<strong>of</strong>workingshould<br />
beminimised.<br />
Toclarifythescope<strong>of</strong>ourworkwedistinguishfourtypes<strong>of</strong>activities<br />
relatedtoevolution<strong>of</strong>s<strong>of</strong>tware. Werefertotheseactivitiesass<strong>of</strong>tware<br />
evolutiontasks. ThetasksweconsideraredepictedinFigure1.2inan<br />
evolutionarys<strong>of</strong>twarelife-cycle<strong>and</strong>areexplainedbelow.<br />
Evaluation Inourworkthemainobjective<strong>of</strong>architectureevaluationisto<br />
determinewhetherornotproposedchangestoas<strong>of</strong>twaresystemrequire<br />
changestothecurrentarchitecture.Weconsiderarchitectureevaluationas<br />
thestartingpoint<strong>of</strong>as<strong>of</strong>twarearchitectureevolutioncycle. Aparticular<br />
challengeistheassessment<strong>of</strong>whetheraproduct-linearchitecturerequires<br />
changesintheface<strong>of</strong>anticipatedchangestotheproduct-linemembers.Dobrica<strong>and</strong>Niemelä[2002]giveanoverview<strong>of</strong>proposedarchitectureevaluationapproaches.However,none<strong>of</strong>thoseisexplicitlyaimedats<strong>of</strong>tware<br />
productlines.<br />
ConformanceChecking In the case that an evaluation indicates that architectural<br />
changes are required, it is necessary to determine to what<br />
extent‘downstream’developmentartefactsconformtothe(product-line)<br />
architecture. The question is whether development artefacts that are<br />
constrainedbythedecisionsmadeduringthearchitectingphasedonot<br />
violatethesedecisions. Inprinciple,alldesignartefactareconstrained<br />
bythearchitecture,suchasdetaileddesigns,implementations<strong>and</strong>even<br />
product-linemembers.<br />
Krikhaar[1999]<strong>and</strong>Mens[2000]compareanumber<strong>of</strong>approachesto<br />
checkarchitectureconformance.However,conformancebetweenmodelsat
6 Chapter1. Introduction<br />
differentabstractionlevelsisnotaddressed. Moreover,mostapproaches<br />
dictatetheintroduction<strong>of</strong>specificmodellinglanguages,requiringachange<br />
tocurrentways<strong>of</strong>working.<br />
Migration Aset<strong>of</strong>consistentdevelopmentartefactsasdeterminedbythe<br />
conformancecheckingtask,reducestherisk<strong>of</strong>anactualmigration<strong>of</strong>the<br />
architecture<strong>and</strong>dependentdevelopmentartefacts. Themigrationtoa<br />
newproduct-linearchitecture<strong>and</strong>associateds<strong>of</strong>twareplatformthatbettersupportsforeseenrequirements,requiresthemigration<strong>of</strong>allproducts<br />
supportedbythelegacyplatform. Thereisnopreviousworkthatconsiderss<strong>of</strong>tware(architecture)migrationasamodeltransformationproblem.<br />
Severalotherworkdoesaddressthetransformation<strong>of</strong>s<strong>of</strong>twaresystems.<br />
However, they consider single-product architectures [Bosch <strong>and</strong> Molin,<br />
1999], simple graphs [Fahmy <strong>and</strong> Holt, 2000b], or the level <strong>of</strong> source<br />
code[Terekhov<strong>and</strong>Verhoef,2000]. Thelanguagemigrationprocessused<br />
byTerekhov<strong>and</strong>Verhoef[2000]isparticularlyinteresting.Itseparatesa<br />
migrationinthreephasesthatincluderestructuring<strong>of</strong>sourceprograms<br />
toenablethe(automatic)transformationphase. Althoughitwasusedfor<br />
sourcecodemigration,suchapreparatorystepisalsorequiredforthemigrationonthearchitecturalleveltotakeintoaccountindustrialmodelling<br />
conventions.<br />
Documentation Afteramigration<strong>of</strong>the(product-line)architecture<strong>and</strong>the<br />
product-line membersit supports, documentationneeds tobeupdated.<br />
Itisgenerallyacceptedthatthedocumentation<strong>of</strong>s<strong>of</strong>twarearchitectures<br />
consists<strong>of</strong>multipleviews[Kruchten,1995;H<strong>of</strong>meisteretal.,2005]. OftentheUnified<strong>Model</strong>ingLanguage<br />
1 (UML)isusedintheseviews. On<br />
theotherh<strong>and</strong>,specialisedarchitecturedescriptionlanguages(ADLs)(see<br />
Medvidovic<strong>and</strong>Taylor[1997]foranoverview)<strong>and</strong>MDEsupportthecreation<strong>of</strong>modelstoautomateseverals<strong>of</strong>twareengineeringtasks,suchas<br />
codegeneration. However,noapproachaddressestheproblem<strong>of</strong>keeping<br />
documentation<strong>and</strong>modelsconsistent. Withtheupcoming<strong>of</strong> MDEapproachesthisbecomesahighlyrelevantproblem.<br />
Inthisthesis,weaimatincreasingourunderst<strong>and</strong>ing<strong>of</strong>each<strong>of</strong>these<br />
fours<strong>of</strong>twareevolutiontasksaswellas<strong>of</strong>feringsupportforthem.<br />
1 http://www.uml.org(June2007)
1.2. Objectives 7<br />
1.2 Objectives<br />
Intheprevioussectionweexplainedthatchangestos<strong>of</strong>twarearchitectures<br />
canberequiredtoimproveorrestorethemaintainability<strong>of</strong>s<strong>of</strong>twaresystems.However,suchevolutioninvolveshighrisks<strong>and</strong>costs.<br />
Assuch,ourmainresearchquestionis:<br />
RQ0Howcantheevolution<strong>of</strong>s<strong>of</strong>twarearchitecturesbesupported?<br />
Wewillinvestigatethisquestioninterms<strong>of</strong>thes<strong>of</strong>twareevolution<br />
tasksweidentified:evaluation,conformancechecking,migration,<strong>and</strong>documentation.WhenconsideringtheproblemdescriptioninSection1.1,RQ0<br />
raisesanumber<strong>of</strong>subquestionsthatweintroducebelow.<br />
1.2.1 IntegrationinPractice<br />
Aswewillseeinthisthesis,integration<strong>of</strong>news<strong>of</strong>twareengineeringtechnologiesinindustrialpracticeisdifficult.<br />
Thisisduetotherisk-avoiding<br />
attitude<strong>of</strong>industrialcompaniestowardssuchinnovation,resultingina<br />
preference<strong>of</strong>proventechnologies.<br />
However,alsoacademia’sattitudetowardspracticalindustrialproblems<br />
hampersapplication<strong>of</strong>researchresultsinpractice. Theseproblemsare<br />
<strong>of</strong>tenconsiderednottobeinterestingfromanacademicpoint<strong>of</strong>vieworare<br />
difficulttoinvestigatebecausesuchinvestigationsareverycostly<strong>and</strong>time<br />
consuming.Finally,industryisnotalwayswillingtocooperate.Theresult<br />
isthat<strong>of</strong>tens<strong>of</strong>twareengineeringtechnologiesdevelopedbyacademiaare<br />
not(fully)appliedinindustrialpractice.Anexampleistheinformaluse<strong>of</strong><br />
modellinginpractice.<br />
Thisleadstoourfirstsubquestion:<br />
RQ1Howtointegratethesupportfors<strong>of</strong>twareevolutiontasksinpractice,<br />
consideringtheinformaluse<strong>of</strong>modellinglanguages<strong>and</strong>preference<br />
forproventechnologiesinindustry?<br />
1.2.2 ProductLines<br />
Manycompaniesextendedthescope<strong>of</strong>theirs<strong>of</strong>twarearchitecturesfrom<br />
singlesystemstomultiplesystemstoincreasereuse<strong>and</strong>reducerequired<br />
development<strong>and</strong>maintenanceeffort 1 .<br />
Forours<strong>of</strong>twareevolutiontaskstheuse<strong>of</strong>productlineprinciplesis<br />
relevant. Onereasonis,forinstance,thatproductlinearchitecturesare<br />
1 Forexamples,visittheProductLineHall<strong>of</strong>Fame:http://www.sei.cmu.edu/productlines/<br />
plp_h<strong>of</strong>.html(June2007)
8 Chapter1. Introduction<br />
definedonahigherlevel<strong>of</strong>abstractionthansingle-productarchitectures.<br />
Furthermore,thenumber<strong>of</strong>stakeholdersforaproductlinealsoishigher.<br />
Thiscomplicates,forinstance,evaluations.<br />
Thisleadstooursecondsubquestion:<br />
RQ2Whatistheimpact<strong>of</strong>theuse<strong>of</strong>s<strong>of</strong>twareproductlines<strong>and</strong>platforms<br />
onthesupportfors<strong>of</strong>twareevolutiontasks?<br />
1.2.3 <strong>Model</strong>-<strong>Driven</strong>Engineering<br />
S<strong>of</strong>twarearchitectureevolutioniscostly<strong>and</strong>risky. Therefore,wewillinvestigatetheuse<strong>of</strong>MDEtechnologyforthisproblem.Automationisone<strong>of</strong><br />
thekeycharacteristics<strong>of</strong>MDE.Whenappliedtothearchitectureevolution<br />
thismayyieldcheaper<strong>and</strong>morereliableresults.<br />
Ouruse<strong>of</strong>MDEisalsomotivatedbyRQ1<strong>and</strong>RQ2. Thedevelopment<br />
<strong>of</strong> MDEtechnologieshasbeendrivenbyindustry. Thiscanbeseen,for<br />
instance,fromthewide-spreaduse<strong>of</strong>UMLfors<strong>of</strong>twaredesign. Assuch,<br />
supportfors<strong>of</strong>twareevolutiontasksbasedonsimilartechnologymightby<br />
itselfalreadyimproveintegration<strong>of</strong>suchsupportinindustrialenvironments.<br />
Finally,astronglinkexistsbetweenMDE<strong>and</strong>s<strong>of</strong>twareproductlines.<br />
WithMDEthegeneratedcodetypicallyexecutesontop<strong>of</strong>as<strong>of</strong>twareplatform.Atthesametimes<strong>of</strong>twareplatformsarethefoundationforeventhe<br />
mostbasicproductlines[Bosch,2002]. Assuch,MDEapproachescanbe<br />
usedfortheautomaticderivation<strong>of</strong>product-linemembers[Deelstraetal.,<br />
2003].<br />
Forindustrialapplicability,onespecifictype<strong>of</strong>MDEisparticularrelevant.<br />
WefocusonMDEtechnologiesbasedonaset<strong>of</strong>st<strong>and</strong>ardsdefined<br />
bytheObjectManagementGroup 1 (OMG)underthename<strong>Model</strong><strong>Driven</strong><br />
Architecture 2 (MDA). ThereasonforthisisthatUMLisanessentialpart<br />
<strong>of</strong>theMDAframework;<strong>and</strong>UMListhe(defacto)st<strong>and</strong>ardformodelling<br />
s<strong>of</strong>tware[Kobryn,1999]thatismostwidelyappliedinindustry. Webelievethatthepracticalrelevance<strong>of</strong>ourworkisincreasedbyrestricting<br />
ourselvestothisframework(seealsoRQ1).<br />
<strong>Model</strong>-drivensupportatthearchitecturallevelforours<strong>of</strong>twareevolutiontasksallowsfor(partial)automation,resultinginimprovedreliability,efficiency(<strong>of</strong>thedevelopmentprocess),<strong>and</strong>quality(<strong>of</strong>developeds<strong>of</strong>tware)[Atkinson<strong>and</strong>Küne,2003;Selic,2003].<br />
Thisleadstoourthird<strong>and</strong>finalsubquestion:<br />
RQ3Towhatextentcanthesupportfors<strong>of</strong>twareevolutiontasksbeautomatedbytheuse<strong>of</strong>model-drivenengineering?<br />
1 http://www.omg.org(June2007)<br />
2 http://www.omg.org/mda(June2007)
1.3. Approach 9<br />
1.3 Approach<br />
Ass<strong>of</strong>twareengineeringisanappliedscience,ourviewons<strong>of</strong>twareengineeringresearchisthatresultscanonlybeprovenusefulbyvalidationin<br />
industrialpractice. Furthermore,thistype<strong>of</strong>researchisaimedatsolvingrealproblems.<br />
Suchproblemsaremainlyfoundinindustry(atleast<br />
problemsinthedomain<strong>of</strong>s<strong>of</strong>twareengineering).<br />
Therefore,weintendourresearchtobeindustry-driven;weadoptthe<br />
‘industry-as-laboratory’approachproposedbyPotts[1993]. Inthisapproachtheproblemsstudiedareidentifiedbycloseinvolvementinindustrialprojects<strong>and</strong>resultsareappliedtopracticalproblems;thereisanemphasisonrealcasestudies.<br />
Weaccomplishtheinteractionswithindustryonwhichthisapproachis<br />
basedinthreeways:asurvey,industrialcasestudies,<strong>and</strong>closecollaborationwiths<strong>of</strong>twarepractitionersinindustry.<br />
Wefirstperformasurveyamongmorethan35s<strong>of</strong>twarepractitionersat<br />
eightcompaniestogetanoverview<strong>of</strong>s<strong>of</strong>twareengineeringpractices<strong>and</strong><br />
specificproblemsinthe(embedded)s<strong>of</strong>twareindustry(seeChapter3).The<br />
observationsmadeinthatsurveyincludetheupcominguse<strong>of</strong>product-line<br />
approaches,theinformaluse<strong>of</strong>modellinglanguages,<strong>and</strong>theimportance<br />
<strong>of</strong>theevolutionaryaspect<strong>of</strong>s<strong>of</strong>tware. Thissurveypartiallydetermined<br />
theproblemsweaddressintheresearchdescribedbythisthesis.<br />
Theexploratorycharacter<strong>of</strong>ourresearch,thetype<strong>of</strong>researchquestions<br />
wewanttoinvestigate(‘how’questions),<strong>and</strong>thelowlevel<strong>of</strong>controlwe<br />
haveoverthe(industrial)environmentinwhichs<strong>of</strong>twareevolutiontakes<br />
place,makethatcasestudiesareasuitableresearchapproach[Yin,2003].<br />
Furthermore,theuse<strong>of</strong>industrialcasestudiesreducestherisk<strong>of</strong>scalabilityproblems<strong>of</strong>theresultsKitchenhametal.[1995].Therefore,weuse<br />
casestudiestoinvestigatetheapplicability<strong>of</strong>model-drivenapproachesto<br />
thefours<strong>of</strong>twareevolutiontaskswedefined.<br />
Foreachtaskweproposeaseparatesolution,whichweevaluateina<br />
(industrial)casestudy. Assuch,weperformedseparatecasestudiesfor<br />
each<strong>of</strong>theevolutiontasks:evaluation,conformancechecking,migration,<br />
<strong>and</strong>documentation. Thecasestudiesweconductedaremainlyrelatedto<br />
twoindustrialsystems: copiersdevelopedbyOcé<strong>and</strong>waferscannersdevelopedbyASML.Assuch,byourcasestudies,wefocusontheembedded<br />
s<strong>of</strong>twaredomain.TheconclusioninChapter9alsoreflectsonthequestion<br />
<strong>of</strong>whetherthisisrelevantfromtheperspective<strong>of</strong>ourresearchquestions.<br />
Giventheexploratorycharacter<strong>of</strong>ourresearch,wedonotdefineaset<br />
<strong>of</strong>researchpropositionstoinvestigate.Instead,wedirectourresearchby<br />
thesubquestionsoutlinedinSection1.2. AsdiscussedbyYin[2003]we<br />
usethisdirectiontoguideouranalysis<strong>of</strong>thecasestudiesweperform.We<br />
qualitativelyevaluatethesolutionsweproposebycarefullyobserving<strong>and</strong>
10 Chapter1. Introduction<br />
analysingtheirapplicationineachcasestudy.<br />
Forthecasestudyinwhichweevaluatedourapproachforthemigration<br />
task,wewereabletocompareourfindingswithrespecttoamigration<br />
<strong>of</strong>thesamesystemconductedmanually.Theconformancecheckingtasks<br />
wereonlyexecutedusingourtechniques. Therefore,theirevaluationis<br />
basedonthetype<strong>and</strong>number<strong>of</strong>inconsistenciesfound.Fortheevaluation<br />
<strong>and</strong>documentationtasks,weevaluateoursolutionswithrespecttothe<br />
application<strong>of</strong>similarapproachesinothercases.<br />
Consideringourresearchquestions,wespecificallyfocusedtheevaluationontheextenttowhichthes<strong>of</strong>twareevolutiontaskscanbeautomated,<br />
theimpact<strong>of</strong>s<strong>of</strong>twareproductlines,<strong>and</strong>possibilitiesforreusing(proven)<br />
s<strong>of</strong>twaretechnologies<strong>and</strong>reducingorganisationalimpact.<br />
1.4 Overview<br />
Thisthesisaddressestheproblem<strong>of</strong>managingevolutionforcomplexs<strong>of</strong>twareintensivesystems.Westudiedthisproblem<strong>and</strong>itssolutionsinterms<br />
<strong>of</strong>s<strong>of</strong>twarearchitecture<strong>and</strong>MDE.Theremainder<strong>of</strong>thisthesisisorganised<br />
asfollows.<br />
SettingtheScene InChapter2weintroducesome<strong>of</strong>theconceptsthatwere<br />
touchedupononlybrieflyinthisintroductionmorethoroughly.Inparticularwediscusss<strong>of</strong>twarearchitecture<strong>and</strong>MDE.Chapter3reportsonthesurveyweconductedamongseveralcompaniesdevelopingembeddeds<strong>of</strong>tware.<br />
Thesurveyresultedinanumber<strong>of</strong><br />
importantobservationsforthisthesis:<br />
•Industryrarelydevelopsproductsfromscratch.Thisobservationconfirmstheimportance<strong>of</strong>theevolution<strong>and</strong>maintenanceaspects<strong>of</strong>s<strong>of</strong>twaredevelopment.<br />
•Increasingly,product-line<strong>and</strong>MDEapproachesareappliedforthedevelopment<strong>of</strong>embeddeds<strong>of</strong>tware.<br />
•Currents<strong>of</strong>twareengineeringtechnologiesaredifficulttoapplyin<br />
practiceduetoseveralreasons. Oneconsequenceisthatsuchtechnologiesareappliedinapragmaticway,forinstance,modellinglanguages<strong>and</strong>toolsare<strong>of</strong>tenonlyusedtodrawdiagramsforthepurpose<strong>of</strong>documentationratherthanforthepurpose<strong>of</strong>,forinstance,<br />
automaticanalysesorcodegeneration.
1.4. Overview 11<br />
Thefirsttwoobservationscallforanapproachthatenablestheintroduction<strong>of</strong>productlinesina“bottom-up”manner,meaningthatproductlinescomeintoexistencebasedonexistingproducts<strong>and</strong>aredevelopedin<br />
anevolutionary,ratherthanrevolutionary(ortop-down),way.<br />
Thethirdobservationaddstheconstraintthatsuchanapproachtakes<br />
intoaccountsome<strong>of</strong>thepracticalissuesthatarearealityfors<strong>of</strong>twaredevelopmentorganisations,suchastheinformaluse<strong>of</strong>modellinglanguages,<br />
thelimitedamount<strong>of</strong>timefordoinganalysis,<strong>and</strong>theriskinvolvedin<br />
changingexistingways<strong>of</strong>working.<br />
TheEvaluationTask InChapter4wedefineascenario-basedapproachbased<br />
ontheS<strong>of</strong>twareArchitectureAnalysisMethod(SAAM)[Kazmanetal.,1996]<br />
forassessingthequality<strong>of</strong>anemergingproduct-linearchitectureforthe<br />
embeddeds<strong>of</strong>twareforcopiersdevelopedbyOcé(Figure1.3onthefollowingpage).Thisarchitectureemergedinabottom-upmannerfromanumber<strong>of</strong>existingproducts.Atsomepointquestionswereraisedwithrespect<br />
tothesuitability<strong>of</strong>theproduct-linetoincorporatemoreexisting<strong>and</strong>future<br />
productsasproduct-linemembers.Thereforeanassessmentwasinitiated<br />
thathadtotakeintoaccounttheemergentcharacter<strong>and</strong>corresponding<br />
low-visibility<strong>of</strong>theproduct-lineintheorganisation. Thelatterresulted<br />
inalowcommitment<strong>of</strong>severalstakeholderstosuchanassessment. The<br />
resultsshowthatatwo-phasedscenariodevelopmentstep,inwhichpart<br />
<strong>of</strong>thescenariosarecollectedseparatelyfromthejointevaluationsession,<br />
resultsinamoreefficientapproachthatstillyieldsacceptableassessment<br />
results. Additionally,thischapteridentifiestheproblem<strong>of</strong>conformance<br />
<strong>of</strong>thearchitecture<strong>of</strong>product-linememberstoaproduct-linearchitecture.<br />
Suchconformanceisdesirablebeforeupdatingaproduct-linearchitecture<br />
ormigratinganexistingproducttoincorporateitintheproduct-line.<br />
TheConformanceCheckingTask Twochaptersdealspecificallywithconformancechecking.<br />
InChapter5wediscusshowtousemodeltransformationstocombine<br />
scenariosintostate-basedbehaviouralmodels. Comparedtotheprevious<br />
casestudy,thescenariosareexpressedinmoredetailusingUMLsequence<br />
diagrams.Weappliedthetransformationstoaset<strong>of</strong>scenariosforacomponentdefinedbytheproduct-linearchitecturefortheembeddedcopier<br />
s<strong>of</strong>tware<strong>of</strong>Océ. Thisresultsinastatetransitionmodel. Toassessthe<br />
extenttowhichthescenariosareconsistentwithastatetransitionmodel<br />
thatisusedtogeneratethesourcecodeforthatcomponent,we(manually)investigatethedifferencesbetweenthetwostatemodels.Assuch,we<br />
identifiedanumber<strong>of</strong>inconsistencies.
12 Chapter1. Introduction<br />
Figure 1.3:Océcopier<br />
A model-driven approach for automatically determining the conformance<strong>of</strong>s<strong>of</strong>twareartefactsisproposedinChapter6.Aview-basedprocess<br />
for conformancecheckingis described thatdoes not interfere with the<br />
currentway<strong>of</strong>working<strong>of</strong>theinvolveddomains(e.g.,requirements,architecture,orimplementation)byintroducingtheconcept<strong>of</strong>aconformance<br />
viewpoint(i.e.,atype<strong>of</strong>view). Inthecase<strong>of</strong>architectureconformance<br />
suchaviewpoint,specifiedasametamodel,definescheckableaspects<strong>of</strong><br />
thearchitecture<strong>and</strong>implementation,assuchbridgingthesemanticgap<br />
betweenthetwodomains. Weillustratehowmodeltransformationscan<br />
be used to automatically discover inconsistencies between architecture<br />
specifications<strong>and</strong>implementation.<br />
TheMigrationTask Onceaproduct-linearchitecturehasbeenassessed<strong>and</strong><br />
theconformance<strong>of</strong>product-instanceswithrespecttotheproduct-linehas<br />
beenconfirmed,existingproductsneedtobemigratedtothenewproductlineapproach.Thisrequiresthatinstancespecificinformationisextracted<br />
<strong>and</strong>transformedintoaviewassociatedwithaviewpointthatwasdefined<br />
todescribeproductinstances. InChapter7wedescribeagenericviewbasedprocessformigratingthelegacydesignsdiscussedatthestart<strong>of</strong>this<br />
chapterintoviewsthatexactlydescribeaproductinstanceinterms<strong>of</strong>a<br />
newproduct-linearchitecture. Forthemigration<strong>of</strong>controlarchitectures<br />
basedonfinitestatemachineswedefineanumber<strong>of</strong>transformationrules<br />
thatresultinaspecification<strong>of</strong>suchanarchitectureinterms<strong>of</strong>aproductlinearchitecturebasedontask-resourcesystems.Theserulesareamenable<br />
foranMDA-type<strong>of</strong>approachthatispartiallyautomated.
1.5. Origin<strong>of</strong>Chapters 13<br />
Table 1.1:Coverage<strong>of</strong>researchquestionsinchapters<br />
Question<br />
RQ1<br />
RQ2<br />
RQ3<br />
Chapter<br />
3<br />
√<br />
4<br />
√<br />
√<br />
5<br />
√<br />
√<br />
6<br />
√<br />
√<br />
7<br />
√<br />
√<br />
√<br />
8<br />
√<br />
√<br />
TheDocumentationTask Todecreasetheeffortrequiredforfutureevolution<br />
<strong>of</strong>s<strong>of</strong>twareproducts,up-to-datedocumentationisanimportantasset[Forward<strong>and</strong>Lethbridge,2001].InChapter8wediscusstherelationbetween<br />
thearchitecturalmodelsusedforconformancechecking<strong>and</strong>migration,for<br />
instance,<strong>and</strong>architecturalviewsfordocumentation.Wepresentaframeworkinwhichtheinvolvedconceptsarerelatedtoeachother<strong>and</strong>show<br />
howsuchaframeworkcanbesupportedbyMDEtechnologies.<br />
TheResearchQuestions Finally,toconclude,Chapter9presentsanoverview<br />
<strong>of</strong> our contributions <strong>and</strong> revisits the research questions raised in Section1.2.Table1.1illustrateshowthesequestionsarecoveredbythecore<br />
chapters<strong>of</strong>thisthesis. Allchapterstakeintoaccountthepracticalapplicability<strong>of</strong>theproposedsolutions,forinstancebytheuse<strong>of</strong>twoindustrial<br />
casestudies. Developmentusingproduct-lineprinciplesplaysanimportantroleinChapters4<strong>and</strong>7.<br />
Automationusing MDEisthedominant<br />
concerninthefinalfourcorechapters.Inallthesecasestheexperiments<br />
are conducted using the Atlas Transformation Language [Jouault <strong>and</strong><br />
Kurtev,2005](ATL).<br />
1.5 Origin<strong>of</strong>Chapters<br />
ExceptforChapter2,thechaptersinthisthesisappearedbeforeasrefereedpublicationsininternationaljournals,<strong>and</strong>proceedings<strong>of</strong>conferences<br />
<strong>and</strong>workshops.Apartfromtheintroduction(substantiallyextended)<strong>and</strong><br />
Chapter6(majorrevision)onlyminorchangeswereappliedbeforeinclusioninthisthesis.Theorigin<strong>of</strong>thisthesis’schaptersisasfollows:<br />
Chapter1Graaf,Bas.<strong>Model</strong>-drivenevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.In<br />
Proceedings<strong>of</strong>the11 th EuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong>Reengineering(CSMR2007),pages357–360.IEEE<br />
ComputerSociety,2007
14 Chapter1. Introduction<br />
Chapter3Graaf,Bas,MarcoLormans,<strong>and</strong>HansToetenel.Embeddeds<strong>of</strong>twareengineering:Thestate<strong>of</strong>thepractice.<br />
IEEES<strong>of</strong>tware,<br />
20(6):pages61–69,2003;<strong>and</strong><br />
Graaf,Bas,MarcoLormans,<strong>and</strong>HansToetenel.S<strong>of</strong>twaretechnologiesforembeddedsystems:Anindustryinventory.InProceedings<strong>of</strong>the4<br />
th InternationalConferenceonProductFocused<br />
S<strong>of</strong>twareProcessImprovement(PROFES2002),volume2559<strong>of</strong><br />
LectureNotesinComputerScience,pages453–465.Springer-<br />
Verlag,2002<br />
Chapter4Graaf,Bas,HylkevanDijk,<strong>and</strong>ArievanDeursen.Evaluating<br />
anembeddeds<strong>of</strong>twarereferencearchitecture–industrialexperiencereport.InProceedings<strong>of</strong>the9<br />
th EuropeanConferenceon<br />
S<strong>of</strong>twareMaintenance<strong>and</strong>Reengineering(CSMR2005),pages<br />
354–363.IEEEComputerSociety,2005<br />
Chapter5VanDijk,HylkeW.,BasGraaf,<strong>and</strong>RobBoerman. Onthesystematicconformancecheck<strong>of</strong>s<strong>of</strong>twareartefacts.InProceedings<br />
<strong>of</strong>the2 nd EuropeanWorkshoponS<strong>of</strong>twareArchitecture(EWSA<br />
2005),volume3047<strong>of</strong>LectureNotesonComputerScience,pages<br />
203–221.Springer-Verlag,2005<br />
Chapter6Graaf,Bas<strong>and</strong>ArievanDeursen. <strong>Model</strong>-drivenconsistency<br />
checking<strong>of</strong>behaviouralspecifications.InProceedings<strong>of</strong>the4 th<br />
InternationalWorkshopon<strong>Model</strong>-basedMethodologiesforPervasive<strong>and</strong>EmbeddedS<strong>of</strong>tware(MOMPES2007),pages115–<br />
126.IEEEComputerSociety,2007a<br />
Chapter7Graaf,Bas,SvenWeber,<strong>and</strong>ArievanDeursen. <strong>Model</strong>-driven<br />
migration<strong>of</strong>supervisorymachinecontrolarchitectures.Journal<br />
<strong>of</strong>Systems<strong>and</strong>S<strong>of</strong>tware,2007. Doi:10.1016/j.jss.2007.06.007;<br />
<strong>and</strong><br />
Graaf,Bas,SvenWeber,<strong>and</strong>ArievanDeursen. Migratingsupervisorycontrolarchitecturesusingmodeltransformations.InProceedings<strong>of</strong>the10thEuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong>Reengineering(CSMR2006),pages151–160.IEEE<br />
ComputerSociety,2006<br />
Chapter8Graaf,Bas<strong>and</strong>ArievanDeursen. Visualisation<strong>of</strong>domainspecificmodellinglanguagesusingUML.<br />
InProceedings<strong>of</strong>the<br />
14 th AnnualIEEEInternationalConference<strong>and</strong>Workshopon<br />
theEngineering<strong>of</strong>ComputerBasedSystems(ECBS2007),pages<br />
586–595.IEEEComputerSociety,2007c
1.5. Origin<strong>of</strong>Chapters 15<br />
Furthermore,ourresearchhasresultedinthefollowingpublications<br />
thatarenotdirectlyincludedinthisthesis:<br />
•Graaf,Bas<strong>and</strong>ArievanDeursen. UsingMDEforgenericcomparison<strong>of</strong>views.<br />
InProceedings<strong>of</strong>the4 th InternationalWorkshopon<br />
<strong>Model</strong>Design,Verification<strong>and</strong>Validation(MoDeVVa2007),pages57–<br />
66.INRIA,2007b<br />
•Spanjers,Hans,MaartenterHuurne,DanBendas,BasGraaf,Marco<br />
Lormans,<strong>and</strong>RinivanSolingen. Toolsupportfordistributeds<strong>of</strong>twareengineering.<br />
InProceedings<strong>of</strong>the1 st InternationalConference<br />
onGlobalS<strong>of</strong>twareEngineering(ICGSE2006),pages187–198.IEEE<br />
ComputerSociety,2006<br />
•Doyle,Duncan,HansGeers,BasGraaf,<strong>and</strong>ArievanDeursen. Migrating<br />
a domain-specific modeling language to MDA technology.<br />
In Proceedings <strong>of</strong> the 3 rd International Workshop on Metamodels,<br />
Schemas,Grammars,<strong>and</strong>OntologiesforReverseEngineering(ateM<br />
2006),number1/2006inMainzerInformatik-Berichte,pages47–54.<br />
JohannesGutenberg-UniversitätMainz,2006<br />
•Cornelissen,Bas,BasGraaf,<strong>and</strong>LeonMoonen.Identification<strong>of</strong>variationpointsusingdynamicanalysis.<br />
InProceedings<strong>of</strong>the1 st InternationalWorkshoponReengineeringtowardsProductLines(R2PL<br />
2005),pages9–13.2005
Chapter2<br />
Background<br />
Inthischapterweelaborateonsome<strong>of</strong>theconceptsbrieflyintroducedin<br />
Chapter1. Inparticular,wediscusss<strong>of</strong>twareevolution,s<strong>of</strong>twarearchitecture,<strong>and</strong>model-drivenengineeringinthelight<strong>of</strong>theresearchquestions<br />
weposedpreviously.<br />
2.1 S<strong>of</strong>tware<strong>Evolution</strong><br />
Engineeringdisciplinesaretypicallybasedonuniversal,scientificlaws<strong>and</strong><br />
principles.Alsointhediscipline<strong>of</strong>s<strong>of</strong>twareengineeringanumber<strong>of</strong>such<br />
lawshavebeendiscovered.Endres<strong>and</strong>Rombach[2003]giveanoverview.A<br />
few<strong>of</strong>themostwidelyacknowledgedlawsweredefinedbyLehman[1978]<br />
<strong>and</strong>areconcernedwiththechange<strong>of</strong>s<strong>of</strong>twaresystemsovertime:s<strong>of</strong>tware<br />
evolution.Theyarebasedonempiricalobservations.Thefirsttwo<strong>of</strong>these,<br />
so-called,laws<strong>of</strong>s<strong>of</strong>twareevolutiondynamicsarestatedinTable2.1on<br />
thefollowingpage.<br />
ThegraphinFigure2.1onthenextpageillustratesbothlawsbyplottingameasureforsizeagainstameasureforcomplexity<strong>of</strong>embedded<br />
copiers<strong>of</strong>twaredevelopedbyOcé. Itshowsatrend<strong>of</strong>increasingsize<strong>and</strong><br />
complexityforthesubsequent(i.e.,intime)revisions<strong>of</strong>thes<strong>of</strong>tware.<br />
S<strong>of</strong>twareevolvesbecause<strong>of</strong>variousreasons.Thes<strong>of</strong>twaresystems(programs)referredtointhes<strong>of</strong>twareevolutionlawsare,forinstance,affected<br />
bychangesintherealityreflectedintheirspecification[Lehman,1980].<br />
Suchchangesarecausedbychangesinstakeholderobjectivesortothe<br />
environment. Anexample<strong>of</strong>theformerareadditionalormodifiedstakeholderrequirements.<br />
Anexample<strong>of</strong>thelatter,inthecase<strong>of</strong>embedded<br />
systems,arechangestohardware. Asaresponseas<strong>of</strong>twaresystemrequiresadaptivemaintenance.Obviously,theusefulness<strong>of</strong>as<strong>of</strong>twaresystemdecreasesifsuchmaintenancetasksarenotperformed.<br />
Othertypes<br />
17
18 Chapter2. Background<br />
Table 2.1:FirsttwoLaws<strong>of</strong>S<strong>of</strong>tware<strong>Evolution</strong>[Lehman,1978]<br />
I Law<strong>of</strong>ContinuingChange<br />
A large program that is used undergoes continuing change or becomes<br />
progressively less useful. The change process continues until it is<br />
judged more cost-effective to replace the system with a recreated version.<br />
II Law<strong>of</strong>IncreasingComplexity<br />
As a large program is continuously changed, its complexity, which reflects<br />
deteriorating structure, increases unless work is done to maintain<br />
or reduce it.<br />
Figure 2.1:Complexityvs.sizeforsubsequentrevisions<strong>of</strong>copiers<strong>of</strong>tware[Sonnenberg,2005]
2.1. S<strong>of</strong>tware<strong>Evolution</strong> 19<br />
<strong>of</strong>maintenancetasksarecorrective(removal<strong>of</strong>bugs)orperfective(optimisingperformanceormaintainability)[Swanson,1976;IEEE-1219,1998]<br />
<strong>and</strong>alsocauses<strong>of</strong>twaretoevolve. Thefirstlawstatesthatsuchchanges<br />
continueuntilitbecomesmorecost-effectivetoreplaceasystem.However,<br />
development<strong>of</strong>replacementsystemstypicallywillnotstartfromscratch,<br />
<strong>and</strong>significantparts<strong>of</strong>thealreadyexistings<strong>of</strong>twarewillbereused. As<br />
such,thes<strong>of</strong>twarecontinuestoevolve.<br />
Implicitly,thefirstlawisbasedontheassumptionthatchangebecomes<br />
moreexpensiveoverthelifetime<strong>of</strong>as<strong>of</strong>twaresystembystatingthatat<br />
somepointreplacementbecomesmorecost-effectivethanmakingchanges.<br />
Thisismadeexplicitinthesecondlaw.Itdescribestheunfortunateconsequence<strong>of</strong>continualchange:s<strong>of</strong>twaresystemsbecomeprogressivelymore<br />
complexovertime.Inthislaw,complexitydoesnotrefertocomputational<br />
complexity,buttotheeffortrequiredtounderst<strong>and</strong>theinnerworkings<strong>of</strong><br />
as<strong>of</strong>twaresystem.Foralargepartthiseffortdependsonthestructure<strong>of</strong><br />
thes<strong>of</strong>tware[Lehman,1978],thatis,itscomponents<strong>and</strong>theirrelations.<br />
Aschangerequiresunderst<strong>and</strong>ing,aconsequence<strong>of</strong>increasedcomplexity<br />
isthatitmakesas<strong>of</strong>twaresystemmoredifficulttochange.<br />
Therearevariousexplanations<strong>of</strong>thislaw<strong>of</strong>increasingcomplexity.Although,intheory,itmightbepossibletomakechangestos<strong>of</strong>twaresystemswithoutdeterioratingitsstructure,practiceisdifferent.Inindustrials<strong>of</strong>twareprojects,theusers<strong>and</strong>customers<strong>of</strong>as<strong>of</strong>twaresystemaremainlyconcernedwithitsoperation(e.g.,performance,functionality),<strong>and</strong>notwithitsstructure.Thismakesitdifficultforthedevelopmentorganisationtojustifylongerlead-time<strong>of</strong>changerequestsbecause<strong>of</strong>structuralpreservation<strong>and</strong>recovery.Moreover,theeffects<strong>of</strong>sucheffortsarenotmeasurableimmediatelyafterchangesaremade,butareonlylong-term;theydecrease<br />
theeffortrequiredforsubsequentchanges[Lehman,1978]. Eventually,<br />
asthisprocess<strong>of</strong>increasingcomplexitycontinues,itbecomesinfeasible<br />
tomakeevensmallchangestothes<strong>of</strong>tware. Then,asystemneedstobe<br />
replaced.<br />
VanDeursen[2005]proposedtwopossiblestrategiestodealwiththese<br />
laws: 1)postponethemomentatwhichasystemneedstobereplaced<br />
asmuchaspossiblebyapplyingtechniquestomanageitsever-increasing<br />
complexity;<strong>and</strong>2)applytechniquestorestoretheoriginalstructureorimposeanewstructureonthes<strong>of</strong>twaresystem.<br />
ConsideringtheresearchquestionsposedinChapter1,weinvestigate<br />
inthisthesishow<strong>and</strong>bytheuse<strong>of</strong>whichtechnologiesthesetwostrategies<br />
canbesupported. Tothisendweconsiderhowspecifications<strong>of</strong>s<strong>of</strong>tware<br />
structurecanbeevaluated<strong>and</strong>manipulated.Furthermore,totakeintoaccountthecomplexity<strong>of</strong>s<strong>of</strong>twaresystemsweinvestigatetowhatextentthis<br />
canbeautomated.Asanexample,techniquestodeterminetheconsistency<br />
<strong>of</strong>differentdevelopmentartefacts,discussedinChapters5<strong>and</strong>6,helpto
20 Chapter2. Background<br />
managecomplexity;techniquestoautomatethemigration<strong>of</strong>as<strong>of</strong>tware<br />
architecture,discussedinChapter7,helptoimposeanewstructure.<br />
Wealreadystatedthatas<strong>of</strong>twaresystem’scomplexityisstronglyrelatedtoitsstructure(seeLehman’ssecondlaw,Table2.1onpage18).The<br />
subfield<strong>of</strong>s<strong>of</strong>twareengineeringthatstudiess<strong>of</strong>twarestructureiscalled<br />
s<strong>of</strong>twarearchitecture. Theideabehinds<strong>of</strong>twarearchitectureisthatcomplexitycanbemanagedbyapplyingseparation<strong>of</strong>concerns<strong>and</strong>abstraction.<br />
ThisisdiscussedinSection2.2.<br />
Anotherwaytomanagecomplexityistheuse<strong>of</strong>automation. <strong>Model</strong>drivenengineering(MDE)isanapproachtos<strong>of</strong>twaredevelopmentbasedonautomation(<strong>and</strong>abstraction).WithMDEapplicationsaregeneratedautomaticallybymeans<strong>of</strong>modeltransformationsthattransformabstracts<strong>of</strong>twaremodelsintosourcecode.MDEisdiscussedinSection2.3.InthisthesisweemployMDEtechniquestosupporttheevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.WeconcludethischapterinSection2.4byexplaining<br />
thatduetoaconceptualoverlapMDEtechniquesareparticularlysuitedfor<br />
thispurpose.<br />
2.2 Architecture-<strong>Driven</strong>S<strong>of</strong>twareDevelopment<br />
2.2.1 S<strong>of</strong>twareArchitecture<br />
Thedevelopment<strong>of</strong>as<strong>of</strong>twaresysteminvolvesalargenumber<strong>of</strong>designdecisionsthateventuallyleadtoanexecutablespecification<strong>of</strong>itsbehaviour,<br />
typicallyintheform<strong>of</strong>sourcecode. Foralongtime,ithasbeenrealised<br />
(e.g.,byDijkstra[1968],Parnas[1972]<strong>and</strong>Brooks,Jr[1975])that,nextto<br />
behaviour,itpays<strong>of</strong>ftobealsoconcernedwithas<strong>of</strong>twaresystem’sstructure<strong>and</strong>organisationforreasons<strong>of</strong>dependability,underst<strong>and</strong>ability,<strong>and</strong><br />
maintainability. Therefore,forlargesystems,thesedesigndecisionsnot<br />
onlyconsiderthebehaviour,butalsothestructures<strong>of</strong>thes<strong>of</strong>twaresystem.<br />
Thekeyprinciplesonwhichthedesign<strong>of</strong>s<strong>of</strong>twarearchitecturesisbased<br />
areseparation<strong>of</strong>concerns[Dijkstra,1974]<strong>and</strong>abstraction.<br />
Because<strong>of</strong>thecomplexity<strong>of</strong>s<strong>of</strong>twaresystems,multiplelevels<strong>of</strong>abstractionarenecessarytoensuredesignsremaincomprehensible.<br />
This<br />
givesrisetoseveraltypes<strong>of</strong>design. Usually,atleasttwolevels<strong>of</strong>designaredistinguished.<br />
Detaileddesigninvolvesthedecisionsrelatedto,<br />
forinstance,datastructures<strong>and</strong>algorithms.Atahigherlevel<strong>of</strong>abstraction,designiscalleds<strong>of</strong>twarearchitecturedesign[Garlan<strong>and</strong>Shaw,1993],<br />
whichisone<strong>of</strong>thekeytopics<strong>of</strong>thisthesis.<br />
Itisdifficulttocapturethenotion<strong>of</strong>s<strong>of</strong>twarearchitectureinasingle<br />
definition. Asanexample,theS<strong>of</strong>twareEngineeringInstitute[2006]collectedmanydefinitions.Perry<strong>and</strong>Wolf[1992]provideamodel<strong>of</strong>s<strong>of</strong>tware
2.2. Architecture-<strong>Driven</strong>S<strong>of</strong>twareDevelopment 21<br />
architectureconsisting<strong>of</strong>elements,form,<strong>and</strong>rationale. Themodeldistinguishesbetweenthreetypes<strong>of</strong>(design)elements:processing,data,<strong>and</strong><br />
connectingelements.Formincludestherelationshipsamongtheelements<br />
<strong>of</strong>anarchitecture.Rationaleprovidesthemotivationforthedecisionsthat<br />
yieldaparticularset<strong>of</strong>elements<strong>and</strong>form.Thethreeaspects<strong>of</strong>thismodel<br />
fors<strong>of</strong>twarearchitecturecanbefoundinvariousdefinitionsfors<strong>of</strong>tware<br />
architectureusedbylaterresearch(<strong>and</strong>practice).<br />
Garlan<strong>and</strong>Shaw[1993]enumerateaset<strong>of</strong>issuess<strong>of</strong>twarearchitecturesareconcernedwiththatincludesgrossorganisation,globalcontrolstructure,communicationprotocols,<strong>and</strong>assignment<strong>of</strong>functionalitytodesignelements.<br />
Amorerecentdefinition<strong>of</strong>s<strong>of</strong>twarearchitecturecanbefoundinIEEE-<br />
1471[2000]:<br />
Thefundamentalorganisation<strong>of</strong>asystemembodiedinitscomponents,<br />
theirrelationshipstoeachother,<strong>and</strong>totheenvironment,<strong>and</strong>theprinciples<br />
guidingitsdesign<strong>and</strong>evolution.<br />
Thisdefinitionnotonlyincludescomponents(elements)<strong>and</strong>theirrelations,butalsoprinciples,referringto,forinstance,theuse<strong>of</strong>aparticular<br />
architecturalstyle(seeSection2.2.3)ortheuse<strong>of</strong>particularconventions<br />
duringdesign<strong>and</strong>maintenance<strong>of</strong>as<strong>of</strong>twaresystem.<br />
AnalternativedefinitionthatisfrequentlyusedisgivenbyBassetal.<br />
[2003]:<br />
Thes<strong>of</strong>twarearchitecture<strong>of</strong>aprogramorcomputingsystemisthestructureorstructures<strong>of</strong>thesystem,whichcomprises<strong>of</strong>twareelements,theexternallyvisibleproperties<strong>of</strong>thoseelements,<strong>and</strong>therelationshipsamong<br />
them.<br />
This definition acknowledges the now common underst<strong>and</strong>ing that<br />
thereisnosuchthingasthestructure<strong>of</strong>as<strong>of</strong>twaresystem<strong>and</strong>thatdifferenttypes<strong>of</strong>structurescanbeusedtodescribethearchitecture<strong>of</strong>asingle<br />
system.<br />
Kruchten[1998]statesthats<strong>of</strong>twarearchitectureencompassesaset<strong>of</strong><br />
significantdecisionsregardingsystemorganisation,selection<strong>of</strong>elements,<br />
theircomposition,<strong>and</strong>selection<strong>of</strong>anarchitecturalstyletoguidethesedecisions.Inthisdefinition,architectureisthusconsideredasaset<strong>of</strong>decisions,aperspectivefurtherexploredbyJansen[2005].<br />
Insummary,s<strong>of</strong>twarearchitecturecanbeunderstoodinatleasttwo<br />
differentways:1)asaset<strong>of</strong>(architectural)designdecisions,or2)asthe<br />
structurethatistheresult<strong>of</strong>thosedecisions. Inthisthesisweoptfor<br />
thelatter,sinceweonlyconsiders<strong>of</strong>twarestructuresasprescribedbyan<br />
architecturespecificationorasimplementedinsourcecode.<br />
Unfortunately,throughtheuse<strong>of</strong>adjectiveslike“significant”,“fundamental”,“gross”,<strong>and</strong>“global”thedefinitionscitedabovedonotcompletely<br />
clarifywhichparts<strong>of</strong>adesignarearchitectural<strong>and</strong>whichpartsarenot.
22 Chapter2. Background<br />
Moreover,ifas<strong>of</strong>twarearchitectureisaset<strong>of</strong>architecturaldesigndecisions,howdowedeterminewhetheradesigndecisionisarchitectural?<br />
Edenetal.[2006]clarifythisbyprovidingacriterionthatcanbeapplied<br />
todesignstatements.Themathematicallydefinedlocalitycriterionstates<br />
thatadesignstatementislocalifthesystemtowhichitappliescannotbe<br />
madetoviolateitbymereexpansion.<strong>Architectures</strong>tatementsaredefined<br />
tobelongtotheclass<strong>of</strong>non-localstatements.Forinstance,thelayeredarchitecturalstyle<strong>of</strong>as<strong>of</strong>twaresystemcanbeviolatedbysimplyexp<strong>and</strong>ingone<strong>of</strong>thelayerswithacomponentthatinteractswithcomponentsinnonadjacentlayers.<br />
Hence,decisionsregardingstylearearchitectural. Conversely,adesignpatterncannotbeviolatedbyonlyexp<strong>and</strong>ingasystem.<br />
Thus,decisionsregardingdesignpatternsarenotarchitectural.<br />
Despitetheprecisedefinitiondiscussedabove,architectureisarelative<br />
conceptbecause<strong>of</strong>themultiplelevels<strong>of</strong>abstractionatwhichs<strong>of</strong>twaredesigncanbeconsidered.Whatisarchitecturaldependson,amongstothers,<br />
thelevel<strong>of</strong>abstractionthatisconsidered[Monroeetal.,1997;Clements<br />
etal.,2002a]:whatisconsidereddetaileddesignfromamoreabstractlevel<br />
canbeconsideredarchitecturalfromalessabstractlevel.<br />
Fromourcollaborationswithindustryitbecameclearthatinpractice,<br />
architectureis‘defined’differently. There,differentsets<strong>of</strong>decisionsare<br />
consideredtobearchitectural,forinstance,theearliest(intime)decisions,<br />
thedecisionsthataremostdifficult(expensive)tochangelateron,orsimplythedecisionstakenbythes<strong>of</strong>twarearchitect.<br />
Althoughthesesets<br />
mightbeslightlydifferent,inthisthesiswewillassumetheycoincide,takingthepoint<strong>of</strong>view(asstatedabove)thatanarchitectureistheresult<strong>of</strong><br />
suchdecisions.<br />
2.2.2 S<strong>of</strong>twareArchitectureUsage<br />
So,whyisitimportanttoconsiders<strong>of</strong>twarearchitectureasaseparatetype<br />
<strong>of</strong>design?Bassetal.[2003]mentionafewreasons.First,itallowstoset<br />
aparttheglobaldesigndecisions,thatis,thosethataffectmultiplecomponents,<strong>and</strong>henceneedtobecommunicatedtoallinvolveddeveloperstoensuretheconceptualintegrity[Brooks,Jr,1975]<strong>of</strong>thesystemunderdevelopment.<br />
Second,asdesigndecisionsaffects<strong>of</strong>twarequalityattributes,as<strong>of</strong>tware<br />
architectureallowsforearlyqualityassessment<strong>of</strong>(tobedeveloped)s<strong>of</strong>twaresystems.Infact,thes<strong>of</strong>twarearchitectureisthefirstdesignartefact<br />
createdinas<strong>of</strong>twareprojectthatallowsforsuchassessments.<br />
Finally,s<strong>of</strong>twarearchitecturesenablethereuse<strong>of</strong>s<strong>of</strong>twaresolutions.<br />
Bydocumentingas<strong>of</strong>twarearchitecturethedesigndecisionsitcaptures<br />
canbetransferredtoothersystems,forinstance,whensimilarqualityattributerequirementsneedtobefulfilled.
2.2. Architecture-<strong>Driven</strong>S<strong>of</strong>twareDevelopment 23<br />
Thesemotivationsforconsiderings<strong>of</strong>twarearchitecturedesignasaseparatephaseinthes<strong>of</strong>twaredevelopmentprocess,alsoillustratestheimportance<strong>of</strong>s<strong>of</strong>twareevolutiononthearchitecturallevel.Ifs<strong>of</strong>twareiscontinuouslyevolvedonlowerabstractionlevels,phenomenasuchasarchitecture<br />
drift<strong>and</strong>erosion[Perry<strong>and</strong>Wolf,1992](seealsoChapter1),decreasethe<br />
possibility<strong>of</strong>usingthes<strong>of</strong>twarearchitectureinthewaysdescribed.Atthat<br />
point,restoration<strong>of</strong>theintendedarchitectureormigrationtoanewarchitecture,again,bringsthebenefits<strong>of</strong>conceptualintegrity,earlyassessment<br />
<strong>of</strong>designdecisions,<strong>and</strong>reuse.<br />
Withrespecttotheprecedingdiscussionons<strong>of</strong>twarearchitecturethis<br />
thesispositionss<strong>of</strong>twarearchitectureinterms<strong>of</strong>structure<strong>and</strong>architecturalelements.Moreover,consideringtheimportance<strong>of</strong>s<strong>of</strong>twarestructurefors<strong>of</strong>twareevolution(seeSection2.1),weinvestigatehowtouse<strong>and</strong>manipulates<strong>of</strong>twarearchitecturesforthes<strong>of</strong>twareevolutiontasksweidentifiedinSection1.1.<br />
2.2.3 S<strong>of</strong>twareArchitectureDesign<br />
Thegoal<strong>of</strong>s<strong>of</strong>twarearchitecturedesignistodefinetheconstraintsforsubsequentdesign<strong>and</strong>implementationactivitiesthatresultinthedevelopment<strong>of</strong>asystemthatfulfilsitsfunctional<strong>and</strong>otherqualitygoals.Assuch,<br />
as<strong>of</strong>twarearchitectureisbothpermissive<strong>and</strong>restrictivewithrespectto<br />
thedecisionstakeninsubsequentactivities[Perry<strong>and</strong>Wolf,1992].<br />
Basedonexistingdesign<strong>and</strong>evaluationmethods,Kazmanetal.[2006]<br />
formulatethreeprinciplesthatareusefultounderst<strong>and</strong>howarchitectural<br />
constraintsaredefined: 1)anarchitectureshouldbedefinedinterms<strong>of</strong><br />
elementsthatarecoarseenoughforhumanintellectualcontrol<strong>and</strong>specificenoughformeaningfulreasoning,2)businessgoalsdeterminequality<br />
attributerequirements,<strong>and</strong>3)qualityattributerequirementsguidethe<br />
design<strong>and</strong>analysis<strong>of</strong>s<strong>of</strong>twarearchitectures.<br />
Similartootherengineeringdisciplines,theactualdesign<strong>of</strong>s<strong>of</strong>tware<br />
largelyremainsacreativeactivity. Consequently,thesuccess<strong>of</strong>s<strong>of</strong>tware<br />
projectsforalargepartdependsontheexperience<strong>and</strong>skills<strong>of</strong>thes<strong>of</strong>tware<br />
architects. Althoughs<strong>of</strong>twarearchitectureevaluationmethodscanhelp<br />
architectstoassessthequality<strong>of</strong>feredbythearchitecturetheydefined,<br />
suchmethodscanonlybeappliedafterithasbeendesigned.Weintroduce<br />
thesemethodsinSection2.2.5.<br />
Toalsoprovideguidanceduringthedesignprocessitself,theanalysis<br />
<strong>and</strong>codification<strong>of</strong>experiencesbycategorisingproblemtypes<strong>and</strong>recording<br />
<strong>and</strong>generalisingsuccessful(byexperience)solutions,is<strong>of</strong>greatimportance<br />
fors<strong>of</strong>twarearchitecturepractice.S<strong>of</strong>twarearchitecturalstyles,sometimes<br />
alsoreferredtoasarchitecturalpatterns,aresuchcodifications.
24 Chapter2. Background<br />
Anarchitecturalstyleisaset<strong>of</strong>constraintsthatisimposedonthearchitecture<strong>of</strong>systemsthatarebasedonthatstyle.<br />
Assuch,anarchitectural<br />
styledefinesaset<strong>of</strong>architectures. Theconstraintsdefinedbyastylenot<br />
onlylimitthetype<strong>of</strong>architecturalelements<strong>and</strong>theirpossibleconnections,<br />
butalsodictatehowtheirsemanticsshouldbeinterpreted[Abowdetal.,<br />
1993].Shaw<strong>and</strong>Garlan[1996]<strong>and</strong>Buschmannetal.[1996],amongstothers,providecollections<strong>of</strong>sucharchitecturalstyles.Thedefinition<strong>of</strong>architecturalstylesprovidesasharedvocabularyfors<strong>of</strong>twarearchitects.Furthermore,itencouragesresearcherstostudytheproperties<strong>of</strong>particular<br />
stylesinterms<strong>of</strong>qualityattributes.Thisgiveswaytoarchitecturedesign<br />
(<strong>and</strong>evaluation)approachesthatarebasedontheselection<strong>of</strong>appropriatestylesforthedesiredqualityattributes<strong>of</strong>asystem,suchasdescribed<br />
byKleinetal.[1999]<strong>and</strong>byBosch[2000].<br />
Eachstyleoptimisesadistinctset<strong>of</strong>qualityattributes.Inpracticethis<br />
impliestheapplication<strong>of</strong>multiplearchitecturalstylesforthedevelopment<br />
<strong>of</strong>asingles<strong>of</strong>twaresystem. Asaresult,multiplerepresentations<strong>of</strong>such<br />
anarchitectureareconceivable;eachclarifyingaspecificstyle.<br />
2.2.4 S<strong>of</strong>twareArchitectureDescription<br />
Toeffectivelyuse(e.g.,forevaluationormaintenance)thedecisionsthat<br />
compriseas<strong>of</strong>twarearchitectureinnon-trivialprojects,itisrequiredthat<br />
thesedecisionsaredocumentedinausefulway.Forthedescription<strong>of</strong>s<strong>of</strong>twarearchitectureswedistinguishbetweenapproachesbasedon:1)architecturedescriptionlanguages(ADLs)(seeMedvidovic<strong>and</strong>Taylor[1997]for<br />
anoverview),<strong>and</strong>2)views[IEEE-1471,2000].<br />
Alargenumber<strong>of</strong>ADLshavebeendeveloped(mainlybytheresearch<br />
community).Typically,suchADLs<strong>of</strong>feraformalsyntax<strong>and</strong>semanticsfor<br />
thedescription<strong>of</strong>s<strong>of</strong>twarearchitecturesinterms<strong>of</strong>runtimecomponents<br />
(computationalelements)<strong>and</strong>connectors(abstractionsforcomponentinteraction)[Medvidovic<strong>and</strong>Taylor,1997].<br />
Assuch,theyallowtocreate<br />
precisedescriptions<strong>of</strong>oneaspect<strong>of</strong>as<strong>of</strong>twaresystem(i.e.,itsruntime<br />
structure<strong>and</strong>behaviour). Because<strong>of</strong>theformality<strong>of</strong>suchdescriptions,<br />
theycanbeusedtoautomateseverals<strong>of</strong>twareengineeringtasks,suchas<br />
codegeneration<strong>and</strong>verification.<br />
The‘viewsapproach’ontheotherh<strong>and</strong>allowsformorebroaddescriptions<strong>of</strong>s<strong>of</strong>twarearchitecture.Asdiscussedbefore,designcanbeconsideredondifferentlevels<strong>of</strong>abstraction.However,wecanalsoconsiderdesignwithdifferenttypes<strong>of</strong>abstractions.Assuch,aparticularviewmight<br />
onlyconsiderruntime,whichistypicallythecasewithADLs,oronlydesign<br />
timeaspects<strong>of</strong>as<strong>of</strong>twaresystem. Thetypes<strong>of</strong>abstractionactuallyused<br />
canvary<strong>and</strong>aredeterminedbywhatisimportantforaparticulars<strong>of</strong>tware<br />
project.
2.2. Architecture-<strong>Driven</strong>S<strong>of</strong>twareDevelopment 25<br />
Viewsarebasedontheideathatas<strong>of</strong>twarearchitectureistoocomplex<br />
tobedescribedinasinglestroke,orbyonetype<strong>of</strong>abstraction(thatiswhy<br />
wetalkedaboutstructures(plural)before).Multipleviewsarerequiredto<br />
completelydescribe<strong>and</strong>documentas<strong>of</strong>twarearchitecture. Each<strong>of</strong>those<br />
viewsaddressesaspecificset<strong>of</strong>concerns[IEEE-1471,2000]. Theguidelinesforcreatingviewsaredefinedinso-calledviewpoints,oneforevery<br />
type<strong>of</strong>view.Severalsets<strong>of</strong>thoseviewpointshavebeendefined[Kruchten,<br />
1995;H<strong>of</strong>meisteretal.,1999;Clementsetal.,2002a].<br />
Comparedtothe‘ADLapproach’this‘viewsapproach’ismoreadoptedby<br />
industry[Kruchtenetal.,2006],whereaviewtypicallyisadocumentthat<br />
consists<strong>of</strong>somemodelsordiagrams<strong>and</strong>explainingtext,<strong>and</strong>islessformal<br />
thanADL-typedescriptions<strong>of</strong>s<strong>of</strong>twarearchitecture.Whencomparingthe<br />
twoapproaches,itcanbeconcludedthattheADL-approachasinvestigated<br />
bytheresearchcommunityfocusesonin-depthdescription<strong>of</strong>s<strong>of</strong>twarearchitectures,whiletheviews-approachasusedbyindustryfocusesonbroad<br />
description<strong>of</strong>s<strong>of</strong>twarearchitectures[Medvidovicetal.,2002].<br />
Finally,wespecificallymentiontheUnified<strong>Model</strong>ingLanguage 1 (UML).<br />
Although UMLwasoriginallyintendedasalanguageforobject-oriented<br />
modelling<strong>of</strong>systems,ithasbeenusedforarchitecturedevelopmentaswell<br />
(see,forinstance,Chapter3<strong>and</strong>Langeetal.[2006]).Tosomeextentitcan<br />
beusedasanADL[Medvidovicetal.,2002]. Furthermore,UMLdiagrams<br />
are<strong>of</strong>tenusedinarchitectureviews.<br />
Inthisthesis,wemanipulatedifferenttypes<strong>of</strong>architecturalviewsto<br />
supports<strong>of</strong>twareevolution.Insomecases,wealsopartlydemonstratethe<br />
definition<strong>of</strong>newADLs.Asanexample,inChapter5wetransformonetype<br />
<strong>of</strong>viewintoanothertochecktheconsistency<strong>of</strong>behaviouralspecifications<br />
<strong>of</strong>s<strong>of</strong>twareembeddedinthecopiersdevelopedbyOcé.<br />
2.2.5 S<strong>of</strong>twareArchitectureEvaluation<br />
Animportantreasonforexplicitlyconsiderings<strong>of</strong>twarearchitectureasa<br />
separatetype<strong>of</strong>designactivityordocument,isthatitconstitutesthefirst<br />
opportunityfortheprediction<strong>of</strong>properties<strong>of</strong>thesystemunderdevelopment.Wedistinguishbetweentwotypes<strong>of</strong>propertiesorqualities<strong>of</strong>asystem:operationalproperties<strong>and</strong>development(i.e.,non-operational)properties[Bosch,2000].<br />
Thefirsttypeincludesthosepropertiesthatcanbe<br />
measuredbyobservingthesysteminoperation,suchasfunctionality,performance,reliability.Non-operationalproperties,ordevelopmentpropertiesinvolvethedevelopment<strong>of</strong>thesystem,suchas,maintainability,modifiability,portability,developmentcost<strong>and</strong>effort.<br />
1 http://www.uml.org(June2007)
26 Chapter2. Background<br />
Fortheprediction<strong>of</strong>thesepropertiesdifferenttypes<strong>of</strong>approacheshave<br />
beendeveloped[Bosch,2000]. Approachesbasedonmathematicalmodels,suchasrate-monotonicanalysis[Liu<strong>and</strong>Layl<strong>and</strong>,1973]<strong>and</strong>model<br />
checking[Clarke,Jr.etal.,1999],arebestusedforanalysis<strong>of</strong>operational<br />
properties<strong>of</strong>thesystem. ADLsarealsobasedonsuchmodels. Onthe<br />
otherh<strong>and</strong>,scenario-basedapproachessuchas,theS<strong>of</strong>twareArchitecture<br />
AnalysisMethod(SAAM)[Kazmanetal.,1996],theArchitectureTrade<strong>of</strong>f<br />
AnalysisMethod[Clementsetal.,2002b](ATAM),<strong>and</strong>architecture-level<br />
modifiabilityanalysis[Bengtssonetal.,2004](ALMA)(seealsoDobrica<br />
<strong>and</strong>Niemelä[2002]foranoverview<strong>of</strong>scenario-baseds<strong>of</strong>twarearchitecture<br />
analysismethods),arebettersuitedfortheanalysis<strong>of</strong>developmentproperties.Theseapproachesusescenariostomakequalityattributerequirementsconcreteafterwhichthearchitectureisevaluatedforitssupport<br />
fortheidentifiedscenarios.Suchapproachescanbeused,forinstance,to<br />
assessthemaintainability<strong>of</strong>as<strong>of</strong>twaresystem.<br />
InChapter4<strong>of</strong>thisthesiswewillexperimentwithsuchanapproachfor<br />
thescenario-basedevaluation<strong>of</strong>themaintainability<strong>of</strong>s<strong>of</strong>twareembedded<br />
inthecopiersdevelopedbyOcé.<br />
2.2.6 S<strong>of</strong>twareProductLines<br />
One<strong>of</strong>themostimportantpromises<strong>of</strong>theuse<strong>of</strong>architecturalprinciples<br />
forthedevelopment<strong>of</strong>s<strong>of</strong>twaresystemsisthepotentialincrease<strong>of</strong>reuse.<br />
Thisnotonlyincludesreuse<strong>of</strong>designdecisionsbycapturingbestpractices<br />
inarchitecturalstyles,butalso<strong>of</strong>architecturalbuildingblocksbyexplicitly<br />
definingwhatsuchcomponentshaveto<strong>of</strong>fer<strong>and</strong>whattheyrelyon(i.e.,<br />
theirexternalvisibleproperties).<br />
Thelatteruse,however,turnedouttobeproblematicinpracticebecausesomedegree<strong>of</strong>variationistypicallyrequired[Garlanetal.,1995].<br />
Toalsoaccountforvariation<strong>and</strong>notonlyforcommonalities,sets<strong>of</strong>similar<br />
s<strong>of</strong>twareproductscanbeviewedass<strong>of</strong>twareproductfamiliesorproduct<br />
lines.<br />
Aproductlineencompassesawholerange<strong>of</strong>productsthathavemuchin<br />
common.Bydevelopingsuchproductsasas<strong>of</strong>twareproductline[Clements<br />
<strong>and</strong>Northrop,2002]theircommonalities<strong>and</strong>variabilitiesaremadeexplicitinaproduct-linearchitecture.Thedevelopment<strong>of</strong>individualproductsisreducedtobindingthevariationpointsdefinedintheproduct-line<br />
architecturetospecificinstances,thatis,ifallvariabilityismadeexplicit<br />
intheproduct-linearchitecture.<br />
As<strong>of</strong>twareproductlineinvolvesthedevelopment<strong>of</strong>product-lineassets,<br />
suchasaproduct-linearchitecture,reusablecomponents,<strong>and</strong>product-line<br />
members. Theassetsthatapplytotheproductlineasawholearedevelopedinaprocessreferredtoasdomainengineering.Product-linemembers
2.3. <strong>Model</strong>-<strong>Driven</strong>Engineering 27<br />
aredevelopedinaprocesscalledapplicationengineering.<br />
Aproductlinecanbeorderedalongamaturityscalebyconsideringits<br />
(domain)scope,theextentthatcommonalities<strong>and</strong>variabilityaremade<br />
explicit,<strong>and</strong>bindingtime<strong>of</strong>itsvariationpoints[Bosch,2002].Afirststep<br />
onthisscaleisthedefinition<strong>of</strong>allcommonalities<strong>and</strong>theirimplementation<br />
asa(domain-specific)s<strong>of</strong>twareplatform. Product-linemembersarethen<br />
builtontop<strong>of</strong>thatplatform.<br />
Boththesystemsthatarethesubject<strong>of</strong>ourindustrialcasestudies(the<br />
ASMLwaferscanners<strong>and</strong>Océcopiers)aredevelopedusingproduct-line<br />
principles.<br />
2.3 <strong>Model</strong>-<strong>Driven</strong>Engineering<br />
Tohidethestructural<strong>and</strong>behaviouralcomplexity<strong>of</strong>s<strong>of</strong>twareplatforms,<br />
approachestos<strong>of</strong>twaredevelopmenthavebeenintroducedthatarereferred<br />
toasmodel-drivenengineering(MDE)[Schmidt,2006]. WithMDEmodels<br />
arecentralinstead<strong>of</strong>code. Theideaistodevelops<strong>of</strong>twarebytransformingabstractmodelsintomoreconcretemodels<strong>and</strong>eventuallyintocode<br />
thattypicallyrunsontop<strong>of</strong>as<strong>of</strong>twareplatform. Suchtransformations<br />
arereferredtoasmodeltransformations. Becausethesetransformations<br />
areautomated,weareparticularlyinterestedinMDEtechnologiesforthe<br />
support<strong>of</strong>thes<strong>of</strong>twareevolutiontaskswedefined.Furthermore,bothMDE<br />
<strong>and</strong>s<strong>of</strong>twarearchitecturesarebasedonabstractions.<br />
Some<strong>of</strong>thebasicideasbehindMDE,thatis,development<strong>of</strong>s<strong>of</strong>tware<br />
byaseries<strong>of</strong>modeltransformations<strong>and</strong>separation<strong>of</strong>functionalspecificationsfromthetechnicaldetails<strong>of</strong>aspecificplatform,areverysimilartothat<strong>of</strong>stepwiserefinementproposedbyWirth[1971].ManytopicsrelatedtoMDEhavebeenextensivelystudiedbytheresearchcommunity:<br />
s<strong>of</strong>twarereuse[Krueger,1992],generativeprogramming[Horowitz<br />
etal.,1985;Cleavel<strong>and</strong>,1988;Czarnecki<strong>and</strong>Eisenecker,2000],transformationalprogramming[Partsch<strong>and</strong>Steinbrüggen,1983],domain-specificlanguages[VanDeursenetal.,2000;Merniketal.,2005],<strong>and</strong>environments<strong>and</strong>approachesfordevelopment<strong>of</strong>suchlanguages[Klint,1993;Van<br />
Deursenetal.,1996].<br />
Foralargepartthedevelopment<strong>of</strong>currentMDEapproaches,however,<br />
hasbeendrivenbyindustry.Severalimplementations<strong>of</strong>theMDEconcept<br />
areinusetoday.Oftenthesearebasedonproprietaryinfrastructurethat<br />
includesdomain-specific(modelling)languages, applicationframeworks,<br />
codegenerators,<strong>and</strong>modelrepositories(see,e.g.,Doyleetal.[2006]).<br />
Additionally, a set <strong>of</strong> industry st<strong>and</strong>ards for MDE has been defined
28 Chapter2. Background<br />
Metamodel<br />
<strong>Model</strong><br />
System<br />
conforms to<br />
represented by<br />
Figure 2.2:Fundamentalrelationsbetweensystem,model,<strong>and</strong>metamodel[Bézivin,2005]<br />
bytheObjectManagementGroup 1 (OMG)underthename<strong>Model</strong><strong>Driven</strong><br />
Architecture 2 (MDA)<strong>and</strong>numeroustoolsnowsupportpart<strong>of</strong>thesest<strong>and</strong>ards.<br />
Other,non-MDAtoolsareavailablethatalsosupport MDE,such<br />
as Micros<strong>of</strong>t’s Domain-Specific Language Tools based on the approach<br />
byGreenfieldetal.[2004]. Itistheavailability<strong>of</strong>thesest<strong>and</strong>ards,supportingtools,<br />
<strong>and</strong>reusables<strong>of</strong>twareplatformsthatmakesthatcurrent<br />
MDEapproachesgeneratemuchmoreindustrialmomentumthanearlier,<br />
relatedefforts[Schmidt,2006].<br />
Onlyrecently,theresearchcommunityhasstartedinvestigatingthe<br />
fundamentalprinciplesbehindMDE[Bézivinetal.,2007].Thefoundations<br />
for MDEareabstraction(modelling)<strong>and</strong>automation(modeltransformations)[Sendall,2003;Schmidt,2006].<br />
<strong>Model</strong>ling<strong>and</strong>thedefinition<strong>of</strong>the<br />
requiredmodellinglanguagesusing,so-called,metamodelsarebasedon<br />
theconcepts<strong>and</strong>relationsdepictedinFigure2.2. Theyarefundamental<br />
forMDE<strong>and</strong>arethereforeintroducedbrieflyinthefollowingsections.<br />
2.3.1 <strong>Model</strong>ling<br />
Seidewitz[2003]definesamodelasaset<strong>of</strong>statementsaboutasystemunderstudy.Othershaveproposedsimilardefinitionsthataddthatamodel<br />
hasaspecificpurpose[Bézivin<strong>and</strong>Gerbé,2001;OMG,2007a]. Amodel<br />
canbeusedeitherdescriptivelytodetermineproperties<strong>of</strong>asystem,or<br />
prescriptivelyasaspecification<strong>of</strong>asystemtobebuilt[Seidewitz,2003].<br />
Therelationbetweenamodel<strong>and</strong>thesystemunderstudyisreferredtoas<br />
represented by<strong>and</strong>wasdepictedinFigure2.2.<br />
ForMDEapproachestobebeneficialtheinvolvedmodelsshouldbeeasiertocreate<strong>and</strong>underst<strong>and</strong>thanthesystemstheyrepresent,<strong>and</strong>atthe<br />
1 http://www.omg.org(June2007)<br />
2 http://www.omg.org/mda(June2007)
2.3. <strong>Model</strong>-<strong>Driven</strong>Engineering 29<br />
sametimepowerfulenoughto,forexample,generatesourcecode<strong>and</strong>performassessments[Bézivin,2005].Thisrequiresthatmodelsleaveoutdetailsthatareirrelevantfortheirpurpose.Thissimplification(orabstraction)istheessence<strong>of</strong>modelling[Bézivin<strong>and</strong>Gerbé,2001].<br />
Strictlyspeaking,sourcecodeisalsoamodel[Mens<strong>and</strong>VanGorp,2006]<br />
that,withMDE,isthetarget<strong>of</strong>amodeltransformation.Inpractice,however,code<strong>and</strong>modelsare<strong>of</strong>tenconsideredtobedifferenttypes<strong>of</strong>artefacts.<br />
Typically,ins<strong>of</strong>twareengineeringpractice<strong>and</strong>inparticularinthecontext<br />
<strong>of</strong>MDEsomethingisconsideredtobeamodelifithasagraphicalrepresentationinstead<strong>of</strong>onlyatextualoneasinthecaseforsourcecode[Mellor<br />
etal.,2003;Bézivin,2006].<br />
Kleppeetal.[2003]addanotherelementtothedefinition<strong>of</strong>amodelby<br />
statingthatamodeliswritteninawell-definedlanguage. Thus,forthe<br />
creation<strong>of</strong>modelsmodellinglanguagesarerequired. Basicallytwotypes<br />
<strong>of</strong>suchlanguagesexist: general-purposelanguages(GPLs)<strong>and</strong>domainspecificlanguages(DSLs).<br />
UMLisanexample<strong>of</strong>alanguageintheMDA<br />
framework<strong>of</strong>theformertype.Itisappliedinmanydifferentdomains<strong>and</strong><br />
formanydifferentpurposes. Thelattertype<strong>of</strong>languagesis<strong>of</strong>tenspecificallydefined.<br />
Inthisthesisthes<strong>of</strong>twareevolutiontaskswedefinedareappliedto<br />
modelsasinthecontext<strong>of</strong>MDE. Tothisend,wenotonlyuseUML,but<br />
also(domain-specific)languageswedefinedourselvesusingtheMetaObject<br />
Facility 1 (MOF),themetamodellinglanguagedefinedbytheOMG.<br />
2.3.2 Metamodelling<br />
WithMDE,themodellinglanguagesusedtocreatemodelsaredefinedby<br />
metamodels. Ametamodelisagraphcomposed<strong>of</strong>concepts<strong>and</strong>theirrelationships.Fromausageperspectiveametamodeldetermineswhichaspects<strong>of</strong>asystemwillbemodelledinacorrespondingmodel[Bézivin,2006].<br />
Ametamodelisamodelitself,thatis,amodel<strong>of</strong>alanguage.Assuch,a<br />
metamodelis,inturn,createdusingamodellinglanguage.Themetamodel<br />
usedtodefinethismetamodellinglanguageisreferredtoasthemetametamodel.<br />
Thismetametamodelisdefinedreflectivelybyusingthelanguage<br />
itdefinesitself.Thisyieldsalayeredstructure(architecture)<strong>of</strong>modelsas<br />
depictedinFigure2.3onthenextpagethatistypicalforMDEapproaches.<br />
Itisbasedonthetw<strong>of</strong>undamentalrelations(represented by<strong>and</strong> conforms to)<br />
<strong>and</strong>concepts(system<strong>and</strong> model)<strong>of</strong>Figure2.2. ForstructuresasinFigure2.3onthenextpagethatmodelMDEconcepts,suchassystem,model,<br />
<strong>and</strong>metamodel,thetermmegamodelwasintroduced[Bézivinetal.,2005;<br />
Favre,2005b].<br />
1 http://www.omg.org/m<strong>of</strong>(June2007)
30 Chapter2. Background<br />
conforms to<br />
conforms to<br />
represented by<br />
Metametamodel<br />
Metamodel<br />
<strong>Model</strong><br />
System<br />
conforms to<br />
model world<br />
real world<br />
Figure 2.3:LayeredMDEmodellingstack<br />
Therelationbetweenamodelelement<strong>and</strong>acorrespondingmetamodel<br />
element(i.e.,onahighermodellevel)hastobedistinguishedfromthe<br />
instance-<strong>of</strong>relationthatexistsbetweenatype<strong>and</strong>aninstance<strong>of</strong>thattype<br />
withinthesamemodellinglevel.Inpracticetheseare<strong>of</strong>tenconfused.Asan<br />
example,considerFigure2.4. Themetamodelisasimplifiedfragment<strong>of</strong><br />
theUMLmetamodel.Itdefinesamodellinglanguagethatallowstocreate<br />
modelsconsisting<strong>of</strong>objects<strong>and</strong>classesthatcanberelatedtoeachotherby<br />
the instance-<strong>of</strong>relation.Thesemetamodelelementscanbeusedtocreatea<br />
model<strong>of</strong>someapplication,forinstance,todefineaClass Person<strong>and</strong>aninstance<strong>of</strong>that<br />
Class: Object joe.Boththerelationsbetween Class<strong>and</strong> Person<br />
<strong>and</strong> Person<strong>and</strong> joeare instance-<strong>of</strong>relations.However,theyare<strong>of</strong>adifferent<br />
nature. Therefore,Atkinson<strong>and</strong>Küne[2003]distinguishbetweenalinguistic(between<br />
Class<strong>and</strong> Person)<strong>and</strong>anontological(between Person<strong>and</strong><br />
joe)instance-<strong>of</strong>relation.Similarly,Bézivin<strong>and</strong>Gerbé[2001]usesadifferenttermforthelinguisticinstance-<strong>of</strong>relationbyreferringtoitasmeta.<br />
Notethatthe conforms torelationdepictedinFigure2.3effectivelysummarisesmetarelationsbetweenindividualmodel<strong>and</strong>metamodelelements:<br />
amodelconformstoametamodelif<strong>and</strong>onlyifallitsmodelelementshave<br />
ametarelationwithanelementdefinedinthatmetamodel[Bézivin,2006].<br />
Favre[2005a]usessettheorytoexplainthatthe conforms torelation<br />
betweenamodel<strong>and</strong>itsmetamodelisactuallyaderivedrelationasillustratedbyFigure2.5.<br />
Ifweconsideramodellinglanguageastheset<strong>of</strong><br />
modelsexpressedinthatlanguage,therelationbetweenamodel<strong>and</strong>the<br />
modellinglanguageisthe element <strong>of</strong>relationfromsettheory.Whenwealso<br />
considerthemodellinglanguageasthesystemunderstudy,themodelling<br />
languageis,inturn,relatedtothemetamodelbythe represented byrelation.
2.3. <strong>Model</strong>-<strong>Driven</strong>Engineering 31<br />
metamodel<br />
model<br />
Class<br />
instance−<strong>of</strong><br />
Object<br />
+ class<br />
instance−<strong>of</strong><br />
instance−<strong>of</strong><br />
Person joe : Person<br />
instance−<strong>of</strong><br />
Figure 2.4:Metamodel<strong>and</strong>conformingmodel<br />
element <strong>of</strong><br />
Language<br />
<strong>Model</strong><br />
represented by<br />
conforms to<br />
Metamodel<br />
Figure 2.5:ConformstorelationinMDE<br />
instance−<strong>of</strong>
32 Chapter2. Background<br />
In the case <strong>of</strong> MDA, MOF is the metametamodel. MOF defines the<br />
(meta)modelelementsnecessarytodefinemodellinglanguages,suchas,<br />
class,association,<strong>and</strong>constraint. Metamodellingissimilartodatamodelling<strong>and</strong>objectmodelling.<br />
Assuch, MOFmodelsaresimilartoentityrelationshipmodels[Chen,1976]<strong>and</strong>,inparticular,toUMLclassmodels.<br />
Similarlytogrammars, MOFisusedtodefinetheabstractsyntax<strong>of</strong><br />
modellinglanguages,thatis,thestructure<strong>of</strong>correspondingmodels. As<br />
anexample,theUMLmetamodelisnowalsodefinedusingMOF. Where,<br />
with(context-free)grammars,theabstractsyntaxdefinesaset<strong>of</strong>abstract<br />
syntaxtrees,aMOFmetamodeldefinesaset<strong>of</strong>abstractsyntaxgraphs.In<br />
contrastwithgrammars,MOFcannotbeusedtodefinetheconcretesyntax,<br />
thatis,thenotation,<strong>of</strong>amodellinglanguage. Inthecase<strong>of</strong>UML,forinstance,thenotationsusedinthedifferentdiagramsaredefinedseparately.<br />
InChapter8,weproposealight-weightsolutiontothisproblem.<br />
Severalimplementations<strong>of</strong> MOFexist. Theseallowthedefinition<strong>of</strong><br />
metamodels <strong>and</strong> the creation <strong>of</strong> conforming models in the Extensible<br />
MarkupLanguage 1 (XML)orasobjectsinmemory. Suchimplementationsareused,forinstance,forthedevelopment<strong>of</strong>modeltransformation<br />
tools. Asanexample,theEclipse<strong>Model</strong>ingFramework 2 (EMF)isapluginforEclipse<br />
3 thatisbasedonMOF. GivenametamodelEMFgenerates<br />
animplementation<strong>of</strong>thatmetamodel(inJava)thatcanbeextendedto<br />
developtoolsbasedonthatmetamodel,suchasamodeleditor.<br />
ForaparticularMDEapproachthemetamodellinglanguagecanbeused<br />
todefineawholeclass<strong>of</strong>modellinglanguages.Havingasinglemetamodellinglanguagealsoenablesthedevelopment<strong>of</strong>modeltransformationlanguages<strong>and</strong>supportingtools.<br />
Inseveral<strong>of</strong>thisthesis’chapterswecreatedmetamodels.InChapter6,<br />
forinstance,wedefinedasimplemodellinglanguagetorepresentmodularisationconstructs,suchasclass<strong>and</strong>module;inChapter7,wedefinedametamodelforthespecification<strong>of</strong>task-resourcemodelsforcontrolcomponentsinmanufacturingmachines.<br />
2.3.3 <strong>Model</strong>Transformations<br />
<strong>Model</strong>transformationsareessentialtoMDE[Gerberetal.,2002;Sendall,<br />
2003]. Atransformationdefinitiondescribesmappingsortransformation<br />
rulestotransformelements<strong>of</strong>asourcemodelintoelements<strong>of</strong>atarget<br />
model[Kleppeetal.,2003].Oftenmodeltransformationlanguagesuseex-<br />
1 http://www.w3.org/XML(June2007)<br />
2 http://www.eclipse.org/emf(June2007)<br />
3 Eclipseisawidely-used,freely-available,open-sourceintegrateddevelopmentenvironment,seehttp://www.eclipse.org(June2007)
2.3. <strong>Model</strong>-<strong>Driven</strong>Engineering 33<br />
conforms to<br />
conforms to<br />
Metamodel<br />
+ source<br />
<strong>Model</strong><br />
Metametamodel<br />
conforms to<br />
TransformationMetamodel<br />
+ source<br />
Transformation<strong>Model</strong><br />
Transformation<br />
conforms to<br />
Metamodel<br />
+ target<br />
represented by<br />
<strong>Model</strong><br />
Figure 2.6:<strong>Model</strong>transformationmegamodel<br />
conforms to<br />
conforms to<br />
+ target<br />
pressionsintheObjectConstraintLanguage 1 (OCL)toselecttheelements<br />
inthesourcemodeltotransform.OCLisadeclarativelanguage,originally<br />
developedtospecifyconstraintsoverUMLmodels.<br />
TheMDEpatternormegamodelformodeltransformationsisdepicted<br />
inFigure2.6[Bézivinetal.,2005]. WithMDEaTransformationbetweena<br />
source<strong>and</strong>target <strong>Model</strong>isdefinedbyatransformationlanguage. When<br />
thislanguageisdefinedbyaTransformation<strong>Model</strong>Metamodel,thetransformationdefinitionisinfactamodelitself.<br />
This Transformation<strong>Model</strong>specifies<br />
transformations<strong>of</strong>sourceintotargetmodelsinterms<strong>of</strong>the Metamodels<br />
they conform to. Incorrespondencewiththemetamodellingmegamodelin<br />
Figure2.3onpage30,allinvolvedmetamodels conform toasingle Metametamodel.<br />
Atransformationengine(automatically)transformssourcemodelsthat<br />
conformtothesourcemetamodelintotargetmodelsthatconformtothe<br />
targetmetamodelasdescribedinthetransformationdefinition. Assuch,<br />
transformationenginesrequireseveralinputs:sourcemodel,sourcemetamodel,targetmetamodel,<strong>and</strong>transformationdefinition.<br />
Many different types <strong>of</strong> model transformations <strong>and</strong> model transformationlanguagesareconceivable.<br />
Sendall[2003];Czarnecki<strong>and</strong>Helsen<br />
[2006];<strong>and</strong>Mens<strong>and</strong>VanGorp[2006]eachgiveanumber<strong>of</strong>properties<br />
<strong>of</strong>modeltransformationlanguages. Theseincludethetype<strong>and</strong>number<br />
<strong>of</strong>source<strong>and</strong>targetmodels,horizontalvs. verticaltransformations(with<br />
respecttoabstractionlevel),type<strong>of</strong>notation(e.g.,graphicalvs. textual),<br />
source-targetrelationship(newvs.in-place),<strong>and</strong>manymore.<br />
1 http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL(June2007)
34 Chapter2. Background<br />
Class<strong>Model</strong> + classes<br />
1..*<br />
+ attributes * * + operations<br />
Attribute<br />
Operation<br />
−name :String<br />
−visibility :String<br />
Class<br />
−name :String<br />
−name :String<br />
Figure 2.7:Ametamodelforsimpleclassmodels<br />
ATL: amodeltransformationlanguage InthisthesiswemainlyusetheAtlasTransformationLanguage[Jouault<strong>and</strong>Kurtev,2005](ATL)tospecifymodeltransformations.Although,ATLisprimarilyadeclarativemodel<br />
transformationlanguage(basedonOCL),italsohasimperativefeatures.<br />
AnimportantreasonsforusingATLisitsimplementationinatoolkitthat<br />
includesaneditor,debugger<strong>and</strong>transformationenginethatisfreelyavailable.Furthermore,thistoolkitintegrateswithEMF<strong>and</strong>other(UML)tooling.Thisallowstheuse<strong>of</strong>UMLmodelsaswellasmodelsbasedoncustom<br />
(MOF-based)metamodels.Here,webrieflyintroduceATL 1 asanexample<strong>of</strong><br />
amodeltransformationlanguage.<br />
Asillustrativeexample,wediscussthetransformationinListing2.1<br />
thataddsgetters<strong>and</strong>setterstoasimpleclassmodel.Figure2.7depictsa<br />
metamodelforsimpleclassmodels. Itcontainsarootelement Class<strong>Model</strong><br />
thatownsanynumber<strong>of</strong> classes. Inturn,aClass,ownsanumber<strong>of</strong> attributes<strong>and</strong><br />
operations. Class, Attribute,<strong>and</strong> Operationallhaveanamefeature.<br />
Additionally,an Attributealsohasafeature visibility.<br />
<strong>Model</strong>transformationsarespecifiedinanATLModulethatiscomposed<br />
<strong>of</strong>aheader,transformationrules<strong>and</strong>so-calledhelpers. AsinListing2.1,<br />
theheaderspecifiesthenamesforthesourcemodels(IN),targetmodels<br />
(OUT),<strong>and</strong>metamodels(CLASSM)thatareusedinthedefinition<strong>of</strong>transformationrules<strong>and</strong>helpers.<br />
AdeclarativetransformationruleiscalledamatchedruleinATL. It<br />
specifiesasource<strong>and</strong>targetpattern,indicatedbythefrom<strong>and</strong>toblocks,<br />
respectively.Thesourcepatternspecifiesthetype<strong>of</strong>modelelementsthat<br />
arematchedbytherule.Optionally,thesourcepatternmayspecifyaguard<br />
intheform<strong>of</strong>aBooleanOCLexpressionthatfurtherconstraintstheset<br />
<strong>of</strong>elementsthatarematched. Forinstance,inthe PrivateAttributerule<br />
(lines31–40),thesourcepattern(a_in)specifiesthattherulematcheselements<strong>of</strong>type<br />
Attributeforwhichthe privatehelperevaluatestotrue.<br />
1 Please,consulttheATLUserManual[ATLASgroup]formoredetailedinformation
2.3. <strong>Model</strong>-<strong>Driven</strong>Engineering 35<br />
1module ADDGETSET;<br />
2create OUT : CLASSM from IN : CLASSM;<br />
3<br />
4helper context CLASSM!Attribute def: isPrivate: Boolean =<br />
5 self.visibility = ’private’;<br />
6<br />
7rule Class<strong>Model</strong> {<br />
8 from cm_in:CLASSM!Class<strong>Model</strong><br />
9 to<br />
10 cm_out:CLASSM!Class<strong>Model</strong> (is<br />
11 classes union(c_in.attributes->select(a|a.isPrivate)->collect(a|<br />
thisModule.resolveTemp(a,’set’)))<br />
23 )<br />
24}<br />
25rule Attribute {<br />
26 from a_in:CLASSM!Attribute (not a_in.private)<br />
27 to<br />
28 a_out:CLASSM!Attribute (<br />
29 name
36 Chapter2. Background<br />
Thetargetpattern<strong>of</strong>atransformationrulemayconsist<strong>of</strong>multipletargetpatternelements.Eachelementspecifiesthecreation<strong>of</strong>amodelelementinthetargetmodel.<br />
Atargetpatternelementspecifiesthetype<strong>of</strong><br />
thecreatedelement<strong>and</strong>aset<strong>of</strong>bindingsthatspecifieshowthefeatures<br />
<strong>of</strong>thecreatedmodelelementwillbeinitialised.The PrivateAttributerule<br />
createsthreeelementsinthetargetmodelbyitstargetpatternelements:<br />
anAttribute(a_out)<strong>and</strong>twoOperations(get<strong>and</strong>set).Theirbindingsrefer<br />
tothematchedsourcemodelelement(a_in)toinitialisethe namefeature<strong>of</strong><br />
thecreatedtargetmodelelements.<br />
WithATL,thesourcemodelisread-only<strong>and</strong>thetargetmodeliswriteonly.Toinitialisethefeatures<strong>of</strong>targetmodelelements,theATLtransformationengineappliesaspecificvalueresolutionalgorithm.Whenthetype<br />
<strong>of</strong>theexpression<strong>of</strong>abindingisaprimitivetype(e.g., c_in.nameinline18)<br />
orwhenitsvalueisanothertargetpatternelement<strong>of</strong>thesamerule,itis<br />
simplyassigned.Whenthevalueisa(set<strong>of</strong>)sourcemodelelement(s)itis<br />
firstresolvedintoatargetmodelelement(e.g., c_in.attributesinline19).<br />
Effectively,thetargetmodelelementcreatedbytherulethatmatchesthe<br />
sourcemodelelementspecifiedinthebinding’sexpressionisassigned.<br />
Inthecasethatthematchingrulespecifiesmultipletargetpatternelementsthedefault(i.e.,thefirst)targetpatternelementisused.Whenthis<br />
isnotdesirable,ATL<strong>of</strong>fersthe resolveTempoperationthatcanbeusedto<br />
resolvesourcemodelelementsusingnon-defaulttargetpatternelements.<br />
Tothisend,ittakesthesourcemodelelementtoberesolved<strong>and</strong>thename<br />
<strong>of</strong>thetargetpatternelementasparameters.<br />
Asanexample,weexplainhowtheoperationsfeature<strong>of</strong>atargetClass<br />
isinitialisedbythe Classruleinlines20–22. Usingst<strong>and</strong>ardOCLoperationstheexpression<strong>of</strong>thebindingsspecifiestheunion<strong>of</strong>theoperations<br />
alreadypresentinthematchingClass(c_in.operations)<strong>and</strong>thegetters<br />
<strong>and</strong>settersgeneratedforprivateAttributes. Wespecifythegettersby<br />
firstselectingfromallattributes<strong>of</strong>thematchingClass(c_in.attributes)<br />
thosethatareprivateusingone<strong>of</strong>OCL’siterators(->select(a|a.isPrivate<br />
)). Subsequently,fortheresultingAttributeswecollectthecreatedtargetelementsusingthe<br />
’get’targetpatternelement<strong>of</strong>thematchingrule<br />
(->collect(a|thisModule.resolveTemp(a,’get’).Wespecifythecreatedsetterssimilarly.Ahelpermaybedefinedinthecontext<strong>of</strong>somesourcemetamodelelement.Assuch,iteffectivelyaddsafeaturetosuchanelement.Forexample,the<br />
isPrivatehelper(lines4–5)isdefinedinthecontext<strong>of</strong>Attributes.<br />
ItevaluatestotrueforeveryAttributeforwhichitsvisibilityfeatureisset<br />
tothestring ’private’. Thishelperisanexample<strong>of</strong>aso-calledattribute<br />
helper. Suchhelpersdonottakeparameters<strong>and</strong>areevaluatedonlyonce<br />
foreverysourcemodelelement.Operationhelpers,ontheotherh<strong>and</strong>,may<br />
takeparameters<strong>and</strong>havetobeevaluateduponeachcall.Finally,byomit-
2.3. <strong>Model</strong>-<strong>Driven</strong>Engineering 37<br />
tingthecontextfromthedefinition<strong>of</strong>ahelperitisdefinedinthecontext<strong>of</strong><br />
thetransformationmoduleasawhole,whichisrepresentedbythebuilt-in<br />
thisModuleelement.<br />
Inadditiontothe(declarative)featuresexplainedabove,ATL<strong>of</strong>fersa<br />
number<strong>of</strong>additionalfeaturesthatweonlymentionbriefly. Nexttothe<br />
simpletargetpatternelementsinListing2.1thatgenerateasingletargetmodelelement,iterativetargetpatternelementsthatiterateoversome<br />
collectioncanbeusedtocreateawholeset<strong>of</strong>targetmodelelementsfora<br />
singlematchingsourcemodelelement.ATLalso<strong>of</strong>fersimperativefeatures<br />
thatmakeitpossibletoaddimperativeinstructionstomatchedrules.Finally,apartfrommatchedrules,itispossibletodefine(imperative)rulesthatarenotmatchedbysourcemodelelements,butthatarecalledexplicitly.Assuch,thesecalledrulesdonothaveasourcepattern.<br />
2.3.4 MDE<strong>and</strong>OtherTechnologicalSpaces<br />
Asdiscussedabove,abstraction<strong>and</strong>automationaremadepossibleinMDE<br />
bytheuse<strong>of</strong>metamodels. However,othersolutionsexistaswell. Asan<br />
example,modellinglanguagescanalsobedefinedusinggrammarsorXML<br />
schemas. ThelayeredstructuredepictedinFigure2.3onpage30canbe<br />
recognisedwhenusingthesealternativesaswell,forinstance,inthecase<br />
<strong>of</strong>grammars,EBNFisonthemetametamodellevel,grammarsareonthe<br />
metamodellevel,<strong>and</strong>programsonthemodellevel.<br />
Suchdifferenttypes<strong>of</strong>solutionseachcomewithawholecontext<strong>of</strong>concepts,abody<strong>of</strong>knowledge,requiredskills,<strong>and</strong>possibilities.Kurtevetal.<br />
[2002]coinedthetermtechnologicalspaceforsuchacontext.Assuch,the<br />
MDEspaceincludesmodels,metamodels,modeltransformations,modelling<br />
tools<strong>and</strong>transformationlanguages.Thisspaceisalsoreferredtoasmodelware.Similarly,thegrammarspace,orgrammarware[Klintetal.,2005],includesprograms,programminglanguages,grammars,parsers,<strong>and</strong>programtransformationsystems(e.g.,V<strong>and</strong>enBr<strong>and</strong>etal.[2001];Visser<br />
[2004]). Otherrecognisedtechnologicalspacesarebasedon XMLorontologies,forinstance.Specificoperationsonaparticulartype<strong>of</strong>modelsmightbemoreconvenientinonetechnologicalspacethanintheother.<br />
Forthisreasonit<br />
canbenecessarytocreateabridgebetweendifferenttechnologicalspaces.<br />
InChapter6,forinstance,weusedabridgebetweenthemodelware<strong>and</strong><br />
grammarwaretechnologicalspacetovisualiseMDAmodelsusingagraph<br />
visualisationtoolthathasagrammar-basedinputlanguage.<br />
AnotherbridgethatisveryimportanttoMDAisXMLMetadataInterchange<br />
1 (XMI). Thisbridgemakesitpossibletoserialisemodelsbasedon<br />
1 http://www.omg.org/mda/specs.htm#XMI(June2007)
38 Chapter2. Background<br />
abstraction type<br />
abstraction level<br />
evolution<br />
Figure 2.8:Three-dimensionalevolutionframework<br />
MOFmetamodelsas XMLdocuments. Assuch, XMIisusedtoexchange<br />
modelsbetweentools,forinstance,betweenmodelling<strong>and</strong>transformation<br />
tools.<br />
Inthisthesiswemainlyusetechnologiesrelatedto MDA, OMG’ssolution<br />
to MDE. It is a set <strong>of</strong> st<strong>and</strong>ards that includes capabilities for<br />
modelling(e.g., UML),metamodelling(MOF),<strong>and</strong>modeltransformations<br />
(Query/View/Transformation[OMG,2005](QVT)). Theadvantage<strong>of</strong>such<br />
st<strong>and</strong>ards is that they make it worthwhile for tool vendors to develop<br />
toolsthatsupportMDAtechnology[Boochetal.,2004],suchasArcStyler 1<br />
(InteractiveObjects)<strong>and</strong>Borl<strong>and</strong>Together 2 Onlywhensupportingtools<br />
areavailableaninitiativeastheMDAcanbecomeasuccessinpractice.<br />
ToolsthatsupportUMLmodellinghavebeenavailableforquitesometime,<br />
butnowalsotoolsbecomeavailablesupportingmetamodelling<strong>and</strong>model<br />
transformations 3 .<br />
2.4 <strong>Model</strong>-<strong>Driven</strong><strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong><br />
Inthisthesisweinvestigatethemodel-drivenevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.<br />
Weconcludethischapterbyexplaininginthissectionwhywe<br />
thinkthismakessense.<br />
Firstly,asexplainedinSection2.2.4,architecturesare<strong>of</strong>tendescribed<br />
usingmultipleviewseachaddressingaspecificset<strong>of</strong>concerns. Forarchitecturalviewsabstractionplaystworoles:thelevel<strong>of</strong>abstraction,<strong>and</strong><br />
thetype<strong>of</strong>abstraction,whichreferstothetype<strong>of</strong>theview(i.e.,theview-<br />
1 http://www.interactive-objects.com/products/arcstyler(September2007)<br />
2 http://www.borl<strong>and</strong>.com/us/products/together/(September2007)<br />
3 Seehttp://planetmde.org/tools(June2007)foranoverview<strong>of</strong>MDA<strong>and</strong>MDEtools.
2.4. <strong>Model</strong>-<strong>Driven</strong><strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong> 39<br />
point[IEEE-1471,2000]). Suchaviewiscentredaroundamodel. Often<br />
thisisamodelinageneralsense,thatis,itisasimplifiedrepresentation<strong>of</strong>thesystemfromaspecificperspective.Inpracticesuchamodelcan<br />
beadrawingorsketchthatisnotbasedonadefinedmodellinglanguage.<br />
InthisthesisweattempttoconsiderthosemodelsinamorespecificMDE<br />
sense,thatis,modelsconformingtoametamodel. Usingthisperspective<br />
itbecomespossibletosupportours<strong>of</strong>twareevolutiontasksbymodeltransformations.<br />
Byconsiderings<strong>of</strong>twareevolutionasdrivenbyortheresult<strong>of</strong>model<br />
transformations,webasicallyaddadimensionalongwhichmodelscanbe<br />
transformedtothetwodimensionsidentifiedinSection2.2.4(type<strong>and</strong><br />
level<strong>of</strong>abstraction). Thisresultsinathree-dimensionalframeworkwith<br />
twoabstractionaxes(onefortype<strong>and</strong>oneforlevel<strong>of</strong>abstraction)<strong>and</strong>one<br />
evolutionaxis.<strong>Model</strong>saretransformedinadevelopment(abstractionlevel)<br />
directionaswellasinan(orthogonal)evolutiondirection. Athirdaxis<br />
indicatesthedifferenttypes<strong>of</strong>abstractions(views)used(seeFigure2.8).<br />
Secondly,theuse<strong>of</strong>product-lineprinciplescanbenefitespeciallyfrom<br />
MDEapproaches[Schmidt,2006]. S<strong>of</strong>twareproductlinesaretypically(at<br />
least)basedonaplatform[Bosch,2002],aset<strong>of</strong>s<strong>of</strong>twarecomponentscommontoallproduct-linemembers.<br />
MDEapproachesareparticularlysuited<br />
tobeappliedtogeneratecodeforsuchplatformsbyapplication<strong>of</strong>model<br />
transformations. Wealsoapplythesemodeltransformationstosupport<br />
ourevolutiontasksinthecase<strong>of</strong>anevolvingproductlinearchitecture,or<br />
platform.<br />
Forthesereasonsthisthesisexplorestheevolution(discussedinSection2.1)<strong>of</strong>s<strong>of</strong>twarearchitectures(Section2.2)usingmodel-driventechniques(Section2.3).
Chapter3<br />
Embedded-S<strong>of</strong>tware Engineering:<br />
The State <strong>of</strong> the Practice 1<br />
Theembedded-s<strong>of</strong>twaremarkethasgrownveryfastthelastdecade<strong>and</strong>will<br />
continuetodosointhecomingyears. Thespecificproperties<strong>of</strong>embedded<br />
s<strong>of</strong>tware,suchashardwaredependencies,makeitsdevelopmentdifferent<br />
fromnon-embeddeds<strong>of</strong>tware. Thereforeweexpectedveryspecifics<strong>of</strong>tware<br />
developmenttechnologiestobeusedinthisdomain.Theinventoryweconductedatseveralembedded-s<strong>of</strong>tware-developmentcompaniesinEuroperemarkablyshowsthatthisisnottrue.Howevertheinventoryresultsconcerningrequirementsengineering<strong>and</strong>architecturedesignatthesecompaniesdosuggestthatthereisaneedformorespecificallyaimeddevelopmenttechnologies.Thischapterpresentstheinventoryresults<strong>and</strong>identifiespossibilitiesforfutureresearchtocustomiseexisting<strong>and</strong>developnews<strong>of</strong>tware<br />
developmenttechnologiesfortheembedded-s<strong>of</strong>twaredomain.<br />
3.1 Introduction<br />
Manyproductstodaycontains<strong>of</strong>tware(e.g.,mobiletelephones,DVDplayers,cars,aeroplanes,<strong>and</strong>medicalsystems).<br />
Because<strong>of</strong>advancementsin<br />
information<strong>and</strong>communicationtechnology,inthefutureevenmoreproductswilllikelycontains<strong>of</strong>tware.Themarketforthese‘enhanced’productsisforecastedtogrowexponentiallyinthenext10years[PROGRESS,<br />
2002]. Moreover,theseembedded-systems’complexityisincreasing,<strong>and</strong><br />
theamount<strong>and</strong>variety<strong>of</strong>s<strong>of</strong>twareintheseproductsaregrowing. This<br />
createsabigchallengeforembedded-s<strong>of</strong>twaredevelopment. Intheyears<br />
1 Thischapterwaspublishedearlieras:Graaf,Bas,MarcoLormans,<strong>and</strong>HansToetenel.<br />
Embeddeds<strong>of</strong>twareengineering:Thestate<strong>of</strong>thepractice. IEEES<strong>of</strong>tware,20(6):pages<br />
61–69,2003<br />
41
42 Chapter3. State<strong>of</strong>thePractice<br />
tocome,thekeytosuccesswillbetheabilitytosuccessfullydevelophighqualityembeddedsystems<strong>and</strong>s<strong>of</strong>twareontime.Asthecomplexity,number,<strong>and</strong>diversity<strong>of</strong>applicationsincrease,more<strong>and</strong>morecompaniesare<br />
havingtroubleachievingsufficientproductquality<strong>and</strong>timelydelivery.To<br />
optimisethetimeliness,productivity,<strong>and</strong>quality<strong>of</strong>embedded-s<strong>of</strong>twaredevelopment,companiesmustapplys<strong>of</strong>twareengineeringtechnologiesthat<br />
areappropriateforspecificsituations.<br />
Unfortunately,themanyavailables<strong>of</strong>twaredevelopmenttechnologies<br />
don’ttakeintoaccountthespecificneeds<strong>of</strong>embedded-systemsdevelopment.<br />
This development is fundamentally different from that <strong>of</strong> nonembeddedsystems.Technologiesforthedevelopment<strong>of</strong>embeddedsystemsshouldaddressspecificconstraintssuchashardtimingconstraints,limitedmemory<strong>and</strong>poweruse,predefinedhardwareplatformtechnology,<strong>and</strong>hardwarecosts.Existingdevelopmenttechnologiesdon’taddresstheirspecificimpacton,ornecessarycustomisationfor,theembeddeddomain.Nor<br />
dothesetechnologiesgivedevelopersanyindication<strong>of</strong>howtoapplythem<br />
tospecificareasinthisdomain–forexample,automotivesystems,telecommunications,orconsumerelectronics.Consequently,tailoringatechnology<br />
foraspecificuseisdifficult.Furthermore,theembeddeddomainisdriven<br />
byreliabilityfactors,costfactors,<strong>and</strong>timetomarket. So,thisembedded<br />
domainneedsspecificallytargeteddevelopmenttechnologies.<br />
Inindustry,thegeneralfeelingisthatthecurrentpractice<strong>of</strong>embeddeds<strong>of</strong>twaredevelopmentisunsatisfactory.However,changestothedevelopmentprocessmustbegradual;adirectionmustbesupplied.<br />
Toachieve<br />
this,weneedmoreinsightintothecurrentlyavailable<strong>and</strong>currentlyused<br />
methods,tools,<strong>and</strong>techniquesinindustry.<br />
Togainsuchinsight,weperformedanindustrialinventoryaspart<strong>of</strong>the<br />
S<strong>of</strong>twareEngineeringMethOdOlogieSforEmbeddedSystems 1 (MOOSE)<br />
project. MOOSEispart<strong>of</strong>theInformationTechnologyforEuropeanAdvancement<br />
2 (ITEA)programme<strong>and</strong>isaimedatimprovings<strong>of</strong>twarequality<br />
<strong>and</strong>developmentproductivityforembeddedsystems.Notonlydidwegain<br />
anoverview<strong>of</strong>whichtechnologiestheMOOSEconsortium’sindustrialpartnersuse,wealsolearntwhytheyuseordon’tusecertaintechnologies.In<br />
addition,wegainedinsightintowhatcurrentlyunavailabletechnologies<br />
mightbehelpfulinthefuture.<br />
3.2 Methods<strong>and</strong>Scope<br />
Theinventoryinvolvedsevenindustrialcompanies<strong>and</strong>oneresearchinstituteinthreeEuropeancountries(seeTable3.1).Thesecompaniesbuilda<br />
1 http://www.mooseproject.org(June2007)<br />
2 http://www.itea-<strong>of</strong>fice.org(June2007)
3.2. Methods<strong>and</strong>Scope 43<br />
Table 3.1:Inventoriedcompanies<br />
Company Products<br />
TeamArteche (Spain) Measurement, control, <strong>and</strong> protection<br />
systems for electrical substations<br />
Nokia (Finl<strong>and</strong>) Mobile networks <strong>and</strong> mobile<br />
phones<br />
Solid (Finl<strong>and</strong>) Distributed-data-management solutions<br />
VTT Electronics (Finl<strong>and</strong>) Technology services for businesses<br />
Philips PDSL (Netherl<strong>and</strong>s) Consumer electronics<br />
ASML (Netherl<strong>and</strong>s) Lithography systems for the semiconductor<br />
industry<br />
Océ (Netherl<strong>and</strong>s) Document-processing systems<br />
LogicaCMG (Netherl<strong>and</strong>s) Global IT solutions <strong>and</strong> services<br />
variety<strong>of</strong>embedded-s<strong>of</strong>twareproducts,rangingfromconsumerelectronics<br />
tohighlyspecialisedindustrialmachines. Weperformed36one-hourinterviewswiths<strong>of</strong>twarepractitioners.Therespondentswereengineers,researchers,s<strong>of</strong>twareorsystemarchitects,<strong>and</strong>managers,withvaryingbackgrounds.<br />
Togetafairoverview<strong>of</strong>thecompaniesinvolved(most<strong>of</strong>which<br />
areverylarge),weinterviewedatleastthreerespondentsatthesmaller<br />
companies<strong>and</strong>fiveorsixatthelargercompanies.Theseinterviewswere<br />
conductedintheperiodApril–October2002.<br />
Webasedtheinterviewsonanoutlinespecifyingthediscussiontopics<br />
(seeTable3.2onthefollowingpage). Tobeascompleteaspossible,itis<br />
basedonareferenceprocessmodel. Becauses<strong>of</strong>twareprocessimprovementmethodshavesucha(ideal)processmodelastheircore,weused<br />
one<strong>of</strong>them. Wechosetheprocessmodel<strong>of</strong>theBOOTSTRAPmethod[Kuvajaetal.,1994]because<strong>of</strong>itsrelativeemphasisonengineeringprocesses<br />
comparedtootherprocessmodels[Wangetal.,1999],suchasthose<strong>of</strong>the<br />
CapabilityMaturity<strong>Model</strong>[Humphrey,1989](CMM)<strong>and</strong>S<strong>of</strong>twareProcess<br />
Improvement<strong>and</strong>CapabilitydEtermination[Emametal.,1997](SPICE).<br />
BOOTSTRAP’sotheradvantageforthisinventoryisthatthe BOOTSTRAP<br />
InstitutedevelopeditwiththeEuropeans<strong>of</strong>twareindustryinmind.<br />
Foreveryinterviewwecreatedareport;weconsolidatedthereports<br />
foracompanyintoonereport. Wethenanalysedthecompanyreports<br />
fortrends<strong>and</strong>commonpractices. Finally,wewroteacomprehensivereportthat,forconfidentialityreasons,isavailableonlytoMOOSEconsortium<br />
members.Thatreportformsthebasisforthisdiscussion.
44 Chapter3. State<strong>of</strong>thePractice<br />
Table 3.2:Asample<strong>of</strong>theinterviewoutline<br />
Here are some discussion topics <strong>and</strong> questions from the outline we used<br />
for the interviews.<br />
Technology<br />
What are the most important reasons for selecting development technologies?<br />
• Impact <strong>of</strong> introducing new technologies (cost, time, <strong>and</strong> so on).<br />
• Why not use modern/different technologies?<br />
S<strong>of</strong>tware life cycle<br />
S<strong>of</strong>twarerequirementsengineering<br />
How are the requirements being gathered?<br />
• What are the different activities?<br />
• What documents are produced?<br />
• What about tool support?<br />
How are the requirements being specified?<br />
• What specification language?<br />
• What about tool support? (Consider cost, complexity, automation, training,<br />
acceptance)<br />
• What notations/diagrams?<br />
• What documents are produced?<br />
• How are documents reviewed?<br />
• What are advantages/disadvantages <strong>of</strong> followed approaches?<br />
S<strong>of</strong>twarearchitecturedesign<br />
How is the architecture specified?<br />
• What architecture description language?<br />
• What about tool support? (Consider cost, complexity, automation, training,<br />
acceptance)<br />
• Are design patterns used?<br />
• What notations/diagrams?<br />
• What documents are produced?<br />
• How are documents reviewed?<br />
• What are advantages/disadvantages <strong>of</strong> followed approaches?
3.3. Embedded-S<strong>of</strong>twareDevelopmentContext 45<br />
3.3 Embedded-S<strong>of</strong>twareDevelopmentContext<br />
Whenconsideringtheembedded-s<strong>of</strong>tware-developmentprocess,youneed<br />
tounderst<strong>and</strong>thecontextinwhichitisapplied. Afterall,mostcompaniesthatdevelopembeddeds<strong>of</strong>twaredonotsellit.<br />
Althoughatthetime<br />
<strong>of</strong>writingthisisslowlychanginginsomeindustries(e.g.,consumerelectronics,seeVanGenuchten[2007],theyprimarilysellmobilephones,CD<br />
players,lithographysystems,<strong>and</strong>otherproducts. Thes<strong>of</strong>twareinthese<br />
productsconstitutesonlyone(important)part. Embedded-s<strong>of</strong>twareengineering<strong>and</strong>otherprocessessuchasmechanicalengineering<strong>and</strong>electrical<br />
engineeringareinfactsubprocesses<strong>of</strong>systemsengineering.Coordinating<br />
thesesubprocessestodevelopqualityproductsisone<strong>of</strong>embedded-system<br />
development’smostchallengingaspects.Theincreasingcomplexity<strong>of</strong>systemsmakesitimpossibletoconsiderthesedisciplinesinisolation.Forinstance,whenlookingatcommunicationbetweendifferentdevelopmentteams,wenoticedthatbesidesverticalcommunicationlinksalong<br />
thelines<strong>of</strong>thehierarchy<strong>of</strong>architectures,horizontalcommunicationlinks<br />
existed. Verticalcommunicationoccursbetweendeveloperswhoareresponsibleforsystems,subsystems,orcomponentsatdifferentabstraction<br />
levels(e.g.,asystemarchitectcommunicatingwithas<strong>of</strong>twarearchitect).<br />
Horizontalcommunicationoccursbetweendeveloperswhoareresponsible<br />
forthesethingsatthesameabstractionlevel(e.g.,aprogrammerresponsibleforcomponentAcommunicatingwithaprogrammerresponsiblefor<br />
componentB).<br />
Still,wefoundthatsystemsengineeringwasmostlyhardwaredriven<br />
–thatis,fromamechanicaloranelectronicviewpoint. Insomecompanies,s<strong>of</strong>twarearchitectsweren’teveninvolvedindesigndecisionsatthe<br />
systemlevel. Hardwaredevelopmentprimarilydominatedsystemdevelopmentbecause<strong>of</strong>longerleadtimes<strong>and</strong>logisticaldependenciesonexternalsuppliers.Consequently,s<strong>of</strong>twaredevelopmentstartedwhenhardware<br />
developmentwasalreadyatastagewherechangeswouldbeexpensive.<br />
Hardwarepropertiesthennarrowedthesolutionspacefors<strong>of</strong>twaredevelopment.Thisresultedinsituationswheres<strong>of</strong>twareinappropriatelyfulfilledtherole<strong>of</strong>integrator;thatis,problemsthatshouldhavebeensolved<br />
inthehardwaredomainweresolvedinthes<strong>of</strong>twaredomain. Embeddeds<strong>of</strong>twaredevelopersfeltthatthiswasbecomingaseriousproblem.<br />
So,<br />
inmanycompaniesthiswaschanging;s<strong>of</strong>twarearchitectswerebecoming<br />
moreinvolvedonthesystemlevel.<br />
Dependingontheproduct’scomplexity,projectsusedsystemrequirements<br />
to design a system architecture containing multidisciplinary or<br />
monodisciplinary subsystems. (A multidisciplinary subsystem will be<br />
implementedbydifferentdisciplines; adisciplinereferstos<strong>of</strong>tware, or<br />
mechanics,orelectronics,oroptics,<strong>and</strong>soon.Amonodisciplinarysubsys-
46 Chapter3. State<strong>of</strong>thePractice<br />
Figure 3.1:Thedecomposition<strong>of</strong>theembedded-systems-developmentprocess<br />
temwillbeimplementedbyonediscipline.) Next,theprojectsallocated<br />
systemrequirementstothearchitecture’sdifferentelements<strong>and</strong>refined<br />
therequirements. Thisprocessisrepeatedforeachsubsystem. Finally,<br />
theprojectsdecomposedthesubsystemsintomonodisciplinarycomponents<br />
thatanindividualdeveloperorsmallgroups<strong>of</strong>developerscoulddevelop.<br />
Thelevel<strong>of</strong>detailatwhichdecompositionresultedinmonodisciplinary<br />
subsystemsvaried. Insomecases,thefirstdesignordecompositionstep<br />
immediatelyresultedinmonodisciplinarysubsystems<strong>and</strong>thecorrespondingrequirements.<br />
Inothercases,subsystemsremainedmultidisciplinary<br />
forseveraldesignsteps.<br />
Thisgenericembedded-systems-developmentprocessresultedinatree<br />
<strong>of</strong>requirements<strong>and</strong>designdocuments(seeFigure3.1). Eachlevelrepresentedthesystemataspecificabstractionlevel.<br />
Themorecomplexthe<br />
system,themoreevidentthisconcept<strong>of</strong>abstractionlevelswasinthedevelopmentprocess<strong>and</strong>itsresultingartefacts(forexample,requirements<br />
documentation).
3.4. RequirementsEngineeringResults 47<br />
Figure 3.2:Embedded-systems-developmentstakeholders<strong>and</strong>otherfactors<br />
IntheprocessinFigure3.1,requirementsondifferentabstractionlevelsarerelatedtoeachotherbydesigndecisions,whichwererecordedin<br />
architecture<strong>and</strong>designdocumentation. Atthesystemlevel,thesedecisionsconcernedpartitioning<strong>of</strong>thefunctional<strong>and</strong>nonfunctionalrequirementsovers<strong>of</strong>tware<strong>and</strong>hardwarecomponents.Thecriteriausedforsuchconcurrentdesign(codesign)weremostlyimplicit<strong>and</strong>basedonsystemarchitects’experience.<br />
3.4 RequirementsEngineeringResults<br />
Typically, embedded-systems development involved many stakeholders.<br />
This was most apparent during requirements engineering. Figure 3.2<br />
depictsourview<strong>of</strong>themostcommonstakeholders<strong>and</strong>otherfactors.<br />
Inrequirementsengineering’sfirstphase,thecustomerdeterminesthe<br />
functional<strong>and</strong>nonfunctionalrequirements.Dependingontheproductdomain,thecustomernegotiatestherequirementsviathemarketing<strong>and</strong><br />
salesareaordirectlywiththedevelopers.<br />
Thefirstphase’soutputistheagreedrequirementsspecification,which<br />
isadescription<strong>of</strong>thesystemthatallstakeholderscanunderst<strong>and</strong>. This<br />
documentservesasacontractbetweenthestakeholders<strong>and</strong>developers.At<br />
thispoint,wenoticedacleardifferencebetweensmall<strong>and</strong>largeprojects.<br />
Insmallprojects,thestakeholderrequirementsalsoservedasdeveloper<br />
requirements.Inlargeprojects,stakeholderrequirementsweretranslated<br />
intotechnicallyorienteddeveloperrequirements.
48 Chapter3. State<strong>of</strong>thePractice<br />
Requirementsspecifywhatasystemdoes;adesigndescribeshowto<br />
realiseasystem. S<strong>of</strong>twareengineeringtextbooksstrictlyseparatetherequirements<strong>and</strong>thedesignphases<strong>of</strong>s<strong>of</strong>twaredevelopment;inpractice,this<br />
separationislessobvious.Infact,thesmallcompanies<strong>of</strong>tenputboththe<br />
requirements<strong>and</strong>designintothesystemspecification. Thesecompanies<br />
didnotexplicitlyderives<strong>of</strong>twarerequirementsfromthesystemrequirements.<br />
Thedevelopmentprocessesinthelargercompaniesdidresultin<br />
separaterequirements<strong>and</strong>designdocumentsondifferentabstractionlevels.<br />
However,inmanycases,thesecompaniesdirectlycopiedinformation<br />
fromadesigndocumentintoarequirementsdocumentforthenextabstractionlevelinstead<strong>of</strong>firstperformingadditionalrequirementsanalysis.<br />
Forinstance,as<strong>of</strong>twarearchitecturespecification(i.e.,adesigndocument)<br />
mightlistsomecharacteristics<strong>of</strong>thecomponentsthatcomprisethearchitecture.<br />
Onthenextabstractionlevelarequirementsdocumentconcerns<br />
onlyanindividualcomponent.Oftensimplythecharacteristicsmentioned<br />
inthearchitecturespecificationareusedastherequirements,instead<strong>of</strong><br />
elaboratingthoserequirements<strong>and</strong>addingmoredetailedrequirements.<br />
3.4.1 RequirementsSpecification<br />
Requirementswereusuallyspecifiedinnaturallanguage<strong>and</strong>processed<br />
withanordinarywordprocessor.Thecompaniesnormallyusedtemplates<br />
<strong>and</strong>guidelinestostructurethedocuments.Thetemplatesprescribedwhat<br />
aspectshadtobespecified. However,notallprojectsatacompanyused<br />
these templates, so requirements specifications from different projects<br />
sometimeslookedquitedifferent.<br />
Becauseembedded-s<strong>of</strong>tware’snonfunctionalpropertiesaretypicallyimportant,weexpectedthesetemplatestoreserveasectiononnonfunctional<br />
requirementsnextt<strong>of</strong>unctionalrequirements.Thiswasn’talwaysthecase.<br />
Forexample,therequirementsspecificationdidn’talwaysexplicitlytake<br />
intoaccountreal-timerequirements.Sometimesaprojectexpressedthem<br />
inaseparatesectionintherequirementsdocuments,but<strong>of</strong>tentheywere<br />
implicit.Requirementsspecification<strong>and</strong>designalsousuallydidn’texplicitlyaddressothertypicalembedded-s<strong>of</strong>twarerequirements,suchasthose<br />
forpowerconsumption<strong>and</strong>memoryuse.<br />
Projectsthatemployeddiagramstosupportrequirementsusedmostly<br />
free-form<strong>and</strong>box-linediagramsinastylethatresemblestheUnified<strong>Model</strong>ingLanguage<br />
1 (UML),data-flowdiagrams,orothernotations. Project<br />
membersprimarilyusedgeneral-purposedrawingtoolstodrawthediagrams.<br />
Because<strong>of</strong>thelack<strong>of</strong>propersyntax<strong>and</strong>semantics,otherproject<br />
members<strong>of</strong>tenmisinterpretedthediagrams. Thiswasespeciallytruefor<br />
1 http://www.uml.org(June2007)
3.4. RequirementsEngineeringResults 49<br />
projectmembersworkinginotherdisciplinesthatemployadifferenttype<br />
<strong>of</strong>notation.<br />
UMLwasnotcommonpracticeyet,butmostcompanieswereatleast<br />
consideringitspossibilitiesforapplicationinrequirementsengineering.<br />
Usecaseswerethemost-usedUMLconstructsinthisphase.Someprojects<br />
usedsequencediagramstorealiseusecases;othersappliedclassdiagrams<br />
fordomainmodelling. However,theinterpretation<strong>of</strong>UMLnotationswas<br />
notalwaysagreedonduringrequirementsengineering. Itwasn’talways<br />
clear,forinstance,whatobjects<strong>and</strong>messagesin UMLdiagramsdenote<br />
whenasequencediagramspecifiesausecaserealisation.<br />
Onthelowestlevels,projectscommonlyusedpre-<strong>and</strong>postconditionsto<br />
specifys<strong>of</strong>twarerequirements.Theyspecifiedinterfacesaspre-<strong>and</strong>postconditionsinnaturallanguage,C,orsomeinterfacedefinitionlanguage.<br />
Projectsrarelyusedformalspecifications.Onereasonwasthatformal<br />
specificationswereconsidereddifficulttouseincomplexindustrialenvironments<strong>and</strong>requirespecialisedskills.Whenprojectsdidusethem,communicationbetweenprojectmemberswasdifficultbecausemostmembers<br />
didnotcompletelyunderst<strong>and</strong>them. Thisproblemworsenedasprojects<br />
<strong>and</strong>customersneededtocommunicate. Inonecase,however,aproject<br />
whosehighestprioritywassafetyusedtheformalnotationZforspecification.<br />
3.4.2 RequirementsManagement<br />
WhenlookingatFigures3.1onpage46<strong>and</strong>3.2onpage47,youcanimagine<br />
thatit’shardtomanagethedifferentrequirementsfromallthesedifferent<br />
sourcesthroughoutdevelopment. Thisissuewasimportantespeciallyin<br />
largeprojects.<br />
Anothercomplicatingfactorwasthatmostprojectsdidn’tstartfrom<br />
scratch.Inmostcases,companiesbuiltanewprojectonpreviousprojects.<br />
So,thesenewprojectsreusedrequirementsspecifications(evenfordevelopinganewproductline).Consequently,keepingrequirementsdocuments<br />
consistentwasdifficult.Tokeepalldevelopmentproducts<strong>and</strong>documents<br />
consistent,theprojectshadtoanalysethenewfeatures’impactprecisely.<br />
However,theprojectsfrequentlydidn’texplicitlydocumentrelationsbetweenrequirements,soimpactanalysiswasquitedifficult.Thistraceabilityisanessentialaspect<strong>of</strong>requirementsmanagement.Tracingrequirementswasdifficultbecausetherelations(e.g.,betweenrequirements<strong>and</strong><br />
architecturalcomponents)weretoocomplextospecifymanually.<br />
Available requirements management tools didn’t seem to solve this<br />
problem, although tailored versions worked in some cases. A general<br />
shortcoming<strong>of</strong>thesetoolswasthattherelationsbetweentherequirementshadnomeaning.Inparticular,tooluserscouldspecifytherelations
50 Chapter3. State<strong>of</strong>thePractice<br />
butnottherationalebehindthelink.<br />
Whenprojectsdiddocumentrelationsbetweenrequirements,theyused<br />
separate spreadsheets. Some companies were using or experimenting<br />
withmoreadvancedrequirementsmanagementtoolssuchasRequisitePro<br />
(Rational), RTM(IntegratedChipware),<strong>and</strong>DOORS(Telelogic). Theseexperimentsweren’talwayssuccessful.<br />
Inonecase,thetool’susersdidn’t<br />
havetherightskills,<strong>and</strong>learningthemtooktoolong. Also,thetoolh<strong>and</strong>ledonlythemoretrivialrelationsbetweenrequirements,design,<strong>and</strong>test<br />
documents. So,developerscouldn’trelyonthetoolcompletely,whichis<br />
importantwhenusingatool.<br />
Requirementsmanagementalsoinvolvesreleasemanagement(managingfeaturesinreleases),changemanagement(backwardscompatibility),<br />
<strong>and</strong>configurationmanagement. Somerequirementsmanagementtools<br />
supportedtheseprocesses.However,becausemostcompaniesalreadyhad<br />
othertoolsforthisfunctionality,integrationwiththosetoolswouldhave<br />
beenpreferable.<br />
3.5 S<strong>of</strong>twareArchitectureResults<br />
Small projects didn’t always consider the explicit development, specification,<strong>and</strong>analysis<strong>of</strong>theproductarchitecturenecessary.<br />
Also,owing<br />
totime-to-marketpressure,thescheduleddeadlines<strong>of</strong>tenobstructedthe<br />
development<strong>of</strong>soundarchitectures.Architects<strong>of</strong>tensaidtheydidn’thave<br />
enoughtimetodothingsright.<br />
Thedistinctionbetweendetaileddesign<strong>and</strong>architectureseemedsomewhatarbitrary.Duringdevelopment,theprojectsinterpretedarchitecturesimplyashigh-leveldesign.Theydidn’tmakethedistinctionbetweenarchitectural<strong>and</strong>othertypes<strong>of</strong>designexplicit,as,forexample,Eden<strong>and</strong><br />
Kazman[2003]. There,thelocalitycriterionisintroducedtodistinguish<br />
architecturaldesignfromdetaileddesign. Adesignstatementissaidto<br />
belocalwhenitcan’tbeviolatedbymereexpansion. Theapplication<strong>of</strong><br />
adesignpatternisanexample<strong>of</strong>alocaldesignstatement. Architectural<br />
designisnotlocal. Forinstance,anarchitecturalstylecanbeviolatedby<br />
simpleexpansion.<br />
3.5.1 S<strong>of</strong>twareArchitectureDesign<br />
Designingaproduct’sorsubsystem’sarchitecturewasforemostacreative<br />
activitythatwasdifficulttodivideintosmall,easy-to-takesteps. Justas<br />
systemrequirementsformedthebasisforsystemarchitecturedecisions,<br />
systemarchitecturedecisionsconstrainedthes<strong>of</strong>twarearchitecture.
3.5. S<strong>of</strong>twareArchitectureResults 51<br />
Insomecases,adifferentorganisationalunithaddesignedthesystem<br />
architecture. So,thearchitecturewasmoreorlessfixed–forinstance,<br />
whenthehardwarearchitecturewasdesignedfirstorwasalreadyknown.<br />
Thisledtosuboptimal(s<strong>of</strong>tware)architectures.Becauses<strong>of</strong>twarewasconsideredmoreflexible<strong>and</strong>hasashorterleadtime,projectsuseditt<strong>of</strong>ix<br />
hardwarearchitectureflaws,aswementionedbefore.<br />
Thedesignprocessdidn’talwaysexplicitlytakeintoaccountperformance<br />
requirements. In most cases where performance was an issue,<br />
projectsjustdesignedthesystemtobeasfastaspossible. Theydidn’t<br />
establishhowfastuntilanimplementationwasavailable. Projectsthat<br />
tookperformancerequirementsintoaccountduringdesigndidsomostly<br />
through budgeting. For example, they frequently divided a high-level<br />
real-time constraint among several lower-level components. This division,however,<strong>of</strong>tenwasbasedonthedevelopers’experienceratherthan<br />
well-fundedcalculations. Projectsalsousedthistechniqueforothernonfunctionalrequirementssuchasforpower<strong>and</strong>memoryuse.<br />
Projectssometimesconsideredcommercial<strong>of</strong>f-the-shelf(COTS)componentsasblackboxesinadesign,specifyingonlytheexternalinterfaces.<br />
Thiswassimilartoanapproachthatincorporatedhardwaredriversinto<br />
anobject-oriented(OO)design. However,developers<strong>of</strong>hardwaredrivers<br />
typicallydon’tuse OOtechniques. Byconsideringthesedriversasblack<br />
boxes<strong>and</strong>lookingonlyattheirinterfaces,thedesignerscouldnevertheless<br />
includetheminan OOdesign. FortheCOTScomponents,theblackbox<br />
approachwasn’talwayssuccessful. Insomecases,theprojectsalsohad<br />
toconsiderthecomponents’bugs,sotheycouldn’ttreatthecomponentsas<br />
blackboxes.<br />
Thes<strong>of</strong>twarearchitecture<strong>of</strong>tenmirroredthehardwarearchitecture,<br />
whichmadetheimpact<strong>of</strong>changesinhardwareeasiertodetermine.Most<br />
casesinvolvingcomplexsystemsemployedalayeredarchitecturepattern.<br />
Theselayersmadeiteasiertodealwithembedded-systems’growingcomplexity.<br />
3.5.2 S<strong>of</strong>twareArchitectureDescription<br />
UMLwasthemostcommonlyusednotationforarchitecturalmodelling.On<br />
thehigherabstractionlevels,thespecificmeaning<strong>of</strong>UMLnotationsinthe<br />
architecturedocumentationshouldbecleartoallstakeholders,whichwas<br />
notalwaysthecase. Someprojectsdocumentedthisinareferencearchitectureorarchitecturemanual(wediscussthesedocumentsinmoredetail<br />
later).
52 Chapter3. State<strong>of</strong>thePractice<br />
IBM’sRationalRoseTechnicalDeveloper 1 (formerlyknownasRational<br />
RoseRealTime)letsdeveloperscreateexecutablemodels<strong>and</strong>completely<br />
generatesourcecode.Afewprojectstriedthisapproach.Oneprojectcompletelygeneratedreusableembedded-s<strong>of</strong>twarecomponentsfromRational<br />
RoseRealTimemodels. However,most<strong>of</strong>theseprojectsusedthesetools<br />
onlyexperimentally.<br />
ForcreatingUMLdiagrams,respondentsfrequentlymentionedonlytwo<br />
tools:Micros<strong>of</strong>tVisio<strong>and</strong>RationalRose. Projectsusedthesetoolsmostly<br />
fordrawingratherthanmodelling.Thismeans,forinstance,thatmodels<br />
weren’talwayssyntacticallycorrect<strong>and</strong>consistent.<br />
Otherwell-knownnotationsthatprojectsusedforarchitecturalmodellingweredata-flowdiagrams,entity-relationshipdiagrams,flowcharts,<strong>and</strong>Hatley-Pirbhaidiagrams[Hatley<strong>and</strong>Pirbhai,1987]fortherepresentation<strong>of</strong>controlflow<strong>and</strong>state-basedbehaviour.Projects<strong>of</strong>tenuseddiagramsbasedonthesenotationstoclarifytextualarchitecturaldescriptionsinarchitecturedocuments.Someprojectsusedmorefree-formboxlinedrawingstodocument<strong>and</strong>communicatedesigns<strong>and</strong>architectures.<br />
OneprojectusedtheKoalacomponentmodel[VanOmmeringetal.,<br />
2000]todescribethes<strong>of</strong>twarearchitecture. Comparedtobox-linedrawings,theKoalacomponentmodel’sgraphicalnotationhasamoredefined<br />
syntax.Koalaprovidesinterface<strong>and</strong>componentdefinitionlanguagesbased<br />
onCsyntax. AKoalaarchitecturediagramspecifiestheinterfacesthata<br />
componentprovides<strong>and</strong>requires.ThisprojectusedMicros<strong>of</strong>tVisiotodraw<br />
theKoaladiagrams.<br />
Projects<strong>of</strong>tenusedpseudocode<strong>and</strong>pre-<strong>and</strong>postconditionstospecify<br />
interfaces. Althoughthistechniqueismorestructuredthannaturallanguage,theresultingspecificationsweremostlyincomplete,withmanyimplicitassumptions.Thisnotonlysometimesledtomisunderst<strong>and</strong>ingsbut<br />
alsohamperedtheuse<strong>of</strong>othertechniquessuchasformalverification.<br />
Someprojectsreferredtoareferencearchitectureoranarchitecture<br />
usermanual. Thesedocumentsdefinedthespecificnotationsinarchitecturaldocuments<strong>and</strong>explainedwhicharchitecturalconceptstouse<strong>and</strong><br />
howtospecifythem.<br />
3.5.3 S<strong>of</strong>twareArchitectureEvaluation<br />
Mostprojectsdidnotexplicitlyaddressarchitectureverificationduringdesign;thosethatdidprimarilyusedqualitativetechniques.<br />
Fewprojects<br />
usedquantitativetechniquessuchasPetrinetsorratemonotonicschedulinganalysis[Liu<strong>and</strong>Layl<strong>and</strong>,1973].Onereasonisthatquantitativeanalysistoolsneeddetailedinformation.Inpractice,projects<strong>of</strong>tenusedan<br />
1 http://www-306.ibm.com/s<strong>of</strong>tware/awdtools/developer/technical(June2007)
3.5. S<strong>of</strong>twareArchitectureResults 53<br />
architectureonlyasavehicleforcommunicationamongstakeholders.<br />
The most commonly employed qualitative techniques were reviews,<br />
meetings, <strong>and</strong>checklists. Anotherqualitativetechniqueemployedwas<br />
scenario-based analysis. With this technique, a project can consider<br />
whethertheproposedarchitecturesupportsdifferentscenarios. Byusingdifferenttypes<strong>of</strong>scenarios(e.g.,usescenarios<strong>and</strong>changescenarios),<br />
aprojectnotonlycanvalidatethatthearchitecturesupportsacertain<br />
functionalitybutalsocanverifyqualitiessuchaschangeability.<br />
Therespondentstypicallyfeltthatformalverificationtechniqueswere<br />
inapplicableinanindustrialsetting.Theyconsideredthesetechniquesto<br />
beusefulonlyinlimitedapplicationareassuchascommunicationprotocols<br />
orparts<strong>of</strong>security-criticalsystems. ThefewprojectsthatusedRational<br />
RoseRealTimewereabletousesimulationtoverify<strong>and</strong>validatearchitectures.<br />
3.5.4 Reuse<br />
Reuseis<strong>of</strong>tenconsideredone<strong>of</strong>themostimportantadvantages<strong>of</strong>developmentusingarchitecturalprinciples.Bydefiningclean,clearinterfaces<strong>and</strong><br />
adoptingacomponent-baseddevelopmentstyle,projectsshouldbeableto<br />
assemblenewapplicationsfromreusablecomponents.<br />
Ingeneral,reusewasratheradhoc.Projectsreusedrequirements,designdocuments,<strong>and</strong>codefromearlier,similarprojectsbycopyingthem.<br />
Thiswasbecausemostproductswerebasedonpreviousproducts.<br />
Forhighlyspecialisedproducts,respondentsfeltthatusingconfigurable<br />
componentsfromacomponentrepositorywasimpossible. Anotherissue<br />
thatsometimespreventedreusewasthedifficulty<strong>of</strong>estimatingbotha<br />
reuseapproach’sbenefits<strong>and</strong>theefforttointroduceit.<br />
Insomecasesaprojectorcompanyexplicitlyorganisedreuse.OnecompanydidthisincombinationwiththeKoalacomponentmodel.Thecompanyappliedthismodeltogetherwithaproprietarymethodfordeveloping<br />
productfamilies.<br />
Somecompanieshadadoptedaproduct-lineapproachtocreateaproductlineorfamilyarchitecture.Whenadoptingthisapproach,thecompanies<strong>of</strong>tenhadtoextracttheproduct-linearchitecturefromexistingproduct<br />
architectures<strong>and</strong>implementations.Thisiscalledreversearchitecting.<br />
Inmostcases,hardwareplatformsservedasthebasisfordefiningproductlines,butsometimesmarketsegmentsdeterminedproductlines.When<br />
acompanytrulyfollowedaproduct-lineapproach,architecturedesigntook<br />
variabilityintoaccount.<br />
Onecompanyusedaproprietys<strong>of</strong>twaredevelopmentmethodthatenabledlarge-scale,multisite,<strong>and</strong>incrementals<strong>of</strong>twaredevelopment.<br />
This<br />
methoddefinedseparatelong-termarchitectureprojects<strong>and</strong>subsystem
54 Chapter3. State<strong>of</strong>thePractice<br />
projects. Thecompanyusedthesubsystemsinshort-termprojectstoinstantiateproducts.<br />
Anothercompanyhadaspecialprojectthatmadereusablecomponents<br />
foracertainsubsystem<strong>of</strong>theproductarchitecture. Thecompanyused<br />
RationalRoseRealTimetodevelopthesecomponentsasexecutablemodels.<br />
Somecompaniespractisedreusebydevelopinggeneralplatformsontop<br />
<strong>of</strong>whichtheydevelopeddifferentproducts.Thisstrategyiscloselyrelated<br />
toproductlines,whichare<strong>of</strong>tendefinedperplatform.<br />
3.6 Discussion<br />
Youmightwellask,arethesesurveyresultsrepresentative<strong>of</strong>thewhole<br />
embedded-s<strong>of</strong>twaredomain? Byinterviewingseveralrespondentswith<br />
differentrolesineachcompany,wetriedtogetarepresentativeunderst<strong>and</strong>ing<br />
<strong>of</strong> that company’s embedded-s<strong>of</strong>tware-development processes.<br />
Theamount<strong>of</strong>newinformationgatheredduringsuccessiveinterviewsdecreased.So,weconcludedwedidhavearepresentativeunderst<strong>and</strong>ingfor<br />
thatcompany.<br />
Withrespecttoembedded-s<strong>of</strong>twaredevelopmentingeneral,webelieve<br />
thatthelargenumber<strong>of</strong>respondents<strong>and</strong>thecompanies’diversity<strong>of</strong>size,<br />
products,<strong>and</strong>country<strong>of</strong>originmakethisinventory’sresultsrepresentative,forEuropeatleast.However,whetherwecanextendtheseresultsto<br />
otherareas(e.g.,theUnitedStates)isquestionable.<br />
Anotherpointfordiscussionisthatthemethods,tools,<strong>and</strong>techniques<br />
thecompaniesusedwererathergenerals<strong>of</strong>twareengineeringtechnologies.<br />
Weexpectedthatthecompanieswouldusemorespecialisedtoolsinthis<br />
domain. Memory,power,<strong>and</strong>real-timerequirementswerefarlessprominentdurings<strong>of</strong>twaredevelopmentthanweexpected.That’sbecausemost<br />
generals<strong>of</strong>twareengineeringtechnologiesdidn’thavespecialfeaturesfor<br />
dealingwiththeserequirements.Tailoringcanbeasolutiontothisproblem,butitinvolvesmucheffort,<strong>and</strong>theresultis<strong>of</strong>tentoospecifictoapplytootherprocesses.Makings<strong>of</strong>twaredevelopmenttechnologiesmoreflexiblecanhelpmaketailoringmoreattractive.So,flexibles<strong>of</strong>twaredevelopmenttechnologiesarenecessary.Here,withflexiblewemean,forinstance,requirementsmanagementtoolsthatallowtomodifythetypes<strong>and</strong>characteristics<strong>of</strong>themanagedrequirements,ormodeltransformationtoolsthatallowtotransformmodelsinarbitrarymodellinglanguages,instead<strong>of</strong>beingrestrictedtoUML.<br />
Wenoticedarelativelylargegapbetweentheinventory’sresults<strong>and</strong><br />
theavailables<strong>of</strong>twaredevelopmenttechnologies.Whyisn’tindustryusing<br />
many<strong>of</strong>thesetechnologies?Duringtheinterviews,respondentsmentioned<br />
severalreasons.Welookatthree<strong>of</strong>themhere.
3.7. Outlook 55<br />
Thefirstreasoniscompliancewithlegacy. Aswementionedbefore,<br />
mostprojectsdidn’tstartfromscratch. Developersalwayshavetodeal<br />
withthislegacy,whichmeansthatthetechnologyusedincurrentprojects<br />
shouldatleastbecompatiblewiththetechnologyusedinpreviousproducts.Also,companiescan<strong>of</strong>tenusepreviousproducts’componentsinnew<br />
productswithfewornoadaptations. Thiscontradictsthetop-downapproachinFigure3.1onpage46.<br />
Unlikewiththatapproach,components<br />
atadetailedlevelareavailablefromthestart,beforethenewproduct’s<br />
architectureisevendefined. Thiswouldsuggestabottom-upapproach.<br />
However,becausemostavailables<strong>of</strong>twaredevelopmentapproachesaretopdown,theydon’taddressthisissue.<br />
Anotherreasonismaturity.Mostdevelopmentmethodsaredefinedata<br />
conceptuallevel;howtodeploy<strong>and</strong>usethemisunclear.Whenmethodsare<br />
pastthisconceptualstage<strong>and</strong>evenhavetoolimplementations,thetools’<br />
maturitycanstillpreventindustryfromusingthem.Thiswasthecasefor<br />
somerequirementsmanagementtools. Somerespondentssaidthatthese<br />
toolsweren’tsuitedformanagingthecomplexdependenciesbetweenrequirements<strong>and</strong>otherdevelopmentartefacts,suchasdesign<strong>and</strong>testdocumentation.Also,integratingthesetoolswithexistingsolutionsforother<br />
problemssuchasconfigurationmanagement<strong>and</strong>changemanagementwas<br />
notstraightforward.<br />
Thethirdreasoniscomplexity. Complexdevelopmenttechnologiesrequirehighlyskilleds<strong>of</strong>twareengineerstoapplythem.Butthedevelopment<br />
processalsoinvolvesstakeholderswhoaren’ts<strong>of</strong>twarepractitioners. For<br />
instance,aswementionedbefore,projectteammembersmightusearchitecturespecificationstocommunicatewith(external)stakeholders.These<br />
stakeholders<strong>of</strong>tendonotunderst<strong>and</strong>complextechnologysuchasformal<br />
architecturedescriptionlanguages(ADLs). Still,formalspecificationsare<br />
sometimesnecessary–forexample,insafety-criticalsystems. Tomake<br />
suchhighlycomplextechnologiesmoreapplicableinindustry,thesetechnologiesshouldintegratewithmoreaccepted<strong>and</strong>easy-to-underst<strong>and</strong>technologies.Suchastrategywillhidecomplexity.<br />
3.7 Outlook<br />
Intheremainder<strong>of</strong>thisthesiswetakeintoaccounttheaforementioned<br />
reasonsforindustry’sreluctance<strong>of</strong>adoptingstate-<strong>of</strong>-the-arts<strong>of</strong>twaredevelopmenttechnologies.<br />
Thisimpliesthatwe,werepossible,makeuse<strong>of</strong><br />
existingst<strong>and</strong>ards<strong>and</strong>technologiesthatalreadyhavebeensuccessfully<br />
appliedinindustrialpractice.<br />
Moreover,wehaveseenthats<strong>of</strong>twaredevelopmentinpracticeseldom<br />
startsfromscratch.Assuch,technologiestosupports<strong>of</strong>twaremaintenance
56 Chapter3. State<strong>of</strong>thePractice<br />
deserveatleastasmuchattentionasthosethatsupports<strong>of</strong>twaredevelopment.Therefore,wefocusons<strong>of</strong>twareevolution<strong>and</strong>howrelateds<strong>of</strong>tware<br />
engineeringtaskscanbesupported. Tothisend,weuse<strong>and</strong>combineexistings<strong>of</strong>twareengineeringtechnologiesasmuchaspossible.<br />
Thetrendweobservedthats<strong>of</strong>twaredevelopmentismovingtowards<br />
largerscale<strong>and</strong>morestructuredreusebytheuse<strong>of</strong>s<strong>of</strong>twareproduct-line<br />
approachesisafinalimportantconsiderationintheremainder<strong>of</strong>thisthesis.
Chapter4<br />
Evaluating an Embedded S<strong>of</strong>tware<br />
Reference Architecture<br />
– Industrial Experience Report – 1<br />
Inthis chapter, we discussexperiencesgained duringevaluation <strong>of</strong> the<br />
maintainability<strong>of</strong>as<strong>of</strong>twarereferencearchitectureinuseatOcé,one<strong>of</strong>the<br />
world’sleadingcopiermanufacturers.Theevaluationisconductedusingan<br />
approachbasedontheS<strong>of</strong>twareArchitectureAnalysisMethod.Thechapter<br />
proposesavariant<strong>of</strong>thismethodthathelpstoreducetheorganisational<br />
impact<strong>of</strong>architectureevaluations. Second,weanalysetheimplications<br />
<strong>of</strong>evaluatingreferencearchitecturesasopposedtosingle-productarchitectures.<br />
Furthermore,weshareourexperience<strong>of</strong>conductingtheevaluation,<br />
drawlessonsforpractitioners,<strong>and</strong>proposenewresearchtopics.<br />
4.1 Introduction<br />
Inindustrynewproductsarerarelydevelopedfromscratch.Mostproducts<br />
arebasedonpreviousgenerations<strong>of</strong>similarproducts.Therefore,thecapability<strong>of</strong>reusinglargeparts<strong>of</strong>earlierdevelopmenteffortswhendevelopingnewproductscanincreasethedevelopmentefficiency<strong>of</strong>companiestremendously[Jacobsonetal.,1997].However,currentlymanycompanieshaveno<br />
structuredapproachforreuse,astheinventoryconductedamongseveral<br />
companiesdevelopingembeddeds<strong>of</strong>twareconfirmed(seeChapter3).<br />
1 Thischapterwaspublishedearlieras:Graaf,Bas,HylkevanDijk,<strong>and</strong>Arievan<br />
Deursen. Evaluatinganembeddeds<strong>of</strong>twarereferencearchitecture–industrialexperiencereport.<br />
InProceedings<strong>of</strong>the9 th EuropeanConferenceonS<strong>of</strong>twareMaintenance<br />
<strong>and</strong>Reengineering(CSMR2005),pages354–363.IEEEComputerSociety,2005<br />
57
58 Chapter4. Evaluation<br />
Onestrategytoarriveatstructuredreuse,istoadoptarchitecturalconcepts,includingproduct-lineapproaches,duringthes<strong>of</strong>twaredevelopment<br />
process.Architecture-baseddevelopmentincreasesdevelopmentefficiency<br />
<strong>and</strong>makess<strong>of</strong>twaresystemsmoreeasytomaintain<strong>and</strong>evolve.Itdoesso<br />
byincreasingtheconceptualintegrity[Brooks,Jr,1975]<strong>of</strong>s<strong>of</strong>twaresystems<strong>and</strong>byprovidingacommons<strong>of</strong>twareinfrastructurewhichmakesiteasiertounderst<strong>and</strong>systems<strong>and</strong>tointegratenewcomponents.Aproductlinearchitectureextendstheseideasbeyondsingle-productdevelopments<br />
toawholegeneration<strong>of</strong>products<strong>and</strong>thusenablesthereuse<strong>of</strong>components<br />
innewproduct-linemembers.<br />
AtOcé,one<strong>of</strong>theworld’sleadingcopiermanufacturers,everycouple<strong>of</strong><br />
yearsanewproductgenerationislaunched,comprisingafamily<strong>of</strong>similarproducts.Tomakedevelopment<strong>and</strong>maintenance<strong>of</strong>thesegenerationsmoreeffective<strong>and</strong>efficientOcédecidedtodefineareferencearchitectureforapart<strong>of</strong>theembeddeds<strong>of</strong>twareinitsproducts.Itestablishesa<br />
commons<strong>of</strong>twareinfrastructurefordifferentgenerations,thusfacilitating<br />
reuseacrossgenerationboundaries.<br />
Since this reference architecture will potentially impact all embeddeds<strong>of</strong>twaretobedevelopedatOcé,thearchitectureteamatOcédecided<br />
to conduct an evaluation <strong>of</strong> the quality <strong>of</strong> this reference architecture,usinganapproachbasedontheS<strong>of</strong>twareArchitectureAnalysis<br />
Method(SAAM)[Kazmanetal.,1996;Clementsetal.,2002b]whichwas<br />
developedattheS<strong>of</strong>twareEngineeringInstitute 1 (SEI).Inthischapterwe<br />
reportonthisevaluation.<br />
Thecontributions<strong>of</strong>thischapterarethreefold.First,weproposeavariant<strong>of</strong>SAAMthatreducestheorganisationalimpact<strong>of</strong>architectureevaluations.Second,weanalysetheimplications<strong>of</strong>evaluatingreferencearchitecturesasopposedtoproductarchitectures.Lastbutnotleast,weshareourexperiencewithconductinganevaluation<strong>of</strong>areal-lifereferencearchitecturethatisactuallyusedinindustry.Thelessonslearntareusefulfor<br />
practitioners,<strong>and</strong>leadtonewresearchquestionsrelatedtoarchitecture<br />
evaluation.<br />
InordertoprotectOcé’sinterests,wecannotdiscussOcé-sensitivedetails<strong>of</strong>thereferencearchitecture.Instead,wewilldiscussamodifiedversion.<br />
Webelievethatthearchitecturalissues<strong>and</strong>theevaluationmethod<br />
arenotmateriallyaffectedbythesechanges.<br />
Thischapterisorganisedasfollows. InSection4.2wesummarisethe<br />
content<strong>and</strong>context<strong>of</strong>theembeddeds<strong>of</strong>twarereferencearchitecturefor<br />
copierengines(hereafterreferredtoas‘thereferencearchitecture’). In<br />
Section4.3,wedescribewhyweselectedSAAMtoconducttheevaluation<br />
<strong>and</strong>whyOcé’ssituationrequiredsomemodificationstoit. InSection4.4<br />
1 http://www.sei.cmu.edu(June2007)
4.2. Overview<strong>of</strong>theReferenceArchitecture 59<br />
weexplainhowtheactualevaluationwascarriedout<strong>and</strong>howpractical<br />
problemsweresolved. Then,inSection4.5wereflectontheevaluation<br />
<strong>and</strong>identifyfuturework. Weconcludewithadiscussion<strong>of</strong>relatedwork<br />
<strong>and</strong>asummary<strong>of</strong>thechapter’scontributions.<br />
4.2 Overview<strong>of</strong>theReferenceArchitecture<br />
Thereferencearchitectureaddressestheengines<strong>of</strong>twareforOcédocument<br />
processingsystems(copiers).Acopierengineisthepart<strong>of</strong>thesystemthat<br />
h<strong>and</strong>leseitherthescanningortheprinting<strong>of</strong>documents.Figure4.1illustratestheworkings<strong>of</strong>acopier.<br />
Ascannerengineextractsanimagefrom<br />
theoriginalsheet,whereasaprinterenginereproducestheimagedataon<br />
blanksheets.Thereferencearchitecturedescribesanabstractenginethat<br />
canpotentiallybeusedforanyOcécopier.<br />
original<br />
sheets<br />
print data<br />
4.2.1 BusinessDrivers<br />
Controller<br />
image data & info<br />
Scanner Printer<br />
original<br />
sheets<br />
network<br />
blank<br />
sheets<br />
scanned data<br />
Figure 4.1:Mainflowsinacopier.<br />
printed<br />
sheets<br />
Océ’sreferencearchitectureservesseveralpurposes,<strong>of</strong>whichthemostimportantare:<br />
KnowledgebaseItprovidescommonterminologyfors<strong>of</strong>twarearchitects<br />
thatisapplicabletoseveralproducts. Thesharedterminologytogetherwiththeregularmeetingsdedicatedtodevelopment<strong>of</strong>thereferencearchitectureenablearchitectstoshareexperiencesmoreefficiently.
60 Chapter4. Evaluation<br />
StartingpointItsdocumentationcanbeusedbynewprojectsasastartingpointforOcé’siterativedevelopmentprocess.Thisgreatlyreducestheeffortrequiredfordesigninganenginearchitecturefora<br />
newproduct.<br />
ReuseItdescribesthegenericstructure<strong>and</strong>behaviour<strong>of</strong>theengines<strong>of</strong>twarecomponents.Thismakesintegratingexistings<strong>of</strong>twarecomponentsthatarecomplianttothereferencearchitectureeasier,<strong>and</strong>thus<br />
increasesthereusepotential<strong>of</strong>thosecomponents. Thisnotonlyincludesbinarycomponents,butalsodesigns,requirements<strong>and</strong>other<br />
s<strong>of</strong>twareartefacts.<br />
Infactthethreepointsaboveareallrelatedtoreuse(i.e.,<strong>of</strong>knowledge,documentation,<strong>and</strong>others<strong>of</strong>twareproducts).Therefore,thereferencearchitectureshouldmakeitpossibletoeventuallyspeedupthedevelopment<br />
(fastprototyping)<strong>and</strong>maintenance<strong>of</strong>productssignificantly.<br />
4.2.2 ReferenceArchitecture<br />
Thereferencearchitecturedefinesthefundamentalelements,relationsbetweentheseelements,<strong>and</strong>properties<strong>of</strong>other,product-specificelements<strong>of</strong><br />
Océ’scopierengines<strong>of</strong>tware.Itisusedtoderiveas<strong>of</strong>twarearchitecturefor<br />
enginesincorporatedinaspecificseries<strong>of</strong>Océprinters.Fromthiss<strong>of</strong>tware<br />
architecture,individualenginescanbeconfiguredtobeintegratedinOcé’s<br />
products.Inthiswaythereferencearchitecturedefinesafamily<strong>of</strong>copier<br />
engines.<br />
Deelstraetal.[2005]giveaclassification<strong>of</strong>productfamilieswithrespecttolevel<strong>of</strong>reuse.Weusethisclassification<strong>and</strong>theaccompanyingterminologytopositionthereferencearchitecture.<br />
Four(ordered)levelsare<br />
identified: 1)st<strong>and</strong>ardisedinfrastructure,2)platform,3)s<strong>of</strong>twareproductline,<strong>and</strong>4)configurableproductfamily.<br />
Theselevelsdenotetowhich<br />
extentthecommonalitiesbetweenrelatedproductsintheproductfamily<br />
areexploited.Océ’sreferencearchitecturecanbepositionedasaplatform,<br />
sinceitprovidesreusablecomponentsthataredevelopedbyaseparate<br />
reusegroup(seeSection4.2.4). Furthermore,itdefinesast<strong>and</strong>ardised<br />
infrastructurebyprescribinghowcomponentsshouldinteract<strong>and</strong>what<br />
functionalcomponentsshouldlooklike. Additionally,it<strong>of</strong>fersaplatform<br />
thatrealisescommonfunctionality,suchaserrorh<strong>and</strong>ling<strong>and</strong>scheduling.<br />
Asallbusinessdrivers<strong>of</strong>thereferencearchitecturearerelatedtoreuse,<br />
Océisparticularlyinterestedininvestigatingwhetheritispossible<strong>and</strong><br />
worthwhiletoraisethecurrentreuselevel<strong>of</strong>thereferencearchitectureto<br />
that<strong>of</strong>aproductline.However,inordertoqualifyasaproduct-linearchitecture,itmustdefinethefunctionalvariabilitybetweendifferentengines.
4.2. Overview<strong>of</strong>theReferenceArchitecture 61<br />
Table 4.1:Viewsusedininthereferencearchitecture’sdocumentation<br />
View<br />
Persp.<br />
Static Dynamic<br />
Conceptual System context, stake- Use cases, user visible<br />
holders, key require- states, configurations, variments,<br />
external interfacesants<br />
Logical System components Behaviour, component<br />
<strong>and</strong> dependencies, connection <strong>and</strong> discon-<br />
subsystem decomponection, startup, key algosition,<br />
persistent data,<br />
internal interfaces<br />
rithms.<br />
Physical Files, directories, code, Threads, tasks, schedul-<br />
build rules<br />
ing, interrupts.<br />
4.2.3 Structure<br />
Thereferencearchitectureisextensivelydocumentedusingtextillustrated<br />
withUnified<strong>Model</strong>ingLanguage 1 (UML)diagramsinmorethan500pages.<br />
ThedocumentationisstructuredaccordingtotheArchitectureMeta<strong>Model</strong><br />
(AMM)developedbyAtosOrigin[Dintheretal.,2001]. AMMbuildsupon<br />
theSiemensfour-viewsmodel[Sonietal.,1995]<strong>and</strong>Kruchten’s4+1View<br />
<strong>Model</strong>[Kruchten,1995].Itisorganisedaroundthreetypes<strong>of</strong>views:conceptual,logical,<strong>and</strong>physicalviews.<br />
Foreachtype<strong>of</strong>view,astatic<strong>and</strong>a<br />
dynamicperspectiveis<strong>of</strong>fered. Thisgivesrisetosixviews,asillustrated<br />
inTable4.1.<br />
Thedocumentationincludesoneoverviewdocument<strong>of</strong>approximately<br />
50pages,<strong>and</strong>adozendocumentsdescribingthearchitectureforspecific<br />
concerns,suchasstatuscontrol,s<strong>of</strong>twaredownloading,datapersistence,<br />
<strong>and</strong>diagnostics. Each<strong>of</strong>thesedocumentsisorganisedaccordingtoAMM.<br />
TheviewsareillustratedwithdiagramsexpressedinUML-RT,areal-time<br />
extension<strong>of</strong>UMLwidelyusedatOcé[Dohmen<strong>and</strong>Somers,2003].Inparticular,manyusecasesareelaboratedinsequencediagrams.<br />
4.2.4 Usage<br />
Currentlytheuse<strong>of</strong>thereferencearchitectureisvoluntary. However,architectswhowanttouseitfortheirprojectaresupposedt<strong>of</strong>irstparticipateinthededicatedmeetingsforsomemonthstogetthesameshared<br />
underst<strong>and</strong>ing<strong>of</strong>thereferencearchitectureastheotherparticipatingar-<br />
1 http://www.uml.org(June2007)
62 Chapter4. Evaluation<br />
p1 p2 p3 p4 Reference architecture evolution<br />
Product development Figure 4.2:Thereferencearchitecture<strong>and</strong>derivedprojects.<br />
chitects. Thisensuresthatthereferencearchitectureismorethanapile<br />
<strong>of</strong>documents. Thesemeetingsareveryimportantastheyprovideacommunicationplatformwhichisessentialformeetingtheinitialobjectives<br />
(Section4.2.1).<br />
Inagreementwiththeseobjectives,thereisalogicallinkbetweenthe<br />
referencearchitecturegroup<strong>and</strong>thegroupthatdevelopsreusables<strong>of</strong>tware<br />
componentsfortheengines<strong>of</strong>tware. Inthecurrentsituation, onlythe<br />
reusablecomponentsrefertothereferencearchitecture’sdocumentation,<br />
whichmeansthatthisdocumentationitselfdoesnotshowwhatcomponentscanbeusedtoimplementthedifferentelements<strong>of</strong>thearchitecture.<br />
Theactualusage<strong>of</strong>thereferencearchitectureleadstorefinements<strong>and</strong><br />
additions. Figure4.2depictsthisinterplaybetweenusage<strong>and</strong>evolution.<br />
Thehorizontallinerepresentstheevolution<strong>of</strong>thereferencearchitecture.<br />
Each pirepresentsaprojectinwhichanengineisdevelopedforaseries<strong>of</strong><br />
Océcopiers. Aprojectcan‘join’thereferencearchitectureforsometime,<br />
contributetoitsdevelopment,<strong>and</strong>benefitfrommodificationsmadetoit.<br />
Thisisindicatedbytheobliquelinesforprojects p1, p2,<strong>and</strong> p4. Aftera<br />
while,suchprojectsmaydecideto‘leave’thereferencearchitecture,<strong>and</strong><br />
continueontheirownusingafixedversion(thelinesbecomevertical).<br />
Otherprojects(p3)maydecidetouseafixedversionrightfromthestart,<br />
extractingjustwhateverisnecessaryfromthatversion<strong>of</strong>thereference<br />
architecture.<br />
Thereferencearchitecturecameintoexistencebasedonthedocumentation<strong>and</strong>experience<strong>of</strong>severalpreviousprojects.Infact,itwasdeveloped<br />
largelyinparallelwithonespecificproject. Assuchitcancurrentlybe<br />
understoodasthecommondenominator<strong>of</strong>severalproductspecificarchitectures.<br />
Assaidusingthereferencearchitectureisvoluntary<strong>and</strong>itisnotyet<br />
knowntoallpotentialstakeholders. Thereforewecansaythatitiscur-
4.3. EvaluationApproach 63<br />
rentlyinanemergingphase.Assuch,besidesconfirmationthatthereferencearchitectureissuitableforitsintendedpurpose,now<strong>and</strong>inthefuture,<br />
anotherresult<strong>of</strong>itsevaluationistheincreasedawareness<strong>of</strong>thepotential<br />
benefits<strong>of</strong>thereferencearchitecturewithotherdevelopmentteamswithin<br />
Océ.<br />
4.3 EvaluationApproach<br />
Theinitialquestionthattriggeredthisworkwas“Howgoodisthereferencearchitecture?”<br />
Additionallyanotherimportant<strong>and</strong>relatedquestion<br />
wasasked:“Doesthisreferencearchitecturehaveareasontoexist?”The<br />
developmentteammainlywantedtogetconfirmationthatthereference<br />
architectureisuseful<strong>and</strong>thatitis<strong>of</strong>goodquality.<br />
Wefirstdefinewhattheterms‘quality’<strong>and</strong>‘good’meaninthiscontext.<br />
As‘good’isalwaysrelativetoparticularrequirements,thefirststepisto<br />
determinetheserequirementsforthereferencearchitecture,whichwere<br />
unknownsincetheirdefinitionwasneglectedduringdevelopment.<br />
Asthereferencearchitectureisintendedtobeusedforseveralyears<br />
<strong>and</strong>productgenerations,itisessentialthatitsupportsfuturechangesto<br />
itsenvironment<strong>and</strong>newproductrequirements. Thisisthemaintype<strong>of</strong><br />
qualityunderconsiderationintheevaluation.Furthermore,inview<strong>of</strong>the<br />
factthattheobjectives<strong>of</strong>thisarchitectureaspresentedinSection4.2are<br />
centredaroundreuse,theimpactthatfuturechangeswillhaveonthereuse<br />
potentialit<strong>of</strong>fers,isessential. Intherest<strong>of</strong>thischapterwewillusethe<br />
termmaintainabilitytorefertothetype<strong>of</strong>qualityrequiredforareference<br />
architecturedescribedabove.<br />
Thus,thecentralquestionis: “Howwellisthereferencearchitecture<br />
preparedforthefuture?” Asthisfutureisnotalwaysknownatthetime<br />
<strong>of</strong>evaluation,theselectedmethodmustexplicitlyaddressspecification<strong>of</strong><br />
possibleextensions.<br />
4.3.1 Selection<strong>of</strong>EvaluationMethod<br />
A literature overview <strong>of</strong> architecture evaluation methods [Dobrica <strong>and</strong><br />
Niemelä, 2002] was used to select an appropriate approach to answer<br />
thecentralquestionabove. Besidesaddressingmaintainabilityaswedescribeditinthepreviousparagraphs,Océfurtherrequiredthemethod<br />
tobelightweight<strong>and</strong>well-documented. Themethodmusthavealoworganisationalimpactbecause,asthereferencearchitectureisstillinan<br />
emergingphase, itsevaluationmustnotaffectotherprocessesatOcé.<br />
Additionally,themethodmustbeexecutablewithoutadditionaltraining.<br />
Thisrequiresthataclearprocedurefordoinganevaluationbasedonthe
64 Chapter4. Evaluation<br />
Describe<br />
Develop<br />
Architecture Scenarios<br />
Classify / prioritise<br />
scenarios<br />
Individually evaluate<br />
indirect scenarios<br />
Assess scenario<br />
interaction<br />
Create overall<br />
evaluation<br />
Figure 4.3:SAAMsteps[Clementsetal.,2002b].<br />
selectedmethodisavailable. Theseconstraintsimplytheexclusion<strong>of</strong><br />
many<strong>of</strong>theinventoriedmethodsbecausetheseeitherfocusonadifferent<br />
qualityattributeorlacksufficientdetail,e.g. manymethodsaredefined<br />
<strong>and</strong>explainedinonlyonepublishedarticle.<br />
Thebest-suitedmethodsdescribedintheinventoryseemtobeSAAM<strong>and</strong><br />
itssuccessor,theArchitectureTrade<strong>of</strong>fAnalysisMethod[Clementsetal.,<br />
2002b](ATAM). Bothaddressmaintainability<strong>and</strong>areextensivelydocumented.<br />
AlthoughATAMislikelytoproducemoreobjective<strong>and</strong>accurate<br />
results,italsoseemsmoredifficulttoapplyforinexperiencedassessors.<br />
Theuse<strong>of</strong>attribute-basedarchitecturestyles<strong>and</strong>theirassociatedqualityattributecharacterisationsforanalysis<strong>of</strong>architecturaldecisionsisnot<br />
straightforward. Alsotheidentification<strong>of</strong>sensitivity<strong>and</strong>trade-<strong>of</strong>fpoints<br />
<strong>and</strong>thegeneration<strong>of</strong>autilitytreerequiresmoreeffort<strong>and</strong>experience.<br />
DuetoOcé’srequirementswithrespecttotheneedfortraining(noneed)<br />
<strong>and</strong>organisationalimpact(low)<strong>of</strong>themethod,SAAMwasselected.<br />
InaSAAMevaluation, scenariosaredevelopedtoassessas<strong>of</strong>tware<br />
architecture’ssupportformaintainability. Thescenariosareusedtoexpresstherequiredtype<strong>of</strong>maintainability<strong>and</strong>thusSAAMcanalsobeusedtoevaluatethetype<strong>of</strong>maintainabilitywedescribedpreviously.Thedevelopedscenariosrepresentpossiblefuturechangestothes<strong>of</strong>twaresystem.Animportantaspect<strong>of</strong>SAAMisthatitinvolvesallstakeholders<strong>of</strong>as<strong>of</strong>twarearchitectureinajointevaluationsession,whichresultsinabetter<br />
appreciation <strong>and</strong> a more widely shared underst<strong>and</strong>ing <strong>of</strong> the s<strong>of</strong>tware<br />
architecture.
4.3. EvaluationApproach 65<br />
Figure4.3 showsthedifferentphases<strong>of</strong>SAAM.ASAAMevaluationsessionstartswithscenariodevelopment<strong>and</strong>description<strong>of</strong>thearchitecture.Theseareiterativeactivities.Newscenarioscanmakeitnecessarytodescribethearchitecturefurther,sothatthearchitectscananalysethem,<br />
whiledescribingaspects<strong>of</strong>thearchitectureforcestothinkaboutpossible<br />
scenariosaddressingtheseaspects.<br />
Next,thescenariosareprioritised<strong>and</strong>classified.Scenariosthatcanbe<br />
realisedwithoutmakingchangestothecurrentarchitectureareclassified<br />
asdirect. Scenariosthatdorequirechangestothecurrentarchitecture<br />
areclassifiedasindirect.Theindirectscenariosareevaluatedfortheirimpact.Furthermore,thescenariointeractionisdetermined.<br />
Twoscenarios<br />
interactwhentheyrequirechangestothesamearchitecturalcomponent.<br />
Informationonscenariointeractionisindicative<strong>of</strong>thequality<strong>of</strong>thedecomposition.Finally,theclassification,prioritisation,analysis<strong>of</strong>theindividualscenarios,<strong>and</strong>thescenariointeractionareusedtocreateanoverallevaluation.ASAAMevaluationsessiontypicallytakestwodays<strong>and</strong>involvesanexternalevaluationteam<strong>of</strong>threet<strong>of</strong>ourpeople.Asessionalsoinvolvessystemarchitects<strong>and</strong>otherstakeholders.<br />
Thetype<strong>of</strong>stakeholdersinvolved<br />
isverydiverse:architects,developers,maintainers,integrators,managers,<br />
customers,endusers,<strong>and</strong>soon.<br />
4.3.2 TailoringSAAM<br />
SAAMhasbeenselectedastheevaluationmethod,yetithadtobetailored<br />
toOcé’ssituation.ThecurrentsituationatOcémakesitnecessarytomodifySAAMfortworeasons:1)theorganisationalimpact<strong>of</strong>SAAM<strong>and</strong>2)the<br />
level<strong>of</strong>abstraction<strong>of</strong>thereferencearchitecture.<br />
Inthesituation<strong>of</strong>Océtheimpact<strong>of</strong>gatheringallpotentialstakeholders<br />
(asindicatedinTable4.2onthenextpage),wasconsideredtoolarge.The<br />
mainreasonwasthatthestakeholders<strong>of</strong>as<strong>of</strong>twarearchitecturetypically<br />
includesome<strong>of</strong>theimportantmembers<strong>of</strong>anorganisationthatusually<br />
haveverybusyschedules.Forthereferencearchitecturethisisespecially<br />
trueasitisthedevelopmentgroup’sambitiontomakeitareferencearchitecturethatwillimpactdevelopment<strong>of</strong>many<strong>of</strong>Océ’scopiersforyears.<br />
Furthermore,thescope<strong>of</strong>areferencearchitectureislargerthanthat<strong>of</strong>a<br />
single-productarchitecture<strong>and</strong>therefore,nexttoagroup<strong>of</strong>directstakeholdersalargegroup<strong>of</strong>indirectstakeholders(asindicatedinTable4.2on<br />
thefollowingpage)exist,whichmakesthecompletegroup<strong>of</strong>peoplewith<br />
aninterestinareferencearchitecturemuchlarger.
66 Chapter4. Evaluation<br />
Theincreasednumber<strong>of</strong>stakeholdersmadeitimpossiblet<strong>of</strong>indadate<br />
thatsuitedallstakeholders<strong>and</strong>undesirabletotakeoneortw<strong>of</strong>ulldays<strong>of</strong><br />
eachstakeholders’time.<br />
Besidesthenumber<strong>of</strong>stakeholdersthefactthatwearestudyingareferencearchitecturealsohasanimpactontheevaluation.<br />
Itaffectsthe<br />
level<strong>of</strong>abstraction;areferencearchitectureismoreabstractthanasingleproductarchitecture.<br />
Thecharacteristics<strong>of</strong>thesituationasfoundatOcéthatwediscussed<br />
abovehaveseveralimplicationsfortheevaluation. Belowwewilldiscuss<br />
howtheseissuesleadtomodificationstothetypicalSAAMprocessasdescribedbyKazmanetal.[1996].<br />
Table 4.2:Referencearchitecturestakeholders.<br />
Stakeholder Interest<br />
Architects Reference architecture architects<br />
Users Product architects<br />
Management Sponsors <strong>and</strong> decision makers<br />
Potential users Product architects not using the reference architecture<br />
Reuse group Provider <strong>of</strong> compliant components<br />
Indirect Stakeholders <strong>of</strong> products based on the reference<br />
architecture<br />
Theproposedtailoredversionisadistributedimplementation<strong>of</strong>SAAM,<br />
calledDistributedSAAM(DSAAM),thatimplementsparts<strong>of</strong>theSAAMactivities<strong>of</strong>f-line,separatelyfromthejointsession.Forinstance,inpreparationtotheevaluationsession,stakeholdersareconsultedindividually.ThejointSAAMsessionitselfinvolvesonlyparticipantsfullyaware<strong>of</strong><strong>and</strong>wellinformedonthereferencearchitecture.Theadvantage<strong>of</strong>thisapproachisthattheorganisationalimpactismuchsmaller.Off-lineconsultation<strong>of</strong>individualstakeholderstakeslesstimethanajointSAAMsession.Additionallytheseconsultationscanbescheduledfittingthestakeholders’agenda’s.Ofcoursethisapproachincreasestheeffortrequiredbytheassessorsinvolvedinthesepreparations.However,becausewetriedtominimiseorganisationalimpact,weaimedatreducingtherequiredstakeholdereffort.<br />
Anadditionaladvantageisthatsmallergatheringspotentiallyinduce<br />
lessambiguity,leadingtoamoreefficientjointsession. ThereforetheactualDSAAMevaluationsessionlastshalfadayinstead<strong>of</strong>theusualtwo<br />
days.Thisfurtherdecreasestheorganisationalimpact<strong>of</strong>theevaluation.
4.4. ConductingtheEvaluation 67<br />
4.4 ConductingtheEvaluation<br />
Theevaluationconsisted<strong>of</strong>roughlythreephases. First,thejointDSAAM<br />
sessionhadtobeprepared.Second,theDSAAMevaluationsessionitselfwas<br />
executed. Andfinallyanoverallevaluation<strong>of</strong>thereferencearchitecture<br />
wascreated.Threearchitectsinvolvedinthedevelopment<strong>of</strong>thereference<br />
architecture<strong>and</strong>twoexternalobserversparticipatedinthejointsession.<br />
One<strong>of</strong>thearchitectsplayedtherole<strong>of</strong>evaluationleader<strong>and</strong>prepared,<br />
chaired,<strong>and</strong>evaluatedthejointsession<strong>of</strong>DSAAM. ForeachSAAMstepin<br />
Figure4.3onpage64,weexplainbelowhowitwasincludedinthedifferent<br />
phases<strong>of</strong>theDSAAMassessment.<br />
4.4.1 Preparation<br />
Inpreparationtotheexecution<strong>of</strong>thejointDSAAMsessiontheavailable<br />
documentation(onthereferencearchitecture<strong>and</strong>onSAAM)wasdistributed<br />
amongtheparticipants. Thereferencearchitecture’sdocumentationwas<br />
especiallyusefulfortheexternalobserversasitexplainsthearchitecture<br />
<strong>and</strong>theappliedarchitecturalmechanisms. ThedocumentsonSAAMwere<br />
onlyusedbytheevaluationleader.<br />
Thestep‘developscenarios’wascarriedoutintwostages. Duringthe<br />
preparationphase,theevaluationleaderconsultedstakeholders<strong>of</strong>f-line.<br />
Thisresultedinaninitialset<strong>of</strong>high-levelscenariosrepresentingpossible<br />
futuresfromastakeholder’sperspective.Theset<strong>of</strong>stakeholdersincluded<br />
thesponsor<strong>of</strong>thereferencearchitecture,members<strong>of</strong>thes<strong>of</strong>twarereuse<br />
group,<strong>and</strong>hardware<strong>and</strong>domainexperts. Unfortunately,themarketing<br />
<strong>and</strong>maintenancegroupswerenotconsulted,whichlimitedtheviewon<br />
theroadmapsforOcécopiermachines. Thescenarioswererelatedtoeitherexistingproductsorforeseenproducts.Whetherthereferencearchitecturewasbasedontheseproductsisirrelevant.<br />
Theevaluationleader<br />
thenaddedmoredetailtothesescenariosaccordingtoatemplateforscenariosbasedonBassetal.[2003].<br />
4.4.2 Scenarios<br />
Intotalsixteenscenariosweredeveloped<strong>of</strong>f-line.Themajority<strong>of</strong>thescenariosaimedatreducingmaterialcosts,forexamplebysharingresources,<br />
usinglow-powerdesigns,or<strong>of</strong>floadingorre-mappingfunctionality. One<br />
scenario,forinstance,aimedatmovingfunctionalityfromtheengines<strong>of</strong>twaretothemaincontroller,anothersubsystem<strong>of</strong>acopier.<br />
Asecondkind<strong>of</strong>scenarioswasdevelopedtoreducedevelopmentcosts.<br />
Forinstance,introduction<strong>of</strong>codegenerationforcontrollers<strong>of</strong>sensors<strong>and</strong><br />
actuatorsbasedonmathematicalmodels<strong>of</strong>thosehardwaredevices.These
68 Chapter4. Evaluation<br />
scenarioswereespeciallytargetedatinteractionswhichgobeyondthedomainlevel,suchascommunicationswiththemechatronics,testing,<strong>and</strong><br />
manufacturinggroups.<br />
Finally,aminorsource<strong>of</strong>scenariosinvolvedanupgrade<strong>of</strong>thefunctionality,suchascolour<strong>and</strong>wide-formatprinting.Anexamplescenariois<br />
depictedinTable4.3inaformatdescribedbyBassetal.[2003].<br />
Stimulus<br />
Table 4.3:Anexamplescenario.<br />
Reduce power consumption by turning <strong>of</strong>f<br />
parts <strong>of</strong> the copier machine during low-power<br />
mode<br />
Response Solve in engine specific projects<br />
Source Electronics department<br />
Environment Engine development time<br />
Stimulated arte- Reference architecture documentation<br />
fact<br />
Response measure<br />
4.4.3 Execution<br />
Reuse percentage remains on same level<br />
Inthejointsessioneacharchitectrepresentedaproductasauser<strong>of</strong>the<br />
referencearchitecture.Additionally,allarchitectsplayedtherole<strong>of</strong>assessor.Assome<strong>of</strong>theparticipantshadnoexperienceinSAAMevaluations<strong>and</strong><br />
toexplainthesteps<strong>of</strong>theDSAAMprocess,thesessionstartedwithabrief<br />
introduction<strong>of</strong>theprocess. Fortheprocessobserversalsotherole<strong>of</strong>the<br />
referencearchitectureintheorganisation<strong>of</strong>Océwasexplained.<br />
The step ‘describe the architecture’ was largely omitted during the<br />
DSAAM session, since the DSAAM session only involved people that are<br />
well-informed with respect to the reference architecture <strong>and</strong> extensive<br />
documentationwasalreadyavailable.<br />
Thesecondpart<strong>of</strong>thestep‘developscenarios’wasdoneduringthe<br />
DSAAMsession.Thisinvolvedonlyarchitects<strong>of</strong>productsonwhichthereferencearchitecturewasbased.<br />
Apparently,thescenarioscontributedby<br />
thestakeholdersconsultedpriortothejointsessionarerepresentativefor<br />
whatmaychangeinthefuture,assolicitingforextrascenariosgaveno<br />
results.Assuch,thescenariosgathered<strong>and</strong>elaboratedbytheevaluation<br />
leaderwereused.<br />
Scenarioswereclassified,prioritised,<strong>and</strong>evaluatedasinSAAM,that<br />
is,duringthesessionitself. Thescenarioswereclassified<strong>and</strong>evaluated<br />
onebyone,bypassingprioritisation(Figure4.3onpage64). Figure4.4
4.4. ConductingtheEvaluation 69<br />
givesanimpression<strong>of</strong>thefinalresult<strong>of</strong>theSAAMsession.Scenarioswere<br />
classifiedin directly<strong>and</strong> indirectlysupportedscenarios.<br />
Priority<br />
1<br />
2<br />
3<br />
Direct scenarios Indirect scenarios<br />
concrete floating<br />
low impact high impact<br />
scenario ID<br />
description<br />
characterisation<br />
scenario ID<br />
description<br />
characterisation<br />
scenario ID<br />
description<br />
scenario ID<br />
characterisation<br />
description<br />
characterisation<br />
scenario ID<br />
description<br />
scenario ID<br />
characterisation<br />
description<br />
characterisation<br />
scenario ID<br />
description<br />
scenario ID<br />
characterisation<br />
description<br />
scenario ID<br />
characterisation<br />
description<br />
characterisation<br />
scenario ID<br />
description<br />
characterisation<br />
Figure 4.4:SAAMresults<br />
scenario ID<br />
description<br />
characterisation<br />
scenario ID<br />
description<br />
characterisation<br />
Ingeneral,firsttheimpact<strong>of</strong>ascenarioonaspecificproductwasevaluated,<strong>and</strong>thenitsimpactonthereferencearchitecture.Classification<strong>and</strong>evaluationrequiredadifferentattitudebecausewewereevaluatingareferencearchitectureinstead<strong>of</strong>aproductarchitecture.Thedifficultyliedinthefactthatwhilescenariosareconcrete,representingfuturefunctionality,orthequality<strong>of</strong>actualproducts,thereferencearchitectureisabstract.<br />
Thequestion:“Whatistheimpactonthereferencearchitecture?”neededto<br />
beansweredconsistentlyforallscenarios.Thereforewedefinedtwotypes<br />
<strong>of</strong>directscenarios:<br />
1.Scenariosthataresupportedbythereferencearchitectureasis<strong>and</strong><br />
forwhichitprovides concreteguidelinesonhowtorealisethemin<br />
productinstantiations,<strong>and</strong><br />
2.Scenariosthatcanberealisedbysystemsbasedonthereference<br />
architecture,butforwhichitdoesnot(yet)providedetailedinformationonhowtorealizethem(floating).<br />
Theclass<strong>of</strong> floatingscenarioscallsforacookbookwithrecipesthatdescribesolutionsforvariationpointsinthereferencearchitecture.Cookbookrecipesdescribehowthereferencearchitecturecanbeusedtorealizeaspecific(floating)scenario.Forexample,itmightbenecessarytodescribewhat
70 Chapter4. Evaluation<br />
kind<strong>of</strong>componentsneedtobedefinedorhowsome<strong>of</strong>thealreadydefined<br />
componentsshouldcooperatetoimplementthedesiredbehaviour.Thisinformationcanbeincludedinthereferencearchitectureinaseparatedocumentwithoutaffectingtheexistingdocumentation.Byrealisingscenarios<br />
thiswaythescope<strong>of</strong>reuseisextended<strong>and</strong>thereferencearchitecture’s<br />
classificationmovesfromplatformtowardsproductline(seeSection4.2.2).<br />
Anexample<strong>of</strong>suchacookbookrecipewasthedescription<strong>of</strong>howtorealizesharing<strong>of</strong>hardwareresourceswithinanengine.Therecipeswerejust<br />
newreferencearchitecturedocuments. Infact,some<strong>of</strong>theexistingdocumentsalreadyweresuchrecipes,suchasthedocumentdescribinghow<br />
functioncomponentshouldlooklike, withoutactuallydefiningconcrete<br />
functioncomponents. Thesedocumentshadadifferentnaturethanthe<br />
otherdocumentsthatdescribespecificcomponents<strong>of</strong>thereferencearchitecture,likeascheduler.Figure4.4onthepreviouspageshowsthatmost<br />
<strong>of</strong>thescenariosfallinthiscategory<strong>of</strong>directscenarios.<br />
Theindirectscenarioswere,asusualinSAAM,partitionedintwosubsets:asubsetwith<br />
lowimpact<strong>and</strong>asubsetwith highimpact.Overallthis<br />
assessmentsessiondidnotdiscovermanydesignflaws. Thearchitects<br />
spentmost<strong>of</strong>theirtimeonthesinglehighimpact,highpriorityscenario<br />
(multiplesheetpaths).<br />
Theindirectscenariointeractionwasconsideredverybrieflyasonlya<br />
fewindirectscenarioswerediscovered.Itwasconcludedthatthosedidnot<br />
interact.<br />
4.4.4 OverallEvaluation<br />
Thisfinalstage<strong>of</strong>theassessmentinvolvedtheoverallevaluation,which<br />
resultedinaset<strong>of</strong>strong<strong>and</strong>weakpoints. Theset<strong>of</strong>strongpointsincludestheaforementioneduse<strong>of</strong>thereferencearchitecture<strong>and</strong>itsflexibility;most<strong>of</strong>theevaluatedscenariosaredirectlysupported.<br />
Theset<strong>of</strong>weakpointsincludesadesignflawthatpreventssupportfor<br />
multiplesheetpaths,whichisrequiredforduplexprinting,forinstance.<br />
Additionally, thereferencearchitectureseemedincompleteasitmissed<br />
severalcookbookrecipes. Forexample,recipesforsharinghardwareresources<strong>and</strong>reusingenginepartsamongstdifferentenginesinasingle<br />
copierarecurrentlynotincluded. Anotherweaknesswasthatvariation<br />
pointswerenotexplicitinthedocumentation. Relatedtothisissueisa<br />
missingstructurefordocumentinganinstantiation<strong>of</strong>thereferencearchitecture,anenginegeneration,withrespecttoitsdocumentation.Itwasnot<br />
clearhowconformanceto<strong>and</strong>deviationsfromthereferencearchitecture<br />
shouldbespecifiedbyprojectsthatdevelopsuchaninstantiation. Nevertheless,thisisimportantforthemaintainability<strong>of</strong>thereferencearchitecture<strong>and</strong>itsinstantiations.
4.5. Discussion 71<br />
4.5 Discussion<br />
Belowwebothdiscusstheimplications<strong>of</strong>evaluatingareferencearchitecture<strong>and</strong>usingadistributedSAAMapproach<strong>and</strong>weindicatewherethese<br />
leadtosuggestionsforfuturework<strong>and</strong>researchquestions.<br />
4.5.1 ReferenceArchitecture<br />
ReuseLevel InSection4.2.2wepositionedthereferencearchitectureasa<br />
platform.Furthermoreitsbusinessdriverswereallrelatedtoreuse(Section4.2.1).Thereforethepositioningraisedtwoquestions:isthepositioning<strong>of</strong>thereferencearchitecturecorrectforthecurrentsituation,<strong>and</strong>for<br />
thefuture?Ifcorrect,thecurrentreusepositioningasaplatformshouldbe<br />
supportedbylinksbetweenthedocumentation<strong>of</strong>thereferencearchitecture<br />
<strong>and</strong>thedocumentation<strong>of</strong>instantiatedproducts.Inview<strong>of</strong>thereusepositioning,weexpectaconsiderablereductionintheeffort<strong>of</strong>documentinga<br />
productinstantiationcomparedtoasingle-productarchitectureapproach.<br />
Aprerequisiteforthisconjectureisthattheremustbeasystematicway<br />
<strong>of</strong>documentingproductinstantiationswithrespecttothereferencearchitecture.<br />
Itisunclearwhethersuchasystematicdocumentationprocess<br />
exists.<br />
ResearchquestionCanwedefine<strong>and</strong>deployasystematicprocessfordocumentingproductarchitectureswithrespecttoareferencearchitecture?<br />
Inordert<strong>of</strong>indoutifproductinstancesaredocumentedwithrespect<br />
totheirreferencearchitectureinasystematicwayreusemetricsarerequired[Poulin,1997]todeterminehowmuch<strong>of</strong>thereferencearchitecturedocumentationisreusedintheproductinstancedocumentation.Asanexample<strong>of</strong>suchareusemetric,considertwoindicativefigures:therelative<br />
size<strong>and</strong>anormalisedcohesionfactor. Thesizefactorcalculatesthelines<br />
<strong>of</strong>documentation<strong>of</strong>aproductinstantiationrelativetothesize<strong>of</strong>thereferencearchitecture’sdocumentation.<br />
Thecohesionfactortakesthenumber<br />
<strong>of</strong>referencesfromthedocumentation<strong>of</strong>aconcreteproducttothereference<br />
architecture’sdocumentationthath<strong>and</strong>levariationpoints,normalisedwith<br />
thetotalnumber<strong>of</strong>referencesfromtheproductinstantiationdocumentationtothereferencearchitecture’sdocumentation.Alowrelativesize<strong>and</strong>highcohesionfactorindicateahighreusefactor<strong>and</strong>thusasystematicapproachforreusingthereferencearchitectureinproductinstantiations.<br />
FutureworkDefineametrictopositionareferencearchitecture<br />
withrespecttoscope<strong>of</strong>reuse.
72 Chapter4. Evaluation<br />
Withrespecttothefuturereusepositioning<strong>of</strong>thereferencearchitecture<br />
wewouldexpect,lookingatitsreuse-orientedbusinessdrivers,thatOcé<br />
aimstoincreaseitsreusescope.Thisobjectiveissupportedbytheidentification<strong>of</strong>variousdirectfloatingscenarios,whichwillbeimplementedbythe<br />
developmentteaminacookbook(Figure4.4onpage69).Thisimpliesthat<br />
Océindeedforeseesthatthereusepositioning<strong>of</strong>thereferencearchitecture<br />
israisedfromplatformtos<strong>of</strong>twareproductlineinthenearfuture.<br />
Updates Maintainabilitywasthecentralqualityaspectintheevaluation.<br />
Oneaspect<strong>of</strong>maintainabilityisthepossibilitytoupdatethereference<br />
architecturewithdevelopmentsthattakeplaceinaproductinstantiation:<br />
duringtheobliquelinesinFigure4.2onpage62.Inordertosuccessfully<br />
implementaproposedupdatetwoissuesneedtobeconsidered: conformance<strong>and</strong>permissiveness.Conformanceistheextenttowhichtheproductarchitecture<strong>and</strong>referencearchitecturematch.<br />
Onemustspecifytheupdateinagreementwith<br />
theexistingreferencearchitecture.Thisisnecessary,forexample,topreventspecification<strong>of</strong>updatestocomponentsthatdonotexistatallinthe<br />
referencearchitecture. Thearchitecture<strong>of</strong>aproductmayundergosmall<br />
changesduringitsdevelopment.Consequently,theremaybeadiscrepancy<br />
betweentheproductarchitecture<strong>and</strong>thereferencearchitecture.Thediscrepancymayobstructthetransfer<strong>of</strong>architecturalfragments,e.g.,acookbookrecipe,fromthereferencearchitecturetotheproductarchitecture.<br />
Butitmayalsoobstructtheupdate<strong>of</strong>thereferencearchitectureitself.<br />
Todetectthesearchitecturaldiscrepancies<strong>and</strong>suggestpossiblerepairs,<br />
onecouldchecktheconformancebyfirstusingreverseengineeringtechniquestoraisethelevel<strong>of</strong>abstraction<strong>of</strong>concreteproductarchitectures<br />
<strong>and</strong>thencomparetheresultwiththereferencearchitecture[VanDeursen<br />
etal.,2004].Chapters5<strong>and</strong>ch:ewsa2005investigatehowtoassessconformance<strong>of</strong>architecturespecificationsautomatically.<br />
FutureworkDevelopatechniquetomeasuretheconformance<br />
<strong>of</strong>aproductarchitecturewithrespecttothereferencearchitecture<br />
onwhichitisbasedinordertoassessthepossibilitytotransferfragmentsfromaproductarchitecturetothereferencearchitecture.<br />
Thebarefactthataproducthasanarchitecturethatconformswiththe<br />
referencearchitecturedoesnotensurebyitselfthataproposedupdatewill<br />
besuccessful. Thereferencearchitecturealsohastobepermissivewith<br />
respecttotheupdate. Thereferencearchitecturemustprovidetheflexibilitytoincorporatetheproposedupdate.<br />
Anupdatemightviolatesome<br />
<strong>of</strong>thedesigndecisionstakenearlier;whetherthisisthecaseisinpracticegenerallyhardtoassess.<br />
Onereasonforthisisthatdesigndecisions
4.5. Discussion 73<br />
arenotcompletelydocumented.Mosttimesonlythestructuraleffect<strong>of</strong>a<br />
designdecisionisdocumented. Documentingotheraspects<strong>of</strong>designdecisions,suchastheirrationale<strong>and</strong>effectwithrespectto(non)-functional<br />
requirementsis<strong>of</strong>tenneglected.<br />
ResearchquestionHowcanwedocumentdesigndecisionsexplicitly<strong>and</strong>howcanwethenusethemtoassessanarchitecture’s<br />
permissivenesswithrespecttoaproposedupdate?<br />
Use<strong>of</strong>Reference<strong>Architectures</strong> Besidesitstechnicaluseasastartingpointfor<br />
productspecifics<strong>of</strong>twarearchitectures,thereferencearchitectureserved<br />
accordingtoitsobjectivesasadiscussionplatformforthes<strong>of</strong>twarearchitects<strong>of</strong>differentproducts.Inthatsensethereferencearchitectureindeed<br />
isanefficientwaytoexchangeexperiencesamongproductteams.<br />
Anotheruse<strong>of</strong>thereferencearchitectureappearedduringdiscussions<br />
inthe DSAAMevaluation. Itactsasastableplatformfornegotiations<br />
amongstdifferentdomains: themechatronics,manufacturing,<strong>and</strong>s<strong>of</strong>twarereusegroupsatOcé.Byintroducingageneric<strong>and</strong>morestablearchitecturefortheengines<strong>of</strong>tware<strong>of</strong>Océcopiersthedevelopmentgrouptries<br />
topreventthats<strong>of</strong>twareisautomaticallyconsideredtobethemeansto<br />
solveproblemsduringengineintegration. Assuchdefininganembedded<br />
s<strong>of</strong>twarereferencearchitecturehelpscreatingabetterbalancebetweenthe<br />
differentdisciplinesinvolvedinenginedevelopment.Thisisatypicalproblemintheembeddeds<strong>of</strong>twaredomainaswasalsoobservedintheinventory<br />
describedinChapter3.<br />
Intheevaluationweconducted,theusage<strong>of</strong>thereferencearchitecture<br />
wasnotaddressedexplicitly. Consideringthespecificuse<strong>of</strong>referencearchitecturesdescribedabove,itseemsusefultodoso,especiallyinthecase<br />
<strong>of</strong>embeddedsystems.<br />
ResearchquestionHowcanweincludetheusage<strong>of</strong>areference<br />
architectureinanevaluation?<br />
4.5.2 DistributedSAAM<br />
Themainconcern<strong>of</strong>scenario-basedevaluationmethodsiswhetherthecoverage<strong>and</strong>scopeisbroadenoughtobeconclusiveaboutthefindings<strong>of</strong>the<br />
evaluation. SAAMovercomesthisbyorganisingageneraltwo-daygathering,whichismoderatedbyexperiencedassessors.InDSAAMwehadtotake<br />
alternativemeasures.<br />
Inview<strong>of</strong>thetwoquestionsabove,thenumber<strong>of</strong>directstakeholders<br />
<strong>of</strong>thereferencearchitectureislimited(seeTable4.2onpage66),although
74 Chapter4. Evaluation<br />
manyindirectstakeholderscanbeidentified. Thesetwogroups<strong>of</strong>stakeholdersseemtohavedifferentinterests.<br />
Raisingthescope<strong>of</strong>reuse<strong>of</strong>thereferencearchitecturedirectlyconcerns<br />
thearchitects<strong>of</strong>compatibleproductsasitsusers<strong>and</strong>architects.Itimplies<br />
thatthereferencearchitecturenotonlyshouldidentifyvariationpoints<br />
butalsoexplicitlygivealternatives. Thecookbook<strong>of</strong>theprevioussection<br />
providesthese.<br />
Scenariosthatdescribefuturedevelopment<strong>of</strong>existing<strong>and</strong>foreseen<br />
productsaretheconcern<strong>of</strong>thestakeholders<strong>of</strong>thoseproducts.Thedevelopment<strong>of</strong>thesescenariosistheresponsibility<strong>of</strong>thesestakeholders,which<br />
arenotnecessarilyalsodirectstakeholders<strong>of</strong>thereferencearchitecture.<br />
Ontheotherh<strong>and</strong>theresultingscenariosareinputtoDSAAMsession,thus<br />
indirectlytheyare.<br />
Onemeasurewetooktoincludeindirectstakeholdersintheevaluation<br />
wastosplittheprocess<strong>of</strong>developingtheset<strong>of</strong>scenariosintwostages:an<br />
<strong>of</strong>f-linestagewiththeindirectstakeholders,<strong>and</strong>aDSAAMstagewiththe<br />
directstakeholders. Thescenariosprovidedbytheindirectstakeholders<br />
wereproductspecific.Evaluatingtheimpactonthereferencearchitecture<br />
wasnottheirconcern,butthat<strong>of</strong>thedirectstakeholders. Furthermore<br />
thedirectstakeholdersaretheonlyonescapable<strong>of</strong>doingso. Therefore<br />
becauseonlytheindirectstakeholderswereexcludedfromthejointsession,<br />
thescope<strong>of</strong>theDSAAMsessionwasnotaffectedbythelack<strong>of</strong>stakeholder<br />
interactionduringevaluation.<br />
However,thisalsopreventedindirectstakeholderstointerfereorinteractduringscenarioprioritisation.DuringtheDSAAMsession,thearchitectsconcentratedonthemostlikelyscenarios,fromtheperspective<strong>of</strong>anarchitect.Althoughscenarioswereprioritisedwithrespecttotheirimpact,there<br />
wasnoclearrationaleforthisranking. HenceDSAAM’sscopewasstillat<br />
riskduetothepossibility<strong>of</strong>awrongscenarioprioritisation.<br />
InordertovalidateDSAAM’sscopewerecommendtoorganiseindirect<br />
stakeholder involvement after the joint session. During this feedback<br />
phasestakeholdersmightbeconsultedinsmallsessionsorindividualinterviews,inthesamewayaswedidinpreparationtothesession.<br />
This<br />
timetheindirectstakeholderscancommentonthescenariosprioritisation<strong>and</strong>verifywhethertheevaluationcoveredallrelevantaspects<strong>of</strong>the<br />
architecture. Thispreservesthesmallimpactontheorganisation<strong>of</strong>fered<br />
byDSAAM.Duringthefeedbackphase,indirectstakeholdersmayconclude<br />
thatsomelikelyscenarioshavenotbeenevaluatedthoroughlyenough.<br />
Thusthefeedbackphasemayyieldnewlydevelopedscenarios. Thisnew<br />
set<strong>of</strong>scenarioshastobeevaluatedinanewDSAAMsession.<br />
FutureworkExtendDSAAMwithan<strong>of</strong>f-linefeedbackphaseafterthejointsessionforindirectstakeholders.
4.6. RelatedWork 75<br />
Use<strong>of</strong>Documentation Duringtheassessmentweweresomewhatsurprised<br />
thattheactualdocumentation<strong>of</strong>thereferencearchitecturewasnotusedat<br />
allduringthesession.Thismeansthatthearchitectureassessedistheone<br />
thatisintheteammembers’heads,<strong>and</strong>notthedocumentedarchitecture.<br />
Thecorrespondingriskisthattheteammayhavedifferentarchitectures<br />
intheirminds,thatthedocumentedarchitectureisinadequate,<strong>and</strong>that<br />
architectsnotparticipatingmayhavedifferentperspectives.Thuswehave:<br />
ResearchquestionHowcanweinvolvethearchitectureasdocumentedexplicitlyintheassessmentprocess?<br />
Solutiondirectionswillrequireexplicit,analysablerepresentations<strong>of</strong><br />
boththearchitecture<strong>and</strong>thescenariosusedintheassessment.Aninterestingresearchtopiciswhetherinformationretrievaltechniquescanbe<br />
usedtoanalysetherelationshipbetweenthesetworepresentations.<br />
4.6 RelatedWork<br />
An overview <strong>of</strong> SAAM <strong>and</strong> ATAM, as well as references to many other<br />
methodsforevaluatings<strong>of</strong>twarearchitecturescanbefoundinthebook<br />
byClementsetal.[2002b].<br />
Gallagher[2000]discussestheapplication<strong>of</strong>ATAMtoareferencearchitecture.Unfortunately,hehardlydiscussesanyissuesspecifictotheevaluation<strong>of</strong>referencearchitectures(suchasthedifferentrole<strong>of</strong>scenarios).<br />
Thereferencearchitectureismoreorlessevaluatedasasingle-product<br />
s<strong>of</strong>twarearchitecturewithspecificbusinessdrivers.<br />
Sincetheboundarybetweenproductlinearchitectures<strong>and</strong>reference<br />
architecturesisnotalwaysdistinct(Section4.2),anotherarea<strong>of</strong>relevant<br />
relatedworkisthefield<strong>of</strong>productlineevaluation.Lutz<strong>and</strong>Gannod[2003]<br />
discussthearchitecturalanalysis<strong>of</strong>aproductlinearchitecture. Theauthorspresentathree-phasedapproachconsisting<strong>of</strong>architecturerecovery,<br />
scenario-basedassessment,<strong>and</strong>modelchecking<strong>of</strong>safety-criticalbehaviour.<br />
Hereas<strong>of</strong>twarearchitectureneededtoberecoveredfromanexistingproduct,whichisthenevaluatedinordertoseewhetherthistype<strong>of</strong>productis<br />
amenabletoaproduct-line-developmentapproach.<br />
Ofparticularinterestareevaluationmethodsfocusingonmaintainability.<br />
Thearchitecture-levelmodifiabilityanalysis[Bengtssonetal.,2004]<br />
(ALMA)methodintegratesanumber<strong>of</strong>differentscenario-basedapproaches<br />
forassessingarchitecturemaintainability.
76 Chapter4. Evaluation<br />
4.7 Conclusion<br />
Inthischapterwereportedtheevaluation<strong>of</strong>anembeddeds<strong>of</strong>twarereferencearchitectureusingatailoredSAAM-basedapproach.<br />
Theobjective<strong>of</strong><br />
theassessmentwastoassessthemaintainability<strong>of</strong>thearchitecture.Maintainabilityinvolvedtwoaspects,raisingthescope<strong>of</strong>reusefromaplatform<br />
toaproductline<strong>and</strong>facilitatinganticipatedextensions<strong>of</strong>derivedproducts<br />
<strong>and</strong>futureproducts.<br />
Theevaluation<strong>of</strong>thereferencearchitecturewasbasedonadistributed<br />
SAAM(DSAAM)method, involvingthreephases: apreparationphasein<br />
whichindirectstakeholdersareconsultedindividuallytocollectscenarios,ajointevaluationsessionwithonlyarchitects<strong>and</strong>observers,<strong>and</strong>an<br />
evaluationphase.<br />
Assessingareferencearchitectureisdifferentfromassessingaproduct<br />
architecture. InanordinarySAAMsession,evaluatedscenariosarecategorisedindirectly<strong>and</strong>indirectlysupportedscenarios.<br />
Wesubdividedthe<br />
set<strong>of</strong>directlysupportedscenariosintothosewithevidence<strong>of</strong>beingsupportedbythereferencearchitecture<strong>and</strong>thosewithoutevidence.Thelatter<br />
classtypicallyconsist<strong>of</strong>scenariosforwhichsolutionsareavailableinone<br />
<strong>of</strong>theproducts,butthesehavenotbeendocumentedyet. IntheDSAAM<br />
sessionwedefinedacookbooktocoverthesescenarios.<br />
Theexperienceprovidedvaluableinsightsforindustryaswellasfor<br />
academia. InretrospectwearguedthatDSAAMisasuitableapproachfor<br />
thegivensituation,assessingthemaintainability<strong>of</strong>amaturingreference<br />
architecture.Boththecoverage<strong>of</strong>DSAAM<strong>and</strong>thequality<strong>of</strong>itsconclusions<br />
aretenable.Notethatreference<strong>and</strong>product-linearchitecturesenableefficientreuse,akeybusinessdriverinmanyorganisations.Theconceptsonwhichthistype<strong>of</strong>architecturesarebasedarematuring.Thereforeitisexpectedthatmore<strong>and</strong>morecompanieswilladoptaproduct-lineapproach,<br />
possiblyinvolvingreferencearchitectures.<br />
Océgainedinsightinthepositioning<strong>and</strong>status<strong>of</strong>thereferencearchitectureintheirorganisation,itscurrentposition,<strong>and</strong>itsfutureposition.<br />
Océalsogainedconfidenceinitsmaintainability.<br />
Wegainedinsightintheprocess<strong>of</strong>assessingareferencearchitecture.<br />
Forinstance,scenariosaretypicallyevaluatedbasedonaproductinstance<br />
<strong>and</strong>theresultsareabstractedtothereferencearchitecture. Thisevokes<br />
allkinds<strong>of</strong>questionsrelatedtotopicssuchasconformancechecking<strong>and</strong><br />
documentingdesigndecisions,asdiscussedinSection4.5.
Chapter5<br />
<strong>Model</strong>-<strong>Driven</strong> Consistency Checking<br />
<strong>of</strong> Behavioural Specifications 1<br />
For the development <strong>of</strong> s<strong>of</strong>tware intensive systems different types <strong>of</strong> behaviouralspecificationsareused.<br />
Althoughsuchspecificationsshouldbe<br />
consistentwithrespecttoeachother,thisisnotalwaysthecaseinpractice.<br />
Maintainabilityproblemsaretheresult. Inthischapterwepropose<br />
atechniqueforassessingtheconsistencybetweentwotypesbehavioural<br />
specifications: scenarios<strong>and</strong>statemachines. Thetechniqueisbasedon<br />
thegeneration<strong>of</strong>statemachinesfromscenarios. Wespecifytherequired<br />
mappingusingmodeltransformations. Theuse<strong>of</strong>technologiesrelatedto<br />
the<strong>Model</strong><strong>Driven</strong>Architectureenableseasyintegrationwithwidelyadopted<br />
(UML)tools.Weappliedourtechniquetoassesstheconsistencybetweenthe<br />
behaviouralspecificationsfortheembeddeds<strong>of</strong>tware<strong>of</strong>copiersdeveloped<br />
byOcé. Finally,weevaluatetheapproach<strong>and</strong>discussitsgeneralisability<br />
<strong>and</strong>widerapplicability.<br />
5.1 Introduction<br />
Systemunderst<strong>and</strong>ingisaprerequisiteformodifyingas<strong>of</strong>twareintensive<br />
system[Lehman<strong>and</strong>Belady,1985].Assuchthe(typical)absence<strong>of</strong>up-todatedesigndocumentationhamperssuccessfuls<strong>of</strong>twaremaintenance<strong>and</strong><br />
evolution. Inthischapterweaddressthisproblemforthedocumentation<br />
<strong>of</strong>asystem’sbehaviour. Wefocusonensuringtheconsistencybetween<br />
twotypes<strong>of</strong>behaviouralspecifications:interaction-based<strong>and</strong>state-based<br />
1 Thischapterwaspublishedearlieras:Graaf,Bas<strong>and</strong>ArievanDeursen. <strong>Model</strong>-driven<br />
consistencychecking<strong>of</strong>behaviouralspecifications.InProceedings<strong>of</strong>the4 th International<br />
Workshopon<strong>Model</strong>-basedMethodologiesforPervasive<strong>and</strong>EmbeddedS<strong>of</strong>tware(MOM-<br />
PES2007),pages115–126.IEEEComputerSociety,2007a<br />
77
78 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
Requirements<br />
Use cases<br />
Architecture<br />
Scenarios<br />
Stakeholders<br />
Architect<br />
State machines<br />
Maintenance<br />
Mistakes<br />
Developers<br />
Shortcuts<br />
Inconsistencies<br />
Tools/Developers<br />
Problems<br />
Components<br />
Product<br />
Figure 5.1:Typicaldevelopmentprocess<br />
Integrator<br />
behaviouralmodels. Theuse<strong>of</strong>suchspecificationsisillustratedbythe<br />
developmentprocessdepictedinFigure5.1.Itisbasedonthewell-known<br />
V-model[Bröhl<strong>and</strong>Dröschel,1995]<strong>and</strong>thestartingpoint<strong>of</strong>ourresearch.<br />
Ontheleftbranch<strong>of</strong>the‘V’analysisactivitiestakeplace.Basedon Requirements,thehigh-level<br />
Architectureisdefined.Thisarchitectureidentifies<br />
themaincomponents<strong>of</strong>thesystem<strong>and</strong>assignsresponsibilities.Inparallelrequirementsaremademoreconcreteby<br />
Use casesthatspecifytypical<br />
interactionsausermayhavewiththesystem. Onedistinctiveproperty<br />
<strong>of</strong>usecasesisthatthesystemisconsideredtobeablackbox[Jacobson,<br />
1992].Theseusecasesarethefirstinteraction-basedbehaviouralmodels.<br />
Basedontheusecasesaset<strong>of</strong> Scenariosisdefinedthatspecifiesthe<br />
interactions<strong>of</strong>thesystem’scomponentsinterms<strong>of</strong>exchangedmessages.<br />
Typically,everyusecaseresultsinone(normalbehaviour)ormore(includingexceptionalbehaviour)scenarios.Thesescenariosarealsointeractionbasedbehaviouralmodels,butnowthesystemisconsideredtobeawhitebox;<br />
theyshowtheinteractionsbetweenthecomponentsdefinedbythe<br />
architecture.<br />
Eventually,thearchitecture’scomponentsneedtobeimplemented.This<br />
requiresacompletebehaviouralspecification.Scenariosare,however,not<br />
intendedtoprovidesuchaspecificationforanindividualcomponent.First,<br />
thespecification<strong>of</strong>acomponent’sbehaviourisscatteredacrossmultiple<br />
scenarios.Second,theyareusuallyonlydefinedforthecomponents’most<br />
typical<strong>and</strong>importantbehaviours. Therefore,acompletestate-basedbehaviouralmodel,aState<br />
machine,iscreatedforeachcomponentbasedon<br />
theset<strong>of</strong>scenarios. Thisstatemachineisusedtoimplementorgener-
5.1. Introduction 79<br />
atethecomponent.Finally,ontheright-h<strong>and</strong>side<strong>of</strong>the‘V’,thedifferent<br />
componentsareintegratedintoacompleteproduct.<br />
Suchas<strong>of</strong>twaredevelopmentprocess,wherestate-basedcomponentdesignisbasedonthespecification<strong>of</strong>aset<strong>of</strong>usecases,isadvocatedbymanycomponent-based,object-oriented,<strong>and</strong>real-times<strong>of</strong>twaredevelopmentmethods[D’Souza<strong>and</strong>Wills,1998;Kruchten,1998;Jacobsonetal.,<br />
1999;Selicetal.,1994].Assuch,manys<strong>of</strong>twaredevelopmentorganisations<br />
deploysimilardevelopmentprocesses.<br />
Ass<strong>of</strong>twareevolvesitis<strong>of</strong>tenthecasethatchangesaremadeto‘downstream’s<strong>of</strong>twaredevelopmentartefacts(suchasdesigns)withoutpropagatingthechangestothecorresponding‘upstream’s<strong>of</strong>twaredevelopment<br />
artefacts(suchasrequirements).Thiscanbetheresult<strong>of</strong>changerequests,<br />
butalso<strong>of</strong>designflawsthatareonlydiscoveredonamoredetailedlevel.<br />
Otherinconsistenciesaresimplyintroducedbymisinterpretations<strong>of</strong>‘upstream’developmentartefacts.<br />
Inthischapterwefocusoninconsistenciesbetweeninteraction-based<br />
behaviouralmodels<strong>and</strong>state-basedbehaviouralmodels. Inconsistencies<br />
betweenthesemodelscanbeparticularlyimportantbecausetheydecomposebehaviouralongdifferentdimensions.<br />
Interaction-basedmodelsare<br />
decomposedaccordingtothedifferentusecases,thatis,theyarerequirements-driven.<br />
State-basedmodels, ontheotherh<strong>and</strong>, aredecomposed<br />
accordingtothedifferentcomponentsthatwereidentifiedduringarchitecturedesign,thatis,theyarearchitecture-driven.Thismakesithardto<br />
discoverinconsistencies[Amyot<strong>and</strong>Eberlein,2003;Bontempsetal.,2005].<br />
Furthermore,whendifferentdevelopmentgroupsareresponsibleforthe<br />
development<strong>of</strong>thedifferentarchitecturalcomponents,<strong>and</strong>thesegroups<br />
individuallyresolveinconsistenciesindifferentways,thismayobviously<br />
leadtoproblemsduringintegration<strong>and</strong>maintenance.<br />
Inindustrialpracticebehaviouralmodelsare<strong>of</strong>tenspecifiedusingthe<br />
Unified<strong>Model</strong>ingLanguage 1 (UML). Moreover,toolsareavailablethat,<br />
basedon UML,arecapable<strong>of</strong>generatingsourcecodefromsuchmodels.<br />
Consideringsuchamodel-basedinfrastructure,webelieveitmakessense<br />
toviewconsistencychecking<strong>of</strong>behaviouralspecificationsasamodeltransformationproblem.Inthischapterweinvestigatewhattheadvantages<strong>and</strong>disadvantagesare<strong>of</strong>usingmodeltransformationtechnologytodiscoverinconsistenciesbetweeninteraction-based<strong>and</strong>state-basedbehaviouralmodels.Furthermore,weaimtominimisetheimpact<strong>of</strong>ourapproachonexistingdevelopmentprocesses,forinstance,interms<strong>of</strong>thelanguages<strong>and</strong><br />
toolsused.<br />
InSection5.2weintroducetheindustrialcasethatmotivatedthischapter:<br />
anembeddeds<strong>of</strong>twarecontrolcomponentdevelopedbyOcé,alarge<br />
1 http://www.uml.org(June2007)
80 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
copiermanufacturer. AtOcéanimportantcopiersubsystemisdeveloped<br />
usingaprocesscorrespondingtoFigure5.1onpage78.Moreover,thecomponentsforthissubsystemaregeneratedfromstatemachinemodels.<br />
As<br />
such,debugging,forinstance,isperformedonthelevel<strong>of</strong>statemachines.<br />
Asaresultinconsistenciesbetweenscenarios<strong>and</strong>statemachinesbecome<br />
evenmorelikely,makingitaconcernforOcé.Otherworkontherelation<br />
betweenscenarios<strong>and</strong>statemachinesisdiscussedinSection5.3.Theenablingtechnologiesforourapproach,aswellas,therelevantpart<strong>of</strong>the<br />
underlyingUMLspecification,<strong>and</strong>ourprocessforconsistencycheckingare<br />
discussedinSection5.4.InSection5.5wecustomiseanexistingmapping<br />
betweenscenarios<strong>and</strong>statemachinesbasedonWhittle<strong>and</strong>Schumann<br />
[2000]forspecificationasmodeltransformations<strong>and</strong>consistencychecking.<br />
Theapplication<strong>of</strong>ourapproachtotheOcécaserequiresthatthescenariosasfoundinOcé’sarchitecturedocumentationarenormalisedintoaformsuitedforthemodeltransformations<strong>of</strong>ourapproach.Afternormalisation<strong>and</strong>application<strong>of</strong>ourapproachweidentifiedseveralinconsistenciesinthebehaviouralspecificationsthatcouldleadtointegration<strong>and</strong>maintenanceproblems.ThisisdiscussedinSection5.6.Finally,wereflectonour<br />
approachinSection5.7<strong>and</strong>concludewithanoverview<strong>of</strong>thecontributions<br />
<strong>of</strong>thischapter<strong>and</strong>opportunitiesforfutureworkinSection5.8.<br />
5.2 RunningExample<br />
Ourmotivationforinvestigatingtheconsistencybetweeninteraction-<strong>and</strong><br />
state-basedbehaviouralmodelscomesfromaproduct-linearchitecturefor<br />
s<strong>of</strong>twareincopiersdevelopedbyOcé.Weusethisarchitectureasourrunningexample<strong>and</strong>casestudy,<strong>and</strong>forthatreasonbrieflyexplainitfirst.<br />
AtOcéareferencearchitectureforcopierenginesisdeveloped. Ina<br />
copierboththescanning<strong>and</strong>printingsubsystemsarereferredtoasan<br />
engine. Thereferencearchitecturedescribesanabstractenginethatcan<br />
beinstantiatedfor(potentially)anyOcécopier.<br />
Asarunningexampleweuseone<strong>of</strong>thereferencearchitecture’scomponents:theEngineStatusManager(ESM).<br />
Thiscomponentisresponsible<br />
forh<strong>and</strong>lingstatusrequests<strong>and</strong>statusupdatesintheengine. ESM<strong>and</strong><br />
theothermaincomponents<strong>of</strong>thereferencearchitecturearedepictedin<br />
Figure5.2.<br />
Inacopierengine ESMcommunicateswithtwotypes<strong>of</strong>components:<br />
statuscontrol Clients,<strong>and</strong> Functions. Clientsrequestenginestatetransitions.<br />
Requestsbytheexternalstatuscontrolclient(Controller)aretranslatedby<br />
the EAI(EngineAdapterInterface)component.Toperformstatusrequests<br />
<strong>of</strong> Clients, ESMcontrolsthestatus<strong>of</strong>individual Functioncomponents. Functions,inturn,recursivelycontrolthestatus<strong>of</strong>theircomposing<br />
Functions.
5.2. RunningExample 81<br />
Figure 5.2:Architectureforcopierengines<br />
Forthedevelopment<strong>of</strong> ESM<strong>and</strong>othercomponents,aprocessisused<br />
similartotheprocessoutlinedinSection5.1.ForthisOcéreliesonamodeldrivenapproachbasedon<br />
UML[Dohmen<strong>and</strong>Somers,2003]. Architects<br />
specifyusecaserealisationsusingUMLsequencediagrams.Basedonthese<br />
diagrams,foreverycomponentaUMLstatechartdiagramiscreated.Using<br />
specialtooling 1 ,thesourcecodefortheenginecomponents(e.g., ESM)is<br />
largelygeneratedbasedonthosestatechartdiagrams.ForOcé’sdevelopers<br />
thesestatechartdiagramsactuallyaretheimplementation.<br />
One<strong>of</strong>thereasonsforintroducinga(automated)model-drivendevelopmentapproachwastoovercomeconsistencyproblemswithrespectto<br />
statemachinemodels<strong>and</strong>sourcecode[Dohmen<strong>and</strong>Somers,2003]. By<br />
automaticallygeneratingsourcecodefromstatemachinesthisproblemis<br />
effectivelymoved‘upwards’totheconsistencybetweenscenarios<strong>and</strong>state<br />
machines.<br />
ForESM,eachusecaseaddressesaspecificenginestatetransition. A<br />
usecaseisaccompaniedbyaUMLsequencediagram.Asanexample,considerthediagraminFigure5.7(a)onpage96.<br />
Itdepictstheinteraction<br />
thatoccurswhenacopierengineisrequestedtogotost<strong>and</strong>by,whileitis<br />
running. AtOcéthesesequencediagramsarepurelyusedforcommunicationpurposes,ratherthanasinputforautomaticprocessing(e.g.,model<br />
transformations,orcodegeneration).Because<strong>of</strong>this,theyarenotalways<br />
complete<strong>and</strong>precise. Furthermore,proprietary(non-UML)constructsare<br />
used. Asanexample,inthesesequencediagramsthelifeline<strong>of</strong>theESM<br />
componentisdecoratedwiththename<strong>of</strong>its(high-level)stateatthatpoint<br />
<strong>of</strong>theinteraction.<br />
Toensuresuccessfulevolution<strong>and</strong>maintenance<strong>of</strong>thereferencearchitecture<strong>and</strong>thecomponentsitdefines,ameanstoassesstheconsistencybetweentheinvolvedbehaviouralspecificationsisessential.Itisthischallengeweaddressinthischapter.<br />
1 IBMRationalRoseTechnicalDeveloper-http://www.ibm.com/s<strong>of</strong>tware/awdtools/<br />
developer/technical(June2007)
82 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
5.3 RelatedWork<br />
Several formal approaches have been proposed that address problems<br />
similartoours. Lam<strong>and</strong>Padget[2003]translateUMLstatechartsinto πcalculustodeterminebehaviouralequivalenceusingbisimulation.Schäferetal.[2001]presentatoolthatusesmodelcheckingtoverifystatemachines<br />
against collaboration diagrams. The use <strong>of</strong> such tools <strong>and</strong> approachesrequirescomplete,precise<strong>and</strong>integratedinteraction-<strong>and</strong>statebasedbehaviouralmodels.<br />
Thisimplies,forinstance,thatsending<strong>and</strong><br />
reception<strong>of</strong>messagesinscenariosareexplicitlylinkedtoevents<strong>and</strong>effectsinstatemachines.<br />
Inourcase,forthesequencediagrams,thisis<br />
problematic. Theyarecreatedearlyinthedevelopmentprocess<strong>and</strong>not<br />
intendedtobecompleteorprecise.<br />
Totakethisintoaccount,wegenerateastatemachinefromaset<strong>of</strong><br />
inputscenarios,that,subsequently,iscomparedtothestatemachinethat<br />
wascreatedbythedevelopers.<br />
Manyapproacheshavebeendefinedforsynthesis<strong>of</strong>state-basedmodels<br />
fromscenario-basedmodels. Amyot<strong>and</strong>Eberlein[2003],<strong>and</strong>Liangetal.<br />
[2006]bothevaluateovertwenty<strong>of</strong>them.Evaluationcriteriaincludelanguages,meanstodefinescenariorelationships<strong>and</strong>statemodeltype.Our<br />
industrialcasegivesustherequirementswithrespecttothesecriteriafor<br />
asynthesisapproach.<br />
Instead<strong>of</strong>usingamorepowerfulscenariolanguagesuchaslivesequencecharts[Damm<strong>and</strong>Harel,2001],welimitourselvestoUMLsequence<br />
diagramsaugmentedwithdecorations,asdictatedbyourindustrialcase<br />
study.Thedecorationswithstateinformationcanbeinterpretedasconditionsfromwhichinter-scenariorelationshipscanbederived.Finally,with<br />
respecttostatemodeltype,weconsiderapproachesthatresultinstate<br />
modelsforindividualcomponents(instead<strong>of</strong>globalstatemodels). ConsideringLiangetal.[2006]oneapproachbestmeetstheserequirements,<br />
namelytheoneproposedbyWhittle<strong>and</strong>Schumann[2000].<br />
Whittle<strong>and</strong>Schumann[2000]presentanalgorithmtomap UMLsequencediagramstoUMLstatecharts.<br />
Inthismappingthemessagesina<br />
scenarioarefirstannotatedwithpre-<strong>and</strong>postconditionsonstatevariables,<br />
referredtoasadomaintheory. Themappingisbasedontheassumption<br />
thatamessageonlyaffectsastatevariableifitspre-orpostconditionexplicitlyspecifiesitdoes;thedomaintheorydoesnotneedtobecomplete.<br />
Thus,thisso-calledframeaxiom 1 ,togetherwiththepre-<strong>and</strong>postconditions,resultsinapair<strong>of</strong>statevectorsforeachmessage(before<strong>and</strong>after).<br />
1 Thenamederivesfromacommontechniqueusedbyanimatedcartoonmakerscalled<br />
framingwherethecurrentlymovingparts<strong>of</strong>thecartoonaresuperimposedonthe<br />
‘frame’,whichdepictsthebackground<strong>of</strong>thescene,whichdoesnotchange(http://en.<br />
wikipedia.org/wiki/Frame_problem(June2007)).
5.4. <strong>Model</strong>-<strong>Driven</strong>ConsistencyChecking 83<br />
Foreveryscenarioitischeckedwhetherthemessageorderingisconsistent<br />
withthedomaintheory. Ifnot,eitheronecanbereconsidered. Then,for<br />
eachscenarioa‘flat’statemachineisgeneratedforeverycomponent.Messagestowardsacomponentresultinaneventthattriggersatransition;messagesdirectedawayfromacomponentresultinanactionthatisexecuteduponatransition.Loopsareidentifiedbydetectingstatesthathaveunifiablestatevectors.Twostatesvectorsareunifiableiftheydonotspecifydifferentvaluesforthesamestatevariable.Subsequently,the‘flat’state<br />
machinesgeneratedforacomponentfromdifferentscenariosaremerged<br />
bymergingsimilarstates. Twostatesaresimilariftheirstatevectoris<br />
identical<strong>and</strong>theyhaveatleastoneincomingtransitionwiththesamelabel.<br />
Hierarchyisaddedtotheresultingstatechartsbyauserprovided<br />
subset<strong>and</strong>(partial)ordering<strong>of</strong>thestatevariables.<br />
V<strong>and</strong>erAalstetal.[2004]presentanapproachforthediscovery<strong>of</strong><br />
(business)processmodelsfromeventlogs. Instead<strong>of</strong>statemodels,they<br />
usePetrinetsasprocessmodels.Wheretheyonlyrelyonevent(message)<br />
sequencetomergedifferentworkflowinstances(scenarios),werelyonstate<br />
variablesaswell.<br />
Mostworkinthisareafocusesonthesynthesisalgorithm,whereasthe<br />
integrationinindustrialpracticeremainsimplicit. Infact,many<strong>of</strong>the<br />
approachesarenotsupportedbyatoolorvalidatedinindustrialpractice.<br />
Theirapplicationinpracticeonlybecomesrealisticwhentheyintegrate<br />
withexistingtools<strong>and</strong>st<strong>and</strong>ardsusedinindustry.Therefore,wefocusin<br />
thischapteronUMLsequencediagramsasanotationforscenarios,<strong>and</strong>on<br />
UMLstatemachines.<br />
5.4 <strong>Model</strong>-<strong>Driven</strong>ConsistencyChecking<br />
Inthissectionweoutlineourapproachforconsistencychecking<strong>of</strong>behaviouralspecifications,but,first,weintroducethetechnologiesthatenableourmodel-drivenapproach<strong>and</strong>theunderlyingstructure<strong>of</strong>theinvolvedbehaviouralmodels.<br />
5.4.1 EnablingTechnologies<br />
Ourapproachtakesadvantage<strong>of</strong>thest<strong>and</strong>ardsthatarewidelyusedin<br />
industry,suchasUML<strong>and</strong>XMLMetadataInterchange 1 (XMI),enablingeasy<br />
integrationwiththetoolsusedinindustrialpractice.XMIprovidesameans<br />
toserialiseUMLmodelstobemanipulated,forinstance,usingExtensible<br />
StylesheetLanguageTransformations 2 (XSLT). However,theXMIformat<br />
1 http://www.omg.org/mda/specs.htm#XMI(June2007)<br />
2 http://www.w3.org/TR/xslt(June2007)
84 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
isveryverbose,makingitatedious<strong>and</strong>errorpronetasktodevelopsuch<br />
transformations[VanDijketal.,2005].<br />
<strong>Model</strong><strong>Driven</strong>Architecture 1 (MDA)developedbytheObjectManagement<br />
Group 2 (OMG)<strong>of</strong>fers,amongothers,asolutiontothisproblem.MDAisOMG’s<br />
incarnation<strong>of</strong>model-drivenengineering(MDE).WithMDE,s<strong>of</strong>twaredevelopmentlargelyconsists<strong>of</strong>aseries<strong>of</strong>modeltransformationsmappinga<br />
sourcetoatargetmodel. EssentialtoMDEaremodels,theirassociated<br />
metamodels,<strong>and</strong>modeltransformations.Inthecase<strong>of</strong>MDA,metamodels<br />
aredefinedusingtheMetaObjectFacility 3 (MOF). TheUMLmetamodelis<br />
onlyoneexample<strong>of</strong>suchmetamodels.Finally,modeltransformationlanguagesareusedtodefinetransformations.<br />
WeusetheAtlasTransformationLanguage[Jouault<strong>and</strong>Kurtev,2005]<br />
(ATL) 4 tospecify<strong>and</strong>implementthemappingbetweenscenarios<strong>and</strong>state<br />
machines. ATLisusedtodevelopmodeltransformationsthatareexecutedbyatransformationengine.<br />
WithATL,transformationsaredefined<br />
intransformationmodulesthatconsist<strong>of</strong>transformationrules<strong>and</strong>helper<br />
operations. Thetransformationrulesmatchmodelelementsinasource<br />
model<strong>and</strong>createelementsinatargetmodel.Tothisendtherulesdefine<br />
constraintsonmetamodelelementsinasyntaxsimilartothat<strong>of</strong>theObject<br />
ConstraintLanguage 5 (OCL).Ahelperisdefinedinthecontext<strong>of</strong>ametamodelelement,towhichiteffectivelyaddsafeature.Helperscanbeused<br />
inrules,<strong>and</strong>optionallytakeparameters.<br />
TheATLtransformationenginecanbeusedwithXMIserialisations<strong>of</strong><br />
models<strong>and</strong>metamodelsdefinedusingtheMOF.Forthesequencediagrams<br />
<strong>and</strong>statemachinesinthischapterweusedtheMOF-UMLmetamodelavailablefromtheOMG[OMG,2007a].Tocreatetheassociatedmodels,aUML<br />
modellingtoolsupportingXMIexportcanbeused(weusedPoseidonfor<br />
UML 6 forthispurpose).<br />
Oncethesourcemodel<strong>and</strong>metamodel,targetmetamodel,<strong>and</strong>transformationmodulearedefined<strong>and</strong>located,theATLtransformationengine<br />
generatesthetargetmodelinitsserialisedform,which,inturn,canbe<br />
importedintoaUMLmodellingtoolforvisualisation,orcanserveassource<br />
modelforanother(model)transformation.<br />
1 http://www.omg.org/mda(June2007)<br />
2 http://www.omg.org(June2007)<br />
3 http://www.omg.org/m<strong>of</strong>(June2007)<br />
4 ForamoredetailedintroductiontoATL,pleaserefertoSection2.3.3.<br />
5 http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL(June2007)<br />
6 http://www.gentleware.com(June2007)
5.4. <strong>Model</strong>-<strong>Driven</strong>ConsistencyChecking 85<br />
5.4.2 Behavioural<strong>Model</strong>ling<br />
<strong>Model</strong>Element<br />
+name:Name<br />
+ constrainedElement * {ordered}<br />
+ constraint *<br />
Constraint<br />
+body:BooleanExpression<br />
Figure 5.3:Constraints<br />
Forthecreation<strong>of</strong>interaction-based<strong>and</strong>state-basedbehaviouralmodels<br />
weuseUMLsequence<strong>and</strong>statechartdiagrams. Theunderlyingstructure<br />
<strong>of</strong>thesediagramsisdescribedbytheCollaborations<strong>and</strong>StateMachines<br />
subpackages<strong>of</strong>theUMLmetamodel.Becauseourtransformationrulesare<br />
definedonthemetamodellevel,weintroducethesepackagebriefly. Althoughwediscussonlysimplifiedversions<strong>of</strong>thesepackages,theimplementation<strong>of</strong>ourtechnique<strong>and</strong>ourcasestudyarebasedonthecomplete<br />
UMLmetamodel(version1.4[OMG,2007a]).<br />
IngeneraltheUMLmetamodelallowseverymodelelementtobeassociatedwithanorderedset<strong>of</strong>constraintsascanbeseenfromFigure5.3.<br />
NotethateverymodelelementinUMLisaspecialisation<strong>of</strong> <strong>Model</strong>Element.<br />
Weusethistoaddpre-<strong>and</strong>postconditiontomessages<strong>and</strong>stateinvariants<br />
tostates.Todistinguishbetweenpreconditions,postconditions,<strong>and</strong>other<br />
constraintsthatmightbeusedinthemodelweusestereotypes.<br />
Source:Collaborations TheCollaborationpackage<strong>and</strong>someotherUMLelementsaredepictedinFigure5.4onthefollowingpage.<br />
Inthecontext<br />
<strong>of</strong>aCollaborationthecommunicationpatternsperformedby Objectsarerepresentedbyaset<strong>of</strong><br />
Messagesthatispartiallyorderedbythe predecessor<br />
relation. Foreachmessage, sender<strong>and</strong> receiver Objectsarespecified. The<br />
cause<strong>of</strong>aMessageisaCallAction(dispatchAction)thatisassociatedwithan<br />
Operation. Inturn,this Operationispart<strong>of</strong>the Classthatisthe classifier<strong>of</strong><br />
the Objectthatreceivesthe Message. Finally,aClassoptionallycontains<br />
Attributesthathaveatype.<br />
Target: StateMachines Usingthe(target)metamodelinFigure5.5onthe<br />
nextpage,UMLstatemachinescanbeconstructedthatmodelbehaviouras<br />
atraversal<strong>of</strong>agraph<strong>of</strong>statenodesinterconnectedbytransitionarcs.<br />
Astatenode,or StateVertex,isthe targetor source<strong>of</strong>anynumber<strong>of</strong> Transitions<strong>and</strong>canbe<strong>of</strong>differenttypes.A<br />
Staterepresentsasituationinwhich
86 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
Collaboration<br />
Object<br />
Message<br />
CallAction<br />
−actualArgument:int<br />
Class<br />
+isActive:Boolean<br />
*<br />
dispatchAction<br />
+<br />
classifier<br />
+<br />
predecessor<br />
*<br />
sender<br />
+<br />
receiver<br />
+<br />
ownedElement<br />
+<br />
*<br />
*<br />
Operation<br />
Attribute<br />
operations<br />
+ *<br />
operation<br />
+<br />
type<br />
+<br />
attributes<br />
+<br />
*<br />
Figure 5.4:Collaborations(simplified)<br />
StateMachine<br />
State<br />
0..1<br />
top<br />
+<br />
CompositeState SimpleState<br />
StateVertex<br />
Pseudostate<br />
+kind:PseudostateKind<br />
Transition<br />
outgoing<br />
+<br />
*<br />
source<br />
+<br />
incoming<br />
+<br />
*<br />
target<br />
+<br />
Action<br />
+script:ActionExpression<br />
effect<br />
+<br />
0..1<br />
Event<br />
*<br />
trigger<br />
+<br />
0..1<br />
0..1<br />
transitions<br />
+<br />
*<br />
container<br />
+<br />
0..1<br />
subvertex<br />
+ *<br />
Figure 5.5:Statemachines
5.4. <strong>Model</strong>-<strong>Driven</strong>ConsistencyChecking 87<br />
someinvariants(overstatevariables)hold. Themetamodeldefinesthe<br />
followingtypes<strong>of</strong> States.A CompositeStatecontains(owns)anumber<strong>of</strong>substates(subvertex).A<br />
SimpleStateisaStatewithoutanysub-states.<br />
Nexttostatenodesthatdescribeadistinctsituation,themetamodel<br />
also<strong>of</strong>fersatype<strong>of</strong> StateVertextomodelstransientnodes: Pseudostate.Only<br />
one Pseudostatetype(PseudostateKind)isrelevantforthestatemodelsinthis<br />
chapter:theinitial Pseudostate.Aninitial Pseudostateisthedefaultnode<strong>of</strong><br />
a CompositeState. Ithasonlyone outgoing Transitionleadingtothedefault<br />
State<strong>of</strong>aCompositeState.<br />
Nodesinastatemachineareconnectedby Transitionsthatmodelthe<br />
transitionfromone State(source)toanother(target).A Transitionisfiredby<br />
a CallEvent(trigger). The effect<strong>of</strong>aTransitionspecifiesan CallActiontobeexecuteduponitsfiring.<br />
Finally,aStateMachineisdefinedinthe context<strong>of</strong>a<br />
Class<strong>and</strong>consists<strong>of</strong>aset<strong>of</strong> Transitions<strong>and</strong>one top StatethatisaComposite-<br />
State(intheUMLspecificationthisisspecifiedasanOCLwell-formedness<br />
rule,whichwedonotshow).<br />
5.4.3 ConsistencyCheckingApproach<br />
Assaid,theset<strong>of</strong>scenariosisnotexpectedtobecompleteorprecise.For<br />
instance,whencomparingtheset<strong>of</strong>scenarios<strong>and</strong>thestatemachinescreatedbythedevelopersitisunclearwhetherascenariospecifiesuniversal<br />
orexistentialbehaviour[Damm<strong>and</strong>Harel,2001]. However,ifweareto<br />
generateastatemachineforaset<strong>of</strong>scenarioswehavetotakeaposition<br />
withrespecttothemeaning<strong>of</strong>thosescenarios.Thegeneration<strong>of</strong>scenarios<br />
isbasedontheapproachbyWhittle<strong>and</strong>Schumann[2000]. Tothisend,<br />
weinterpretOcé’sscenariosinprincipleasuniversal: ifthestartcondition<strong>of</strong>ascenarioissatisfiedthesystembehavesexactlyasspecifiedby<br />
thatscenario. Weconsiderthestartcondition<strong>of</strong>ascenariotobethefirst<br />
conditionspecifiedasdecoration<strong>and</strong>occurrence<strong>of</strong>thefirstmessage. As<br />
such,thescenarioinFigure5.7(a)onpage96specifiesexactlywhathappenswhen<br />
ESM receivesthemessage m_SetUnit(st<strong>and</strong>by)whileitisinstate<br />
running. However,whenduringexecution<strong>of</strong>ascenariothestartcondition<br />
<strong>of</strong>anotherscenarioissatisfied,executioncontinuesaccordingtothatscenario.<br />
Forinstance,inthecase<strong>of</strong>Figure5.7(a)onpage96,while ESM is<br />
stopping,executioncouldcontinueaccordingtothescenariothatperforms<br />
therequest<strong>of</strong>ESMgoingbacktorunningwhileitwasstopping.<br />
Inourapproachweusemodeltransformationsforthegeneration<strong>of</strong>a<br />
statemachinefromaset<strong>of</strong>scenarios. Thespecification<strong>of</strong>thosetransformationsisdiscussedinSection5.5.<br />
Toincludeallrequiredinformation,<br />
thesourcemodelhastocomplytoaset<strong>of</strong>modellingconventions. When<br />
consideringanarbitraryindustrialcase(e.g.,Océ’sreferencearchitecture),<br />
themodelsusedtypicallydonotcomplytothoseconventions. Therefore,
88 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
wefirstrequiremodelstobenormalised.ThisisdiscussedinSection5.6.1.<br />
Finally,thegeneratedstatemachineiscomparedtothestatemachine<br />
thatwasalreadydevelopedbasedonthesameset<strong>of</strong>scenarios,theimplementationstatemachine.Becausethesequencediagramsarecreatedearlyoninthedevelopmentprocess,itisnotexpectedthattheyareexactlycoveredbythestatemachines.<br />
Therefore,mismatchesareexpectedbetween<br />
thegenerated<strong>and</strong>implementationstatemachinewithrespecttotransition<br />
labels<strong>and</strong>order.Thismakesautomatingthecomparisonstepparticularly<br />
difficult.Fornowwemanuallycomparethegenerated<strong>and</strong>implementation<br />
statemachine<strong>and</strong>mainlyfocusoninconsistencieswithrespecttotop-level<br />
states<strong>and</strong>transitions.<br />
As such, we use three steps to check the consistency between behaviouralspecifications:<br />
normalise,transform,<strong>and</strong>compare. Inthecurrentapproachonlythetransformationisautomatic.<br />
Furthermore, the<br />
normalisationstepiscontext-specificasitdependsonthetype<strong>of</strong>input<br />
models.<br />
5.5 GeneratingStateMachines<br />
Giventhesource<strong>and</strong>targetmetamodelsdiscussedintheprevioussection,<br />
wenowdescribehowtoinstantiatesourcemodels,aswellasthemapping<br />
betweensource<strong>and</strong>targetmodels,expressedas ATLmodeltransformations.Wepublishedall(executable)ATLtransformationsthatweimplemented,aswellas(normalised)source<strong>and</strong>target(meta)modelsforthe<br />
ATMexample<strong>of</strong>Whittle<strong>and</strong>Schumann[2000]intheATLtransformations<br />
repository 1 .<br />
5.5.1 InstantiatingaSource<strong>Model</strong><br />
Ourapproachbasedonmodeltransformations<strong>and</strong>UMLrequiresthatall<br />
necessaryinformationisencodedinaUMLmodel.Whittle<strong>and</strong>Schumann<br />
[2000]requiresthefollowinginformationforitsmapping:scenarios,adomaintheory,aset<strong>of</strong>statevariables,<strong>and</strong>anorderedsubset<strong>of</strong>thatset.<br />
Theset<strong>of</strong>scenariosisspecifiedassequencediagrams. Thetypes<strong>of</strong><br />
theinteractingObjects(components)arespecifiedinaclassmodel. The<br />
Classthatcorrespondstothecomponent<strong>of</strong>interestismarkedactive. All<br />
Operationsinvolvedintherelevantscenariosarealsospecified. Thepre<strong>and</strong>postconditions<strong>of</strong>adomaintheoryareappliedtotheseOperationsas<br />
stereotypedConstraints.TheseConstraintshavetheform state variable<br />
= value.Wecurrentlydonotallowpre-<strong>and</strong>postconditionsinthedomain<br />
1 http://www.eclipse.org/gmt/atl/atlTransformations/UMLSD2STMD
5.5. GeneratingStateMachines 89<br />
theorythatrefert<strong>of</strong>ormalparameters<strong>of</strong>theoperationsinvolved,asthis<br />
wouldrequireinterpretation<strong>of</strong>theseconditions. Ifnecessary,suchconstraintscanbeaddeddirectlytotheMessagesthatspecifyanactualparameterinthesequencediagrams.TheactiveClasscontainsanAttributeforeachstatevariable.Thesubset<strong>of</strong>statevariablesusedforintroducinghierarchyisencodedbysetting<br />
thevisibility<strong>of</strong>allstatevariablesincludedinthesubsettopublic<strong>and</strong>the<br />
otherstoprivate.Finally,theorder<strong>of</strong>thestatevariableAttributesonthe<br />
Classrepresentstheprioritisation<strong>of</strong>statevariables(thetoponehaving<br />
thehighestpriority). Thispriorityindicatestheorderinwhichthestate<br />
variablesareusedtopartitiontheset<strong>of</strong>statesbyassigningthesestatesto<br />
CompositeStatesaccordingtothevalueassignedtothestatevariable.<br />
5.5.2 <strong>Model</strong>Transformations<br />
Ourtransformationsgenerateastatemachineforthecomponentthatis<br />
representedbytheactiveClassinthesourcemodel. Ascenariospecifiesoneparticularpaththroughthestatemachineforthatcomponent,on<br />
whichitproceedstothenextstateuponeachcommunication.Wereferto<br />
thestatemachinethatonlydescribesthatpathasa‘flat’statemachine.<br />
WetailoredtheapproachinWhittle<strong>and</strong>Schumann[2000](seeSection5.3)toaccountforthetype<strong>of</strong>inputintheOcécase,forourmodeldrivenstrategy,<strong>and</strong>forourgoal:<br />
consistencychecking. Forthisreason<br />
weintroducefewerabstractions,makingdetecting<strong>and</strong>resolvinginconsistenciesmoreconvenient.<br />
Ourmappingconsists<strong>of</strong>fourseparatesteps:1)<br />
applythedomaintheory,2)generateflatstatemachines,3)mergeflatstate<br />
machines,<strong>and</strong>4)introducehierarchyintothemergedstatemachine.<br />
WeformalisedourmappingfromscenariostostatemachinesasfourATL<br />
modeltransformationsthatcorrespondtothefoursteps<strong>of</strong>ourmapping.<br />
Everyconsecutivetransformationusesthetargetmodel<strong>of</strong>theprevious<br />
transformationasitssourcemodel.<br />
Together,thesetransformationsarespecifiedinlessthan700lines<strong>of</strong><br />
ATLcode. BeforethesetransformationscanbeappliedtotheOcécase,a<br />
normalisationstepisrequired,whichisdiscussedinSection5.6.1.<br />
ApplyDomainTheory Thisstepisspecifictoourapproach. UnlikeWhittle<br />
<strong>and</strong>Schumann[2000], butinaccordancewith UML, wedistinguishbetweenpre-<strong>and</strong>postconditionsontheOperations<strong>of</strong>aClass<strong>and</strong>thoseon<br />
theCallActionsassociatedwithMessagesinasequencediagram.Thishas<br />
twoadvantages. First,itallowsforsimplepre-<strong>and</strong>postconditionstobe<br />
specifiedonlyonce(i.e.,onaClass’Operations).Second,itcircumventsthe
90 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
rule ConstrainedCallAction {<br />
from ca_in:UML!CallAction<br />
to ca_out:UML!CallAction(<br />
operation
5.5. GeneratingStateMachines 91<br />
rule EffectTransition {<br />
from m:UML!Message (m.sender.isActive)<br />
to t_effect: UML!Transition(<br />
effect
92 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
Figure 5.6:Flatstatemachine<br />
subsequentlytothepostconditions<strong>of</strong>thecurrentMessage(’posts’),the<br />
preconditions<strong>of</strong>thecurrentMessage(pres), <strong>and</strong>thestatevectorafter<br />
thepreviousMessage(stateVectorPrev). Assuchconditionspropagatein<br />
‘forward’direction(i.e.,downwardsinasequencediagram).<br />
Additionallythe stateVectorhelpernotifiestheuserifaninconsistency<br />
isdetectedbetweenthestatevectorafterthepreviousMessage<strong>and</strong>the<br />
preconditionsforthecurrentMessage(thesesets<strong>of</strong>Constraintsshouldbe<br />
unifiable).<br />
The framehelpersimplyiteratesovertheConstraintsinthe frameargument<strong>and</strong>addseveryconstraintinvolvingastatevariablethatisnot<br />
referredtoin framedtothatset.<br />
UnlikeWhittle<strong>and</strong>Schumann[2000],wedonotapplyunification<strong>of</strong><br />
statevectorsatthisstage. Thedeclarativestyle<strong>of</strong>ourATLspecifications<br />
resultsinaninfiniterecursion:tocompleteastatevectorweneedtoknow<br />
whetheritcanbeunifiedwithotherstatevectors. Todeterminethiswe<br />
havetoconsiderstatevectorsin‘forward’aswellasin‘backward’direction.<br />
However,todeterminethestatevectorsin‘forward’direction,we,inturn,<br />
havetoconsiderstatevectorsin‘backward’directionbecause<strong>of</strong>theframe<br />
axiomstrategy.<br />
Application<strong>of</strong>thisstepyieldsaset<strong>of</strong>flatstatemachinesforacomponent.Asanexample,considerFigure5.6.Itdepictstheflatstatemachine<br />
correspondingtothesequencediagraminFigure5.7(b)onpage96. Note<br />
thattheexampleonlyinvolvesasinglestatevariable<strong>and</strong>thatthenames<br />
<strong>of</strong>theStatesarederivedfromtheparticularMessagethatwassentorreceivedbythecomponent.
5.5. GeneratingStateMachines 93<br />
rule MergedSimpleState {<br />
from s_in:UML!SimpleState (<br />
thisModule.mergedStates->includes(s_in))<br />
to s_out:UML!SimpleState(<br />
nameiterate(s; mss:Set(UML!StateVertex)=Set{} |<br />
if mss->exists(e|(e.mergeable(s)) then<br />
mss<br />
else<br />
mss->including(s)<br />
endif)<br />
;<br />
helper context UML!StateVertex def: mergeable(s:UML!StateVertex):<br />
Boolean =<br />
thisModule.unifiable(self.constraint,s.constraint) <strong>and</strong> self.name=s.<br />
name<br />
;<br />
helper def: unifiable(cset1:Set(UML!Constraint),cset2:Set(UML!<br />
Constraint)): Boolean =<br />
let sharedSVs:Set(UML!Attribute) = cset1->collect(c|c.stateVariable<br />
)->select(a|cset2->collect(c|c.stateVariable)->includes(a)) in<br />
sharedSVs->forAll(a|cset1->select(c|c.stateVariable=a)=<br />
cset2->select(c|c.stateVariable=a))<br />
;<br />
Listing 5.3:MergingSimpleStates<br />
MergingFlatStateMachines Inthisstepwemergetheflatstatemachines.<br />
Wemergeeveryset<strong>of</strong>stateswithunifiablestatevectors<strong>and</strong>atleastone<br />
identicalincomingtransition(interms<strong>of</strong>effectortrigger).<br />
Merging<strong>of</strong>statesisdonebytherule<strong>and</strong>helpersinListing5.3.Therule<br />
matchesallstatesselectedbythe mergedStateshelperthatiterativelyselectsoneSimpleStatefromeverygroup<strong>of</strong>equalSimpleStatesinthesource<br />
model. Acalltothe mergeablehelperresultsintruewhenthereceiving<br />
StateVertex<strong>and</strong>theparameterStateVertex1)(s)areunifiable,<strong>and</strong>2)have<br />
thesamename(i.e.,theincomingtransitionshadthesametriggeroreffect).<br />
The unifiablehelperevaluatestotruefortwosets<strong>of</strong>Constraints<br />
thatdonotspecifydifferentvaluesforthesamestatevariable,meaning<br />
thattheconstraintthatreferstoaparticularstatevariablethatisalso<br />
referredtointheotherset,isactuallyincludedinthatset.<br />
Transitionsarematchedbyanotherrule(notshown).TodiscardredundantTransitions,itonlymatchesoneTransition<strong>of</strong>theTransitionsbetween<br />
anytwosets<strong>of</strong>SimpleStatesthataremerged.
94 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
IntroducingHierarchy AssuggestedbyWhittle<strong>and</strong>Schumann[2000],weuse<br />
anorderedsubset<strong>of</strong>theset<strong>of</strong>statevariablestoaddhierarchybymeans<br />
<strong>of</strong>CompositeStates.Thesestatevariablesdefineahierarchy<strong>of</strong>Composite-<br />
States.Forinstance,thestatevariablewiththehighestpriorityresultsin<br />
CompositeStatesinthetoplevelCompositeState:oneforeachvalue<strong>of</strong>that<br />
statevariable’sdomain(providedthatitoccursinone<strong>of</strong>thesimplestates’<br />
stateinvariants). Foreach<strong>of</strong>theresultingCompositeStates,thesecondhighestprioritystatevariable,inturn,resultsinCompositeStatesforeach<br />
value<strong>of</strong>thatstatevariable’sdomainthatoccursincombinationwiththe<br />
correspondingvalue<strong>of</strong>thehigher-prioritystatevariable.<br />
Theproblem<strong>of</strong>specifyingthismappingwithATListhatthereisnot<br />
alwaysamatchingsourcemodelelementtocreateaCompositeStatefor.<br />
Therefore,weuseanATLcalledrule(CompositeState). Acalledruleisan<br />
imperativerulethatisnotmatchedbyasourcemodelelement. Instead,<br />
itisexplicitlycalled<strong>and</strong>canhaveparameters.The CompositeStatecalled<br />
ruleinListing5.4 createsaCompositeStateforagivenset<strong>of</strong>Constraints<br />
(cset). TheseConstraints(i.e.,stateinvariants)aredeterminedbythe<br />
compositeStateConstraintSetsAthelperthattakesaset<strong>of</strong>Constraintsthat<br />
representsthecurrentCompositeState<strong>and</strong>determinesthesets<strong>of</strong>ConstraintsthatcorrespondtotheCompositeStatesatthatlevel.Foreach<strong>of</strong><br />
thosesetsaCompositeStateiscreated.Thiscalledruleisusedtoinitialise<br />
the subvertexfeatureintherulethatmatchesthetopCompositeState<strong>of</strong><br />
themergedStateMachine,aswellas(recursively)inthe CompositeState<br />
ruleitself. Thedoclauseinthe CompositeStaterulereturnsthecreated<br />
CompositeState.<br />
5.6 ApplicationtoOcé<br />
Inthissectionwefirstexplainwhatadditionalworkhastobedonetoapply<br />
ourapproachtotheOcécase. Subsequentlywegiveanoverview<strong>of</strong>the<br />
resultsobtainedbyapplication<strong>of</strong>ourapproach.<br />
5.6.1 Source<strong>Model</strong>Normalisation<br />
Inthecase<strong>of</strong>Océ,neitheradomaintheory,noraset<strong>of</strong>statevariables<br />
wereavailable. Toovercomethis,wenormaliseOcé’ssequencediagrams.<br />
Inparticular,weinterpretthedecorationsonobjectlifelinesaspre-<strong>and</strong><br />
postconditionsonasinglestatevariable<strong>of</strong>asuitableenumerationtype:<br />
state. Themessageprecedingastatedecorationapparentlyresultedin<br />
thecomponentmovingtotheindicatedstate.Hence,we(manually)attach<br />
acorrespondingpostconditiontothemessage(e.g., esm.state=starting).A<br />
messagesucceedingastatedecorationapparentlyrequiresthecomponent
5.6. ApplicationtoOcé 95<br />
rule TopCompositeState {<br />
from cs_in:UML!CompositeState<br />
using {<br />
sm:UML!StateMachine=thisModule.allStateMachines->select(sm|sm.top<br />
=cs_in);<br />
}<br />
to cs_out:UML!CompositeState (<br />
name collect(cs|thisModule.CompositeState(sm,cs))))<br />
}<br />
rule CompositeState (sm:UML!StateMachine, cset:Set(UML!Constraint))<br />
{<br />
to cs:UML!CompositeState(<br />
subvertex union(sm.<br />
compositeStateConstraintSeqsAt(cset)->collect(cs|thisModule.<br />
CompositeState(sm,cs))))<br />
do{cs;}<br />
}<br />
Listing 5.4:Addinghierarchytostatemachine<br />
tobeintheindicatedstate.Hence,weattachacorrespondingprecondition<br />
tothemessage. Figure5.7onthenextpageshowsanexample. Finally,<br />
weadda(public)attribute, state,totheclasscorrespondingtothe ESM<br />
component.<br />
5.6.2 Results<br />
Afragment<strong>of</strong>theresult<strong>of</strong>application<strong>of</strong>thetransformationstepstoOcé’s<br />
ESMcomponent,isdepictedinFigure5.8onpage97. Thedashedline<br />
indicatesthepaththroughthestatemachinethatistraversedwhenESM<br />
isrequestedtogotost<strong>and</strong>bywhileitisrunning.Thispathcorrespondsto<br />
thescenariodepictedinFigure5.7onthenextpage.<br />
Wecomparedthisderivedstatemachinewiththeimplementationstate<br />
machine,fromwhichOcégeneratescode. Therearemanyinconsistencieswithrespecttolow-levelstates<strong>and</strong>transitions.Intheimplementationstatemachinelow-levelstatesarenotonlydecomposedfurther,the<br />
sequence<strong>of</strong>states<strong>and</strong>transitionsisalsodifferentinmanycases. This<br />
isnotsurprisingconsideringthefactthatthesequencediagrams<strong>of</strong>the<br />
sourcemodelfromwhichwederivedastatemachine,constitutethefirst<br />
behaviouralmodelthatiscreatedforthe ESMcomponent,while,inthe<br />
implementationstatemachine,low-leveltransitions<strong>and</strong>states<strong>of</strong>tencorrespondtoasinglemethodcallinthegeneratedcode.<br />
Ifwerestrictthe
96 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
aFunction :Function<br />
.m_Stop ()<br />
.m_StopDone ()<br />
aFunction :Function<br />
.m_Stop ()<br />
.m_StopDone ()<br />
esm:ESM<br />
running<br />
stopping<br />
st<strong>and</strong>by<br />
.set_Unit (st<strong>and</strong>by )<br />
.m_UnitStatus (stopping )<br />
.m_UnitStatus (st<strong>and</strong>by )<br />
acm:ACM<br />
(a)Sequencediagramwithdecoratedlifeline<br />
esm:ESM<br />
.set_Unit (st<strong>and</strong>by )<br />
.m_UnitStatus (stopping )<br />
.m_UnitStatus (st<strong>and</strong>by )<br />
acm:ACM<br />
(b)Normalisedsequencediagram<br />
{esm.state=running}<br />
{esm.state=stopping}<br />
{esm.state=stopping}<br />
{esm.state=st<strong>and</strong>by}<br />
{esm.state=st<strong>and</strong>by}<br />
Figure 5.7:Examplescenario:requestacopierenginetogotost<strong>and</strong>bywhileitis<br />
running
5.6. ApplicationtoOcé 97<br />
Figure 5.8:Mergedstatemodel<strong>of</strong>ESM(fragment)<br />
comparisonsteptothetop-levelstates,however,theimplementationstate<br />
machinelargelyconformstothederivedstatemachine.Althoughwecannotshowtheimplementationstatemachine,wewereabletomakeseveral<br />
otherinterestingobservations:<br />
•Severaltransitionsbetweentop-levelcompositestatesaremissingin<br />
thederivedstatemachine.Thisindicatesthatnotallscenarioshave<br />
beenspecifiedinasequencediagram.<br />
•Sometop-levelcompositestatesinthederivedstatemachinewere<br />
modelledaslow-level(sub)compositestatesintheimplementation<br />
statemachine.Thismerelyindicateschangestothedecomposition<strong>of</strong><br />
states,<strong>and</strong>doesnotnecessarilyresultindifferentbehaviour.<br />
•Inthederivedstatemachine,sometimesextrapathsexistbetween<br />
twocompositestates.Thisindicatesthatspecificsequences<strong>of</strong>events<br />
<strong>and</strong>actionsthatoccurindifferentscenariosarenotspecifiedconsistently.Thiswasthecase,forinstance,whentwoversions<strong>of</strong>ascenario<br />
existed:onefornormalbehaviour,<strong>and</strong>oneforexceptionalbehaviour.<br />
Fortwosuchversionsthefirstinteractionsshouldtypicallybeidentical(untilsomeexceptionoccurs),butinpracticethiswasnotthe<br />
case.<br />
•Thederivedstatemachinecontainsanumber<strong>of</strong>unconditionaltransi-
98 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
tionsthatformaloop,resultinginnon-deterministicbehaviour.This<br />
hadthesamecauseasthepreviousobservation.<br />
AsaresponsetotheseobservationsOcéhastwooptions.Thefirstistoadd<br />
missingusecases<strong>and</strong>scenarios,<strong>and</strong>torefactoralternativesequencediagramstoremoveinconsistenciesinevent<strong>and</strong>actionsequences.Here,caremustbetaken,assuchmodificationsaffectthestatemachines<strong>of</strong>othercomponentsthatplayaroleintheinvolvedscenariosaswell.Thealternative<br />
optionistoonlyremovebehaviouralinconsistenciesintheimplementation<br />
statemachine.Thisalsorequirescarefulanalysis,sincedifferentdevelopmentgroups,responsiblefordifferentcomponents,mightdosodifferently,<br />
resultinginintegration<strong>and</strong>maintainabilityproblems.<br />
5.7 Discussion<br />
Generalisability<strong>of</strong>theapproach Toalargeextentourapproachisgeneric.<br />
Although,thenormalisedsourcemodelintheOcécaseonlycontainsa<br />
singlestatevariable,wealsoappliedourtransformationsteptotheATM<br />
exampleinWhittle<strong>and</strong>Schumann[2000] 1 . Thisexampleinvolvesthree<br />
statevariables.Byapplication<strong>of</strong>ourapproach(inbothcases)wedetected<br />
severalinconsistencies.<br />
We applied our approach successfully to both the ATM example <strong>of</strong><br />
Whittle<strong>and</strong>Schumann[2000]<strong>and</strong>Océ’sreferencearchitecture. Ourapproachisgenericwithrespecttoinputmodelsthatcomplytothemodel<br />
conventionsasoutlinedinSection5.5.1. Assuch,werequirea(manual)<br />
normalisationstepthatiscontextspecific; itdependsonthemodelling<br />
conventionsinuseataparticularcompany.<br />
Ourmodellingconventionsaremostrestrictivewithrespecttothetype<br />
<strong>of</strong>pre-<strong>and</strong>postconditionsusedinthedomaintheory.Aswedonotevaluate<br />
theseconditions,werequirethemtobe<strong>of</strong>theform stateVariable=value.<br />
InsomecasestheconditionsforanOperationrefertoaformalparameter.OurapproachcanstillbeappliediftheMessagesassociatedwiththatOperationinthesequencediagramsspecifyacorrespondingactualparameter.<br />
Then,we(manually)applytheconditiondirectlytotheMessagein<br />
thesequencediagram<strong>and</strong>substitutetheformalparameterfortheactual<br />
parameter.Morecomplicatedconditionsrequirefullinterpretation<strong>of</strong>OCL<br />
expressions.<br />
Ofcourse,pre-<strong>and</strong>postconditionshavetobeavailableforourapproach<br />
toproducemorethanonlyflatstatemachines. Inthecase<strong>of</strong>Océ,wede-<br />
1 Images<strong>of</strong>the(normalised)sourcemodel,aswellasall(intermediate)targetmodelsfor<br />
theATMexamplecanbedownloadedfromtheATLtransformationsrepository(http://<br />
www.eclipse.org/gmt/atl/atlTransformations/UMLSD2STMD)
5.7. Discussion 99<br />
rivedpre-<strong>and</strong>postconditionsfromdecorationsinthesequencediagrams.<br />
Ingeneral,pre-<strong>and</strong>postconditionsarenotalwaysobviousfromdesigndocumentation.<br />
Insuchsituationsthesemighthavetobederivedindirectly<br />
fromdocumentationorreverseengineeredfromsourcecode.<br />
Theintroduction<strong>of</strong>pre-<strong>and</strong>postconditionseffectivelyisanormalisationtotheUMLst<strong>and</strong>ardusedbyOcé<strong>and</strong>ourtools(version1.4[OMG,<br />
2007a]).ForthecurrentUML(version2.1.1)thisisnotnecessary,assuch<br />
lifeline decorations became part <strong>of</strong> the specification (the corresponding<br />
metamodel element is called StateInvariant [OMG, 2007b, page 500]).<br />
Tosupportthis,onlyminormodificationstoourATLtransformationsare<br />
required.<br />
Scalability<strong>of</strong>theapproach Ourapproachconstitutesafirststeptowardsfully<br />
automatedconsistencychecking.<br />
IntheOcécasestudy,thesourcemodelforthetransformationstep<strong>of</strong><br />
ourapproachincludes10sequencediagramsthatcontain62messages.The<br />
resultingintegrated,hierarchicalstatemachine,<strong>of</strong>whichafragmentwas<br />
depictedinFigure5.8onpage97,contains23transitionsbetween14compositestatescontainingintotal47simplestates.<br />
Ourapproachisafirststept<strong>of</strong>ullyautomatedconsistencychecking<br />
<strong>of</strong>behaviouralspecifications. Fornow,werelyonmanualinspection<strong>of</strong><br />
theresultingstatemachineforactualevaluation<strong>of</strong>theconsistency. As<br />
such,thescalabilityiscurrentlynotlimitedbythetransformationsteps(in<br />
theOcécasetheyeachtakelessthan10seconds),butbythecomparison<br />
step. Forcaseswerethenumber<strong>of</strong>statesislimited<strong>and</strong>developershave<br />
knowledgeonthesystem,thisisafeasibleapproach.ForESM,whichisa<br />
medium-sizedcomponent(approximately10KLOC),thisturnedoutnotto<br />
beaproblem.<br />
Fullyautomaticconsistencycheckingcouldbedonebyrelyingonnaming.Anexample<strong>of</strong>suchanapproachisdiscussedbyVanDijketal.[2005].<br />
ItcheckstheconsistencybetweentheunderlyingXMIrepresentations<strong>of</strong><br />
UMLmodels.However,inthiscase,thenames<strong>of</strong>messagesinthescenarios<br />
didnotpreciselycorrespondtothenames<strong>of</strong>transitioneffects<strong>and</strong>events<br />
intheimplementationstatemachine.Althoughtheyareeasilymatchedby<br />
ahuman,thishampersfullautomation.<br />
Theuse<strong>of</strong>graphmatchingtechniquesisanotherpossibility<strong>of</strong>checkingtheconsistency<strong>of</strong>twostatemachines.Alsousingsuchtechniquesthe<br />
problem<strong>of</strong>matchingnode<strong>and</strong>edgelabelsremains.<br />
Als<strong>of</strong>orautomaticapproaches,however,thegeneration<strong>of</strong>astatemachinefromaset<strong>of</strong>scenarios,asdiscussedinthischapter,islikelytobea<br />
firststep.
100 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
Applicability<strong>of</strong>theapproach Ourapproachcanbeappliedtoiterativelydevelopbehaviouralspecifications.Wegeneratedastatemachinewiththepurpose<strong>of</strong>checkingtheconsistencybetweendifferentbehaviouralspecifications.However,ourapproach<br />
mighthaveotherapplicationsaswell. Ageneratedstatemachinecould<br />
alsobeusedforothertypes<strong>of</strong>analyses,suchasmodelcheckingorperformanceanalysis.<br />
Nexttoanalysispurposes,ourapproachisparticularlyinterestingfor<br />
forwardengineering,especiallyinthecontext<strong>of</strong>model-drivendevelopment<br />
approachesasinthecase<strong>of</strong>Océ.UsingourtransformationsbasedonUML,<br />
developerscaneasilygeneratedifferentviewsonthebehaviour<strong>of</strong>as<strong>of</strong>twaresystemorcomponent.Furthermore,thegenerationnotonlyprovides<br />
insightintheconsistency<strong>of</strong>thesequencediagramswithrespecttoeach<br />
other,italsoprovidesdeveloperswithafirstc<strong>and</strong>idatestatemachinethat<br />
canberefined.Assuch,ourtechniquecanbeappliediterativelytodevelop<br />
completebehaviouralspecifications<strong>of</strong>components:(1)specifytheinteractions<strong>of</strong>aninitialset<strong>of</strong>usecasesasscenarios,(2)generateastatemachine,(3)refactorscenariostoremoveinconsistenciesinevent<strong>and</strong>action<br />
sequences,<strong>and</strong>addmissingscenarios,(4)gotostep2.<br />
Themainreasontochooseforamodel-drivenapproachbasedonUML<br />
forourconsistencycheck,istheintegrationwithOcé’sdevelopmentprocess.ItcircumventstheneedtoextractinformationfromtheMDAdomain<br />
toanotherdomain,suchasthegrammarwareortheExtensibleMarkup<br />
Language 1 (XML)domain. Unfortunately,despitetheavailability<strong>of</strong>st<strong>and</strong>ards,currentlyavailabletoolsfor(meta)modelling<strong>and</strong>transformationsdonotintegratewell,hamperingactualintegration<strong>of</strong>ourapproachinpractice.Foralargepartthisisduetotheabundance<strong>of</strong>possiblecombinations<br />
<strong>of</strong>XMI,UML,<strong>and</strong>MOFversions,aswellasvendorspecificimplementations<br />
<strong>of</strong>thosest<strong>and</strong>ards. Otherproblemsoccurduetodifferentcapabilities<strong>of</strong><br />
modellingtools.Asanexample,weusedPoseidonforUMLtocreatesource<br />
modelsbecauseitsmetamodelisavailablefromthedeveloper’swebsite.<br />
However,theUMLmodelswegeneratedonotcontainlayoutinformation.<br />
Unfortunately,Poseidonisnotcapable<strong>of</strong>displayingUMLmodelsthatdo<br />
notcontainlayoutinformation. Asaconsequencewehadtouseanother<br />
toolforvisualisation. Fromalargeset<strong>of</strong>toolswetried,onlyBorl<strong>and</strong>’s<br />
Together 2 iscapable<strong>of</strong>generatingalayoutforaUMLmodel.However,the<br />
XMIrepresentationsusedbythistoolarenotcompatiblewiththosegeneratedbytheATLengine.AsaworkaroundwedevelopedaminimalXSLT<br />
transformationthatmapstheXMI‘flavour’generatedbytheATLengine<br />
tothat<strong>of</strong>Together. Analternativeistogeneratethelayoutinformation<br />
requiredbyPoseidonusingamodeltransformation.<br />
1 http://www.w3.org/XML(June2007)
5.8. Conclusions 101<br />
UMLvs. MOF Theuse<strong>of</strong> UMLinalimiteddomainmakestransformation<br />
definitionsunnecessarycomplex<br />
Thegenericity<strong>and</strong>resultingcomplexity<strong>of</strong>theUMLmetamodelresult<br />
in,sometimes,inconvenientnavigationthroughsource<strong>and</strong>targetmodels<br />
toselectacertainelement. Anopenquestioniswhethertreetraversal<br />
strategiesaspresentinStratego 1 ortheJJTraveller[VanDeursen<strong>and</strong><br />
Visser,2004]librarycouldhelptoalleviatethisnavigationproblem.Also,<br />
<strong>of</strong>tenrelationsaredefinedasn:mwhileinaspecificcase1:1wouldsuffice.<br />
Theresultisthatsetshavetobeconvertedtosequences<strong>of</strong>whichthefirst<br />
elementhastobeselected. Thisisrequiredveryfrequently,resultingin<br />
unnecessarycomplexATLcode.<br />
Incases,whereonlylimitedparts<strong>of</strong>theUMLmetamodelareused,analternativecouldbeconsidered.Instead<strong>of</strong>usingtheUMLmetamodel,custom<br />
MOF-basedmetamodelscouldbeused,forinstance,forscenarios<strong>and</strong>state<br />
machines.Thesemetamodelscouldbemuchsimpler,resultinginsimpler<br />
transformationdefinitions.Thepricetopayisthatinordertoestablisha<br />
connectionwithactualUMLmodels(e.g.,asusedbyOcé),amappingbetweensuchcustommetamodels<strong>and</strong>theUMLmetamodelmustbespecified.<br />
InChapter8wediscusshowtomakesuchamappingfordomain-specific<br />
modellinglanguages(DSMLs).<br />
5.8 Conclusions<br />
Inthischapterweexploredtheuse<strong>of</strong>modeltransformationstocheckthe<br />
consistencybetweenbehaviouralspecifications. Forthiswepresentedan<br />
approachthatconsists<strong>of</strong>normalisation,transformation,<strong>and</strong>comparison<br />
steps.Weconsiderthefollowingtobethemaincontributions<strong>of</strong>thischapter:<br />
•Aspecification<strong>of</strong>themappingbetweenscenarios<strong>and</strong>statemachines<br />
usingmodeltransformationsthatismadeavailableviatheATLtransformationsrepository.Anadvantage<strong>of</strong>suchaspecificationisthatit<br />
canbeexecutedbytheATLtransformationengine. Furthermore,it<br />
iscompletelybasedonUML,makingintegrationinindustrialpractice<br />
easier.<br />
•<strong>Model</strong>lingconventionsforencodingtheinformationrequiredforthe<br />
transformationstepinasingleUMLmodel.Additionally,asanexample,wediscussedtherequirednormalisationstepforOcé’sreference<br />
architecture.<br />
1 http://www.stratego-language.org
102 Chapter5. <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
•Validation<strong>of</strong>theproposedapproachbyapplicationtoanindustrial<br />
system,demonstratingthatevensmallindustrialspecifications(consisting<strong>of</strong>just10scenarios)containinconsistencies,whichareeffectivelyidentifiedbyourapproach.<br />
Finally, theproposedapproachcanbeappliedforotherpurposesthan<br />
consistencycheckingaswell,suchasforwardengineering<strong>and</strong>earlybehaviouralanalysisbasedonthegeneratedstatemachine.Currentlyweareextendingourworkwithadditionalcasestudies.Furthermore,weinvestigatethepossibilitiestodoconsistencycheckingautomatically,againbytheuse<strong>of</strong>MDAmodeltransformationtechnologies.
Chapter6<br />
<strong>Model</strong>-<strong>Driven</strong> Conformance Checking<br />
<strong>of</strong> Structural Specifications 1<br />
Nowadays,industryisconfrontedwithrapidlyevolvingsystems.Inorderto<br />
effectivelyreusedesignartefactssuchasrequirements,architecturalviews<br />
<strong>and</strong>analysisresults,aswellasthecodebase,itisimportanttohavea<br />
consistentoverviewineachphase<strong>of</strong>thedevelopmentprocess.Inthischapter<br />
weproposeaconformancecheckingsystembasedonviewstoevaluatethe<br />
conformance<strong>of</strong>animplementationwithrespecttoitsarchitecture.Wemap<br />
ourapproachontotechnologyformodel-drivenengineering. Anacademic<br />
casestudyillustratesapplication<strong>of</strong>ourframework.<br />
6.1 Introduction<br />
Thecurrenttrendinembeddedsystemsisproductfamiliesratherthan<br />
singleproducts. Today’scustomersareappealedtoproductsthathavea<br />
sense<strong>of</strong>uniqueness,productsthatarecompatiblebutslightlydifferent<br />
thanthose<strong>of</strong>theirfriends.Theanswerfromindustryistodevelopflexible<br />
productlines.Theextenttowhichtheevolution<strong>of</strong>s<strong>of</strong>twareisenabledby<br />
suchproduct-lineapproachesislargelydeterminedbytheamount<strong>and</strong>ease<br />
<strong>of</strong>reuse<strong>of</strong>existingartefacts.<br />
Themaintenancephase<strong>of</strong>aproducthasalwaysbeensignificant<strong>and</strong><br />
willincreasinglybeso[Lientzetal.,1978;Pigoski,1996].Thegrowth<strong>of</strong>the<br />
complexity<strong>of</strong>systemsisonereason[Lehman<strong>and</strong>Belady,1985],thetrend<br />
towardsproductfamiliesisanotherreason.FromthesurveyinChapter3<br />
1 Thischapterisbasedon:VanDijk,HylkeW.,BasGraaf,<strong>and</strong>RobBoerman.Onthesystematicconformancecheck<strong>of</strong>s<strong>of</strong>twareartefacts.<br />
InProceedings<strong>of</strong>the2 nd European<br />
WorkshoponS<strong>of</strong>twareArchitecture(EWSA2005),volume3047<strong>of</strong>LectureNotesonComputerScience,pages203–221.Springer-Verlag,2005<br />
103
104 Chapter6. ConformanceCheckingII<br />
Implementation<br />
alignment<br />
Design Space<br />
Architecture<br />
alignment<br />
Figure 6.1:Aligningarchitecture<strong>and</strong>implementation<br />
welearntthatnewproductsarerarelydevelopedfromscratch<strong>and</strong>that<br />
reuse<strong>of</strong>existingdevelopmentartefactsistypicallyadhoc. Theseobservationstriggeredourresearchinthefield<strong>of</strong>conformancecheckingasa<br />
secondstepinenhancingthefunctionality<strong>of</strong>aproductoradaptingittoa<br />
changedenvironment(seeFigure1.2onpage5).Inourviewaconsistent<br />
set<strong>of</strong>s<strong>of</strong>twaredevelopmentartefactsisaprerequisiteforsuccessfulreuse.<br />
Conformancecheckingisrequiredtodeterminethisconsistency.<br />
Ingeneral,conformancecheckingcouldbeappliedtoallrelatedartefactsproducedindifferentphases<strong>of</strong>thes<strong>of</strong>twaredevelopmentprocess.In<br />
thischapterwefocusontheconformancebetweens<strong>of</strong>twarearchitectural<br />
views<strong>and</strong>thecorrespondingimplementation.<br />
Anarchitecturalviewisadescription<strong>of</strong>as<strong>of</strong>twarearchitecturethat<br />
addressesaspecificset<strong>of</strong>concerns.Theguidelinesforthecreation<strong>of</strong>such<br />
viewsaredescribedbyassociatedviewpoints[IEEE-1471,2000].Viewsare<br />
developedduringthearchitecturephasetospecifyconstraintsoverdesign<br />
elements<strong>and</strong>relations[Perry<strong>and</strong>Wolf,1992]forthesubsequentproduct<br />
implementation,thatis,thedesignspace<strong>of</strong>Figure6.1.<br />
Tocheckwhetheranimplementationdoesnotviolatetheconstraints<br />
imposedbyaview,viewsneedtobecreated(reconstructed)fromimplementations[VanDeursenetal.,2004]todetermine(predicate)theproperties<strong>of</strong>theactualimplementationfromanarchitecturalperspective,for<br />
instance,todeterminehowimplementationunitsarerelatedtoeachother.<br />
Theconstraintsthatanarchitecturespecificationdefineseffectivelydeterminethebounds<strong>of</strong>thedesignspaceinwhichtheimplementationhastoberealised.Figure6.1illustratesthattheimplementationinthiscaseviolatessome<strong>of</strong>thearchitecturalconstraints<strong>and</strong>thusdoesnotcompletely<br />
fallwithinthepermitteddesignspace.Theseviolationscanberesolvedby<br />
eitherupdatingthearchitectureortheimplementation.<br />
Here,atechnical<strong>and</strong>aconceptualproblemarise. Firstthelanguages<br />
usedinimplementation(programminglanguages)<strong>and</strong>architecturalviews
6.2. RunningExample 105<br />
(modellinglanguages)differ. Second,thesemanticgapbetweentheelements<strong>and</strong>relationsusedinarchitecturalviews<strong>and</strong>theprogramminglanguageconstructsavailabletoimplementthemmakesitdifficulttoreconstructanarchitecturalviewfromanimplementation.Therefore,forcheckingtheconformance<strong>of</strong>animplementationwithrespecttoanarchitecture,<br />
weproposetodefineacommonconformanceviewpointatanintermediate<br />
level<strong>of</strong>abstraction.Whenarchitectural<strong>and</strong>implementationviewsareassociatedwithacommonviewpoint<strong>and</strong>usethesamemodellinglanguage<br />
(i.e.,metamodel)theidentification<strong>of</strong>discrepanciesbetweentheintended<br />
<strong>and</strong>implementedarchitecturebecomespossible.<br />
Weaddresstheproblem<strong>of</strong>conformancecheckingbymeans<strong>of</strong>aconformancecheckingsystem(CCS),describingthenecessarysteps.<br />
Inorderto<br />
bepracticallyapplicableinindustry,itisrequiredthatsuchaframework<br />
buildsonproventechnology,<strong>and</strong>thatitsapplicationisnon-intrusive.<br />
Inthischapterwepropose<strong>and</strong>experimentwithaconformancecheck<br />
system(CCS)thatfacilitatesconformancechecksthroughthedefinition<strong>of</strong><br />
adesign-spaceconformanceviewpointbridgingthesemanticgapbetween<br />
theimplementation<strong>and</strong>architecture. Suchaviewpointistobederived<br />
fromtheinvolvedarchitecturalviewpointinsuchawaythatviewsassociatedwiththisviewpointcanbothbeextractedfromtheimplementation<strong>and</strong>thearchitecture.WemaptheCCStotechnologyformodel-driven<br />
engineering(MDE)[Bézivin,2005],<strong>and</strong>applyitinanacademiccasestudy.<br />
Ourexperimentsillustratethedefinition<strong>of</strong>conformanceviewpoints,comparingassociatedviews,<br />
<strong>and</strong>visualisation<strong>of</strong>discrepanciesbetweenthe<br />
intended(specified)architecture<strong>and</strong>theimplemented(predicated)architecture.<br />
Thischapterisorganisedasfollows. OurrunningexampleisintroducedinSection6.2.InSection6.3wepresentourCCS<strong>and</strong>explainwhat<br />
needstobedonetomapittoMDE.Subsequently,wediscussthemapping<br />
<strong>of</strong>viewpointstometamodelsinSection6.4<strong>and</strong>themappings<strong>and</strong>model<br />
transformationsforconformancecheckinginSection6.5.InSection6.6we<br />
discussourCCS,theappliedtechnology,<strong>and</strong>relatedwork.Weconcludein<br />
Section6.8withanoverview<strong>of</strong>ourcontributions.<br />
6.2 RunningExample<br />
Therunningexampleinthischapteristhedevelopment<strong>of</strong>anacademic<br />
system:adigitalmusicbox(DMB)thatreadsdatafromapaperdisc(the<br />
record).Thedisccontainsaplottedspiraltrack<strong>of</strong>pulse-widthmodulated<br />
databits. Itrotateswithaconstantspeed. Thesystemtracksthespiral,readsthedatabits,<strong>and</strong>thenmapsthosebitstosymbols.<br />
Astring<br />
<strong>of</strong>symbolswillbefedtoanoutputdevicethattransformsthestringinto
106 Chapter6. ConformanceCheckingII<br />
audiblemusic.Here,wefocusontheprocess<strong>of</strong>readingtherecord<strong>and</strong>generatingthesymbolstream.Ahardwareview<strong>of</strong>thissystemisdepictedin<br />
Figure6.2. Thesystemiscomposed<strong>of</strong>atraditionalturntable<strong>and</strong>aset<br />
<strong>of</strong>simplelightsensorsthatcanbemovedaxiallybyamotor. Thecontrol<br />
isimplementedinJava<strong>and</strong>distributedbetweenasimplemicrocontroller<br />
<strong>and</strong>aPC.<br />
Track<br />
Sensor<br />
Data<br />
Sensor<br />
Symbol<br />
map<br />
Motor<br />
control<br />
Figure 6.2:Digitalmusicboxreadersystem<br />
Thes<strong>of</strong>twarearchitecturedocumentationconsists<strong>of</strong>aset<strong>of</strong>views.Two<br />
<strong>of</strong>themaredepictedinFigure6.3. Theirgoverningviewpointswillbe<br />
explainedinmoredetaillater.<br />
Figure6.3(a) depictsthesystemasaset<strong>of</strong>communicatingprocesses.<br />
Thisviewusesstereotyped[OMG,2007a]Unified<strong>Model</strong>ingLanguage 1<br />
(UML)objectstorepresentcomponents(processes)<strong>and</strong>stereotypeslinks<br />
torepresentconnectors(messages,<strong>and</strong>shareddata). Here,the trackmotor<br />
processcontrolsthespeed<strong>of</strong>themotorthatmovesthesensorsovertherotatingdisc(axially).<br />
The trackprocesscontrolsthe Track Sensor<strong>and</strong>uses,<br />
viaaMessageconnector,the trackmotorprocesstokeepthe Data Sensorpositionedoverthespiraltrack.<br />
The readprocessusesthe Data Sensorto<br />
readthedisc.ViaaSharedDataconnectorthe outputprocessplaystheread<br />
bitsonsomeoutputdevice.Finally,itwasforeseenthatthe read<strong>and</strong> track<br />
processesneededtocommunicateviaaMessageconnector,forinstanceto<br />
communicatethestatus<strong>of</strong>thereadprocess.<br />
Theplannedorganisation<strong>of</strong>implementationunits(modules)isgiven<br />
bythemodule-usesviewdepictedinFigure6.3(b).Here,modulesarerepresentedbystereotypedUMLclasses<strong>and</strong>usesrelationsbydependencies.<br />
Furthermore,alayeringisrepresentedusingthepackagestructure.Here,<br />
thelowerlayersareclosertothehardware(e.g.,motors<strong>and</strong>sensors),while<br />
theupperlayersareclosertotheuser.<br />
1 http://www.uml.org(June2007)<br />
M
6.2. RunningExample 107<br />
appLayer<br />
funcLayer<br />
<br />
output<br />
<br />
<br />
<br />
read<br />
<br />
track<br />
<br />
<br />
trackmotor<br />
(a)Communicating-processes<br />
<br />
DiskReader<br />
<br />
hwLayer <br />
<br />
DataSensor<br />
<br />
<br />
SpeedSensor<br />
<br />
PlayerControl<br />
<br />
ArmControl<br />
<br />
TrackSensor<br />
(b)Module-uses<br />
<br />
<br />
<br />
Figure 6.3:Architecturalviews<br />
<br />
TransMotor
108 Chapter6. ConformanceCheckingII<br />
6.3 Approach<br />
6.3.1 ConformanceCheckingSystem<br />
Ourconformancecheckingsystem(CCS)isbasedontheideanottocompare<br />
architecture<strong>and</strong>implementationdirectly,buttoderiveviewsfromimplementation<strong>and</strong>architecturegovernedbyasharedviewpointexpressedin<br />
thesamelanguage.Thisovercomesboththeconceptual<strong>and</strong>technological<br />
problemsmentionedinSection6.1.Assuch,aconformancecheckbetween<br />
implementation<strong>and</strong>architecturethatdoesnotrequirechangestocurrent<br />
ways<strong>of</strong>working(e.g.,withrespecttolanguages<strong>and</strong>viewsused)requires<br />
thedefinition<strong>of</strong>acommonviewpoint. Thesemantics<strong>of</strong>sucha“designspaceconformanceviewpoint”mustbecompatiblewiththat<strong>of</strong>botharchitectural<strong>and</strong>implementationviews.Thus,amappingbetweenthedesignspaceconformanceviewthearchitecture<strong>and</strong>implementationmustexist.<br />
OurapproachisbasedontheworkpresentedbyVanDeursenetal.[2004]<br />
<strong>and</strong>Murphyetal.[1995]onarchitecturereconstruction.<br />
Inthischapterweconsiderthearchitecturalviewasleading.Asinthe<br />
approachbyMurphyetal.[1995]therearethreeimportantsituationsfor<br />
anyelementorrelationintheimplementation: convergence,divergence,<br />
<strong>and</strong>absence. Aconvergenceindicateselementsorrelationsintheimplementationthathaveacorrespondingelementorrelationinthearchitecture.<br />
Adivergenceonlyexistsintheimplementation<strong>and</strong>anabsence<br />
onlyexistsinthearchitecture. Theresult<strong>of</strong>aconformancecheckisaset<br />
<strong>of</strong>entities<strong>and</strong>relationsthatareattributedaccordingtothethreetypes<br />
above;thesignificance<strong>of</strong>mismatches(divergences<strong>and</strong>absences)founddependsingeneralontheinvolveddesigndecisions.Therefore,discovery<strong>of</strong>mismatchesshouldserveasatriggertoinvestigatefurtheriftheyareallowed<strong>and</strong>possiblydocumentedelsewhere.Ifnot,theyareconsideredtobe<br />
discrepanciesthatreducetheconceptualintegrity[Brooks,Jr,1975]<strong>of</strong>a<br />
system<strong>and</strong>mayresultinunexpecteddependencies,reducingthesystem’s<br />
maintainability.<br />
Theconformancecheckingsystem(CCS)outlinedinFigure6.4 isbased<br />
ontheprocessforarchitecturereconstructionpresentedbyVanDeursen<br />
etal.[2004]. Usingarchitecture<strong>and</strong>implementationartefacts,viewsare<br />
populatedthatareassociatedwithadesign-spaceconformanceviewpoint.<br />
Theconformanceviewpointisdefinedsuchthatitsdistancetoboththe<br />
architectural<strong>and</strong>implementationviewpointsisminimised.Furthermore,<br />
itenablestoattributeelements<strong>and</strong>relationwiththeirconformancestatus<br />
inasubsequentcomparison<strong>of</strong>thederivedconformanceviews. Forthisa<br />
set<strong>of</strong>comparisonrulesisspecified.Finally,apresentationfiltervisualises<br />
thecomparisonresults.
6.3. Approach 109<br />
Architecture Implementation<br />
View<br />
Population<br />
Conformance<br />
viewpoint<br />
Comparison<br />
rules<br />
Comparison<br />
View<br />
Population<br />
Presentation Visual<br />
Figure 6.4:ConceptualConformanceCheckingSystem<br />
6.3.2 <strong>Model</strong>-<strong>Driven</strong>ConformanceChecking<br />
Inthefollowingsectionswediscusshowour CCScanbemappedtoan<br />
MDEtype<strong>of</strong>approach. Although,severaltypes<strong>of</strong>technologiesareavailabletodoso,wewillusetechnologiesrelatedtothe<strong>Model</strong><strong>Driven</strong>Architecture<br />
1 (MDA). Alternatively,wecouldhaveusedtechnologiesbasedon<br />
theExtensibleMarkupLanguage 2 (XML)orongrammars. Infact,inearlierworkweusedXMLtechnologies[VanDijketal.,2005].There,wemade<br />
theobservationthatspecifications<strong>of</strong>models<strong>and</strong>transformationsinXML<br />
tendtobeverbose,<strong>and</strong>hence,difficulttomaintain.<br />
UsingmodeltransformationtheXMLsyntaxremainshidden.Moreover,<br />
wechoseMDAbecause<strong>of</strong>theavailability<strong>of</strong>languages<strong>and</strong>toolstomanipulatearchitecturalmodelsspecifiedusingUML.<br />
KeytoMDEaremodels<strong>and</strong>(automatic)modeltransformations.Assuch,<br />
weconfineourconformancecheckforanarchitecturalviewtoitsprimary<br />
presentation. Here,weassumethatthisprimarypresentationconsists<strong>of</strong><br />
UMLdiagrams.Usingmodeltransformationswecanthenmanipulatethe<br />
underlyingUMLmodelinordertochecktheconformance<strong>of</strong>thecorrespondingimplementation.Tothisend,weassumethatviewpointsprescribethe<br />
modellinglanguagetobeusedfortheprimarypresentation<strong>of</strong>associated<br />
views.<br />
InMDE,modellinglanguagesarespecifiedbymetamodels.Inthecase<strong>of</strong><br />
thearchitecturalviewsthatarethesubject<strong>of</strong>ourconformancecheckthis<br />
typicallyisasubset<strong>of</strong>theUMLmetamodel.Fortheconformanceviewpoints<br />
wederivethesemetamodelsfromtheviewpointdescriptions.<br />
1 http://www.omg.org/mda(June2007)<br />
2 http://www.w3.org/XML(June2007)
110 Chapter6. ConformanceCheckingII<br />
Ingeneral,withMDEabstractmodelsaretransformedtomoreconcrete<br />
models(<strong>and</strong>eventuallyintocode).Inourcasewealsotransformmodelsin<br />
theoppositedirectiontoobtainaconformancemodelsfromtheimplementation.<br />
InaccordancewiththeMDAweusetheMetaObjectFacility 1 (MOF)for<br />
metamodelling<strong>and</strong>UMLformodelling. Forspecifyingtherequiredmodel<br />
transformationsweusedtheAtlasTransformationLanguage[Jouault<strong>and</strong><br />
Kurtev,2005](ATL).<br />
Assuch,weintendtochecktheconformance<strong>of</strong>anarchitecturalmodel<br />
withrespecttoitscorrespondingimplementationusingMDAmodeltransformations.Consequently,itisrequiredtoobtainanMDAtype<strong>of</strong>model<strong>of</strong><br />
theimplementation.<br />
Here,weusetheconcept<strong>of</strong>atechnologicalspacecoinedbyKurtevetal.<br />
[2002]<strong>and</strong>describedasaworkingcontextwithaset<strong>of</strong>associatedconcepts,<br />
body<strong>of</strong>knowledge,requiredskills,tools,<strong>and</strong>possibilities.MDAisonesuch<br />
technologicalspace,basedonMOF<strong>and</strong>modeltransformations. TheMDA<br />
technologicalspacecanbereferredtoasmodelware. Othertechnological<br />
spacesarethegrammarware(basedongrammars)<strong>and</strong>theXMLtechnologicalspace.<br />
Here,werefertothetranslation<strong>of</strong>onetechnologicalspaceto<br />
anotherasprojectionorbridging.Inparticular,fromtheperspective<strong>of</strong>the<br />
target<strong>of</strong>suchaprojectionwecallitinjection,<strong>and</strong>fromtheperspective<strong>of</strong><br />
thesourcewecallitextraction.<br />
We,thus,obtainamodelrepresentation<strong>of</strong>theimplementationbyinjectingitinamodelbasedonanappropriatemetamodel.<br />
6.4 Viewpoints<strong>and</strong>Metamodels<br />
Thearchitecturalviewsusedtodocumentas<strong>of</strong>twarearchitectureareassociatedwithviewpoints.<br />
Severalsets<strong>of</strong>architecturalviewpointshave<br />
beendefined. Toattainagoodcoverage<strong>of</strong>thedifficulties<strong>and</strong>possibilities<strong>of</strong>determiningarchitecturalconformance,weconsiderviewsfromthe<br />
twoprincipalcategories<strong>of</strong>viewsdescribedinliterature[Kruchten,1995;<br />
H<strong>of</strong>meisteretal.,1999;Clementsetal.,2002a]:component-<strong>and</strong>-connector<br />
views<strong>and</strong>moduleviews.Asdiscussedintheprevioussectionwederivea<br />
conformancemetamodelforeach<strong>of</strong>thoseviewpoints.Infact,thesemetamodelseachspecifyanarchitecturedescriptionlanguage(ADL).<br />
Viewpointsdefinetherestrictionontheelements<strong>and</strong>relationstobe<br />
usedintheirprimarypresentation.Inourcaseweassumethatdiagrams<br />
areUMLdiagrams,<strong>and</strong>,thus,basedon(asubset<strong>of</strong>)theUMLmetamodel.<br />
Wederiveitsconformancemetamodelfromtherestrictionsitspecifies.It<br />
1 http://www.omg.org/m<strong>of</strong>(June2007)
6.4. Viewpoints<strong>and</strong>Metamodels 111<br />
ViewPart<br />
−name:String<br />
−conformance:Conformance<br />
<br />
Conformance<br />
−convergent:int<br />
−divergent:int<br />
−absent:int<br />
Figure 6.5:Genericmetamodelelement<br />
istheseelements<strong>and</strong>relationsforwhichwewanttoestablishconformance<br />
asconvergent,divergentorabsent.<br />
First,wedefineagenericmodelelementforconformancemodelsinFigure6.5.<br />
Toavoidconfusion,werefertoitas ViewPart. Itincludesaconformanceattribute:<br />
anenumerationdatatype<strong>of</strong> convergent, divergent, absent.<br />
Inthefollowingwespecialise ViewPartforconcretemodelelements<br />
forwhichwewanttodetermineconformanceinmetamodelsforparticular<br />
viewpoints.<br />
6.4.1 Component-<strong>and</strong>-ConnectorViews<br />
Component-<strong>and</strong>-connector(C&C)viewsmainlyaddressthequestion: how<br />
doesthesystemwork? Thebox-<strong>and</strong>-linediagramscreatedearlyduring<br />
s<strong>of</strong>twaredesign, usuallyareincludedin C&Ctype<strong>of</strong>views. C&Cviews<br />
areruntimeviewsaddressingconcernssuchasconcurrency<strong>and</strong>flow<strong>of</strong><br />
data. MostADLsthathavebeendefinedareaimedatthistype<strong>of</strong>views<br />
(seeMedvidovic<strong>and</strong>Taylor[1997]foranoverview).ADLmodelsdefinethe<br />
structure<strong>of</strong>asysteminterms<strong>of</strong>runtimecomponents<strong>and</strong>theirinteractions<br />
(connectors). Architecturalcomponentsareloci<strong>of</strong>computation<strong>and</strong>state.<br />
Architecturalconnectorsareloci<strong>of</strong>interaction[Shawetal.,1995]. Both<br />
arearchitecturalabstractions<strong>of</strong>elementsthatconsumeresources,either<br />
processingtimeormemory.Assuch,acompleteC&Cviewisanabstraction<br />
asystem’sstructureatruntime.<br />
Anexample<strong>of</strong>aC&CviewwasdepictedinFigure6.3(a)onpage107.<br />
Itshowsconcurrentlyexecutingcomponentsascommunicatingprocesses.<br />
Thecomponentsinteractthroughdifferenttypes<strong>of</strong>connectors.<br />
Forthedefinition<strong>of</strong>aconformancemetamodelforaC&Cviewweadhere<br />
totheterminology<strong>of</strong> ADLs(see,e.g.,Garlanetal.[2000]). Wereferto<br />
theADLdescribedinFigure6.6(a)onpage113asCPADL(Communicating-<br />
Processes ADL). ThemetamodelstatesthataSystemconsists<strong>of</strong>sets<strong>of</strong><br />
components<strong>and</strong> connectors.Each Component<strong>and</strong> Connectorcaninteractwith<br />
itsenvironmentthroughassociatedinterfaces.Incase<strong>of</strong>acomponentthe<br />
interfaceiscalledaPort,whereasincase<strong>of</strong>connectorwecallitaRole.<br />
Inordertoestablishinteractionbetweentwocomponentsoveraconnectorwecanattachcomponentportstoconnectorroles,withthelimitation
112 Chapter6. ConformanceCheckingII<br />
thatsuchan Attachmentisonlyallowedifthecomponentinteractsusingthe<br />
portasinterface<strong>and</strong>accordingtotheexpectationsdescribedbytheconnectorrole,thatis,port<strong>and</strong>roleneedtobecompatible[Allen<strong>and</strong>Garlan,<br />
1994]. Allattachmentstogetherdeterminethe configuration<strong>of</strong>the System.<br />
Notethatalthoughan Attachmentisarelation,wedefineitasa‘first-class’<br />
modelelement(aViewPart)toallowmarkingitsconformanceinaCPADL<br />
model.<br />
Forseveralelementsweaddedspecialisationsforthespecification<strong>of</strong><br />
morespecificcommunicating-processesviews: OutputPort, InputPort, SinkRole,<br />
SourceRole, Process, SharedData,<strong>and</strong> Message.<br />
Finally,themodelelementsforwhichwewanttoestablishtheconformancearedefinedasspecialisations<strong>of</strong>thegenericmetamodelelements<strong>of</strong><br />
Figure6.5ontheprecedingpage.<br />
6.4.2 ModuleViews<br />
InordertoarriveatasystemfunctioningasdescribedbytheC&Cviews,<br />
viewsaredevelopeddrivingtheactualimplementation<strong>of</strong>s<strong>of</strong>tware<strong>and</strong><br />
hardware.Thoseviewsthatcapturethestructuralorganisation<strong>of</strong>theimplementationunitsareknownastheset<strong>of</strong>moduleviews<strong>and</strong>mainlyaddressthequestion:howisthesystemdeveloped?Theseviewsareusedto<br />
dividetheworkamongdevelopers<strong>and</strong>developmentteams. Additionally,<br />
moduleviewscanbeusedtoassessnon-operationalqualities<strong>of</strong>asystem,<br />
suchasmodifiability.Figure6.3(b)onpage107displaysamoduleviewfor<br />
theDMBsystem.Itdepictsthedecomposition<strong>of</strong>thes<strong>of</strong>twareimplementationunits(modules),theirusedependencies,<strong>and</strong>layering.Modulesaresupposedlycoherentunits<strong>of</strong>functionalitythatareeventuallyassignedtodevelopmentteams.Dependencyrelationsbetweenthe<br />
modules<strong>of</strong>adevelopmentviewareimportant. Severaltypes<strong>of</strong>themexists,suchasuses,allowed-to-use,<strong>and</strong>shares-data-withrelations.Here,we<br />
focusonusedependencies.<br />
ThecorrespondingconformancemetamodelisdepictedinFigure6.6(b).<br />
Here,an Implementationconsists<strong>of</strong>aset<strong>of</strong> modules<strong>and</strong> usesdependencies.A<br />
Modulehasaset<strong>of</strong> usesdependencies.InturnaUsesrelationisassociated<br />
withanother Module.Finally,aModuleconsist<strong>of</strong>aset<strong>of</strong> classes.Weadded<br />
theconcept<strong>of</strong> Classtosimplifythereconstruction<strong>of</strong>amodule-usesmodel<br />
fromsourcecode.Alternatively,wecouldhaveusedseparatemetamodels<br />
fortheresult<strong>of</strong>theextractionstep(classes<strong>and</strong>callsrelations)ontheone<br />
h<strong>and</strong>,<strong>and</strong><strong>of</strong>theabstractionstep(modules<strong>and</strong>usesrelations)ontheother.<br />
Again,themodelelementsforwhichwewanttocheckconformanceare<br />
specialisations<strong>of</strong>relevantelementsfromFigure6.5onthepreviouspage.<br />
WerefertothelanguagedefinedbythismetamodelasMADL(ModuleADL).
6.4. Viewpoints<strong>and</strong>Metamodels 113<br />
ViewPart<br />
(from Conformance)<br />
−name:String<br />
−conformance:Conformance<br />
SharedData<br />
+ connectors<br />
Connector *<br />
Component<br />
Message<br />
Attachment<br />
Process<br />
+ ports<br />
Role<br />
Port<br />
*<br />
+ roles *<br />
+ role<br />
attachment<br />
+<br />
+ configuration *<br />
+ attachment<br />
+ port<br />
SourceRole SinkRole<br />
+ calls<br />
*<br />
*<br />
System<br />
+ components<br />
(a)CPADLmetamodel<br />
Implementation<br />
−name:String<br />
Module Uses<br />
+ uses + uses *<br />
*<br />
+ modules *<br />
+ uses<br />
*<br />
+ classes<br />
*<br />
Class<br />
+<br />
*<br />
fieldAccess<br />
*<br />
InputPort OutputPort<br />
ViewPart<br />
(from Conformance)<br />
−name:String<br />
−conformance:Conformance<br />
(b)MADLmetamodel<br />
Figure 6.6:Metamodels
114 Chapter6. ConformanceCheckingII<br />
6.5 Mappings<strong>and</strong><strong>Model</strong>Transformations<br />
ThemodeltransformationsinvolvedinourCCScoverthreephases:model<br />
population,conformancechecking,<strong>and</strong>presentation.Wediscussthetransformationsinvolvedineachphasebelow.<br />
6.5.1 <strong>Model</strong>Population<br />
<strong>Model</strong>populationinvolvesinjection<strong>of</strong>sourceartefactsintoamodelrepresentation,which,subsequentlyistransformedinextraction<strong>and</strong>abstractionstepsintoamodelthatconformstoone<strong>of</strong>thedefinedconformance<br />
metamodels.<br />
Injection<br />
ForthearchitecturalUMLmodels,injectionisnotrequired;theyalready<br />
areinthemodelwaretechnologicalspace<strong>and</strong>,thus,canserveassource<br />
modelsinmodeltransformations.Tothisend,UMLtoolscanserialisethe<br />
UMLmodelstoXMLMetadataInterchange 1 (XMI)format,which,inturn,<br />
canbeusedbytransformationtools.<br />
Inthecase<strong>of</strong>theimplementation,wefirstcompiledarepresentation<strong>of</strong><br />
theabstractsyntaxtree(AST)<strong>of</strong>theJavasourcecodeinJavaML[Badros,<br />
2000],anXMLbasedrepresentation<strong>of</strong>Javasourcecode. Similartechnologyisavailableformanyotherprogramminglanguages[Al-Ekram<strong>and</strong><br />
Kontogiannis,2005]. Then,weinjectedthisXMLdocumentintoamodel<br />
representationconformingtoagenericmetamodelforXML.Wecouldreuse<br />
boththisinjection<strong>and</strong>theXMLmetamodel,astheywerealreadyavailable<br />
fromATL’smetamodel<strong>and</strong>transformationrepositories 2 .<br />
Extraction<strong>and</strong>Abstraction<br />
Inextraction<strong>and</strong>abstractionstepstheobtainedimplementation(XML-<br />
JavaML)model<strong>and</strong>thearchitectural(UML)modelareeachtransformed<br />
intoamodelconformone<strong>of</strong>theconformancemetamodelswedefined.<br />
Here, module <strong>and</strong> C&C views requireadifferent approach. Thisis<br />
mainlyduetothedifferentrelationsbetweenbothtypes<strong>of</strong>architectural<br />
viewsontheoneh<strong>and</strong><strong>and</strong>theimplementationontheother.Therelation<br />
betweenmoduleviews<strong>and</strong>theimplementationisarefinementrelation,<br />
astheseviewsareanabstraction<strong>of</strong>theimplementationunitsthatare<br />
tobe(havebeen)delivered(cf. therelationbetweenaclassdiagram<strong>and</strong><br />
1 http://www.omg.org/mda/specs.htm#XMI(June2007)<br />
2 http://www.eclipse.org/gmt/am3/zoos/atlanticZoo<strong>and</strong>http://www.eclipse.org/m2m/atl/<br />
atlTransformations(June2007)
6.5. Mappings<strong>and</strong><strong>Model</strong>Transformations 115<br />
thecorrespondingobject-orientedsourcecode). TherelationbetweenC&C<br />
views<strong>and</strong>theimplementationcanbemorecomplicated;theseviewsare<br />
anabstraction<strong>of</strong>thesystemsstructureatruntime<strong>and</strong>not<strong>of</strong>theimplementationitself(cf.<br />
therelationbetweencollaboratingobjectsina<br />
UMLcollaborationdiagram<strong>and</strong>thesourcecodethatcausedtheseobjects<br />
tobeinstantiated). Thismakesreconstruction<strong>of</strong>thoseviewsagreater<br />
challenge.<br />
ModuleViews Forthepopulation<strong>of</strong>aMADLmodelwehavetoidentifymodules<strong>and</strong>usesrelations.<br />
Typically,implementation-levelmodularisationconstructsdonotmatch<br />
one-to-onewiththearchitecture-levelmodules. Developerstypicallyhave<br />
reasonst<strong>of</strong>urtherrefinetheprovideddecomposition<strong>of</strong>thedevelopment<br />
viewsduringimplementation.Inourapproachweassumethatthedecompositionisrecorded,forinstance,throughannotations.Asimple,yetsufficient,methodistoaddcommentstotheimplementationwith<br />
@module(...)clauses.TheseclausesassociateaJavaclass(or<br />
otherimplementationunit)withamodule<strong>of</strong>thearchitecturalusesview.<br />
Alternatively,packagescanbeusedtorepresentmodulesinanimplementation.Inthiscase,however,wealreadyusedpackagestorepresentarchitecturallayering.<br />
Nexttomodules,ausesviewdefinesusesrelations[Clementsetal.,<br />
2002a]. Thenotion<strong>of</strong>usehasconflictinginterpretations[Stevens,2001].<br />
Inordertodeterminetheexistenceorpossiblyinexistence<strong>of</strong>aparticular<br />
usesrelation,westartwiththedefinitiongivenbyClementsetal.[2002a]:<br />
“UnitAissaidtouseunitBifA’scorrectnessdependsonacorrectimplementation<strong>of</strong>Bbeingpresent.”<br />
Asourapproachcannotguaranteethata<br />
moduleiscorrectlyimplemented,wetakeapragmaticpositionbymapping<br />
thearchitecturalusesrelationtoacheckabletuple:alinkplusanaction<br />
thateffectuatesthelink.Thelinkisareferencefromaclassthatbelongs<br />
tothe‘using’moduletotheclassthatbelongstothe‘used’module.Theactioncanbeanythingfromafunctioncalltoanattributeaccess.Infact,our<br />
interpretationcapturescalls<strong>and</strong>shares-data-withdependencyrelations,<br />
whicharedifferentspecialisations<strong>of</strong>thedepends-onrelation.<br />
WeusetheliftingoperationdescribedbyFahmy<strong>and</strong>Holt[2000b]to<br />
transformlinks,actions,<strong>and</strong> @moduleannotationstocreateusesrelations<br />
inatargetmodel.<br />
Firstwerecoverclasses<strong>and</strong>theirdependenciesfromtheJavaMLrepresentation<strong>of</strong>theAST.UsingsimpleATLexpressionsweselecttheXMLElementsthatrepresentaclass<strong>and</strong>foreachcreateaClassintheMADLtarget<br />
model. Toinstantiatecorresponding calls<strong>and</strong> fieldAccessdependenciesin<br />
thetargetmodel,weselectalltheirchildElementsrepresentingmethod
116 Chapter6. ConformanceCheckingII<br />
invocations<strong>and</strong>fieldaccessestargetedatclasseswealsoimplemented.<br />
BecauseJavaMLdiscardscomments,weuseasimplePerl-scripttoretrieve<br />
@moduleclauses<strong>and</strong>generateanXML-documentconsisting<strong>of</strong> elements.Theprojection<strong>of</strong>thisdocument<br />
asXMLmodelservesasadditionalsourcemodeltoatransformationthat<br />
createsmodulesthatarecomposed<strong>of</strong>theclassescreatedbytheprevious<br />
transformation.Afinal(refining)modeltransformationliftsthefieldaccess<br />
<strong>and</strong>calldependenciestothelevel<strong>of</strong>modulesasUsesrelations.<br />
NexttotheJavasourcecode,thearchitecturalusesview<strong>of</strong>Figure6.3(b)<br />
onpage107wasanotherinputforourCCS,representingthe’as-designed’<br />
architecture.Population<strong>of</strong>aMADLmodelfromthisUMLmodelisstraightforwardbecause<strong>of</strong>theuse<strong>of</strong>stereotypestodenotemodules<strong>and</strong>usesrelations.<br />
Theresult(forimplementation<strong>and</strong>architecture)isrepresentedasa<br />
directedgraphasshowninFigure6.7.Here,boxesrepresentmodules,<strong>and</strong><br />
arrowsrepresentusesdependencies.Itcanbeseenthatthemodelderived<br />
fromtheimplementationconsists<strong>of</strong>twounconnectedsubgraphs. Infact,<br />
onesubgraphcorrespondstothepart<strong>of</strong>theimplementationdeployedon<br />
thePC,theothertothepartdeployedonthemicrocontroller. Obviously,<br />
nodirectmethodinvocations<strong>and</strong>fieldaccessesarepossiblebetweenthose<br />
parts.<br />
C&CViews Components,ports,connectors,<strong>and</strong>rolesarearchitecturalconceptsthatmayormaynothaveexplicitcounterpartsinthedevelopment<br />
viewsorimplementation.Theimplementationisnotmerelyarefinement<br />
<strong>of</strong>thesearchitecturalelementsasinthecase<strong>of</strong>developmentviews. This<br />
makesthemappingbetweenthearchitecturalC&Cviews<strong>and</strong>implementationconstructsindirect<strong>and</strong>moredifficult.Themainconcern<strong>of</strong>theC&CviewinFigure6.3(a)onpage107isconcurrency.<br />
Forsuchaviewthecomponentscorrespondtoimplementation<br />
mechanismsforconcurrency<strong>and</strong>parallelism,suchasprocesses,threads<br />
<strong>and</strong>tasks.Forexampleinthecase<strong>of</strong>asystemimplementedinJava,these<br />
componentscorrespondtothreads.Similarly,connectors,inthatcase,are<br />
abstractions<strong>of</strong>themechanismsthatallowthesethreadstointeract,forinstanceinter-process-communicationmechanisms,remote-procedurecalls,<br />
orshared-data.<br />
CreatingaC&Cviewfromstaticsourcesisveryapplicationspecific;it<br />
dependsonconventionsforimplementing,forinstance,concurrency<strong>and</strong><br />
communicationmechanisms.InthiscasewewanttoreconstructaCPADL<br />
modelrepresentingaset<strong>of</strong>communicatingprocesses. Assaid,inJava<br />
thistype<strong>of</strong>componentscorrespondstothreads. Javathreadsareclasses<br />
withamain-methodorclassesthatextendtheJava Threadclass. Inthis
6.5. Mappings<strong>and</strong><strong>Model</strong>Transformations 117<br />
PlayerControl<br />
DiskReader ArmControl<br />
DataSensor SpeedSensor TrackSensor TransMotor<br />
Play<br />
DiscReader<br />
DataSensor<br />
TrackSensor<br />
(a)Architecture<br />
PlayerControl<br />
ArmControl<br />
TransMotor<br />
(b)Implementation<br />
OutputControl<br />
NotePlayer<br />
Figure 6.7:ReconstructedMADLmodels<br />
casewealsoassumethatsuchclassesareinstantiatedonlyonce. Therefore,thefirsttransformationstepidentifiestheseclassesintheJavaML<br />
model. For each we create a Process component in the CPADL target<br />
model. Notethatbecauseinthiscasethereexistsaone-to-onemapping<br />
betweenanimplementationconstruct(Javathread)<strong>and</strong>thecomponentsin<br />
acommunicating-processesview,itisnotnecessarytorelyonannotations<br />
asforthemoduleview.<br />
Inaddition,wesearchinthefirsttransformationstepfortwotypes<br />
<strong>of</strong>interactions:messagepassing<strong>and</strong>shared-data. Thesetypes<strong>of</strong>connectorswereimplementedusingmethodinvocations<strong>and</strong>Javastreams,respectively.<br />
Foridentification<strong>of</strong>therelevantmethodinvocationswelargelyreuse<br />
theATLexpressionsforthepopulation<strong>of</strong>theMADLmodel. Onlynowwe<br />
justconsidermethodinvocationsbetweenidentifiedthreads.ForeachdistinctmethodinvocationbetweentwothreadswecreateaMessageconnector,<strong>and</strong>,ontheside<strong>of</strong>thesource<strong>of</strong>themessage,an<br />
OutputPortforthe<br />
involvedcomponent<strong>and</strong>aSinkRolefortheconnector;atthe‘targetside’we<br />
createan InputPort<strong>and</strong>aSourceRole.Finally,wecreate Attachmentsforthose<br />
ports<strong>and</strong>roles.
118 Chapter6. ConformanceCheckingII<br />
The Java platform for the micro controller <strong>of</strong>fers a special type <strong>of</strong><br />
(buffered)streamclassforwhichwecreateaSharedDataconnectorinthe<br />
CPADLtargetmodel.Byidentifyingeachthreadthatreadsfromorwrites<br />
toaninstance<strong>of</strong>thatclassweidentify Ports(inputoroutput), Roles(source<br />
orsink),<strong>and</strong> Attachments.<br />
Identification<strong>of</strong> Messageconnectorsinthetransformationexplained<br />
above,resultsinaseparateconnectorinstanceforeachdistinctmethodinvocationbetweentwothreads.Ingeneral,connectorsdescribeacomplete<br />
protocolfortheinteractionsallowedbetweentwocomponents. Therefore,<br />
usinganothermodeltransformation,weabstractall Messageconnectors<br />
betweentwocomponentsintoasingleconnectorrepresentingtheallowed<br />
message-basedinteractionbetweenthosecomponents.<br />
TheresultinggraphisgiveninFigure6.8(b).Werepresentcomponents<br />
byrectangles<strong>and</strong>connectorsbyellipses.Attachmentsarerepresentedby<br />
edges<strong>and</strong>theirarrowheadsindicatethe‘direction’<strong>of</strong>theinvolvedports<br />
<strong>and</strong>roles.<br />
ThearchitecturalinputwastheC&Cview<strong>of</strong>Figure6.3(a)onpage107.<br />
ToturnthisviewintoaCPADLmodel,wemapeachstereotyped Objecttoa<br />
ProcessintheCPADLtargetmodel.Each Linkismappedtoanappropriate<br />
Connectordependingontheappliedstereotype. Ports, Roles,<strong>and</strong> Attachments<br />
arecreatedwherenecessary.Notethatwecannotdistinguishbetweeninoroutputportsorsourceorsinkconnectorshere,asnodirectionisprovided.TheCPADLmodelpopulatedfromthearchitectureisgiveninFigure6.8(a).<br />
6.5.2 <strong>Model</strong>Comparison<br />
Thecomparisontransformationshavetwosourcemodels(derivedfrom<br />
implementation<strong>and</strong>fromarchitecture)<strong>and</strong>generateanattributedtarget<br />
model,containingtheelements<strong>of</strong>thesourcemodelsattributedwithone<strong>of</strong><br />
thefollowinglabels:convergent,divergent,orabsent.<br />
ModuleViews Foreachmoduleinbothsourcemodelsitischeckedwhether<br />
itisaconvergent,divergentorabsentmodule. Thisissimplydoneusing<br />
namematching.<br />
Ausesrelationintheimplementationsourcemodelisconsideredconvergentifausesrelationexistsbetweentwomodulesinthearchitecture<br />
sourcemodelthatcorrespondwiththetwomodulesinvolvedinthatuses<br />
relationintheimplementationsourcemodel. Theresultisvisualisedin<br />
Figure6.9.Convergent,divergent,<strong>and</strong>absententitiesarerepresentedby<br />
solid,dashed,<strong>and</strong>dottedlinesrespectively.
6.5. Mappings<strong>and</strong><strong>Model</strong>Transformations 119<br />
PlayerControl<br />
DiscReader<br />
DataSensor<br />
output<br />
read<br />
track<br />
trackmotor<br />
Message<br />
Message<br />
SharedData<br />
Message<br />
Message<br />
(a)Architecture<br />
DiscReader<br />
Play<br />
SharedData<br />
ArmControl Message<br />
(b)Implementation<br />
Message<br />
Figure 6.8:ReconstructedCPADLmodels<br />
Play<br />
DiskReader<br />
SpeedSensor<br />
PlayerControl<br />
ArmControl<br />
TrackSensor<br />
TransMotor<br />
Figure 6.9:MergedMADLconformancemodel<br />
OutputControl<br />
NotePlayer<br />
OutputControl<br />
TransMotor
120 Chapter6. ConformanceCheckingII<br />
PlayerControl<br />
Message<br />
Message<br />
Message<br />
Play<br />
DiscReader<br />
SharedData<br />
Message<br />
ArmControl Message<br />
Figure 6.10:MergedCPADLconformancemodel<br />
OutputControl<br />
TransMotor<br />
Notethatwedeterminemanuallywhichmismatchesactuallyinvolve<br />
discrepancies. Partly,theidentifiedmismatchesoriginatefromnaming,<br />
e.g. DiskReader<strong>and</strong>DiscReader. Oneentityhasnotbeenimplemented:<br />
theSpeedSensor.AdivergentusesrelationemergesbetweenPlayerControl<br />
<strong>and</strong>TransMotor.Infact,thisrelationviolatestheintendedlayering.<br />
C&Cview ComparingthegeneratedCPADLmodelsresultsintheidentification<strong>of</strong>convergences,divergences,<strong>and</strong>absencesasshowninFigure6.10.ComparingtheC&Cruntimeviews<strong>of</strong>Figure6.8ontheprecedingpageinvolvesmergingthenamespaces.<br />
Especiallyinthecase<strong>of</strong>aC&Cviewthis<br />
isnecessary,asthenamesinthesourcecodefromwhichwereconstruct<br />
the C&Cviewarederivedfromthemoduleviews<strong>and</strong>therefore<strong>of</strong>tendo<br />
notmatchthoseinthe C&Cview. Toremedythisweallowtheuser<strong>of</strong><br />
ourtransformationtoprovideamappingbetweenthetwoinvolvedname<br />
spaces.Again,weuseXMLtomakethispossible.Inthiscasethemapping<br />
consists<strong>of</strong><br />
<br />
<br />
<br />
<br />
<br />
<br />
AscanbeseeninFigure6.10,thePlayerControlcomponentisadivergence.<br />
Consultationwiththearchitectrevealedthatitwasintendedasa<br />
connectorbetweentheread<strong>and</strong>trackcomponents. However,intheimplementationitincludedh<strong>and</strong>linguserinteractionforwhichitrequireda<br />
separatethread.
6.6. Discussion 121<br />
6.5.3 <strong>Model</strong>Presentation<br />
ThefinalstepinourCCSisthepresentation<strong>of</strong>thegeneratedconformance<br />
models.AsthedefinedMADL<strong>and</strong>CPADLmetamodelonlydefinethestructure(abstractsyntax)<strong>of</strong>theassociatedmodels<strong>and</strong>nottheirgraphicalnotation(concretesyntax)additionaltransformationsarenecessarytoalanguagethathasanassociatedgraphicalnotation.<br />
Weusedthegraphdescriptionlanguage DOT 1 tovisualisetheresult.<br />
AlthoughDOTisatextual(grammar-based)language,aMOF-basedmetamodelisalsoavailable,allowingprocessingusingATL.WedefinedtransformationsfromCPADL<strong>and</strong>MADLtotheDOTmetamodel.Finally,thetextual<br />
representation<strong>of</strong>thegeneratedDOTmodelswasextractedbyaspecialtype<br />
<strong>of</strong>transformation. ThistransformationqueriesaDOTsourcemodel<strong>and</strong><br />
generatescorrespondingDOTcodeasoutput.Theresultcanbevisualised<br />
usingdot.ExamplesweredepictedinFigures6.7to6.10onpages117–120.<br />
6.6 Discussion<br />
Belowweaddressanumber<strong>of</strong>issuesrelatedtotheuse<strong>of</strong> MDEforour<br />
CCS.Subsequently,wediscussanumber<strong>of</strong>potentialimprovements<strong>of</strong>the<br />
approach.<br />
6.6.1 <strong>Model</strong>ware<br />
<strong>Model</strong>Population Inourexperimentweimplementedthepopulation<strong>of</strong>conformancemodelsviaXML.<br />
Weusedexistingbridgesfromgrammarware<br />
toXML(JavaML)<strong>and</strong>fromXMLtothemodelwaretechnologicalspace(the<br />
injectorforXMLdata). Thedrawback<strong>of</strong>usingthesebridges,isthatsubsequenttransformationsthatpopulatethe<br />
MADL<strong>and</strong> CPADLmodelsare<br />
specifiedinterms<strong>of</strong> XMLmetamodelelements(e.g.,Node,Element,Attribute),ratherthanelementsspecificforJava(e.g.,Class,Method,Field).Thismakesspecifyingthesetransformationspronetoerrors.Ahelperoperationtomanipulateaclass,forinstance,isspecifiedinthecontext<strong>of</strong>XML<br />
elementsthatrepresentclasses.Instead<strong>of</strong>usingthetypesystem,ithasto<br />
becheckedexplicitlythatanXMLelementindeedrepresentsaclass.<br />
Byconstruction<strong>of</strong>anATLlibrary<strong>of</strong>helperoperationsrelatedtotheXML<br />
modelrepresentation<strong>of</strong>Java(e.g.,anoperationtocollectallXMLelements<br />
thatrepresentamethodinvocationforan XMLelementthatrepresents<br />
aclass)wecouldraisetheabstractionlevelsomewhat. However,ideally,<br />
wewouldliketousearepresentationbasedona‘real’Javametamodel.<br />
Infact,suchametamodeliscurrentlyavailablefromtheATLmetamodel<br />
1 http://www.graphviz.org(June2007)
122 Chapter6. ConformanceCheckingII<br />
repository. Theproblemremainstopopulateamodelconformthismetamodelbasedonaset<strong>of</strong>Javasourcefiles.Asolutiontothisproblemcould<br />
beatransformationthattransformsXMLmodels(basedonJavaML)into<br />
modelsbasedontheJavametamodel.Thiswouldallowtospecifythemodel<br />
extractionatthedesiredlevel<strong>of</strong>abstraction. Ingeneral,suchatransformationwouldalsobeusefulforothers<strong>of</strong>twareevolutiontasksthatinvolve<br />
Javasourcecode<strong>and</strong>mightbesolvedinthemodelwaretechnologicalspace<br />
(e.g.,architecturereconstruction,programunderst<strong>and</strong>ing,metriccalculations).<br />
<strong>Model</strong>wareManagement Withtheapplication<strong>of</strong>modeltransformationsto<br />
more<strong>and</strong>morecomplicated<strong>and</strong>diverseproblems(see,e.g.,Chapters5,<br />
7,<strong>and</strong>8<strong>of</strong>thisthesis),managingtheinvolvedmodelartefactsbecomesan<br />
issue.<br />
Althoughwedidnotdiscussall<strong>of</strong>them,theapproachpresentedinthis<br />
chapteralreadyinvolvedsevendifferentmetamodels,11differenttransformations,<strong>and</strong>over20source,target,<strong>and</strong>intermediate(generated)models.<br />
Inaddition,thecompletesolutioninvolvedseveraltransformations<br />
executedoutsidethemodelwarespaceusingtoolssuchassed,Perl,<strong>and</strong><br />
java2xml(fortransformation<strong>of</strong>aJavaprogramtextintoaJavaMLrepresentation).<br />
Currently,wemanagealltheseartefactsusingtheJavabuild<br />
toolAnt 1 ,forwhichtheATLdevelopmenttoolsprovidespecialtaskstoexecutetransformations,save<strong>and</strong>load(meta)models,<strong>and</strong>applyprojectors.<br />
UsingAnt,wecompletelyautomatedourapproach,includingcompilation<br />
<strong>of</strong>anXMLrepresentationforJavasourcecode,execution<strong>of</strong>variousmodel<br />
transformations,<strong>and</strong>generation<strong>of</strong>PostScriptoutputforDOTgraphs.<br />
<strong>Model</strong>wareReuse Fortunately,notall<strong>of</strong>themodelwareartefactsmentioned<br />
abovehavetobedevelopedfromscratch.Wereused<strong>and</strong>adaptedmetamodelsfromATL’smetamodelrepository(e.g.,metamodelsforDOT<strong>and</strong>XML).Alsoprojectorswerereused(e.g.,theXMLinjector,<strong>and</strong>theDOTtotextextractor).Stillspecification<strong>of</strong>allremainingmetamodels<strong>and</strong>modeltransformationstakesconsiderableeffort.<br />
However,transformationsdefinedforthe<br />
modeltransformationphaseforinjection<strong>of</strong>Javasourcecodeintoamodel<br />
representationcanbereusedforconformancechecking<strong>of</strong>otherviews,as<br />
wellasfordifferenttypes<strong>of</strong>applicationsthatinvolvethemanipulation<strong>of</strong><br />
programs.<br />
Themetamodels<strong>and</strong>transformationsusedinthecomparison<strong>and</strong>presentationphasesarespecifictoaparticularviewpoint.Ontheotherh<strong>and</strong><br />
thesemetamodelsareeasilyextendedforotherviewpoints,forinstance,by<br />
1 http://ant.apache.org/(June2007)
6.6. Discussion 123<br />
addition<strong>of</strong>additionaltypes<strong>of</strong>connectorsordependencyrelations.Ifsuch<br />
additionsdonotrequireaspecificapproachforcomparison<strong>and</strong>presentation,thetransformationswespecifiedcanstillbeapplied.<br />
6.6.2 ImprovingtheApproach<br />
Generalisation Theuse<strong>of</strong>ATLmakesourapproachspecifictotheMDAtechnologicalspace.<br />
Thismeansthatwerequiresourcemodelstoconformto<br />
aMOF-basedmetamodel<strong>and</strong>tobeserialisedwithXMI. Inprinciplethis<br />
makesourapproachcompatiblewithmostUMLtools(viaXMI).However,in<br />
practiceadditionaltransformationsare<strong>of</strong>tenrequiredtoexchangesource<br />
<strong>and</strong>targetmodelsbetweenmodelling, visualisation<strong>and</strong>transformation<br />
tools(seealsoSections5.7<strong>and</strong>7.9).<br />
Thespecification<strong>of</strong>modelpopulationtransformationsisdependenton<br />
theapplied(programming<strong>and</strong>modelling)style(e.g.,usage<strong>of</strong>patterns<strong>and</strong><br />
codingconventions).Therequiredcomplexity<strong>of</strong>transformationrulesalso<br />
dependsontheprogrammingstyle. Forinstance,theuse<strong>of</strong>getter<strong>and</strong><br />
settermethodscircumventstheneedtolookfordirectfieldaccess.<br />
Togeneralisethecomparisonstep<strong>of</strong>ourapproachweconsideredthe<br />
definition<strong>of</strong>acompletegenericmetamodelfor(conformance)views.Sucha<br />
metamodelwoulddefineadditionalViewParts(seeFigure6.5onpage111)<br />
suchasElement,ConnectingElement,<strong>and</strong>Relation.TheseViewPartscan<br />
thenbespecialisedbymetamodelsforparticularviewpoints.Forexample,<br />
intheCPADLmetamodelaConnectorwouldbeaConnectingElement,<strong>and</strong><br />
anAttachmentaRelation.Allthiswouldmakesensewhenitispossibleto<br />
specifytransformationsforcomparison<strong>and</strong>presentationinterms<strong>of</strong>those<br />
genericViewParts. Thesetransformationscanthenbeusedforarbitrary<br />
conformancemodels.Theproblemwiththisapproachisthatitisnotpossibletoalsodefinegenericrelationsbetweenmetamodelelementsthatcanbe<br />
specialisedbyaconcretemetamodel.Soalthoughitispossibletodevelopa<br />
transformationtoalwayspresentaConnectingElementasanellipse,such<br />
atransformationcannotalsoinstantiateitsrelationsinagenericway.<br />
Wecanovercomethisproblembytheuse<strong>of</strong>higher-ordertransformations.<br />
Thesearetransformationsthathaveanothertransformationas<br />
sourceortargetmodel.ForATLthisismadepossiblebytheavailability<strong>of</strong><br />
ametamodelformodel-basedrepresentation<strong>of</strong>ATLtransformations<strong>and</strong><br />
correspondingprojectors. Suchahigher-ordertransformationwouldtake<br />
themetamodelinvolvedintheconformancecheckassourcemodel<strong>and</strong><br />
produceamodel<strong>of</strong>thetransformationsforcomparison<strong>and</strong>presentation<strong>of</strong><br />
theassociatedmodels.Thisappearstobefeasibleconsideringthefactthat<br />
thetransformationsweimplementedforthosestepsarequitesimilar.<br />
ThisapproachisinvestigatedinGraaf<strong>and</strong>vanDeursen[2007b],where<br />
weprovideamoreextensivegenericmetamodel,asdiscussedabove.Based
124 Chapter6. ConformanceCheckingII<br />
onthis(abstract)metamodelwedefineconcretemetamodelsforparticular<br />
views. Thehigher-ordertransformationgenerateshelpers<strong>and</strong>transformationrulesforconcreteinstances<strong>of</strong>theabstractmetamodelelementsin<br />
aparticularview’smetamodel. Theresulting ATLtransformationisappliedtomodelsconformingtotheconcretemetamodeltochecktheirconformance.<br />
Here,atrade-<strong>of</strong>fcanbeidentified.Addition<strong>of</strong>extradetailsinageneric<br />
metamodel (e.g., relations between metamodel elements), allows more<br />
transformationcodetobereused,forinstance,forvisualisation<strong>of</strong>conformancemodelswith<br />
DOT. Ontheotherh<strong>and</strong>,thispreventstomakethe<br />
conformancecheck<strong>and</strong>visualisationsspecificforaparticularmetamodel.<br />
Forinstance,wevisualisedconnectingelementsusingellipses<strong>and</strong>other<br />
elementsusingboxes. Inadifferentsituationitmightbenecessaryto<br />
visualisedifferenttypes<strong>of</strong>connectingelements(messageorshareddata)<br />
differently.<br />
IdentifyingDiscrepancies Inthemoduleviewexampleseveralmismatches<br />
occurredduetonaming(e.g.,DiskReadervs. DiscReader). Thiscanbe<br />
solvedbyallowingausertosupplyamappingbetweennamespacesin<br />
asimilarwayaswasdoneinthecase<strong>of</strong>the C&Cview. Fordetermining<br />
whetherothermismatchesarediscrepancies,designdecisionshavetobe<br />
considered.<br />
Ingeneral,definingwhatisamismatchdependsonthetype<strong>of</strong>views<br />
involved<strong>and</strong>theintentions<strong>of</strong>thearchitects. Wedid,forinstance,not<br />
reportmismatchesforattachmentsrelatedtodifferentporttypeswhena<br />
portinthemodelderivedfromtheimplementationisaspecialisation<strong>of</strong>a<br />
correspondingportinthemodelderivedfromthearchitecturalview.<br />
Staticconformancechecking<strong>of</strong>runtimeviews Although C&Cviewsdescribea<br />
systematruntime,weonlyusedstaticinformationforourconformance<br />
check. Asaresult,wecannotalwaysbesurethat,forinstance,twoidentifiedattachmentsconnectthesamecomponent<strong>and</strong>connectorinstances.<br />
Itwouldbeinterestingtoalsoconsiderdynamicinformation. Thisraises<br />
questionssuchashowtoinjectthatinformationintomodels,<strong>and</strong>whattype<br />
<strong>of</strong>metamodelsaresuitableforthat.Onepossibilitywouldbetousetraces<br />
toinstantiatemessagesequencecharttype<strong>of</strong>models,asisdonebyCornelissenetal.[2007].<br />
Introducing annotations Although we required our approach to be nonintrusive,wedidintroducetheuse<strong>of</strong>annotationstoregistermoredetailed<br />
decompositionsthanprescribedbythemoduleview. Assumingthatthe<br />
moduleviewsindeeddrivetheimplementationactivities, theadvent<strong>of</strong>
6.7. Relatedwork 125<br />
integrateddevelopmentenvironmentsmakesdealingwithsuchannotationsstraightforward.Eclipse<br />
1 could,forinstance,beeasilychangedsuch<br />
thatthisinformationisrequestedfromtheprogrammerinthewizardfor<br />
defininganewclass. Furthermore,althoughweuseJava1.4,inversion<br />
1.5annotationshavebecomeanintegralpart<strong>of</strong>theJavalanguage. Subsequently,thisinformationcouldbeincludedintheheader<strong>of</strong>thetemplate<br />
usedbythewizardtocreateclasses.<br />
6.7 Relatedwork<br />
Krikhaar[1999]<strong>and</strong>Mens[2000]independentlycomparedanumber<strong>of</strong><br />
approachestocheckarchitectureconformance. However,conformancebetweenmodelsatdifferentabstractionlevelsisnotaddressed.<br />
Moreover,<br />
mostapproachesdictatetheintroduction<strong>of</strong>specificmodellinglanguages,<br />
requiringachangetocurrentways<strong>of</strong>working.<br />
TheybothmentionMurphyetal.[1995]thatintroducess<strong>of</strong>twarereflexionmodels.Inthatworkahigh-levelmodeliscombinedwithasource<br />
model<strong>and</strong>auserprovidedmappingbetweenthetwotogenerateaso-called<br />
reflexionmodel. Thismodelindicateswheresourcemodel<strong>and</strong>high-level<br />
modelagree.Althoughourmergedconformancemodelisclearlybasedon<br />
theirreflexionmodel,theyonlyindicateconformanceforrelations. Their<br />
approachismoresuitedforcaseswhenthesemanticgapbetweenarchitecture<strong>and</strong>implementationisverylarge.OurapproachextendsthegenericprocessforarchitecturereconstructionproposedbyVanDeursenetal.[2004].<br />
Theirprocessisbasedon<br />
severalindustrialcasestudies<strong>and</strong>includesseparatestepsfordatagathering,knowledgeinference,<strong>and</strong>informationinterpretation.<br />
Weextended<br />
thisprocessforconformancecheckingbyaddition<strong>of</strong>acomparisonstep.<br />
Furthermore,wemakearchitecturalviewpointsconcretebythedefinition<br />
<strong>of</strong>metamodels.<br />
Hanetal.[2003]discussthestepsrequiredforthereconstruction<strong>of</strong><br />
webapplications. Althoughtheirapproachisnotautomated,theiruses<br />
relationisclosertothedefinition<strong>of</strong>Clementsetal.[2002b]thantheonewe<br />
implemented.Nexttousesrelationshipsbasedonmethodcallingtheyalso<br />
considersuchrelationshipsbasedonanothertype<strong>of</strong>logicalinterface,HTTP<br />
requestparameters. Furthermore,theyintroducethe’knows’relation,a<br />
weakertype<strong>of</strong>uses. Thelatterwecouldeasilyintroducebygenerating<br />
’knows’relationshipsbetweenelementsthatownalink(i.e.,reference)to<br />
eachotherthatisnoteffectuated(i.e.,byamethodcall).<br />
1 Eclipseisawidely-used,open-sourceintegrateddevelopmentenvironment,seehttp:<br />
//www.eclipse.org(June2007)
126 Chapter6. ConformanceCheckingII<br />
Analternativetocheckingconformanceafterdevelopment,wouldinvolvetheuse<strong>of</strong>MDEtogeneratesourcecodeorextendtheimplementation<br />
languagewitharchitecturalconstructsaswasdoneinArchJava[Aldrich<br />
etal.,2002]. Suchapproachesdirectlyconnectarchitecturetoimplementation,improvingconsistency.However,thisrequiresatleastachangein<br />
theway<strong>of</strong>working<strong>of</strong>theimplementationphase,forinstancetheuse<strong>of</strong>a<br />
newlanguage.Thisposesabarrierforimplementingsuchanapproachin<br />
practicalsettings.<br />
6.8 Conclusions<br />
Inthischapterweproposeaconformancecheckingsystem(CCS)tosystematicallydeterminediscrepanciesbetweenanintendedarchitecture<strong>and</strong><br />
therealisedarchitecture. Illuminatingthesedifferencesisapreparatory<br />
stepforarchitecturemigrationinwhichpreviouslydevelopedartefactsare<br />
reusedforreasons<strong>of</strong>efficiency. Ourtheconformancecheckingsystem<br />
(CCS)isnon-intrusive. Itcoordinatestheinteractionbetweenthearchitecture<strong>and</strong>theimplementationdomain<strong>of</strong>expertise,whileregardingthem<br />
autonomously. Itusesreadilyavailable,possiblytailored,technologyfor<br />
theactualimplementation<strong>of</strong>CCS.Assuch,themaincontributions<strong>of</strong>this<br />
chapterare:<br />
•agenericprocessforconformancechecking<strong>of</strong>architecturalviews;<br />
•extensible metamodels for C&C <strong>and</strong> module viewpoints, including<br />
mappingsfromimplementation<strong>and</strong>architecturalartefacts;<strong>and</strong><br />
•ademonstration<strong>of</strong>howtocombinedifferenttypes<strong>of</strong>technologies<br />
(inside<strong>and</strong>outsidethemodelwaretechnologicalspace)intoanintegratedapproach,<br />
whilereusingseveralexistingmetamodels<strong>and</strong><br />
transformations<br />
Althoughourapproachislargelyautomated,checkingtheconformance<br />
forparticulartype<strong>of</strong>viewsmightrequireaspecificapproach. Still,the<br />
CCSprovidesagenericprocessbasedonacommondesign-spaceviewpoint.<br />
TheCCSreliesonacleardefinition<strong>of</strong>associatedmetamodel<strong>and</strong>themappingsfromthearchitectural<strong>and</strong>implementationartefactstothiscommon<br />
metamodel.<br />
Thedesign-spacemetamodel(e.g., Figure6.6onpage113)captures<br />
checkableconcepts,whicharetheconsensusbetweenverifyingabstract<br />
properties<strong>of</strong>thearchitecture<strong>and</strong>emergingproperties<strong>of</strong>theimplementation.Possiblediscrepanciesbetweenthetwoarerevealedasmismatches<br />
betweenthederivedconformancemodels<strong>and</strong>theimpact<strong>of</strong>amismatch.
6.8. Conclusions 127<br />
Wegaveexamples<strong>of</strong>conformancemetamodelsforthetwoprincipalcategories<strong>of</strong>views<strong>and</strong>themappingsfromarchitecture<strong>and</strong>implementation<br />
artefacts.Inourcasestudyweused<strong>and</strong>configuredMDEtechnology.<br />
Althoughtheresultsarepromisingweencounteredintriguingresearch<br />
questions,suchastowhatextentwecanfurthergeneralisetheapproach<br />
(i.e.,theinvolvedmetamodels<strong>and</strong>transformations). Here,higher-order<br />
transformations<strong>and</strong>theuse<strong>of</strong>reflectionaretwopossibilitieswewillinvestigateinthefuture.Togetabetterunderst<strong>and</strong>ing<strong>of</strong>thescalability<strong>of</strong>theapproachweintendtoapplytheproposedapproachonanindustrialcase.Aninteresting<br />
possibilityistheapplication<strong>of</strong>thisapproachforcheckingtheconformance<br />
<strong>of</strong>thebehaviouralspecificationsdiscussedinChapter5<strong>of</strong>thisthesis.For<br />
thiswehavetoinvestigatewhetherourapproachcanbeappliedtoautomatethemanualcomparisonstep,inwhichthestatemachinewegenerate<br />
fromaset<strong>of</strong>scenariosarecomparedtothestatemachineusedforcode<br />
generation.
Chapter7<br />
<strong>Model</strong>-driven Migration <strong>of</strong> Supervisory<br />
Machine Control <strong>Architectures</strong> 1<br />
Supervisorymachinecontrolisthehigh-levelcontrolinadvancedmanufacturingmachinesthatisresponsibleforthecoordination<strong>of</strong>manufacturingactivities.Traditionally,thedesign<strong>of</strong>suchcontrolsystemsisbasedon<br />
finitestatemachines. Analternative,moreflexibleapproachisbasedon<br />
task-resourcemodels. Thischapterdescribesanapproachforthemigration<strong>of</strong>supervisorymachinecontrolarchitecturestowardsthisalternativeapproach.Weproposeagenericmigrationapproachbasedonmodeltransformationsthatincludesnormalisation<strong>of</strong>legacyarchitecturesbeforetheir<br />
actualtransformation.Tothisend,weidentifyanumber<strong>of</strong>keyconcernsfor<br />
supervisorymachinecontrol<strong>and</strong>acorrespondingnormaliseddesignidiom.<br />
Assuch,ourmigrationapproachconstitutesaseries<strong>of</strong>modeltransformations,forwhichwedefinetransformationrules.Weillustratetheapplicability<strong>of</strong>thismodel-drivenapproachbymigrating(part<strong>of</strong>)thesupervisorycontrolarchitecture<strong>of</strong>anadvancedmanufacturingmachine:awaferscanner<br />
developedbyASML.Thismigration,towardsaproduct-linearchitecture,<br />
includesachangeinarchitecturalparadigmfromfinitestatemachinesto<br />
task-resourcesystems.<br />
7.1 Introduction<br />
Ass<strong>of</strong>twareintensivesystemsevolvetheytendtobecomeincreasinglycomplex[Lehman<strong>and</strong>Belady,1985].Furthermore,thearchitecturedocumentation<strong>and</strong>itscorrespondingimplementationtendt<strong>of</strong>ollowasynchronous<br />
1 Thischapterwaspublishedearlieras:Graaf,Bas,SvenWeber,<strong>and</strong>ArievanDeursen.<br />
<strong>Model</strong>-drivenmigration<strong>of</strong>supervisorymachinecontrolarchitectures.Journal<strong>of</strong>Systems<br />
<strong>and</strong>S<strong>of</strong>tware,2007.Doi:10.1016/j.jss.2007.06.007<br />
129
130 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
evolutionarypaths. Consequently, theconformancebetweenthearchitecturespecification<strong>and</strong>s<strong>of</strong>twareimplementationdecreasesasas<strong>of</strong>tware<br />
systemevolves[Briletal.,2005].<br />
Inpractice,increasedcomplexity<strong>and</strong>loss<strong>of</strong>conformancebetweenthe<br />
architectureasintended<strong>and</strong>thearchitectureasimplementedmakeasystemmoredifficulttochange[Perry<strong>and</strong>Wolf,1992].<br />
Thisresultsinan<br />
increase<strong>of</strong>bothdevelopment<strong>and</strong>maintenanceeffort. Theinvolvedeffortcan,forinstance,bereducedbytheseparation<strong>of</strong>concerns,theuse<strong>of</strong><br />
product-linearchitectures,model-drivendevelopment<strong>and</strong>automaticcode<br />
generation.<br />
In this chapter we consider the migration <strong>of</strong> supervisory machine<br />
control(SMC)architecturestowardsaproduct-lineapproachthat,amongst<br />
others,supportsmodel-drivendevelopment<strong>and</strong>codegeneration. Inpractice,<br />
adopting such techniques requires architectural changes. When<br />
migratingtowardsaproductline,suchamigrationneedstobeappliedrepeatedlytomigratedifferentproductversionsintoproduct-linemembers.<br />
Therefore,ideally,onewouldliketomakesuchamigrationreproducibleby<br />
automaticallytransformingonearchitectureintoanother.Inthischapter<br />
weinvestigatehowthiscanbedoneusingmodeltransformations. Developingamodel-drivenmigrationapproachisparticularlybeneficialina<br />
settingwhereproductmigrationisnotaone-<strong>of</strong>fexercise.<br />
Inanadvancedmanufacturingmachine,supervisorycontrol [Ramadge<br />
<strong>and</strong>Wonham,1987;Gohari<strong>and</strong>Wonham,2003]isresponsibleforthecoordination<strong>of</strong>the(discrete)high-levelmachinebehaviour.<br />
Thisrequires,<br />
amongstothers, interpretation<strong>of</strong>manufacturingrequests, synchronisation,<br />
scheduling, conditionalexecution, <strong>and</strong>exploitation<strong>of</strong>concurrency<br />
withrespecttotheresultingmanufacturingactivities [Sabuncuoglu<strong>and</strong><br />
Bayiz,2000;Buttazzo,2002;Reveliotis,2005]. Foradvancedmanufacturingmachines,thecontrolsystemshaveanindicativeorder<strong>of</strong>magnitude<strong>of</strong><br />
10SMCcomponents,eachencompassing10 4 -10 5 lines<strong>of</strong>code.<br />
Thischapterwasmotivatedbytheprototypemigration<strong>of</strong>theSMCarchitecture<strong>of</strong>awaferscannerasdevelopedbyASML,amanufacturer<strong>of</strong>equipmentforthesemiconductorindustry.Weusethiswaferscannerasarunningexampletoillustratethemigration<strong>of</strong>alegacyarchitecture,basedonfinitestatemachines(FSMs),toanewarchitecturethatisbasedontaskresourcesystems(TRSs).ThismigrationisspurredbythefactthataTRSbased<br />
SMCarchitecture,asopposedtoan FSM-basedone,isdeclarative,<br />
separatesconcerns,<strong>and</strong>supportsrun-timedependentdecisions [V<strong>and</strong>en<br />
Nieuwelaar,2004]. Asaresult,themaintainability<strong>and</strong>flexibility<strong>of</strong>the<br />
migrateds<strong>of</strong>twaresystemsisimproved.<br />
Weconsiderthestart<strong>and</strong>endpoint<strong>of</strong>themigrationasdifferentarchitecturalviews[IEEE-1471,2000].<br />
Werefertotheseviewsasthesource<br />
<strong>and</strong>targetviewrespectively. Animportantelement<strong>of</strong>anarchitectural
7.1. Introduction 131<br />
viewisitsprimarypresentation[Clementsetal.,2002a],whichtypically<br />
containsoneormorediagram(s). Inthischapterwefocusonthemodels<br />
<strong>and</strong>theirgoverningmetamodelsunderlyingthosediagrams. Inourmigrationapproachweusethesemodelstoconsolidate<strong>and</strong>reuseasmuch<br />
existingdesignknowledgeaspossible. Assuch,weconsidermigrationto<br />
constituteaseries<strong>of</strong>modeltransformations,whichweimplementedusing<br />
<strong>Model</strong><strong>Driven</strong>Architecture 1 (MDA).Itshouldbenotedthatweonlyconsider<br />
theactualmigrationapproach;theparadigmsforthemigrationstartpoint<br />
<strong>and</strong>endpointareprescribedbyourindustrialcase.<br />
Inordertodefineareproduciblemapping<strong>and</strong>performthemigration,<br />
wedefinepracticaltransformationrulesinterms<strong>of</strong>patternsassociated<br />
withthesource<strong>and</strong>targetmetamodels. Thesetransformationrulesare<br />
practicalinthesensethattheyarebasedonanactualmigrationasperformedmanuallybyanexpert.Basedonthismigration,wehaveformulatedgeneric,concern-basedtransformationrules.Theserulesaredefined<br />
usingamodeltransformationlanguagemakingourapproachautomated.<br />
Duetopracticalreasons,whicharemainlyassociatedwiththeinformaluse<br />
<strong>of</strong>modellinglanguagesinindustry(seeChapter3<strong>and</strong>Langeetal.[2006]),<br />
wefirstnormalisethelegacymodelsbeforeapplyingourmodeltransformations.<br />
Althoughwefocusonthemigration<strong>of</strong>theSMCarchitecture<strong>of</strong>aparticularmanufacturingsystem,theASMLwaferscanner,thecontributions<strong>of</strong><br />
thischapterareapplicabletosimilar(paradigm)migrations<strong>of</strong>supervisory<br />
controlcomponentsingeneral.Thepresentedindustrialresultsserveasa<br />
pro<strong>of</strong>aconcept,additionalmigrationshavetobeperformedbeforetheresultscanbeproperlyquantified.Theexperiencesasoutlinedinthischapterare,toalesserextent,relevantforalls<strong>of</strong>twarearchitecturemigrations<br />
thatcanbeseenasmodeltransformationproblems.<br />
Theremainder<strong>of</strong>thischapterisstructuredasfollows.Section7.2discussesrelatedwork.<br />
InSection7.3weintroduce SMC,concernsspecific<br />
toSMCsystems,<strong>and</strong>ourrunningexample.Agenericmigrationapproach,<br />
whichweuseforthemigrationbetweentheintroducedarchitecturalparadigms,ispresentedinSection7.4.<br />
Thesourceparadigm<strong>of</strong>themigration<br />
<strong>and</strong>thenormalisation<strong>of</strong>itsassociatedviewsarediscussedinSections7.5<br />
<strong>and</strong>7.6.Thetargetparadigm<strong>and</strong>ourtransformationrulesaretreatedin<br />
Sections7.7<strong>and</strong>7.8.Weillustrateeachstep<strong>of</strong>themigrationbymeans<strong>of</strong>a<br />
runningexample.Section7.9reflectsonthemigrationresults.Finally,we<br />
concludeinSection7.10withasummary<strong>of</strong>contributions<strong>and</strong>anoverview<br />
<strong>of</strong>futurework.<br />
1 http://www.omg.org/mda(June2007)
132 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
7.2 RelatedWork<br />
Theprocessthatweproposeconsidersmigrationasamappingfroma<br />
sourcetoatargetview.ThisapproachisinspiredbytheapproachforarchitecturereconstructionasdescribedbyVanDeursenetal.[2004].<br />
There,<br />
architecturereconstructionisconsideredtobeamappingfromasource<br />
viewthatisextractedfromcodetoanarchitecturaltargetview.<br />
Ourprocesscanalsobeseenastheapplication<strong>of</strong>theMDAtos<strong>of</strong>tware<br />
migrationratherthantos<strong>of</strong>twaredevelopment. IntheMDA,s<strong>of</strong>twaredevelopmentisconceivedasaseries<strong>of</strong>transformationsfromsourcemodelstotargetmodels.Assuch,inbothprocesses,modeltransformationsareappliedbutinourcaseanessentialnormalisationstepisaddedtotheoriginal<br />
MDAframework.<br />
Fahmy<strong>and</strong>Holt[2000a,b]discussseveraltypes<strong>of</strong>genericarchitecture<br />
transformationsthatcanbeviewedasgraphtransformations. Inthis<br />
chapterweconsiderdomain-specifictransformationsonarchitecturalmodelsthataremorecomplexthantypedgraphs;<br />
nexttotypednodes,our<br />
modelsalsoincludeattributesonnodes<strong>and</strong>edges.Moreover,theirtransformations<br />
are intended for small, evolutionary changes to a s<strong>of</strong>tware<br />
architecture,whereasthetransformationsasdiscussedinthischapterare<br />
drivenbythemigrationtoadifferentarchitecturalparadigm.<br />
Bosch<strong>and</strong>Molin[1999]usearchitecturetransformationsduringarchitecturedesigntorealisethenon-functionalqualityrequirements<strong>of</strong>asystem.Ofthetransformationtypestheyidentify,theapplication<strong>of</strong>anarchitecturalstyleisclosesttoourwork.Tosomeextent,changingthearchitecturalparadigmfromFSMstoTRSs,asconsideredinthischapter,couldbe<br />
understoodassuchatransformation. Inourcase,however,thistransformationalsoresultsinaproduct-linearchitecture.<br />
Inotherwork,transformationsareappliedtothemigration<strong>of</strong>s<strong>of</strong>tware<br />
atthelevel<strong>of</strong>sourcecode.Baxteretal.[2004]presentatoolkitthatuses<br />
generalisedcompilertechnologyforthispurpose. Grayetal.[2004]use<br />
thistoolkitformodel-drivenprogramtransformationswherevertical<strong>and</strong><br />
horizontaltransformationsareidentified. Here,verticaltransformations<br />
concernthecreation<strong>of</strong>s<strong>of</strong>twareartefactsfromartefactsatdifferentabstractionlevels(translation).<br />
Application<strong>of</strong>the MDAtypicallyinvolves<br />
verticaltransformations,whereastheyinvestigateitsapplicabilitytohorizontaltransformations.Thearchitecturemigrationwediscusscanalsobe<br />
consideredahorizontaltransformation.However,wheretheyfocusonthe<br />
sourcecode,weconsidermigrationatthedesignlevel.
7.3. MigrationContext 133<br />
requests<br />
7.3 MigrationContext<br />
user<br />
supervisory controllers<br />
results<br />
activities triggers<br />
mechatronic subsystems<br />
regulative controllers<br />
transducers<br />
Figure 7.1:Machinecontrolcontext<br />
InthissectionwefirstdefinetheSMCcontext.Next,weintroducethemotivatingcase<strong>and</strong>runningexampleforthischapter:atypicalwaferscanner<br />
asproduced,forinstance,byASML.Inthissettingwebrieflydiscussthe<br />
keyconcernsforSMCsystemsingeneral. Theseconcernsneedtobeaddressedduringarchitecturemigration.Assuch,theyformthebasisforthe<br />
design<strong>of</strong>ournormalisation<strong>and</strong>transformationrules.<br />
7.3.1 SupervisoryMachineControl<br />
ThemachinecontrolcontextisclarifiedinFigure7.1.Fromasupervisory<br />
perspective,(sub)frames,transducers<strong>and</strong>associatedregulativecontrollers<br />
form mechatronic subsystemsthatexecute manufacturing activitiestoaddvalue<br />
toproducts.Therecipe-<strong>and</strong>customer-dependentrouting<strong>of</strong>multi-product<br />
flows,withvaryingoptimisationcriteria,constitutesone<strong>of</strong>thekey(supervisory)controlissues.Moreover,advancedmanufacturingmachinesmust<br />
respondcorrectly<strong>and</strong>reproduciblyto manufacturing requests,run-time events<br />
<strong>and</strong> results. Consequently,tointerpretmanufacturingrequests<strong>and</strong>toensurefeasiblemachinebehaviour,asupervisory<br />
machine controlcomponentis<br />
requiredtocoordinatetheexecution<strong>of</strong>manufacturingactivities[Ramadge<br />
<strong>and</strong>Wonham,1987;Sabuncuoglu<strong>and</strong>Bayiz,2000;V<strong>and</strong>enNieuwelaar,<br />
2004].<br />
Inpractice,ahigh-levelmanufacturingrequestistranslatedintovalid<br />
low-level machine behaviour using multiple, consecutive control-layers.<br />
This is supported by recursive application <strong>of</strong> the control context from<br />
Figure7.1: manufacturingactivities<strong>of</strong>onelevelbecomemanufacturing<br />
requestsforthenextleveluntilthelevel<strong>of</strong>themechatronicsubsystems.
134 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
x<br />
@Measure<br />
Figure 7.2:Simplifiedlayout<strong>of</strong>awaferscanner<br />
7.3.2 RunningExample:AWaferScanner<br />
@Expose<br />
InthischapterweconsidertheASMLwaferscannerasarepresentative<br />
example<strong>of</strong>anadvancedmanufacturingmachine.Waferscannersareused<br />
inthesemiconductorindustry<strong>and</strong>performthemostcriticalstepinthe<br />
manufacturingprocess<strong>of</strong>integratedcircuits(ICs).Figure7.2illustratesa<br />
scanner<strong>and</strong>itssubsystems.<br />
Aneighbouringmachine,thetrack(TR),performspre-processingsteps<br />
<strong>and</strong>deliverssiliconwaferstothepre-alignmentsystem(PA),wherethe<br />
waferorientation<strong>and</strong>alignmentaredetermined<strong>and</strong>adjusted. Next,the<br />
loadrobot(LR)transportsthewafertoone<strong>of</strong>thetwowaferstages(WS:0<br />
or WS:1). Here,thewafercharacteristicsaremeasured. Aftermeasurement,thewaferstagesareswapped<strong>and</strong>themeasuredwaferisexposed.<br />
Duringexposure,alaserprojectsanimage<strong>of</strong>therequiredICpatternonto<br />
thewafer’ssurfacethroughademagnificationlens.Awaferisexposedina<br />
scanningfashion,similartotheprocessusedinaphoto-copier.Eventually,<br />
thewafercomestoholdhundreds<strong>of</strong>smallcopies(i.e.,dies)<strong>of</strong>thispattern.<br />
Afterexposure,thestagesswapback<strong>and</strong>theunloadrobot(UR)transportstheexposedwafertothedischargeunit(DU)whereitisbuffered.Next,thewaferispickedupbythetrackagaintoundergovariouspostprocessingsteps.<br />
Now,thewaferisreadyforanotherexposureifneeded;<br />
theprocessisre-entrant.Witheachpassing,anotherlayerisaddedtoeach<br />
die.Oncethewaferhasbeenfullyprocessed<strong>and</strong>inspected,itisdicedinto<br />
individualdiesthatarepackagedt<strong>of</strong>ormICssuchasmicroprocessors.<br />
FortheSMCcomponent<strong>of</strong>thewaferscannerdepictedinFigure7.2,we<br />
canidentifythe‘processwaferw’manufacturingrequest,whichsupports<br />
concurrentmeasuring<strong>and</strong>exposing<strong>of</strong>twowafers.Toperformthisrequest<br />
manufacturingactivitiessuchas‘loadwaferwontowaferstageWS:0’<strong>and</strong><br />
‘unloadwaferwfromwaferstageWS:1’areexecuted.Forinstance,aftera
7.3. MigrationContext 135<br />
waferhasbeenexposed,<strong>and</strong>thestageshaveswapped,thewafermustbe<br />
unloadedfromitsstage.Inturn,theseactivitiesarerequestsforalowerlevelSMCcomponent.<br />
Inthischapterwewillusethe‘processwafer’<strong>and</strong><br />
‘unloadwafer’requestsasillustrativeexamples.<br />
7.3.3 ConcernsforSupervisoryMachineControlSystems<br />
Inadvancedmanufacturingmachines,multiplemanufacturingactivities<strong>and</strong>sequenceshere<strong>of</strong>-mayfulfilaparticularrequest<strong>and</strong>,inturn,multiplemechatronicsubsystemsmaybeavailabletoperformaparticularactivity.Thatis,multiplealternativesexistthatrequiretheselection<strong>of</strong>aspecificsubset<strong>of</strong>bothmanufacturingactivities<strong>and</strong>mechatronicsubsystems<br />
t<strong>of</strong>ulfilagivenmanufacturingrequest. Forinstance,whenconsidering<br />
Figure7.2,removingawaferfromDUcanbedoneusingeitherURorLR.<br />
Forsupervisorycontrol<strong>of</strong>advancedmanufacturingmachinesingeneral,<br />
thefollowingkeyconcernsareidentified.<br />
Theexecution<strong>of</strong>anactivityonaselectedsubsystemimpliesaspecific<br />
physicalstatetransition<strong>of</strong>thatsubsystem. Theselectedsequence<strong>of</strong>activitiesforasubsystemrequiresmatchingendstates<strong>and</strong>beginstates<strong>of</strong><br />
consecutivestatetransitions. Whenthesestatesdonotmatch,anadditionaltransition,asetup,hastobeexecutedbetweenconsecutiveactivities.<br />
Forinstance,whenURisidleatPA,arotationhastobeperformed<br />
beforeawafercanbeunloaded. InSMC,thesesequence-dependentsetups<br />
arecommon.<br />
Intuitively,controlledusage<strong>of</strong>mechatronicsubsystemsisanotherimportantconcern.Thecontrolsystemgenerallycheckstheavailability<strong>of</strong>a<br />
subsystemthatisrequiredforamanufacturingactivity. Onceavailable,<br />
thesubsystemshouldbeeffectivelyclaimedforthegivenactivity. When<br />
anactivityhasbeen(co)performedbyclaimedmechatronicsubsystem(s),<br />
allshouldbeunclaimedorreleased. Inourwaferscannerexample,the<br />
unloading<strong>of</strong>awaferrequiresbothUR<strong>and</strong>,forinstance,WS:0.<br />
Inordertotakefulladvantage<strong>of</strong>installedcapacity,concurrentexecution<strong>of</strong>activitiesisdonewherepossible.Inpractice,activitiescanbeexecutedconcurrentlyunlessthisisexplicitlyprohibitedbyprecedence(sequence)relationsbetweenmanufacturingactivitiesorusage<strong>of</strong>therequired<br />
mechatronicsubsystems.Inourwaferscannerexample,onewafercanbe<br />
measured<strong>and</strong>preparedforexposurewhileanotherwaferisbeingexposed.<br />
Synchronousexecutionisanothercommonconcern.Thisnotonlyrefers<br />
tosynchronisation<strong>of</strong>activitiessuchthattheyareexecutedoneafterthe<br />
other(e.g.,loadawaferbeforeprocessingit). Italsoappliestosynchronisation<strong>of</strong>specificsubsystemstatetransitionsrelatedtotwoactivities.Forinstance,physicalspaceis<strong>of</strong>tenlimited,resultinginmultiplemechatronicsubsystemsthatsimultaneouslyoperatewithinaconfinedspace.
136 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Thisresultsinso-calledhazardousareasinwhichsubsystemscancollide<br />
<strong>and</strong>statetransitionsmustbeinducedsynchronouslytoensuresafety(e.g.,<br />
swappingWS:0<strong>and</strong>WS:1).<br />
Finally,conditionalexecution<strong>of</strong>manufacturingactivitiesneedstobe<br />
supported. Thatis,dependingoncertainconditionsinamachine,differentexecutionpathsforamanufacturingrequestmightbeactivated,each<br />
consisting<strong>of</strong>consecutivemanufacturingactivities. Anexample<strong>of</strong>sucha<br />
conditioninourwaferscannerexampleisthepresence<strong>of</strong>anotherwaferon<br />
thewaferstageatthemeasure-side.<br />
Duringmigration,sequence-dependentsetups,subsystemusage,concurrentexecution,<br />
synchronousexecution<strong>and</strong>conditionalexecutionare<br />
concernsthatneedtobeaddressed.Tothisend,wedefinedconcern-based<br />
transformationrulesthatmaptheseconcernsfromthelegacytothenew<br />
architecture.<br />
7.4 <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Ideally,themigration<strong>of</strong>s<strong>of</strong>twarearchitecturesiscomplete,reproducible,<br />
reliable<strong>and</strong>automated. Weconsiderthestart<strong>and</strong>endpoint<strong>of</strong>themigrationasdifferentarchitecturalviews,referredtoasthesource<strong>and</strong>targetviewrespectively.ThisissimilartotheapproachforarchitecturereconstructionasdescribedbyVanDeursenetal.[2004].<br />
Anarchitecture<br />
viewisassociatedwithaviewpoint[IEEE-1471,2000],that,amongstothers,specifiesametamodelformodelsunderlyingtheprimarypresentation[Clementsetal.,2002a]<strong>of</strong>thatview.Inthischapterwefocusonthose<br />
models.<br />
Forthemigration<strong>of</strong>sourcemodelsintotargetmodelsweproposethe<br />
migrationapproachasshowninFigure7.3.Itusesatwo-stepprocessthat<br />
includesanormalisation<strong>and</strong>transformationstep.<br />
<strong>Model</strong>s<strong>and</strong>theirspecificationsare<strong>of</strong>tenincomplete<strong>and</strong>haveatendencytobecomeinconsistent<strong>and</strong>ambiguousovertime.Thismakesdirectlytranslatingasourcemodelintoatargetmodelinherentlydifficult.<br />
Thisisamplifiedfurtherbytoollimitations<strong>and</strong>thegenerallyinformal<br />
use<strong>of</strong>modellingparadigms<strong>and</strong>languagesinindustry(seeChapter3<strong>and</strong><br />
Langeetal.[2006]). Combinedwithincompleteorgenericmetamodels<br />
(e.g.,theUnified<strong>Model</strong>ingLanguage 1 (UML)metamodel),ornoexplicit<br />
metamodelsatall,amultitude<strong>of</strong>modelsbecomesconceivablethatallhave<br />
thesameintendedmeaning.<br />
Infact,ananalysis<strong>of</strong>howSMCconcernsareaddressedinthesource<br />
modelsforourmigration,revealedalargevariationintheusedidiom.This<br />
1 http://www.uml.org(June2007)
7.4. <strong>Model</strong>-<strong>Driven</strong>Migration 137<br />
Source<br />
view<br />
Source<br />
viewpoint<br />
specifies<br />
normalise<br />
specifies<br />
Normalised<br />
source view<br />
Canonical<br />
source viewpoint<br />
source<br />
specifies<br />
transform<br />
Transformation<br />
rules<br />
Figure 7.3:Generictwo-phasedmigrationapproach<br />
Target<br />
view<br />
Target<br />
viewpoint<br />
specifies<br />
target<br />
makesitinfeasibletospecifygenericcorrespondingtransformationrules.<br />
Assuch,weintroduceanintermediatenormalisationstepthatusesaset<strong>of</strong><br />
normalisationrulestoobtainanormalisedsourcemodel. Thenormalisationrulesaredefinedasmappingsfromthesourcemetamodeltothenormalisedsourcemetamodel.Thisnormalisedmetamodeldescribesasubset<br />
<strong>of</strong>themodelsdescribedbythesourcemetamodel. Next,aset<strong>of</strong>transformationrulescanbeappliedtotransformanormalisedsourcemodelinto<br />
thetargetmodel.Thesetransformationrulesaredefinedasmappingsfrom<br />
thenormalisedsourcemetamodeltothetargetmetamodel.<br />
Inall,weseemigrationasaseries<strong>of</strong>automatedmodeltransformationsthataredefinedonmetamodelstotransformasourcemodelintoa<br />
targetmodelusingadistinctnormalisationstep.Thisapproachisgeneric<br />
inthesensethatitcanbeappliedtoanyconformingsource<strong>and</strong>target<br />
modelwithoutloss<strong>of</strong>generality. Toactuallyimplementthisapproachwe<br />
require(normalised)source<strong>and</strong>targetmetamodels,normalisationrules,<br />
<strong>and</strong>transformationrules.<br />
Althoughtheapproachisgeneric, ourindustrialcaseimposessome<br />
practicalrestrictionsontheenablingtechnologies.Spurredbythefactthat<br />
theexistingarchitecturedocumentationcontainedsourcemodels(partly)<br />
in UMLstatecharts, wedecidedtoimplementthedifferentsteps<strong>of</strong>our<br />
migrationapproachusingMDAtechnologies. IntheMDAvision,s<strong>of</strong>tware<br />
developmentisconsideredtobeaseries<strong>of</strong>modeltransformations. Similarly,weconsiders<strong>of</strong>twaremigrationasaseries<strong>of</strong>modeltransformations.<br />
StartingfromUML,technologiescompatiblewithMDA<strong>of</strong>ferconvenient<strong>and</strong><br />
<strong>of</strong>f-the-shelfmeanstodefine<strong>and</strong>manipulatemodels. Furthermore,the<br />
MetaObjectFacility 1 (MOF)canbeusedforthedefinition<strong>of</strong>metamodels.<br />
1 http://www.omg.org/m<strong>of</strong>(June2007)
138 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Finally, variousmodeltransformationlanguagesareavailabletodefine<br />
transformations.<br />
We defined all transformations in the Atlas Transformation Language[Jouault<strong>and</strong>Kurtev,2005](ATL).Anadvantage<strong>of</strong>ATLisitssyntax,<br />
whichissimilartothat<strong>of</strong>theObjectConstraintLanguage 1 (OCL). This<br />
allowspeoplethathavebeenworkingwiththeUMLmetamodeltounderst<strong>and</strong><strong>and</strong>createtransformationruleswithrelativeease.<br />
TheactualATL<br />
transformationenginereliesontwoimplementations<strong>of</strong>MOF:theEclipse<br />
<strong>Model</strong>ingFramework 2 (EMF)<strong>and</strong>theMetadataRepository 3 (MDR).TheATL<br />
transformationenginecanbeusedincombinationwithMOF-basedmodels<br />
<strong>and</strong>metamodelsserialisedwithXMLMetadataInterchange 4 (XMI).Asour<br />
sourcemetamodelweusedthe MOF-UMLmetamodelavailablefromthe<br />
ObjectManagementGroup 5 (OMG)[OMG,2007a].Tocreatesourcemodels,<br />
wecansimplyuseaUMLmodellingtoolthatsupportsXMIexport.Forthe<br />
targetmetamodelwealsousedEMFasitallowsforautomaticgeneration<br />
<strong>of</strong>aprimitive,tree-basededitorforanyarbitrarymetamodel. Thiseditor<br />
canthenbeusedtoinspecttheresults<strong>of</strong>ourtransformations.<br />
7.5 SourceMetamodel<br />
Inthischapter,weconsiderFSMsasthegivenstartingpointforthemigration.<br />
Theuse<strong>of</strong>FSMsasaparadigmforsupervisorycontrolhasbeen<br />
proposedby,forinstance,Ramadge<strong>and</strong>Wonham[1987]. Here,theset<strong>of</strong><br />
possiblemachinebehavioursisconsideredt<strong>of</strong>ormalanguage. Adiscrete<br />
supervisory FSMissynthesisedthatrestrictsthislanguagebydisabling<br />
asubset<strong>of</strong>eventstoenforcevalidmachinebehaviour. Thisrequiresthe<br />
behaviourinallpossiblestatesforallrequeststobespecifiedexplicitly<br />
using(un)conditionalstatetransitionswithassociatedtriggers(events),<br />
<strong>and</strong>effectsorstateactions(manufacturingactivities). Whenusingthis<br />
paradigm,concurrentexecutionistheresult<strong>of</strong>independentparts<strong>of</strong>concurrentlyexecutingstatemachinesthatcanoptionallyshareeventstosynchronise.<br />
Consequently,multipleFSMsareusedpercontroller(typically<br />
oneforeachtype<strong>of</strong>request).<br />
OursourcemodelsarespecifiedusingUMLstatechartdiagrams. The<br />
relevantpart<strong>of</strong>themetamodelisshowninFigure7.4. Apartfromthis<br />
metamodel,the UMLspecificationalsoprovidesalargenumber<strong>of</strong>wellformednessrules,specifiedinOCL,<strong>of</strong>whichafewarementionedbelow.<br />
1http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL(June2007) 2http://www.eclipse.org/emf(June2007) 3http://mdr.netbeans.org(June2007) 4http://www.omg.org/mda/specs.htm#XMI(June2007) 5http://www.omg.org(June2007)
7.5. SourceMetamodel 139<br />
0..1<br />
0..1<br />
Event<br />
+ trigger<br />
StateMachine<br />
StateVertex<br />
+ transitions<br />
0..1<br />
+ incoming<br />
*<br />
+ target *<br />
+ outgoing<br />
Transition<br />
*<br />
*<br />
+ subvertex<br />
+ source<br />
+ top<br />
State<br />
*<br />
0..1<br />
0..1<br />
+ entry<br />
0..1<br />
+ exit<br />
0..1 + effect<br />
Action<br />
+ script :ActionExpression<br />
Pseudostate<br />
+ kind :PseudostateKind<br />
0..1<br />
CompositeState<br />
Guard<br />
+ expression :BooleanExpression<br />
+ isConcurrent :Boolean<br />
+ guard<br />
0..1<br />
SimpleState FinalState<br />
+ container<br />
Created with Poseidon for UML Community Edition. Not for Commercial Use.<br />
Figure 7.4:Sourcemetamodel(excerptfromOMG[2007a])<br />
Usingthismetamodel,UMLstatemachinescanbeconstructedthatmodel<br />
behaviourasatraversal<strong>of</strong>agraph<strong>of</strong>statenodesinterconnectedbytransitionarcs.<br />
InFigure7.4astatenode,or StateVertex,isthe targetor source<strong>of</strong>any<br />
number<strong>of</strong> Transitions<strong>and</strong>canbe<strong>of</strong>differenttypes. A Staterepresentsa<br />
situationinwhichsomeinvariantoverstatevariablesholds. Inaddition,<br />
anoptional entryor exit Actionisexecutedwhenthestateisenteredorexited.<br />
Themetamodeldefinesdifferenttypes<strong>of</strong>States.A CompositeStatecontains<br />
(owns)anumber<strong>of</strong>substates(subvertex).IfaCompositeStateisconcurrent<br />
(isConcurrent)itcontainsatleasttwocompositesubstatesthatexecutein<br />
parallel. A SimpleStateisaStatewithoutanysubstates. Execution<strong>of</strong>an<br />
enclosingCompositeStateendswhenaFinalStateisentered.<br />
Nexttostatenodesthatdescribeadistinctsituation,themetamodel<br />
also<strong>of</strong>fersatype<strong>of</strong>StateVertexthatmodelsatransientnode<strong>of</strong>astate<br />
graph: a Pseudostate. Itallowsmodelling<strong>of</strong>morecomplex(conditional)<br />
transitionpaths. Threetypes<strong>of</strong>pseudo-states(PseudostateKind)arerelevantforthestatemodelsinthischapter:initial,choice,<strong>and</strong>junction.AninitialPseudostateisthedefaultnode<strong>of</strong>aCompositeState.AchoicePseu-<br />
0..1
140 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
dostateisusedtocreateadynamicconditionalbranchthatdependsonthe<br />
actiononits incomingtransitions.Alternativepathsmaybejoinedusinga<br />
junctionPseudostate.<br />
Nodesinastatemachineareconnectedbytransitionsthatmodelthe<br />
TransitionfromoneState(source)toanother(target).ATransitionisfired<br />
byan Event(trigger). ATransitionwithoutsuchanexplicittriggerisfired<br />
byanimplicitcompletionEventthatisgenerateduponcompletion<strong>of</strong>all<br />
activitiesinthecurrentlyactiveState.A GuardisaBooleanexpressionattachedtoaTransitionthatdisablesorenablesitsfiringuponoccurrence<strong>of</strong><br />
itstrigger(dependingonwhetheritevaluatestotrueort<strong>of</strong>alse).The effect<br />
<strong>of</strong>aTransitionspecifiesanActiontobeexecuteduponitsfiring.Notethat,<br />
althoughtheremightbeacausalrelationshipbetweenactions<strong>and</strong>events<br />
(e.g.,acalleventgeneratedbyacallaction),UMLdoesnotallowtomake<br />
sucharelationshipexplicitwithouttheuse<strong>of</strong>OCL.Finally,aStateMachine<br />
consists<strong>of</strong>aset<strong>of</strong>transitions<strong>and</strong>atopStatethatisaCompositeState.<br />
Asanexample<strong>of</strong>howthismetamodelisusedinpractice,considerthe<br />
statemachinesinFigure7.5 <strong>and</strong>7.6onpage142,whichcorrespondto<br />
theprocesswafer<strong>and</strong>unloadwaferrequestsasintroducedinSection7.3.2.<br />
Suchstatemachinesarethesourcemodelsforthemigration. Notethat<br />
ourexamplerequestswereadoptedfromtwodistinctsupervisorycontrol<br />
componentswithanindicativeorder<strong>of</strong>magnitude<strong>of</strong>10requests,10-10 2<br />
states,<strong>and</strong>10 2 -10 3 transitions. Althoughweuseactualmanufacturing<br />
requestsasrunningexamples,wedonotdepictordiscusstheserequests<br />
infulldetailforreasons<strong>of</strong>confidentiality.<br />
Fromthenumber<strong>of</strong>choicepseudo-states<strong>and</strong>guardedtransitionsitbecomesclearthatconditionalexecutionisthedominantconcernintheprocesswaferrequestinFigure7.5.<br />
Inotherwords,theactivatedpathis<br />
dependentonconditionalsynchronisation(e.g., wafer@measure)withother,<br />
concurrentlyexecutingrequests.<br />
Figure7.6onpage142illustratesthataftertheactualtransfer<strong>of</strong>the<br />
wafer(TRANSFER_FINISHED)thealternativecompletionsequences<strong>of</strong>subsequent<br />
activities,whichareassociatedwiththe UR_moved<strong>and</strong> WS_movedevents,<br />
arespecifiedexhaustively. Furthermore,observetheuse<strong>of</strong>twodistinct<br />
resourceusagepatternsforWS<strong>and</strong>URinourunloadwaferrequest: for<br />
WSonlyanavailableEvent(WS available)<strong>and</strong>releaseAction(release WS)<br />
arespecified,forURalsoaclaimAction(claim UR)hasbeenspecified.<br />
Notethatforreasons<strong>of</strong>simplicity,wechoosenottoincluderesource<br />
usage<strong>and</strong>setupsinthespecification<strong>of</strong>theprocesswaferrequest. Even<br />
fromourexamplerequestsitbecomesclearthat,inpractice,concernsare<br />
addressedusingamultitude<strong>of</strong>idioms<strong>and</strong>constructs. Thisisthemain<br />
reasonfortheintroduction<strong>of</strong>ournormalisationstep.
7.5. SourceMetamodel 141<br />
WAIT_MEASURE_CLEARED<br />
EXPOSING<br />
entry / expose<br />
WAIT_WAFER_MEASURED_PREPARED<br />
WAIT_WAFER_MEASURED<br />
WAIT_MEASURE_CLEARED SWAPPING<br />
entry / swap<br />
WAIT_WAFER_PREPARED<br />
UNLOADING<br />
entry / unload_wafer<br />
WAIT_WAFER_ARRIVED<br />
exit / get_prealignment_<strong>and</strong>_measurement_data<br />
measure_cleared<br />
[wafer@measure ]<br />
[exposed_wafer@measure ]<br />
<br />
COMBINED_LOADING_UNLOADING<br />
loaded<br />
entry / load_while_unload<br />
[next_wafer2process ]<br />
[else]/ <br />
[else]<br />
/ measure_cleared<br />
exposed<br />
[else]<br />
[else]<br />
arrived<br />
[else]<br />
[wafer@measure ]<br />
[exposed_wafer@measure ]<br />
SWAPPING<br />
entry / swap<br />
MEASURE_AND_PREPARE<br />
entry / prepare, measure<br />
MEASURING<br />
measured<br />
[next_wafer2process ]<br />
prepared measured<br />
measured<br />
measure_cleared<br />
swapped<br />
prepared<br />
[else]<br />
/ measure_cleared<br />
Figure 7.5:Processwaferrequest<br />
LOADING<br />
entry / load_Wafer<br />
loaded<br />
prepared measured<br />
PREPARING<br />
prepared
142 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
IDLE do_unload<br />
[UR not ready ]<br />
WS available<br />
READY_TO_CLAIM_UR START_TO_CLAIM_UR<br />
CLAIM_UR<br />
entry / claim UR<br />
[UR ready]<br />
[combined_load ]<br />
WAIT_WS_MOVED<br />
exit / release WS<br />
FINISH_UR_WS_MOVED<br />
entry / check RCB comm.<br />
START_TRANSFER<br />
entry / start transfer W2U<br />
TRANSFER_FINISHED<br />
WAIT_FOR_UR_OR_WS_MOVED<br />
entry / UR move to rotate, WS finish exchange<br />
WAIT_UR_MOVED<br />
exit / release UR<br />
CHECK_RCB<br />
entry / check RCB comm.<br />
UR_moved WS_moved<br />
WS_moved UR_moved<br />
[RCB ok]<br />
FINISHED<br />
exit / report done<br />
Figure 7.6:Unloadwaferrequest<br />
transfer_finished<br />
[else]
7.6. NormalisationRules 143<br />
7.6 NormalisationRules<br />
UML,asagenericmodellinglanguage,lacksconstructstosupportitsapplicationinthedomain<strong>of</strong>SMCsystems.Thismakesthat,whenusing‘plain’UML,variousdesignidiomsareavailableforh<strong>and</strong>lingSMCconcerns.Forinstance,guards(e.g.,‘subsystemisavailable’)were<strong>of</strong>tenmodelledasevents(e.g.,‘subsystembecomesavailable’)althoughthesearefundamentallydifferent.<br />
Similarly,manufacturingactivitiescanbespecifiedasactionson<br />
statetransitionsorasactionsinseparatestates.Thisidiomdiversityisfuelledfurtherbytoollimitations.Forinstance,toolsthatsupportaspecific<br />
UMLversion,donotnecessarilysupportall<strong>of</strong>itsconstructs.<br />
Todefinearchitecturetransformations,weneedsourcemodelsinanormalisedform.<br />
Thesenormalisedmodelsareassociatedwithametamodel<br />
thataddsconstraintstothelegacysourcemetamodel<strong>and</strong>augmentsitwith<br />
SMC-specificconstructs. Theseconstraints<strong>and</strong>additionalmodelelements<br />
areusedinwell-formednessrulesthatprescribehowtospecifySMC-specific<br />
concerns.Forthis,UMLallowsattachingconstraintstomodelelementsusingOCL,<strong>and</strong>forthedefinition<strong>of</strong>additionalmodelelementsbystereotypes.<br />
Together,theseenablethedefinition<strong>of</strong>asuitableUML-SMCpr<strong>of</strong>ileforthe<br />
normalisedsourcemetamodel.Examplediagramsthatconformtothispr<strong>of</strong>ileareshowninFigures7.7onpage148<strong>and</strong>7.8onpage149.<br />
Normalisedsourcemodelshavetocomplytoaset<strong>of</strong>well-formedness<br />
rules. Mostimportantly,concernshavetobespecifiedinauniformway.<br />
Wehavedefinedast<strong>and</strong>ardisedidiomfortheconcernsasidentifiedinSection7.3.3.Weintroducethisidiombyexample<strong>of</strong>Figures7.7onpage148<strong>and</strong>7.8onpage149.Normalisationinvolvesmodifyingsourcemodelstoremoveanyviolation<strong>of</strong>thesewell-formednessrules.Notethat,duetothediversity<strong>of</strong>theidiomsusedinthesourcemodels,normalisationisperformed<br />
manuallyinourcasestudy.<br />
Table7.1onthefollowingpageliststhestereotypesthatwedefineas<br />
part<strong>of</strong>theSMCpr<strong>of</strong>ile.Nexttostereotypes,thepr<strong>of</strong>ilealsodefinesanumber<strong>of</strong>constraints.Listing7.1onthenextpagelistssome<strong>of</strong>theseconstraints,specifiedinOCLasinvariantsovertheUMLmetamodel(C1-C4).Wemerelyusetheconstraintsindicatedbythedefkeywordtodefineextrapropertiesontheelementsmentionedintheircontext.Thissimplifies<br />
thespecification<strong>of</strong>otherconstraints.Application<strong>of</strong>thesestereotypes<strong>and</strong><br />
constraintsisdiscussedbelow.<br />
Intuitively,thenormalisationiscontextdependent<strong>and</strong>requires(some)<br />
domainknowledge.Moreover,thenormalisationrulesnotonlydependon<br />
thespecificsourceparadigmbutalsoonthemodellingconventionsasencounteredinthespecific(industrial)migrationcontext.Therefore,weillustratethenormalisationstepbydefiningtheusedcontext-specificnormalisationrulesforourcasestudy.
144 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Table 7.1:SMCpr<strong>of</strong>ilestereotypes<br />
Stereotype baseClass description<br />
≪wait≫ State wait for resource state<br />
≪claim≫ Action claim resource action<br />
≪release≫ Action release resources action<br />
≪available≫ Guard resource available guard<br />
≪available≫ Event resource becomes available event<br />
context Action def:<br />
-- an action is a release action if a stereotype named ’release’ is<br />
applied to it<br />
let isRelease : Boolean = self.stereotype->exists(s|s.name=’release<br />
’)<br />
context State def:<br />
-- a state is a wait state if a stereotype named ’wait’ is applied<br />
to it<br />
let isWait : Boolean = self.stereotype->exists(s|s.name=’wait’)<br />
context Event def:<br />
-- an event is an available event if a stereotype named ’available’<br />
is applied to it<br />
let isRelease : Boolean = self.stereotype->exists(s|s.name=’release<br />
’)<br />
-- C1: all release Actions are state exit actions<br />
context Action inv:<br />
isRelease implies State.allInstances->exists(s|s.exit=self))<br />
-- C2: a wait state has at least one outgoing transition triggered<br />
by an available event<br />
context State inv:<br />
isWait implies outgoing->exists(t|t.trigger.isAvailable))<br />
-- C3: state entry actions are actions that execute manufacturing<br />
activities (i.e., without stereotype)<br />
context State inv:<br />
entry.stereotype->isEmpty<br />
-- C4: all state nodes have no more than two incoming <strong>and</strong> outgoing<br />
transitions<br />
context StateVertex inv:<br />
outgoing->size() size()
7.6. NormalisationRules 145<br />
Subsystemsetups Inthesourcemodel,subsystemstateconsistencyisensuredbyspecifyingsetuptransitionsforeverypossiblesubsystemstateat<br />
design-time. Inpractice,thisisnotdoneexhaustively. Instead,domainknowledgeisusedtolimitthenumber<strong>of</strong>setuprelatedalternativetransitions.<br />
Althoughsubsystemsetupscanbeperformedautomaticallyusing<br />
theTRSparadigm<strong>and</strong>,thus,donotneedtobespecifiedexplicitly,wedo<br />
preservethemduringthenormalisationstep.Thisinfactensuresthatthe<br />
migratedcontrolsystemmimicsthebehaviour<strong>of</strong>thelegacycontrolsystem<br />
exactly. WhenreconsideringFigure7.6onpage142<strong>and</strong>7.8onpage149,<br />
the move to rotateActionisinfactaresourcesetup.<br />
Forthenormalisedsourcemodelwedonotuseaspecificidiomforsetup<br />
activities;setupsaremodelledasanyothermanufacturingactivity. Ifwe<br />
wouldbelessconcernedwithexactpreservation<strong>of</strong>behaviour,setupactivitiescouldbesimplyremovedduringnormalisation.Inthatcase,domainknowledgeisrequiredtodistinguishbetweensetupactivities<strong>and</strong>manufacturingactivities.<br />
Subsystemusage Thepatterntoaddressthe‘subsystemusage’concernis<br />
bestunderstoodfromone<strong>of</strong>theorthogonalregionsinthecompositestate<br />
inFigure7.8onpage149. Beforeamanufacturingactivity(e.g., finish exchange)thatrequiresacertainsubsystem(WS)isexecuted,achoicepseudostateisentered.Then,iftherequiredresourceisavailable([WS<br />
available]),<br />
itisclaimed(claim WS)bythetransitiontowardsthestateinwhichthe<br />
manufacturingactivityisexecuted(FINISH).Otherwise,astate(WAIT_FOR_WS)<br />
isenteredthatisonlyleftwhenaneventoccursindicatingtheresource<br />
hasbecomeavailable(WS available). Theresourceisclaimed(claim WS)on<br />
thetransitiontriggeredbythatevent.Oncethemanufacturingactivityis<br />
performed,claimedresourcesarereleasedagainbyareleaseactionthatis<br />
executedwhenexitingthestate(release).Thispatterncaneasilybegeneralised.<br />
WeusethestereotypesdefinedbytheSMCpr<strong>of</strong>ile(Table7.1)todistinguishbetweenActions,Guards,Events,<strong>and</strong>Statesrelatedtotheuse<strong>of</strong><br />
subsystems<strong>and</strong>thoserelatedtotheexecution<strong>of</strong>manufacturingactivities<br />
(towhichnostereotypesareapplied). Normalisationintroducesstereotypesforspecificmodelelementsthatarerelatedtothesubsystemusage<br />
concern. Furthermore,fromFigure7.6onpage142,<strong>and</strong>itsnormalised<br />
counterpartinFigure7.8onpage149,itcanbeseenthatadditionalmodel<br />
elementsareintroducedtocompletethepatterndescribedabove.Notethat<br />
inFigures7.7onpage148<strong>and</strong>7.8onpage149stereotypesaredisplayed<br />
onlyforstates:thisisalimitation<strong>of</strong>theUMLtoolweareusing(i.e.,’PoseidonforUML’).
146 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Application<strong>of</strong>thestereotypestosourcemodelsrequiresdomainknowledgetorecognisethesubsystemusageconcern.<br />
Thisbecomesapparent<br />
whenreconsideringFigure7.8onpage149. Here, WAIT_FOR_WSisastate<br />
inwhichthesystemwaitsforasubsystemtobecomeavailable. Thisis<br />
intuitivelydifferentfromthe WAIT_WAFER_MEASUREDstatesinFigure7.7on<br />
page148,wheretheintentionistospecifythatthesystemwaitsforamanufacturingactivitytobecompleted.The<br />
≪wait≫stereotypeisonlyapplied<br />
totheformerstate.<br />
Fornormalisation<strong>of</strong>sourcemodelswerequirethatresourceusagepatternsaremadecomplete.<br />
InFigure7.6onpage142,forinstance,onlya<br />
releaseactionisspecifiedfor WS.InListing7.1onpage144C1,C2,<strong>and</strong>C3<br />
arerelatedtothesubsystemusagepattern. C1specifiesthata≪release≫<br />
ActiononlyoccursasastateexitAction. C2statesthatatleastone<strong>of</strong>the<br />
outgoingTransitionsfora≪wait≫Stateistriggeredbyan ≪available≫<br />
Event.Finally,toconformtoconstraintC3,allActionsrelatedtomanufacturingactivitiesaremovedtoStatesasentryActions.Anexample<strong>of</strong>thisis<br />
the report done(entry)ActioninFigure7.6onpage142thatwasnormalised<br />
toanexitAction(Figure7.8onpage149).<br />
Synchronousexecution Synchronisationbetweensubsequentmanufacturing<br />
activitiesinthesourcemodelsissimplyachievedbytheirorderinthestate<br />
machine. Furthermore,synchronisationbetweensubsystemstatetransitionsisnotmodelledatthislevel.<br />
Assuch,nospecificidiomisusedto<br />
specifythisconcern. Ingeneral,however,wehavetotakethisconcern<br />
intoaccountwhilenormalisingthepatternsassociatedwithotherconcerns.<br />
Whileinserting<strong>and</strong>movingactivitieswehavetomakesurethatwedonot<br />
changetheirorderinthenormalisedsourcemodel.<br />
Concurrentexecution Intheoriginalsourcemodels,concurrencywas<strong>of</strong>ten<br />
modelledusingStates,includingActionsthatstarttwoormoremanufacturingactivities<strong>and</strong>separatetransitionpathsforallpossiblecompletion<br />
sequences,whichareenabledby(external)completionEvents. Asanexample,considerstate<br />
MEASURE_AND_PREPARE<strong>and</strong>associatedcompletionsevents<br />
prepared<strong>and</strong> measuredinFigure7.5onpage141.Becausethoseeventscan<br />
onlybeassociatedwiththeircorrespondingmanufacturingactivitiesusing<br />
namingconventions,suchanapproachcomplicatesthedetermination<strong>of</strong><br />
thescope<strong>of</strong>concurrentexecution.Therefore,werequirethatconcurrency<br />
ismodelledusingaconcurrentCompositeStatecontaining(orthogonal)regions.<br />
Thisimpliesthatduringnormalisation,manufacturingactivities<br />
aremappedtoCompositeStateswhentheyarestartedinasingleState<br />
node<strong>and</strong>alternativecompletionsequencesarespecifiedexhaustively.Figure7.8onpage149containsanexample<strong>of</strong>concurrentexecution,where
7.7. TargetMetamodel 147<br />
tworesourceusagepatternsareexecutedinparallel.<br />
Conditionalexecution Theidiomforconditionalexecutionismorecomplicated.<br />
First,werequireittobespecifiedusingachoicePseudostatewith<br />
twooutgoingTransitions. OnespecifiessomeconditionasaGuard;the<br />
otherspecifies [else]asaGuard.Furthermore,werequire‘proper’nesting<br />
<strong>of</strong>conditionalactivationpathsinastatemachine.Thismeansthatwerequirepairs<strong>of</strong>corresponding,alternativepathsthroughthestatemachinetobemergedoneatatime(usingjunctionPseudostates),<strong>and</strong>inreverseorder.Figure7.7onthefollowingpagecontainsseveral(nested)examples<strong>of</strong><br />
thispattern(choice<strong>and</strong>junctionPseudostatesaredepictedusingdiamonds<br />
<strong>and</strong>thesmallerblackcircles,respectively).<br />
Withoutthisrequirementforpropernesting,findingtheset<strong>of</strong>States,<br />
<strong>and</strong>thusActions,whichareenabledwhensomeGuardevaluatestotrue<br />
wouldbecomerathercomplicated. Forthetransformation<strong>of</strong>oursource<br />
modelstotargetmodels,findingthisset<strong>of</strong>statesisanecessarystep.‘Nonproper’nestingoccurs,forinstance,inthebottom-half<strong>of</strong>theprocesswafer<br />
requestinFigure7.5onpage141. Thisresultsinreplication<strong>of</strong>theactivitiesperformedoneachpathduringnormalisation.ThethreeCompositeStatesinthebottom-half<strong>of</strong>Figure7.7onthefollowingpageillustrate<br />
thisreplication. Part<strong>of</strong>thisparticularnormalisationstepiscoveredby<br />
constraint C4,whichstatesthatapaththroughastatemachinecanonly<br />
splitintwopaths<strong>and</strong>thatnomorethantwopathscanbejoinedinasingle<br />
statenode.BecausetheOCLconstrainttoexpresspropernestingisrather<br />
lengthy,wedidnotincludeithere.<br />
7.7 TargetMetamodel<br />
Weconsider TRSasthegivenparadigmfortheend-point<strong>of</strong>themigration.Thisend-pointisbasedonaresearchprototype[V<strong>and</strong>enNieuwelaar,<br />
2004]. Usingthe TRSparadigm,amanufacturingrequestistranslated<br />
intovalidmachinebehaviourintwophases.First,uponarrival<strong>of</strong>amanufacturingrequest,aschedulingprobleminthecontext<strong>of</strong>thatrequestis<br />
instantiatedduringaplanningphase.Forthis,therequestisinterpreted<br />
throughrulesthatoperateoncapabilities(resourcetypes)<strong>and</strong>behaviours<br />
(tasktypes). Here,amanufacturingactivitycorrespondstoatask<strong>and</strong>a<br />
mechatronicsubsystemtoaresource. Thefirstphaseresultsinahierarchicaldigraphthatconsists<strong>of</strong>tasks<strong>and</strong>their(precedence)relations.Nodes<br />
inthisgraphcanbecompositetoeitherdenoteaset<strong>of</strong>tasksthatallneed<br />
tobeexecutedortodenoteaset<strong>of</strong>tasks<strong>of</strong>whichonlyonewillbeexecutedbasedonsomecondition.Second,aschedulingphaseconstructively<br />
assignstasksinthisdigraphtospecificresourcesovertime[Viennot,1986;
148 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
WAIT_WAFER_ARRIVED<br />
entry / get_prealignment_<strong>and</strong>_measurement_data<br />
arrived<br />
[wafer@measure ]<br />
WAIT_MEASURE_CLEARED<br />
[else]<br />
[else]<br />
WAIT_WAFER_MEASURED_PREPARED WAIT_WAFER_MEASURED_PREPARED WAIT_WAFER_MEASURED_PREPARED<br />
WAIT_MEASURE_CLEARED<br />
[else]<br />
[exposed_wafer@measure ]<br />
COMBINED_LOADING_UNLOADING<br />
@measure_cleared<br />
WAIT_WAFER_MEASURED<br />
measured<br />
WAIT_WAFER_PREPARED<br />
prepared<br />
LOADING<br />
entry / load_wafer<br />
[wafer@measure ]<br />
COMBINED_LOADING_UNLOADING<br />
[else]<br />
LOADING<br />
entry / load_wafer<br />
[wafer@measure ]<br />
[exposed_wafer@measure ]<br />
[next_wafer2process ]<br />
measure_cleared<br />
entry / load_while_unload<br />
entry / load_while_unload<br />
EXPOSING<br />
entry / expose<br />
/ @measure_cleared<br />
[else]<br />
WAIT_WAFER_MEASURED<br />
measured<br />
WAIT_WAFER_PREPARED<br />
prepared<br />
SWAPPING<br />
entry / swap<br />
SWAPPING<br />
entry / swap<br />
[else]<br />
/ @measure_cleared<br />
MEASURE_AND_PREPARE<br />
/ measured<br />
MEASURING<br />
entry / measure<br />
PREPARING<br />
entry / prepare<br />
/ prepared<br />
Figure 7.7:Normalisedprocesswaferrequest<br />
[else]<br />
[next_wafer2process ]<br />
WAIT_WAFER_MEASURED<br />
UNLOADING<br />
entry / unload<br />
measured<br />
WAIT_WAFER_PREPARED<br />
prepared
7.7. TargetMetamodel 149<br />
><br />
WAIT_FOR_WS<br />
WS available/ claim WS<br />
[else]<br />
><br />
WAIT_FOR_WS<br />
><br />
WAIT_FOR_UR<br />
CHECK_RCB<br />
entry / check RCB comm.<br />
[else]<br />
[UR available ]/ claim UR<br />
Concurrent_State<br />
[WS available]/ claim WS<br />
FINISH<br />
[UR available ]/ claim UR<br />
[else]<br />
[else]<br />
entry / finish_exchange<br />
exit / release<br />
/ WS_moved<br />
WS available/ claim WS<br />
MOVE<br />
entry / move UR to rotate<br />
exit / release<br />
/ UR_moved<br />
UR available / claim UR<br />
CHECK_RCB<br />
entry / check RCB comm.<br />
[WS available]/ claim WS<br />
><br />
WAIT_FOR_UR<br />
/ transfer_finished<br />
TRANSFER<br />
entry / transfer_W2U<br />
[combined_load ]<br />
exit / release<br />
[else]<br />
UR available / claim UR<br />
[RCB ok]<br />
REPORT<br />
entry / report done<br />
Figure 7.8:Normalisedunloadwaferrequest
150 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Figure 7.9:Moduleviewfortheproduct-lineSMCarchitecture<br />
V<strong>and</strong>enNieuwelaar,2004].Thisresultsinafullytimed,coordinatedTRS<br />
thatcanbedispatchedforexecution.<br />
Theend-pointforourmigrationisaproduct-linearchitecture,<strong>of</strong>which<br />
Figure7.9displaysthemoduleview.Inthisarchitecture,thedecisionalresponsibilitiesareassignedtothreegeneric<strong>and</strong>reusablecomponents:Planner,<br />
Scheduler,<strong>and</strong> Dispatcher.Thisproduct-linearchitecture<strong>of</strong>fersvariabilitywithrespecttotasks<strong>and</strong>resources<strong>and</strong>canbeinstantiatedforaspecific<br />
controllerbyimplementing System definition<strong>and</strong> Subsystem interfacemodules.<br />
Thesemodulesdefinethespecificsystemundercontrol<strong>and</strong>implementthe<br />
interfacingwithlower-levelcomponents. The System definitionmoduleis<br />
amenableforcodegeneration,allowingforareduction<strong>of</strong>s<strong>of</strong>twaredevelopmenttime<strong>and</strong>effort.<br />
Inordertodefineourtargetmodels,weintroduceagoverningtarget<br />
metamodelasdepictedinFigure7.10. There,thesystemdefinitionfrom<br />
Figure7.9isrepresentedbythe SystemDefinition,whichservesasarootelement.<br />
Thissystemdefinitionconsists<strong>of</strong>astatic<strong>and</strong>dynamicpart. The<br />
staticpartdefinestheavailable Behaviours, Resources<strong>and</strong> Capabilities<strong>of</strong>the<br />
systemundercontrol. Theseareusedtomodeltypes<strong>of</strong>manufacturing<br />
activities,subsystems,<strong>and</strong>types<strong>of</strong>subsystems. Inaddition,toaddress<br />
thesubsystemusageconcern,itdefineswhichcapabilitiesarerequiredby<br />
whichbehaviour. Furthermore,thecorresponding beginState<strong>and</strong> endState<br />
arespecifiedin CapabilityUsage. Thesestatesare,forinstance,usedtodeterminesequencedependentsetups.<br />
Thedynamicpart<strong>of</strong>Figure7.10 representstherulesforuniquelymappingamanufacturing<br />
Requestto SimpleTasks,whichare<strong>of</strong>aspecificBehaviour,<strong>and</strong>assigningResourcesthat<br />
fulfilarequiredCapability.EveryTask
7.8. Transformation 151<br />
+ capability<br />
CapabilityUsage<br />
+ beginState :EInt<br />
+ endState :EInt<br />
+ requires<br />
Resource<br />
+ name :EString<br />
+ fulfils<br />
Capability<br />
+ name :EString<br />
*<br />
Behaviour<br />
+ name :EString<br />
*<br />
+ resources<br />
*<br />
+ capabilities<br />
1..*<br />
+ behaviours<br />
+ behaviour<br />
SystemDefinition<br />
+ requests<br />
+ id :EString<br />
*<br />
+ tasks<br />
+ iftrue<br />
AndTask<br />
Request<br />
+ name :EString<br />
OrTask<br />
+ condition :EString<br />
Static Dynamic<br />
1..*<br />
+ predecessors<br />
*<br />
+ tasks<br />
1..* + iffalse<br />
Task<br />
SimpleTask<br />
Created with Poseidon for UML Community Edition. Not for Commercial Use.<br />
Figure 7.10:Targetmetamodel<br />
includesaset<strong>of</strong>(direct) predecessors,thatis,otherTasksthatneedtobe<br />
executedbeforeitcanbedispatched.Thisrelationisusedto(dis)allowconcurrency<strong>and</strong>implysynchronisation;inprinciplealltasksareexecutedinparallel,unlesspreventedbythepredecessorrelation.Conditionalexecutioncanbespecifiedusing<br />
OrTasks,thatcontaintwo Tasks(iftrue<strong>and</strong> iffalse)<br />
thatmaybecomposite.Theevaluation<strong>of</strong>its conditiondetermineswhichone<br />
willbedispatched.Finally,toclusterTasksthatallneedtobeperformed,<br />
an AndTaskcanbeused.<br />
7.8 Transformation<br />
Our transformation rules are defined as mappings from a normalised<br />
sourcemetamodel(i.e.,our UMLpr<strong>of</strong>ile)toaTRSmetamodel. Weused<br />
MOFtodefinethetargetmetamodelratherthantailoringtheUMLusing<br />
yetanotherpr<strong>of</strong>ile. Inthissectionwefirstintroducethetransformation<br />
languagethatwasusedtodefinethetransformationstep<strong>of</strong>ourmigration<br />
approach.<br />
Forthedefinition<strong>of</strong>ourtransformationsweusedthefollowingstrategy.<br />
First,weindicatehowelementsinthenormalisedsourcemetamodelare<br />
relatedtotheprimaryelements<strong>of</strong>thetargetmetamodel.Second,foreach
152 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
rule Tasks {<br />
from s:UML!SimpleState (<br />
s.isTaskState <strong>and</strong> not thisModule.behaviourStates->includes(s))<br />
to t: TRS!SimpleTask (<br />
behaviour
7.8. Transformation 153<br />
Foreveryelementinthesourcemodelthatmatchesthesourcepattern<br />
<strong>of</strong>arule,theelementsspecifiedbythetargetpatternarecreatedinthetargetmodel.NotethatinATL,thesourcemodelisread-only<strong>and</strong>thetarget<br />
modeliswrite-only.ThiscanalsobeseenfromListing7.2,whereonlythe<br />
sourcemodelisnavigatedtoinitialisethefeaturesreferredtointhebindings<strong>of</strong>thetargetpattern.Therefore,aspecificvalue-resolutionalgorithm<br />
isusedtoinitialisefeatures:iftheexpression<strong>of</strong>abindingreferstoanother<br />
targetelement(createdbythesamerule)itissimplyassigned,ifitrefers<br />
toasourceelementitisresolvedbyapplication<strong>of</strong>therulethatmatches<br />
thatsourceelement<strong>and</strong>takingthedefault(first)targetelement.<br />
Forcaseswheretherequiredtargetelementisnotthedefaultelement<br />
<strong>of</strong>anotherrule,ATL<strong>of</strong>fersthe‘resolveTemp’construct,aso-calledhelper<br />
operation. Ittakesasourcemodelelement<strong>and</strong>areferencetoaspecific<br />
targetelement<strong>of</strong>thematchingruleasinputparameters.InListing7.2,for<br />
example,thisisdoneinthebinding<strong>of</strong>thebehaviourfeature.Inthiscases.<br />
behaviourStateevaluatestoaSimpleStatethatismatchedbyanotherrule<br />
withmultipletargetelements,<strong>of</strong>whichthe ‘b’targetelementisselected<br />
tobindtothatfeature.<br />
Helpersaretypicallydefinedinthecontext<strong>of</strong>ametamodelelement<strong>and</strong><br />
effectivelyaddafeatureoroperationtoinstances<strong>of</strong>thatelement(cf. the<br />
use<strong>of</strong>OCLdefinitionconstraintsinListing7.1onpage144).Alternatively,<br />
ahelpercanbedefinedwithoutanycontext. Then,thedefaultcontext<strong>of</strong><br />
thecompletetransformationmodule,representedbythe thisModuleelement,applies.<br />
The resolveTemphelperisalsodefinedinthisdefaultcontext.<br />
7.8.2 BasicTarget<strong>Model</strong>Elements<br />
SimpleTask<strong>and</strong>Behaviour SimpleTaskscorrespondtomanufacturingactivities,<strong>and</strong>Behaviourscorrespondtotypes<strong>of</strong>manufacturingactivitiesinSMC<br />
systems. Therefore,tocreateSimpleTasks<strong>and</strong>Behavioursinthetarget<br />
modelweneedtoidentifyActionscorrespondingtomanufacturingactivitiesinthesourcemodel.AccordingtotheUMLSMCpr<strong>of</strong>ile,anActionthatcorrespondstoamanufacturingactivityhasnostereotype<strong>and</strong>isexecutedasaStateentryAction(see<br />
C3inListing7.1onpage144). ForeverysuchAction,aSimple-<br />
Taskneedstobecreated. ThisisspecifiedbytheruleinListing7.3on<br />
thenextpage.Itcontainsaguardthatusesthe behaviourStateshelperto<br />
onlymatchSimpleStatesthatmaptoaBehaviour.Notethatinthespecification,wedonotmapActionstoSimpleTasks,butinsteadwemaptheSimpleStatesinwhichtheyareexecutedtoSimpleTasks.ThisdoesnotaffectourmigrationresultssinceActionscorrespondingtoSimpleTasksare<br />
alwaysStateentryActions(byconstraintC3<strong>of</strong>theSMCpr<strong>of</strong>ile).
154 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
rule Behaviours {<br />
from s: UML!SimpleState (<br />
thisModule.behaviourStates->includes(s))<br />
to t: TRS!SimpleTask (<br />
behaviour
7.8. Transformation 155<br />
SystemDefinition<strong>and</strong>Request TheSystemDefinitionrootelementinatarget<br />
modelcontainsallrequiredelementsthatdefinethedomainspecificpart<strong>of</strong><br />
anSMCcontroller.Assuch,thiselementcorrespondstoacompletesource<br />
model.<br />
ARequestencompassesrulesthatdeterminehowthatparticularmanufacturingrequest,suchasourunloadwaferfromFigure7.6onpage142,isplanned.Planningrulesinvolveaset<strong>of</strong>Tasks<strong>and</strong>correspondingpredecessorrelations.Additionally,aTaskcanbeanAndTaskoranOrTask.Inthesourcemodel,acompletestatemachineisusedtospecifyhowamanufacturingrequestistobeexecuted.So,wecreateaRequestelementinthe<br />
targetmodelforeveryStateMachineinthesourcemodel.<br />
Listing7.4onthenextpageshowstheATLspecification<strong>of</strong>thismapping.<br />
The RequestrulegeneratesaRequestelementforeveryStateMachinein<br />
thesourcemodel.ThisRequestcontainstaskswhicharecreatedbyother<br />
rules.Aswillbeexplainedlater,StatesorGuardsinthesourcemodelmay<br />
mapto Tasksinthetargetmodel. Becausethetasksinourtargetmodel<br />
maybecompositeinwhichcasetheyownothertasks,weshouldtakecare<br />
nottoselectallmodelelementsinthecompletestatemachinethatmap<br />
toaTask.Instead,foraRequestwediscardallStatesorGuardsinsidea<br />
CompositeStateotherthanthetop,<strong>and</strong>onpathsthatareonlyconditionally<br />
enabled(i.e.,byatransition’sguard).Tothisend,wedefinedtwoadditional<br />
generichelpers.First, rootOfSubTreetakesaset<strong>of</strong>statesasargument<strong>and</strong><br />
recursivelyselectsthe‘first’state<strong>of</strong>thatset(i.e.,theonewithoutincoming<br />
transitionsfromotherstatesintheset). Second, getTask<strong>Model</strong>Elementsis<br />
appliedtothat‘first’StatetocollectallmodelelementsthatmaptoaTask.<br />
Inessence,thishelpertakesaset<strong>of</strong>states<strong>and</strong>traversesthissetasa<br />
state‘tree’startingfromtheState(orGuard)itisappliedto,<strong>and</strong>bypassing<br />
CompositeStates<strong>and</strong>conditionalpaths.Duringthistraversalitcollectsall<br />
modelelementsitencountersthatmaptoaTask(i.e.,GuardsorStates).<br />
The SystemDefinitionrulegeneratesaSystemDefinitionelementthat<br />
correspondstothecompletesourcemodel.The behaviours, resources<strong>and</strong><br />
capabilityfeatures<strong>of</strong>theSystemDefinitionelementareboundtotheresult<strong>of</strong>otherrules.<br />
Inparticularfor behaviours<strong>and</strong> resourceswehadto<br />
usethe resolveTemphelperasthesearenotcreatedbythedefaulttarget<br />
elements<strong>of</strong>theinvolvedrules. Inthiscase,therelevantsourcemodelelementsareselectedbytwohelpersthataredefinedinthecontext<strong>of</strong>the<br />
transformationmoduleitself: behaviourStatesgivesallthesourcemodelelements(SimpleStates)thatmaptoaBehaviour,<strong>and</strong><br />
resourceActionsgives<br />
allthesourcemodelelements(≪claim≫Actions)thatmaptoaResource.<br />
TherequestfeatureisboundtotheelementscreatedbytheRequestrulefor<br />
allStateMachinesinthesourcemodel.
156 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
rule Request {<br />
from sm: UML!StateMachine<br />
to rq: TRS!Request (<br />
tasks asSequence()->first()).getTask<strong>Model</strong>Elements(sm.top.<br />
subvertex))<br />
}<br />
rule SystemDefinition {<br />
from sm: UML!<strong>Model</strong><br />
to sd: TRS!SystemDefinition (<br />
behaviours collect(e|thisModule.<br />
resolveTemp(e,’b’)),<br />
resources collect(e|thisModule.<br />
resolveTemp(e,’r’)),<br />
capabilities
7.8. Transformation 157<br />
rule ResourceUsage {<br />
from s:UML!SimpleState (s.isWait)<br />
to cu: TRS!CapabilityUsage (<br />
capability select(a|a.script.body=s.<br />
outgoing->select(t|t.effect.isClaim).effect.script.body))<br />
}<br />
Listing 7.5:Ruleforresourceusagepattern<br />
callthe getResourceClaimshelperthatrecursivelyfindsall ≪wait≫States<br />
bybackwardstraversal<strong>of</strong>thestatemachineuntila≪release≫Actionis<br />
encountered. A ≪release≫Actionreleasesallclaimedsubsystems. The<br />
≪wait≫StatesinthereturnedsetmatchtheResourceUsagerule<strong>and</strong>the<br />
BehaviourislinkedbyitsrequiresattributetothecorrespondingCapabilityUsageelements.<br />
Resourcesetups Inthetargetmodel,setupsareautomaticallyinsertedby<br />
thegeneric(solving)part<strong>of</strong>theproduct-linearchitecture. Thisisdoneat<br />
run-time,basedonmismatchingbeginState<strong>and</strong>endStateattributes<strong>of</strong>the<br />
CapabilityUsageelement.Tosomeextent,thesecouldbederivedfromthe<br />
explicitlyspecifiedsetupsinthesourcemodel.<br />
Inthischapter,however,wedonotdefineacorrespondingtransformationruleasitdependsheavilyondomainknowledge.Usingourtransformations,setupswillexplicitlyendupinthetargetmodelasjustanother<br />
task<strong>and</strong>behaviour.Assaid,thisensuresthatthemigratedcontrolsystem<br />
mimicsthebehaviour<strong>of</strong>thelegacycontrolsystemexactly,thusresulting<br />
inavalidated<strong>and</strong>acceptablebaseline.<br />
Synchronousexecution ThetargetmodeldefinesprecedencerelationsbetweenthoseTasksthatrequiresynchronisation(withinthesameRequest).Inprinciple,theserelationsfollowfromtheexecutionorder<strong>of</strong>themanufacturingactivities<strong>and</strong>thecorrespondingActionswithinanormalisedstatemachine.Inaddition,(virtual)resourcescanbeusedforexternalsynchronisation.<br />
ForsynchronisationwithinaRequest,predecessorrelationsarecreated<br />
foreverytaskbysearchingforitsset<strong>of</strong>(direct)predecessortasks. For<br />
thiswehavedefinedtwohelpersthatbothoperateontheelementsthat<br />
matchrulesthatcreateTasks.ThefirsthelperisdepictedinListing7.6on<br />
thefollowingpage<strong>and</strong>isdefinedonStateVertexwhereasthesecondone<br />
isdefinedonGuard. ForeachTask,one<strong>of</strong>these getPredecessorshelpers<br />
isinvokedonitscorrespondingStateVertexorGuard. Thesehelpersdeterminewhetherthecurrentelement(self)correspondstoatask.<br />
Ifso,<br />
thiselementisreturned. Otherwise,thehelperisrecursivelyappliedto
158 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
helper context UML!StateVertex def: getPredecessors:Set(UML!<br />
<strong>Model</strong>Element) =<br />
if self.incoming->isEmpty() then<br />
Set{}<br />
else if self.isOrTaskStateJoin then<br />
self.getFork.outgoing->collect(e|e.guard)->select(e|e.<br />
isOrTaskGuard)<br />
else if self.incoming->collect(e|e.guard)->select(e|not e.<br />
oclIsUndefined())->exists(e|e.isOrTaskGuard or if e.oppositeGuard.<br />
oclIsUndefined() then false else e.oppositeGuard.isOrTaskGuard<br />
endif) then<br />
Set{}<br />
else if self.incoming->collect(e|e.source)->select(e|e.isTaskState)<br />
->isEmpty() then<br />
self.incoming->collect(e|e.source.getPredecessors)->flatten()<br />
else<br />
self.incoming->collect(e|e.source)->select(e|e.isTaskState)<br />
endif endif endif endif;<br />
Listing 7.6:CollectpredecessorsonStateVertex<br />
thefiniteset<strong>of</strong>alldirectprecedingmodellingelementsthatmaymaptoa<br />
task.<br />
Concurrentexecution Thenormalisedpatternforconcurrency,asdiscussed<br />
inSection7.6,isaCompositeStatewithorthogonalregions.Toaddressthe<br />
concurrentexecutionconcernweneedtoidentifyinstances<strong>of</strong>suchpatterns<br />
inthesourcemodel.<br />
WedefinedatransformationrulethatcreatesanAndTaskforeveryconcurrentCompositeStateinthesourcemodelexceptforthetopComposite-State<strong>of</strong>theStateMachine.Basically,thepredecessorsrelationisthemechanismusedinthetargetmodelto(dis)allowconcurrency:iftwotasksare<br />
notrelatedbythetransitiveclosure<strong>of</strong>thepredecessorsrelation,theycan<br />
executeconcurrently.Now,thesepotentiallyconcurrenttasksareexecuted<br />
assoonasexecution<strong>of</strong>theirpredecessorshasfinished<strong>and</strong>therequired<br />
resourcesareavailable.Inturn,thisalsoimpliesthatataskcanhavemultiple(concurrent)predecessors.<br />
Collectingpredecessortaskswasalready<br />
discussedinthepreviousparagraph.<br />
ConditionalExecution AsdiscussedinSection7.6, thenormalisedsource<br />
modelusesastatewithtwooutgoingguardedtransitionstospecifyconditionalexecution.Everytwoalternativeconditionalbranchesinasource<br />
modelaremappedtoanOrTaskinthetargetmodel.ThisOrTaskcontains<br />
twosubtasks(iftrue<strong>and</strong>iffalse),whichmaybecomposite<strong>and</strong>representthe<br />
twoconditionallyexecutedbranchesfollowingaStatewithtwooutgoing
7.8. Transformation 159<br />
rule ConditionalExecution {<br />
from g:UML!Guard (g.isOrTaskGuard)<br />
to t: TRS!OrTask(<br />
condition
160 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
(a)TRStargetmodel<br />
check RCB comm.<br />
<br />
transfer W2U<br />
[combined_load]<br />
<br />
move UR to rotate<br />
check RCB comm.<br />
report done<br />
[not(combined_load)]<br />
<br />
finish exchange<br />
(b)ActivityDiagram<br />
Figure 7.11:Resultsforunloadwaferrequest<br />
unload_wafer.TheselectedelementunderthePropertiestabinthebottom<br />
partrevealsthat“SimpleTask check RCB comm.”canonlybedispatchedafter<br />
itspredecessor“OrTask combined_load”hasbeenexecuted.<br />
Theconsequence<strong>of</strong>usingacustommetamodelisthatweonlyhavethe<br />
basicgeneratededitortovisualise<strong>and</strong>documentourtransformationresults.Again,weturnedtomodeltransformationstosolvethisproblem.As<br />
thereisnosuitablegraphicalrepresentationforcompleteTRSmodelsyet,<br />
wedefinedatransformationthatmapsaTRSmodeltoUMLActivityGraphs<br />
forthedynamicpart(oneforeachrequest)<strong>and</strong>aUMLClassmodelforthe<br />
staticpart.Theresult<strong>of</strong>thistransformationcaneasilybedisplayedusing<br />
UMLtools. Figure7.11(b)onthispage,forinstance,showsthedynamic<br />
part<strong>of</strong>ourunloadwaferrequestdisplayedasanUMLActivityGraph.<br />
Notethat,wemerelyuseUMLnotationtorepresentpart<strong>of</strong>thetaskresourcemodel.Assuch,thesemanticsarenotidenticaltothat<strong>of</strong>UMLactivitygraphs,butonlysimilar.WerepresentTasksasActivitiesstereotyped<br />
withtheresourcetheyrequire. Thetransitionrepresentpredecessorrelationships(inreversedirection).ForAndTasksweuseforkPseudostates(representedbythehorizontalblackbar).AcompleteAndTaskisthusrep-
7.9. Evaluation 161<br />
resentedbythesubgraphthatstartswithafork<strong>and</strong>endswhenthetwo<br />
concurrentpathsarejoined. OrTasksarerepresentedusingchoicePseudostates(representedbyadiamondwithtwooutgoingarrows).Similarto<br />
theAndTaskacompleteOrTaskisthusrepresentedbythesubgraphthat<br />
startswithachoicePseudostate<strong>and</strong>endswhenthetwoconditionalpaths<br />
arejoined.Forconveniencewedidnotexplicitlyrepresentedthejoin<strong>of</strong>the<br />
twoconcurrentpaths(i.e.,usinganotherhorizontalbar);theyarejoinedin<br />
thesamenode(thediamondwiththreeincomingarrows)astheconditional<br />
paths.<br />
7.9 Evaluation<br />
Applicability Application<strong>of</strong>ourgeneric,model-drivenmigrationapproach<br />
requiresthatthesourceview<strong>and</strong>targetviewcanbedefinedusingametamodel.<br />
Whenthisispossible,theactualmigrationfromsourcetotarget<br />
constitutesaseries<strong>of</strong>modeltransformations.<br />
Inpractice,modelsareonlymadeascomplete<strong>and</strong>accurateasisdem<strong>and</strong>edbytheirapplication.However,thesedem<strong>and</strong>sbecomemorestringentwhenthesemodelsareusedasinputforautomatedprocessingsuch<br />
asmodeltransformations. Asaresult,thecontext-specificnormalisation<br />
stepiscrucialtotheapplicability<strong>of</strong>ourmigrationapproachinindustrial<br />
contextswhere(source)modelsaretypicallyusedforcommunication<strong>and</strong><br />
documentationpurposesonly.<br />
MOF-basedmetamodelsonlyprovidetheabstractsyntaxforconformingmodels<strong>and</strong>donotdefinehowtovisualisethem(concretesyntax).<br />
In<br />
factthisisadrawback<strong>of</strong>usingacustommetamodel:nomodeleditors<strong>and</strong><br />
viewersareavailable,apartfromthebasiceditorasgeneratedbytheEMF<br />
plugin.Inthischapterweagainturnedtomodeltransformationstodocument<strong>and</strong>visualiseourresults.Theuse<strong>of</strong>modeltransformationsprovides<br />
anelegant<strong>and</strong>flexibleway<strong>of</strong>generatingarchitecturedocumentationthat<br />
caneasilybetailoredtomeetspecificdocumentationrequirements<strong>of</strong>amigrationcontext.ThisisfurtherdiscussedinChapter8.<br />
Itturnedoutthatamodel-drivenmigrationapproachbasedon MDA<br />
isusefulforrapid(incremental)development<strong>of</strong>normalisationrules<strong>and</strong><br />
transformationrules. Thatis,resultscaneasilybevisualised<strong>and</strong>documentedgiventhewidevariety<strong>of</strong>availabletools.<br />
Scalability Withrespecttothescalability<strong>of</strong>ourapproachwecansafely<br />
statethatourexperimentsare<strong>of</strong>thesameorder<strong>of</strong>magnitudeasfullfledgedcomponentmigrationsforreal-worldwaferscannerapplications.<br />
Moreconcretely,thetworequeststhatweremigratedasapro<strong>of</strong><strong>of</strong>concept
162 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
accountforapproximately10-20%<strong>of</strong>thesourcecodeforourSMCcomponents.Theapplication<strong>of</strong>ourtransformationrulestothetworepresentativeexamplespresentedinthischapterrequireslessthan10secondsto<br />
completeona1.7GHznotebook. Furthermore,weexpecttheexecution<br />
timetobelinearwithrespecttothenumber<strong>of</strong>requests. Moreimportant<br />
fortheexecutiontimeisthenestingdepth<strong>of</strong>conditionalpaths. Forour<br />
industrialcasewehavenotencounteredrequestswithdeepernestingthan<br />
ourexamplerequests.<br />
Effectiveness Ourmodel-drivenapproachrequiresthatimplicitdesigndecisions<strong>and</strong>designknowledgeisconsolidated<strong>and</strong>madeexplicitforthedefinition<strong>of</strong>metamodels<strong>and</strong>transformationrules.<br />
Assuch,theapplication<br />
<strong>of</strong>ourapproachtothe SMCcomponents<strong>of</strong>ourcasestudyincreasedthe<br />
generalunderst<strong>and</strong>ing<strong>of</strong>concerns<strong>and</strong>theassociatedimplications(<strong>and</strong><br />
difficulties)surroundingthearchitecturemigration<strong>of</strong>SMCsystems.Moreover,theneedforexpertsonboththedomain<strong>and</strong>thetargetparadigmwas<br />
confinedtothedefinition<strong>of</strong>thenormalisation<strong>and</strong>transformationrules.<br />
Theeffectiveness<strong>of</strong>boththeMDAapproach<strong>and</strong>ourmodel-drivenmigrationapproachdependspartiallyontheability<strong>of</strong>modelling,transformation<strong>and</strong>codegenerationtoolstocooperate.<br />
Assuch,st<strong>and</strong>ardsinvolved<br />
withtheMDA,suchasMOF,UML,<strong>and</strong>particularlyXMI,playanimportant<br />
role. Inpractice,theavailability<strong>of</strong>differentversions<strong>of</strong>thesespecificationsmadeitdifficulttosetupanappropriatetoolchain.Forinstance,we<br />
couldnotusethelatestversion<strong>of</strong>ourUMLmodellingtool(i.e.,’Poseidonfor<br />
UML’)becausetheUMLmetamodelituses,wasincompatiblewiththeATL<br />
transformationengine.Althoughwetooktheliberty<strong>of</strong>selectingtoolsthat<br />
wereabletocooperate,westillneededtoimplementsomeadditionaltransformationsusingExtensibleStylesheetLanguageTransformations<br />
1 (XSLT)<br />
toovercomesomeincompatibilitiesbetweenthevarioustools.Inindustry<br />
itwillnotalwaysbepossibletoselectaspecificset<strong>of</strong>toolsforthemigrationgivenpracticalconsiderationssuchaslicensing,support,<strong>and</strong>training<br />
costs.<br />
Apartfromtoolsupport,therequiredhumaninterventionduringthe<br />
normalisationstepalsodeterminestheeffectiveness<strong>of</strong>ourmigrationapproach.Thecomplexity<strong>of</strong>thenormalisationstepdependsonthenumber<strong>of</strong>constraintsthattherestrictedsourcemetamodeladdstothelegacy<br />
sourcemetamodel(ifpresent).Here,atrade-<strong>of</strong>fapplies:fewerconstraints<br />
makethetransformation,whichistypicallyautomated,morecomplexbecausemorespecificationalternativeshavetobecovered.<br />
Forinstance,if<br />
wewouldallowActionscorrespondingtomanufacturingactivitiestooccur<br />
asActionsonTransitions,searchingforpredecessorswouldbecomemuch<br />
1 http://www.w3.org/TR/xslt(June2007)
7.9. Evaluation 163<br />
morecomplicated.Ontheotherh<strong>and</strong>,thenormalisationsteprequiresless<br />
effortinthatcase.<br />
Inourcase,thetargetmetamodelspecifiesthedomain-specificpart<strong>of</strong><br />
aproduct-line.Webelievethatmodeltransformationsareparticularlyapplicableasamigrationapproachfortherecurringmigration<strong>of</strong>individual<br />
product-linemembers. Ingeneral,amodel-basedmigrationapproachis<br />
beneficialinsituationswhereanumber<strong>of</strong>similarartefactsneedtobemigrated.<br />
Suchasettingprovidessufficientreturnoninvestmentforthe<br />
definition<strong>of</strong>metamodels,normalisationrules,<strong>and</strong>transformationrules.<br />
Morespecifically,whenconsideringthepreviouslymentionedtrade-<strong>of</strong>f,<br />
alargernumber<strong>of</strong>artefactsthatneedtobemigratedjustifiesahigher<br />
investmentinthedefinition<strong>of</strong>transformationrules,allowingforalessinvolvednormalisationstep.<br />
Asanotherexample<strong>of</strong>thistrade-<strong>of</strong>f,consider<br />
ourassumption<strong>of</strong>propernesting. Itimpliesthatalternativebranchesin<br />
astatemachinearejoinedtwoatatime<strong>and</strong>inreverseorder. Onecould<br />
relaxthisassumption(constraint)<strong>and</strong>implementamoreintricatetransformationruletoh<strong>and</strong>lethisrelaxation.<br />
Extensibility Currently,ourtransformationrulesdonoth<strong>and</strong>lesynchronisationacrossdifferentrequests.Thiscouldprovetobealimitationforthe<br />
largescaleapplication<strong>of</strong>ourtransformationrules.Tothisend,wewould<br />
haveto(atleast)extendourpr<strong>of</strong>iletoincludeaspecialtype<strong>of</strong>Eventto<br />
denoteexternaleventsforsuchinter-requestdependencies.<br />
Theoverallextensibility<strong>of</strong>ourmigrationapproachisdemonstratedby<br />
usingsourcemodelswithtwodistinctoriginsforourexperiments. Inthe<br />
case<strong>of</strong>theunloadwaferrequestweusedtheavailablearchitecturedocumentation<strong>of</strong>theinvolvedSMCcomponent.ThisdocumentationcontainedUMLstatechartdiagramsforthecomponent’srequests,includingourexamplerequest.However,fortheSMCcomponentthatperformstheprocesswaferrequest,documentationwasnotavailable.Wehadtoreconstructthesource<br />
modelfromthesourcecode.Forthiswetookadvantage<strong>of</strong>thefactthatthis<br />
componentwasbasedonaproprietarylibraryforFSMs.Usingthislibrary,<br />
thecomponentimplementedthreeconcurrentstatemachinesthatcovered<br />
thebehaviour<strong>of</strong>allrequests<strong>and</strong>combinationshere<strong>of</strong>.Figure7.12onthe<br />
nextpagedepictsone<strong>of</strong>thecomponent’sthreestatemachines.<br />
Thisparticularstatemachineillustratesthetypicalresult<strong>of</strong>anevolvings<strong>of</strong>twarearchitecture:twolegacystate-basedcomponentswereaugmentedwithanewsupervisor.Thissupervisorwasobtainedbytakingtheproduct<strong>of</strong>thetwolegacystate-machines<strong>and</strong>addingtwochoicepseudostates(i.e.,<br />
s1<strong>and</strong> s11)toallowfordifferentactivationpaths,basedon<br />
legacyrequestcombinations.
164 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
s20<br />
s21<br />
t43<br />
t42<br />
t44<br />
s10<br />
s18<br />
t40 t41<br />
t35<br />
t34<br />
t36 t83<br />
s19<br />
s14<br />
s17<br />
t79<br />
t37<br />
t19 t58 t20<br />
t82<br />
t31<br />
t33<br />
t32<br />
t18 s12 t60 t77 s15 s16 t23 s13 t85 t45 t63 t46 t64<br />
t21<br />
t78<br />
t29 t30 t59 t24t28<br />
t25 t26 t71<br />
t22<br />
t84<br />
t62<br />
Figure 7.12:One<strong>of</strong>threeconcurrentstatemodels(madeanonymous)<br />
s22<br />
s23<br />
s4<br />
t38 t39<br />
s11<br />
t56<br />
t61<br />
s24<br />
t47<br />
t48<br />
t53<br />
t76<br />
t51t80<br />
t50 t68 s2 t49 t67 s3 t17 t70 s5 t7 s6 s7<br />
t52 s8 t65<br />
s9<br />
t4<br />
t66<br />
t5<br />
t6 t73 t74<br />
t69<br />
t8<br />
t16<br />
t13 t14t15t57 t9t10<br />
t75<br />
t11<br />
t81<br />
t12<br />
t27 t72<br />
s1<br />
t55<br />
t0 t1 t2t54 t3<br />
s0
7.10. Conclusions<strong>and</strong>FutureWork 165<br />
Weextractedtheprocesswaferrequeststatemachinefromthethree<br />
implementedconcurrentstatemachines<strong>and</strong>thecorrespondingsourcecode<br />
byisolatingstatetransitionpaths<strong>and</strong>combiningthemintoarequeststate<br />
model. Theresultingextractedsourcemodelswereusedastheinputfor<br />
ournormalisationstep.Infact,suchanextractionstepinwhichweisolate<br />
requeststatemachines(i.e.,toobtainmodelstobenormalised)canbeseen<br />
asanextension<strong>of</strong>the‘front-end’<strong>of</strong>ourapproach.<br />
The‘back-end’<strong>of</strong>ourapproachcanbeextendedaswellbystepsthat<br />
furtherprocesstheresult<strong>of</strong>ourmodeltransformations.Wealreadymentionedthegeneration<strong>of</strong>documentation.Anotherpossibleextensionisthegeneration<strong>of</strong>sourcecodetoactuallygeneratetheSystemDefinitionmodule<strong>of</strong>theproduct-linearchitecture(Figure7.9onpage150).<br />
Bothcanbe<br />
specifiedusingmodeltransformations.<br />
Notethatwedidnotyetconsiderthedomainspecificinterfacemodules<br />
<strong>of</strong>theproduct-linearchitecture. However,thisonlyconstitutesaminor<br />
hurdlesincewecansimplyencapsulatetheexistingsourcecodebodiesfor<br />
eachbehavior(preservinginterfacefunctionality<strong>and</strong>behavior).<br />
7.10 Conclusions<strong>and</strong>FutureWork<br />
Inthischapterweformulatedthemigration<strong>of</strong>SMCsystemsasamodel<br />
transformationproblem. ThestartingpointisanSMCarchitecturebased<br />
onFSMs;theendpointisaproduct-lineSMCarchitecturebasedonTRSs.<br />
Ourapproachsupportsthegenericmigration<strong>of</strong>theproduct-linemembers.<br />
Wedemonstratedthatthedevelopmentframeworkforthe MDAcan<br />
besuccessfullyappliedinamigrationcontextaswell: migrationcanbe<br />
seenasaseries<strong>of</strong>modeltransformations. Weproposedagenerictwophased,model-drivenmigrationapproachthatusesdistinctnormalisation<br />
<strong>and</strong>transformationstepstoderivethemodulesrequiredtoinstantiatethe<br />
TRSproduct-linearchitectureforaparticular(sub)system.Thenormalisationstepiscrucialinovercomingsemi-formal,incomplete<strong>and</strong>ambiguous<br />
specificationsaswellastool<strong>and</strong>languagelimitations. Thisnormalisationsteprequiresdomainknowledge<strong>and</strong>manualeffort,butmakesour<br />
approachsuitedforindustrialapplication.<br />
Atrade-<strong>of</strong>fhasbeenidentifiedbetweentheinherentcomplexity<strong>of</strong>automatedtransformations<strong>and</strong>therequiredmanualeffortduringnormalisation.BasedonSMC-specificconcerns<strong>and</strong>anormalisedsourcemetamodel,<br />
wehavedefined<strong>and</strong>implementedaset<strong>of</strong>generictransformationrulesthat<br />
supportamigrationtowardsTRS-basedproduct-linearchitectures.Theapplicability<strong>of</strong>theseruleshasbeenillustratedforareal-worldindustrial<br />
case. Sinceourtransformationrulesoperateonnormalisations,theycan<br />
beappliedtoFSM-TRSmigrations<strong>of</strong>SMCsystemswithoutloss<strong>of</strong>generality.
166 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
Theindustrialcasethatmotivatedthischapterimposesnotonlythe<br />
source<strong>and</strong>targetparadigmsbutplacespracticalconstraintsontheenablingtechnologiesaswell.<br />
StartingfromUML,weselectedtechnologies<br />
compatiblewiththe MDAtosetupaconvenienttool-chainthatsupports<br />
thedefinition<strong>and</strong>manipulation<strong>of</strong>models. Usingthistoolchain,several<br />
requestsfromdifferentSMCcomponentshavebeenmigratedasapro<strong>of</strong><strong>of</strong><br />
concept.Theexperienceswegainedfromthisexerciseindicatethattheapplication<strong>of</strong>modeltransformationsnotonlyincreasestheunderst<strong>and</strong>ability<br />
<strong>of</strong>suchamigration,butalsoreducestheneedfordomainexperts.<br />
Assuch,themaincontributions<strong>of</strong>thischapterare:<br />
•Theillustratedapplicability<strong>of</strong>theMDAapproachtoarchitecturemigrations.<br />
Tothisend,weintroducedavitalnormalisationstepthat<br />
enablesmigrationsinanindustrialsetting.<br />
•Apracticalviewontheuse<strong>of</strong>metamodels<strong>and</strong>pr<strong>of</strong>ilesformigrations<br />
ingeneral<strong>and</strong>,morespecifically,onthenormalisation,<strong>and</strong>transformation<strong>of</strong>SMCsourcemodels.<br />
•Thespecification<strong>of</strong>aset<strong>of</strong>modeltransformationrules,anSMCUML<br />
pr<strong>of</strong>ile,<strong>and</strong>aTRSmetamodelthatcanbeappliedtoFSM-TRSmigrations<strong>of</strong>SMCarchitectures.<br />
Weareintheprocess<strong>of</strong>extendingourworkalongthefollowinglines.<br />
First,wewantt<strong>of</strong>urtherinvestigatetheextraction<strong>of</strong>sourcemodelsfor<br />
ourtransformationdirectlyfromsourcecode. Thismayalsoenable(partial)formalisation<strong>and</strong>automation<strong>of</strong>ournormalisationstep.<br />
Second,at<br />
theotherend<strong>of</strong>themigration,wewanttoextendourapproachwithcode<br />
generationfromTRSmodelsfortheapplication-specificmodules<strong>of</strong>theTRS<br />
product-linearchitecture,againusingtechnologiesrelatedtotheMDA.This<br />
wouldprovideforafull-fledgedmodel-drivenmigrationapproach: from<br />
legacycodetonewcodethroughaseries<strong>of</strong>modeltransformations.
Chapter8<br />
Visualisation <strong>of</strong> Domain-Specific<br />
<strong>Model</strong>ling Languages Using UML 1<br />
Currently,general-purposemodellingtoolsare<strong>of</strong>tenonlyusedtodrawdiagramsforthepurpose<strong>of</strong>documentation.Theintroduction<strong>of</strong>model-driven<br />
s<strong>of</strong>twaredevelopmentapproachesinvolvesthedefinition<strong>of</strong>domain-specific<br />
modellinglanguagesthatallowcodegeneration. Althoughgraphicalrepresentations<strong>of</strong>theinvolvedmodelsareimportantfordocumentation,the<br />
development<strong>of</strong>requiredvisualisations<strong>and</strong>editorsiscumbersome. Inthis<br />
chapterweproposetoextendthetypicalmodel-drivenapproachwiththe<br />
automaticgeneration<strong>of</strong>diagramsfordocumentation. Weillustratethe<br />
approachusingthe<strong>Model</strong><strong>Driven</strong>Architectureinthedomains<strong>of</strong>s<strong>of</strong>tware<br />
architecture<strong>and</strong>controlsystems.<br />
8.1 Introduction<br />
<strong>Model</strong>-drivenengineeringreferstos<strong>of</strong>twaredevelopmentapproachesin<br />
whichmodelsareconsideredtheprimarydevelopmentartefacts[Bézivin,<br />
2005](instead<strong>of</strong>sourcecode). Intheseapproachess<strong>of</strong>twaremodelsare<br />
graduallytransformed(automatically)intosourcecodebymeans<strong>of</strong>model<br />
transformations.Additionally,suchmodelsareusedforother(automated)<br />
s<strong>of</strong>twareengineeringtasks,suchasperformanceanalysis.<br />
Typically, model-driven engineering (MDE) approaches are based on<br />
modellinglanguagesthat<strong>of</strong>ferabstractionsfocusedonaparticulardomain.<br />
Suchlanguagesarereferredtoasdomain-specificmodellinglanguages<br />
1 Thischapterwaspublishedearlieras:Graaf,Bas<strong>and</strong>ArievanDeursen. Visualisation<br />
<strong>of</strong>domain-specificmodellinglanguagesusingUML. InProceedings<strong>of</strong>the14 th Annual<br />
IEEEInternationalConference<strong>and</strong>WorkshopontheEngineering<strong>of</strong>ComputerBased<br />
Systems(ECBS2007),pages586–595.IEEEComputerSociety,2007c<br />
167
168 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
(DSMLs). FromDSMLmodelscodeisgeneratedforaparticulars<strong>of</strong>tware<br />
platform. DSMLshavebeendevelopedforvarioustypes<strong>of</strong>domains,such<br />
ass<strong>of</strong>twareengineering(e.g.,s<strong>of</strong>twarearchitecture[Medvidovic<strong>and</strong>Taylor,1997])<strong>and</strong>applicationdomains(e.g.,insuranceproducts[Doyleetal.,<br />
2006]).<br />
In general, the use <strong>of</strong> DSMLs has clear advantages over the use <strong>of</strong><br />
general-purposelanguages(GPLs)[VanDeursen<strong>and</strong>Klint,1998].Morein<br />
particular,inthecontext<strong>of</strong>MDE,ourexperienceinindustrialcasestudies<br />
(seeChapters5<strong>and</strong>7)indicatesthattheuse<strong>of</strong>aGPL,suchastheUnified<br />
<strong>Model</strong>ingLanguage 1 (UML),leadsto(unnecessary)complexmodeltransformations,forinstancetogeneratecode.Assuch,theintroduction<strong>of</strong>MDE<br />
typicallyrequiresthedevelopment<strong>of</strong>DSMLs.<br />
Althoughmechanismsareavailabletodefine<strong>and</strong>implementtheabstractsyntax<strong>of</strong><br />
DSMLs,suchastheMetaObjectFacility 2 (MOF)<strong>and</strong>the<br />
Eclipse<strong>Model</strong>ingFramework 3 (EMF),notmuchsupportisavailableforthe<br />
definition<strong>of</strong>theirgraphicalnotation(concretesyntax). Asaresultdevelopment<strong>of</strong>adequategraphicaleditors<strong>and</strong>visualisationsrequiresconsiderableeffort.<br />
Forsomes<strong>of</strong>twareengineeringtasks,sucheditorsarenotrequired.For<br />
instance,developerscanuseatextualsyntaxforthecreation<strong>of</strong>models<br />
thatcansubsequentlybeprocessedbymodeltransformationtools. However,othertasks,suchasdocumentation,dorequiresomeform<strong>of</strong>graphical<br />
representation.Itisthisproblemthatmotivatesthischapter.<br />
Thebasicidea<strong>of</strong>thischapterissimple:whendevisinganewDSMLwe<br />
trytoleverageexistingvisualnotations<strong>and</strong>modellingtools. Wepropose<br />
toexp<strong>and</strong>thetypicalMDEprocessinwhichabstractmodelsaregradually<br />
transformedintocode,with(partial)generation<strong>of</strong>documentation.Tothis<br />
endwecombinetheuse<strong>of</strong>DSMLsforcodegeneration<strong>and</strong>otherautomated<br />
s<strong>of</strong>twareengineeringtasks,withtheuse<strong>of</strong>UMLfordocumentation.TheapproachusesmodeltransformationstospecifythemappingbetweenDSMLs<br />
<strong>and</strong> UML. Thediagramscorrespondingtotheresulting UMLmodels,as<br />
visualisedby<strong>of</strong>f-the-shelfUMLtools,areusedinthedocumentation. To<br />
investigatetheargumentsfor<strong>and</strong>againstthisidea,westudyhow<br />
•thisapproachworksforvariousarchitecturalviews;<br />
• UMLcanbeusedasthetargetlanguageforvisualisingtheseviews;<br />
<strong>and</strong><br />
•modeltransformationscanbeusedtospecify<strong>and</strong>automatethemapping.<br />
1 http://www.uml.org(June2007)<br />
2 http://www.omg.org/m<strong>of</strong>(June2007)<br />
3 http://www.eclipse.org/emf(June2007)
8.2. Background 169<br />
Inpractice,theextraeffortrequiredforthedevelopment<strong>of</strong>graphicaleditorscanhampertheintroduction<strong>of</strong>MDE.Considerthefollowingscenario.<br />
As<strong>of</strong>twaredevelopmentorganisationdecidestointroduceMDE.Currently,<br />
thedevelopersuseUML. However,asinmanyotherorganisations,they<br />
onlyuseUMLmodellingtoolsfordrawingdiagrams[Langeetal.,2006].<br />
Thesediagramsareimportantforthecommunicationwithotherstakeholders,astheyconstituteanessentialpart<strong>of</strong>thedocumentation.<br />
The<br />
introduction<strong>of</strong>MDEinvolvesthedefinition<strong>of</strong>DSMLsfromwhichcodewill<br />
begenerated. Furthermore,asthedevelopersarecomfortablewithusing<br />
atextualsyntaxfortheseDSMLs,nographicaleditorsaredeveloped.The<br />
resultisthattheynowhavetocreate DSMLmodelsforcodegeneration<br />
aswellasUMLdiagramsfordocumentation. Consideringthecurrentuse<br />
<strong>of</strong>UML,asinvestigatedbyLangeetal.[2006],<strong>and</strong>theupcoming<strong>of</strong>MDE<br />
approaches,suchasthe<strong>Model</strong><strong>Driven</strong>Architecture 1 (MDA),thisisnotan<br />
unlikelyscenario.<br />
Weinvestigatethefeasibility<strong>of</strong>ourapproachinthedomain<strong>of</strong>s<strong>of</strong>tware<br />
architecture.InSection8.2weintroducethelanguagesspecifictothisdomain,<strong>and</strong>thest<strong>and</strong>arddocumentationapproach.<br />
Ourapproachforthe<br />
model-drivendocumentation<strong>of</strong>s<strong>of</strong>twarearchitecture,MDAV,ispresented<br />
inSection8.3<strong>and</strong>wereportonasmallcasestudyinSection8.4.Theapproachiseasilyappliedtootherdomainsaswell.Anadditional(industrial)<br />
casestudyinvolvingadifferenttype<strong>of</strong>modelsispresentedinSection8.5.<br />
Wediscussthebenefits<strong>and</strong>limitations<strong>of</strong>theapproachinSection8.6.After<br />
discussingsomerelatedworkinSection8.7,weconcludewithanoverview<br />
<strong>of</strong>ourcontributions<strong>and</strong>opportunitiesforfutureworkinSection8.8.<br />
8.2 Background<br />
Inthissectionweintroducemodelling<strong>and</strong>documentationinthedomain<br />
<strong>of</strong>s<strong>of</strong>twarearchitecture.Furthermore,wediscusssome<strong>of</strong>thetechnologies<br />
thatenableourapproach.<br />
8.2.1 S<strong>of</strong>twareArchitecture<br />
<strong>Model</strong>ling Severalnotationshavebeendevelopedtospecifyarchitectural<br />
models. Thesearchitecturedescriptionlanguages(ADLs)(seeMedvidovic<br />
<strong>and</strong>Taylor[1997]foranoverview)mostlyconsideranarchitecturetobea<br />
configuration<strong>of</strong>runtimecomponents<strong>and</strong>connectors.<br />
Duetotheirformalsyntax<strong>and</strong>semanticsADLsenableautomaticcode<br />
generation<strong>and</strong>analysis. Despitethesebenefits,<strong>and</strong>althoughADLshave<br />
1 http://www.omg.org/mda(June2007)
170 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
receivedmuchattentionfromthearchitectureresearchcommunity,they<br />
havenotbeenappliedmuchinindustry[Kruchtenetal.,2006].<br />
AlthoughUMLisaimedatobject-orientedmodelling,itallowspractitionerstoaddressawiderange<strong>of</strong>issues[Medvidovicetal.,2002].Therefore,<strong>and</strong>because<strong>of</strong>theavailability<strong>of</strong>supporting(graphical)modelling<br />
tools,itis<strong>of</strong>tenusedinpracticetodescribes<strong>of</strong>twarearchitectures(e.g.,see<br />
Chapter3<strong>and</strong>Langeetal.[2006]).<br />
Adrawback<strong>of</strong>using UMLforthispurposeisthesemanticmismatch<br />
betweenarchitecturalconcepts<strong>and</strong> UML’sconcepts,whichareaimedat<br />
object-orienteddesign.Thisresultsincompromisesbetweencompleteness<br />
<strong>and</strong>legibility[Garlanetal.,2002]. Furthermore,forautomaticprocessing<strong>of</strong>models(e.g.,forcodegeneration)thecomplexity<strong>of</strong>UMLresultsin<br />
complexmodeltransformations(seeChapters5<strong>and</strong>7).<br />
Documentation Becauseinindustrialpracticeas<strong>of</strong>twarearchitectureistoo<br />
complextodescribeinasinglestroke,differentviewsareusedforitsdocumentation.Differenttypes<strong>of</strong>viewshavebeendefinedtoaddressspecific<br />
concerns. Thetwomostprominentcategories<strong>of</strong>viewsaremoduleviews<br />
<strong>and</strong>component-<strong>and</strong>-connector(C&C)views[Clementsetal.,2002a].<br />
Amoduleviewaddressesthequestion<strong>of</strong>howasystemisdeveloped;it<br />
definesthemostimportantimplementationunits(modules)<strong>and</strong>theirrelations.Moduleviewsareused,forinstance,toevaluatethemaintainability<br />
<strong>of</strong>asystemasimpliedbyitsarchitecture.<br />
Acomponent-<strong>and</strong>-connector(C&C)view,ontheotherh<strong>and</strong>,addresses<br />
thequestion<strong>of</strong>howasystemworks. Itdescribesasysteminterms<strong>of</strong><br />
runtimecomponents<strong>and</strong>connectors. Acomponentisanabstraction<strong>of</strong>a<br />
computationalelement;aconnectorisanabstraction<strong>of</strong>thewaycomponentsinteract.Assuch,aC&Cviewismoresuitedforanalysis<strong>of</strong>runtime<br />
properties,suchasperformance.<br />
Morespecifictypes<strong>of</strong>viewsaredefinedbyimposingrestrictionsonthe<br />
type<strong>of</strong>elements<strong>and</strong>relationsallowedinaview.Inamodule-usesview,for<br />
instance,only‘uses’relationsareallowed.<br />
Intheterminology<strong>of</strong> IEEEStd1471-2000[IEEE-1471,2000],aview<br />
conformstoaviewpointthat“specifiestheconventionsforusing<strong>and</strong>constructingaview”.Aviewpointaddressesaset<strong>of</strong>stakeholderconcerns.A<br />
number<strong>of</strong>viewpointsetsisavailablefromliterature,suchas[Clements<br />
etal.,2002a].Furthermore,inpracticealsocustomviewpointsaredefined.<br />
Typically,aviewpointdefinitionprescribesamodellinglanguageornotationthatenablesthespecification<strong>of</strong>anarchitecturalmodelthataddresses<br />
theconcerns<strong>of</strong>theviewpoint.Asanexample,aC&Cviewpointmightrefer<br />
toaparticularADL.Insummary,aviewpointdefinesatype<strong>of</strong>views<strong>and</strong>a<br />
viewisaparticularrepresentation<strong>of</strong>aparticularsystem.
8.2. Background 171<br />
Inpracticethearchitecturalmodelforaviewisprimarilyusedasafigureordiagram(theview’sprimarypresentation[Clementsetal.,2002a])in<br />
adocumentthatdescribestheview.Because<strong>of</strong>theirwide-acceptance<strong>and</strong><br />
availabletoolsupport<strong>of</strong>tenUMLdiagramsareusedforthis(seeChapter3).<br />
8.2.2 EnablingMDETechnologies<br />
Ourapproachformodel-drivendocumentationisbasedonmodeltransformations.Thisrequirescapabilitiesfor(meta)modelling,modeltransformation,<strong>and</strong>modelinterchange.<br />
Forthedefinition<strong>of</strong>metamodelsweusetheMetaObjectFacility 1 (MOF)<br />
<strong>and</strong>itsimplementationasanEclipseplugin:theEclipse<strong>Model</strong>ingFramework<br />
2 (EMF).<br />
TheEMFplugingeneratesanimplementationforametamodelasaset<br />
<strong>of</strong>Javaclassesthat<strong>of</strong>fersaninterfacethatallowsdeveloperstomanipulateconformingmodels.<br />
Thesemodelscanbeserialisedtoadocument<br />
intheExtensibleMarkupLanguage 3 (XML)using XMLMetadataInterchange<br />
4 (XMI). Additionally,asimpletree-basededitorisgeneratedthat<br />
canbeusedasanEclipsepluginforthecreation<strong>and</strong>inspection<strong>of</strong>associatedmodels.<br />
Asanexampleconsiderthescreenshot<strong>of</strong>suchaneditorin<br />
Figure8.3(b)onpage175.Thiseditorisalsocapable<strong>of</strong>validatingamodel<br />
againstitsmetamodel.<br />
TheAtlasTransformationLanguage[Jouault<strong>and</strong>Kurtev,2005](ATL)is<br />
basedonEMF.Weuseittodefinemodeltransformationsthatareexecuted<br />
byatransformationengine. InATL,transformationsaredefinedinmodulesthatconsist<strong>of</strong>declarativetransformationrules<strong>and</strong>helperoperations.<br />
Usingasyntaxsimilartothat<strong>of</strong>theObjectConstraintLanguage 5 (OCL),<br />
thetransformationrulesmatchmodelelementsinasourcemodel<strong>and</strong>createelementsinatargetmodel.<br />
Ahelperisdefinedinthecontext<strong>of</strong>a<br />
metamodelelement,towhichiteffectivelyaddsafeature.<br />
Fortheirinput,modeltransformationtoolstypicallyuseXMIserialisations<strong>of</strong>MOF-based(meta)models.<br />
Inthecase<strong>of</strong>UML,thesemodelscan<br />
simplybecreated<strong>and</strong>visualisedusingst<strong>and</strong>ardUMLtooling.<br />
1 http://www.omg.org/m<strong>of</strong>(June2007)<br />
2 http://www.eclipse.org/emf(June2007)<br />
3 http://www.w3.org/XML(June2007)<br />
4 http://www.omg.org/mda/specs.htm#XMI(June2007)<br />
5 http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL(June2007)
172 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
Metamodel<br />
<strong>Model</strong><br />
*<br />
conformsTo<br />
used for:<br />
analysis<br />
code generation<br />
model transformations<br />
Concern<br />
* *<br />
*<br />
UML <strong>Model</strong><br />
*<br />
UML Diagram<br />
Architectural Description<br />
Architecture<br />
System<br />
Figure 8.1:MDAVframework<br />
8.3 <strong>Model</strong>-<strong>Driven</strong>ArchitecturalViews<br />
*<br />
Viewpoint<br />
View<br />
used for:<br />
documentation<br />
communication<br />
assessments<br />
*<br />
conformsTo<br />
Totakeadvantage<strong>of</strong>thepower<strong>of</strong> DSMLsforcodegeneration<strong>and</strong>other<br />
automateds<strong>of</strong>twareengineeringtasks<strong>and</strong>that<strong>of</strong> UMLfordocumentation,weexplicitlydistinguisharchitecturaldocumentation<strong>and</strong>architecturalmodels.Wemakethisconcretebyrevisitingtheconceptualmodel<strong>of</strong><br />
theindustryst<strong>and</strong>ardfordescription<strong>of</strong>s<strong>of</strong>twarearchitectures(IEEEStd<br />
1471-2000[IEEE-1471,2000]).Theresult,the<strong>Model</strong>-<strong>Driven</strong>Architectural<br />
Views(MDAV)framework,isdisplayedinFigure8.1.<br />
8.3.1 MDAVFramework<br />
InFigure8.1,forthedevelopment<strong>of</strong>as<strong>of</strong>tware System,an Architectureis<br />
definedthatincludesthemostimportantdesigndecisions.Thesearemade<br />
concreteinan Architectural Descriptionthatconsists<strong>of</strong> <strong>Model</strong>sontheoneh<strong>and</strong>,<br />
<strong>and</strong>architectural Viewsontheother.Inthespirit<strong>of</strong>MDE,modelsconform<br />
toaMetamodel<strong>and</strong>areusedforseveral(automated)taskssuchas,analysis<strong>and</strong>codegeneration.<br />
Viewsontheotherh<strong>and</strong>conformtoaViewpoint<br />
<strong>and</strong>areprimarilyusedforcommunicationpurposes.Bothmetamodels<strong>and</strong><br />
viewpointsaredevelopedtoaddressacertainset<strong>of</strong> Concerns.Aviewpoint<br />
prescribesthelanguagetobeusedtomodelthearchitecture.Ametamodel<br />
specifiestheabstractsyntax<strong>of</strong>thislanguage.Aviewincludesdiagramsin<br />
itsprimarypresentationthatrepresenttheassociatedarchitecturalmodels.
8.3. <strong>Model</strong>-<strong>Driven</strong>ArchitecturalViews 173<br />
Toallowtheuse<strong>of</strong>customdefinedDSMLswithouttheneedtospecifically<br />
developcorrespondinggraphicalrepresentations<strong>and</strong>editors,weuse UML<br />
Diagrams.Tothisend,wemapDSML <strong>Model</strong>sto UML <strong>Model</strong>sthatarevisualised<br />
asUMLdiagramsforinclusioninviewdocumentationwithst<strong>and</strong>ardUML<br />
tooling.Thus,inMDAVtheconnectionbetweenviews<strong>and</strong>modelsismade<br />
through(UML)diagrams.Thankstothisconnection,viewscanbe(partly)<br />
generatedfromthesamemodelsasthesourcecode;theybecomemodel<br />
driven.<br />
8.3.2 MDAVProcess<br />
Insummary,comparedtotheconceptualmodelasdescribedbyIEEEStd<br />
1471-2000,weaddtheconcept<strong>of</strong>adiagramthatallowstorelateaviewto<br />
amodel.Furthermore,in-linewithMDE,weexplicitlyaddedametamodel<br />
asadescription<strong>of</strong>themodellinglanguageusedinaview. Application<strong>of</strong><br />
thecorrespondingapproachinvolvesthreesteps:definition<strong>of</strong>1)asuitable<br />
metamodel,2)meanstocreatecorrespondingmodels,<strong>and</strong>3)amappingto<br />
UML.<br />
Asuitablemetamodelforaparticularviewpointcanbedefinedfrom<br />
scratchorbasedonanexistingADLthataddressestherelevantconcern.In<br />
theformercase,weuseadescription<strong>of</strong>theviewpoint(e.g.,fromClements<br />
etal.[2002a])<strong>and</strong>createcorrespondingelements<strong>and</strong>relationsinthemetamodel.Inthelattercase,webasethemetamodelontheADL’sgrammar(or<br />
otherlanguagespecificationmechanism). Giventhetypicallymodestsize<br />
<strong>and</strong>simplesyntax<strong>of</strong> ADLs<strong>and</strong>usingappropriatetooling,corresponding<br />
metamodelsareeasilycreated.<br />
Ameanstocreatemodelsassociatedwiththedefinedmetamodelisalso<br />
required.Dependingonthecomplexity<strong>of</strong>theassociatedmetamodeldifferentalternativesaresuitable,<strong>of</strong>whichwegiveexamplesinSection8.4.Wespecify<strong>and</strong>implementthemappingbetweentheprescribedmetamodel<strong>and</strong>UMLusingamodeltransformationlanguage.ForseveralADLsmappingstoUMLalreadyexist,thatwecanspecifyasmodeltransformations.<br />
Thisallowsustoautomaticallytransformanarchitectural(ADL)<br />
modeltoaUML <strong>Model</strong>. Assuch, ADL <strong>Model</strong>s<strong>and</strong> UML Diagramscanevolve<br />
simultaneously.<br />
AlthoughthecorrespondingUMLdiagrammightnotexactlyrepresent<br />
thearchitecturalmodel(e.g.,becausethelatterusesconceptsthatdonot<br />
correspondtoanyUMLconcept),itistypicallycompleteenoughformany<br />
communicationpurposes. Thiscanbeconcludedbyconsideringthewidespreaduse<strong>of</strong>UMLforarchitecturaldocumentationinindustrialpractice<br />
(e.g.,seeChapter3<strong>and</strong>Langeetal.[2006]). Moreover,inthecase<strong>of</strong>a<br />
semanticmismatch,weusestereotypestoindicatethetype<strong>of</strong>ADLelement<br />
aspecificUMLelementrepresents.
174 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
Figure 8.2:C&Cmodel<strong>of</strong>CaPiTaLiZe(ACME)<br />
8.4 UsingMDAVtoGenerateViews<br />
WeappliedMDAVtotwoarchitecturalviewpoints:wedefinedanappropriatemetamodel(i.e.,amodelling‘language’),meanstocreate<strong>and</strong>manipulateassociatedmodels,<strong>and</strong>amappingtoUML,<br />
WeusetheCaPiTaLiZesystem, <strong>of</strong>tenusedins<strong>of</strong>twarearchitecture<br />
literature[Allen<strong>and</strong>Garlan,1997],asarunningexample. CaPiTaLiZe<br />
transformsacharacterstreambycapitalisingalternatecharacters.AC&C<br />
model<strong>of</strong>CaPiTaLiZedefinedusinganADL(ACME[Garlanetal.,2000])is<br />
visualisedinFigure8.2. CaPiTaLiZeisdesignedasapipe-<strong>and</strong>-filtersystem,withseparatecomponentsforsplittingastream<strong>of</strong>charactersintwo<br />
streams(split),(un)capitalisingcharacters(upper, lower),<strong>and</strong>mergingtwo<br />
streams<strong>of</strong>characters(merge).<br />
Thediagram<strong>of</strong>CaPiTaLiZe’smoduleviewisdepictedinFigure8.3(c)<br />
. In this UML class diagram we represent architectural modules with<br />
UMLPackages<strong>and</strong>use-relationswith UMLDependencies, assuggested<br />
byClementsetal.[2002a].<br />
8.4.1 Module-UsesView<br />
Metamodel Module-usesviewsarebasedonaspecialtype<strong>of</strong>dependency<br />
relation:theusesrelation. Assuch,theseviewsonlycontainonetype<strong>of</strong><br />
element<strong>and</strong>onetype<strong>of</strong>relation[Clementsetal.,2002a].<br />
Although UMLiswell-suited<strong>and</strong>thereforealsotypicallyusedinthe<br />
primary presentation <strong>of</strong> module views, we developed a small custom<br />
metamodeltoillustrateMDAV. ThisMADLmetamodelisspecifiedinFigure8.3(a)<br />
usingtheMOF.InadditiontoaModuleelement<strong>and</strong> userelation<br />
itdefinesan Implementationtoconsist<strong>of</strong>aset<strong>of</strong>modulesthatmay use<br />
othermodules.NotethatthismetamodelisdifferentthantheMADLmetamodelinFigure6.6(b)onpage113.Althoughbothareusedtoaddressthe<br />
sameconcerns,theirpurposeisdifferent(documentationvs.conformance<br />
checking). Forthatreason,theuse-relationismodelledbythelatterasa<br />
first-classmodellingelement(toallowspecifyingitsconformance).
8.4. UsingMDAVtoGenerateViews 175<br />
System<br />
−name :String<br />
+ modules<br />
(a)MADLmetamodel<br />
*<br />
Module<br />
−name :String<br />
+ use<br />
*<br />
(b)MADLmodel<strong>of</strong>CaPiTaLiZeinEMFeditor<br />
Driver<br />
Split Upper Lower<br />
Merge<br />
Config IOlib<br />
(c)MADLdiagram(UML)<br />
Figure 8.3:MADL
176 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
rule Package {<br />
from m:MADL!Module<br />
to p:UML!Package (<br />
name
8.4. UsingMDAVtoGenerateViews 177<br />
8.4.2 Component-<strong>and</strong>-ConnectorView<br />
Metamodel ForC&Cviews,wedefineametamodelforasimpleADLsimilar<br />
toACME[Garlanetal.,2000],anADLinterchangelanguagethatcoversthe<br />
mostconstructsinawiderange<strong>of</strong>ADLs.<br />
ConsiderthemetamodelfortheADL(CCADL)inFigure8.4(a)onthefollowingpage.UsingCCADLthearchitecture<strong>of</strong>aSystemconsists<strong>of</strong>aStyle,a<br />
set<strong>of</strong> Components,<strong>and</strong>aset<strong>of</strong> Connectors.Acomponentownsaset<strong>of</strong> Ports<br />
viawhichitinteractswithitsenvironment.Similarlyaconnectorownsa<br />
set<strong>of</strong> Rolesthatdefinewhatbehaviourisexpectedfromtheparticipants<br />
intheinteractiontheconnectorrepresents.Byattachingconformingroles<br />
<strong>and</strong>ports,configurations<strong>of</strong>components<strong>and</strong>connectorscanbecreated.Finally,thestyledefinesthetypes<strong>of</strong>components(ComponentType),connectors<br />
(ConnectorType),roles(RoleType),<strong>and</strong>ports(PortType). Themaindifference<br />
withthe CPADLmetamodeldepictedinFigure6.6(a)onpage113isthat<br />
component,connector,role,<strong>and</strong>porttypesaredefinedonthemodellevel<br />
instead<strong>of</strong>onthemetamodellevel.<br />
<strong>Model</strong>creation Again,astraightforwardapproachtocreateCCADLmodels<br />
istousetheeditorgeneratedbyEMF.Figure8.4(b)onthefollowingpage<br />
displaysascreenshot<strong>of</strong>thiseditor,whileeditingtheCaPiTaLiZeCCADL<br />
model. Whenconsideringthecomplexity<strong>of</strong>the CCADLmetamodel(comparedtotheMADLmetamodel),itbecomesclearthateditingmodelsusing<br />
thiseditorisinconvenient.Usingthiseditoritisnotpossible,forinstance,<br />
toimmediatelydeterminethecomponent<strong>and</strong>connectortypes<strong>and</strong>underst<strong>and</strong>theirconfiguration.<br />
Asanalternative, weproposetouseasimple XMLDocumentType<br />
Definition(DTD)orschemathatallowstodescribeassociatedmodelsas<br />
simpleaspossible. Afragment<strong>of</strong>anXMLdocumentconformingtosucha<br />
DTDdescribingthesameCaPiTaLiZesystemisdepictedinListing8.2on<br />
page179. NotethattheDTDwedefinedallowstoseparatelyspecifythe<br />
configuration<strong>of</strong>components<strong>and</strong>connectorsasaset<strong>of</strong>attachments.<br />
IfweusesimpleXMLdocumentstospecifysystemsinCCADL,weseparatelyneedtopopulateamodelconformingtotheCCADLmetamodel.Severalapproachescanbeusedtopopulateamodel.<br />
Onepossibilityistodevelopaso-calledinjector,aprogramthatparses<br />
afile<strong>and</strong>usestheapplicationprogramminginterface(API)generatedby<br />
EMFtoinstantiateacorrespondingmodel. Ingeneral,aninjectorisused<br />
tobridgetwodifferentdomains,inthiscasetheXML<strong>and</strong>modelware(MOF)<br />
domains.Inthecontext<strong>of</strong>MDEsuchdomainsarealsoreferredtoasTechnologicalSpaces[Kurtevetal.,2002].
178 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
RoleType<br />
−name :String<br />
+ roleTypes<br />
System<br />
−name :String<br />
+ portTypes * * + componentTypes<br />
PortType<br />
ComponentType<br />
−name :String<br />
*<br />
Style<br />
−name :String<br />
ConnectorType<br />
−name :String<br />
*<br />
+ connectorTypes<br />
+ style<br />
−name :String<br />
+ type<br />
+ type<br />
(a)CCADLmetamodel<br />
(b)CCADLmodel<strong>of</strong>CaPiTaLiZein<br />
EMFeditor<br />
Figure 8.4:CCADL<br />
*<br />
+ connectors<br />
+ components<br />
*<br />
><br />
upper<br />
Connector<br />
−name :String<br />
*<br />
Role<br />
−name :String<br />
0..1<br />
Port<br />
−name :String<br />
+ ports *<br />
+ roles<br />
+ role 0..1<br />
+ port<br />
Component<br />
−name :String<br />
input<br />
><br />
split<br />
> ><br />
><br />
><br />
merge<br />
output<br />
><br />
lower<br />
(c)CCADLdiagram<br />
(UML)<br />
>
8.4. UsingMDAVtoGenerateViews 179<br />
...<br />
<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
<br />
...<br />
<br />
<br />
...<br />
<br />
<br />
Listing 8.2:C&Cmodel<strong>of</strong>CaPiTaLiZe(XML)<br />
Asanalternative,wereusetheXMLinjector,<strong>and</strong>XMLmetamodel(see<br />
Figure8.5onthefollowingpage)providedbytheATLproject 1 . Basedon<br />
anXMLdocumentthisinjectorinstantiatesamodelthatconformstothe<br />
XMLmetamodel.Subsequently,wetransformthismodelintoamodelthat<br />
conformstotheCCADLmetamodelusingATLmodeltransformations.The<br />
latterapproachrequiresthesmallesteffortbecauseitreusesexistinginjectors<strong>and</strong>metamodels,<strong>and</strong>onlyrequiresustospecifyatransformation<br />
thatmapstheXMLmetamodeltoourCCADLmetamodel.<br />
ThetransformationtoinstantiateaCCADLmodelbasedonan(injected)<br />
XMLsourcemodelisstraightforward. Listing8.3onthenextpagecontainsafragment<strong>of</strong>thistransformation.TherulematchesallXMLelements<br />
named ’Component’.ForeachitcreatesaComponentintheCCADLmodel.<br />
The type<strong>and</strong> namefeaturesareinitialisedusingtwohelpers, getType<strong>and</strong><br />
getName.TheynavigatetheXMLmodeltoextractthedesiredinformation.<br />
Forthe typefeaturethisisanotherXMLElementthat,inturn,matches<br />
arulethatcreatesComponentTypes. Theotherelements<strong>of</strong>the CCADL<br />
metamodelareinstantiatedbysimilarrules.<br />
1 http://www.eclipse.org/m2m/atl(June2007)
180 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
Node<br />
−name :String<br />
−value :String<br />
+ children<br />
+ parent<br />
Attribute Text Element<br />
*<br />
Root<br />
Figure 8.5:XMLmetamodel<br />
rule Component {<br />
from el:XML!Element(<br />
el.name=’Component’)<br />
to c:CCADL!Component(<br />
type
8.5. IndustrialApplication 181<br />
rule Association {<br />
from conn:CCADL!Connector<br />
to asoc:UML!Association(<br />
name
182 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
basedonamodel<strong>of</strong>anSMCsysteminterms<strong>of</strong>tasks<strong>and</strong>resources. The<br />
associatedmetamodelisshowninFigure8.6(a)onpage184.<br />
Task-resourcemodelsconsist<strong>of</strong>astatic<strong>and</strong>adynamicpart.Thestatic<br />
partmodelsthecontrolled Systembyspecifyingthe Behaviours(manufacturingactivities)itcanperform,the<br />
Capabilitiesthisrequires,<strong>and</strong>the Resources<br />
(subsystems)itcontrolsto<strong>of</strong>ferthosecapabilities.Thedynamicpartmodelsthemanufacturingrequeststhecomponentcanperforminterms<strong>of</strong><br />
(simple,conditional,orcompound) Tasksthatare<strong>of</strong>aspecificBehaviour.<br />
Precedencerelationsbetweentasksareusedtospecifyrestrictionsonexecutionorder.<br />
Basedonthemetamodel,toolscanbedevelopedforthegeneration<strong>of</strong><br />
sourcecode,modelvalidation,<strong>and</strong>others<strong>of</strong>twareengineeringtasksthat<br />
canbeautomated.Weusedit,forinstance,asthetarget<strong>of</strong>amodeltransformationthatautomatesthemigration<strong>of</strong>SMCcomponentsfromastatebasedtoatask-resource-basedarchitecture(seeChapter7).<br />
<strong>Model</strong>creation Inthiscase,task-resourcemodelswereobtainedbytheautomaticmigration<strong>of</strong>legacySMCmodels(basedonstatemachines)tomodelsbasedonthetask-resourcearchitecture.<br />
Assuch,ameanstocreate<br />
task-resourcemodelsdirectlywasnotyetrequired.WhenSMCsystemsare<br />
developedbasedonthetask-resourceapproachfromscratch,suchmeans<br />
wouldberequired. Inthatcase,one<strong>of</strong>thealternativespresentedinthe<br />
previoussectioncanbeused.<br />
Anexample<strong>of</strong>ageneratedtask-resourcemodel(asresult<strong>of</strong>theautomated<br />
migration) inspected using the EMF editor is depicted in Figure8.6(b)onpage184.Thiseditorwasgeneratedbasedonthemetamodel<br />
wedefined(Figure8.6(a)onpage184).Apartfromthiseditortherewasno<br />
(moreadvanced)editoravailableforthesemodels.<br />
UMLmapping Forthedocumentation<strong>of</strong> SMCsystemsbasedonthetaskresourcearchitecturewedefinedaviewpoint.Duetothelack<strong>of</strong>aconvenienteditortovisualisetask-resourcemodels<strong>and</strong>totakeadvantage<strong>of</strong>availabletooling<strong>and</strong>experience,theviewpointprescribesthatsuchmodelsaredepictedusingUMLdiagrams.Assuch,thealignment<strong>of</strong>thetaskresourceviewdocumentationwiththetask-resourcemodelsfromwhich<br />
codecanbegenerated,involvedamapping<strong>of</strong>thecorrespondingmetamodel<br />
toUML.<br />
Forthedocumentation<strong>of</strong>aconformingview, separatediagramsare<br />
usedforthestaticpart<strong>and</strong>foreach<strong>of</strong>thepossiblerequests<strong>of</strong>thedynamicpart.Fortheformer,aUMLClassDiagramisusedinwhichaClass<br />
withappropriateStereotypeisusedtorepresentaBehaviour,Capability,<br />
orResource. Forthelatter,UMLActivityDiagrams(oneforeachrequest)
8.5. IndustrialApplication 183<br />
rule ActionState {<br />
from st:TRS!SimpleTask<br />
to state:UML!ActionState (<br />
name
184 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
+ capability<br />
CapabilityUsage<br />
+ beginState :EInt<br />
+ endState :EInt<br />
+ requires<br />
Resource<br />
+ name :EString<br />
+ fulfils<br />
Capability<br />
+ name :EString<br />
*<br />
Behaviour<br />
+ name :EString<br />
*<br />
+ resources<br />
*<br />
+ capabilities<br />
1..*<br />
+ behaviours<br />
+ behaviour<br />
SystemDefinition<br />
+ requests<br />
+ id :EString<br />
*<br />
+ tasks<br />
+ iftrue<br />
AndTask<br />
Request<br />
+ name :EString<br />
OrTask<br />
+ condition :EString<br />
Static Dynamic<br />
1..*<br />
+ predecessors<br />
*<br />
+ tasks<br />
1..* + iffalse<br />
Task<br />
SimpleTask<br />
Created with Poseidon for UML Community Edition. Not for Commercial Use.<br />
(a)Task-resourcemetamodel<br />
(b)Task-resourcemodel<br />
check RCB comm.<br />
<br />
transfer W2U<br />
[combined_load]<br />
<br />
move UR to rotate<br />
check RCB comm.<br />
report done<br />
[not(combined_load)]<br />
<br />
finish exchange<br />
(c)Task-resourcediagram(UML)<br />
Figure 8.6:Task-resourcemetamodel,model,<strong>and</strong>UMLrepresentation
8.6. Discussion 185<br />
8.6 Discussion<br />
Ourapproachhasseveralbenefits. Itreducestheeffortrequiredforthe<br />
introduction<strong>of</strong>MDEapproachesbycircumventingtheneedtospecifically<br />
developgraphicaleditorsforthevisualisation<strong>of</strong>DSMLmodels. FurthermoreitallowstointroduceanMDEapproachgradually;UMLdiagramscan<br />
continuetobeusedfordocumentationpurposes. Assuch,inthecase<strong>of</strong><br />
s<strong>of</strong>twarearchitecture,itfacilitatestheintegration<strong>of</strong>ADLs<strong>and</strong>supporting<br />
toolsinindustrialdevelopmentprocesses.<br />
AspresentedheretheapproachusesMDAtechnologyformodeltransformations<strong>and</strong>metamodelling.Theunderlyingideasareapplicabletoother<br />
MDEapproachesaswell:eitherbyusingtheavailabletransformation<strong>and</strong><br />
metamodellingtechnologiesforthatMDEapproach,orbyimplementinga<br />
bridgetoMDA.Wegaveanexample<strong>of</strong>thelatterinSection8.4.2forXML.<br />
Ofcourse,thediagramsthataregeneratedautomaticallyusingourapproach,onlyconstituteaminorpart<strong>of</strong>thecompletedocumentation.Architecturalviews,forinstance,typicallyalsodocument(some<strong>of</strong>)therationale<strong>and</strong>trade-<strong>of</strong>fsthatunderliedesigndecisions[Clementsetal.,2002a].<br />
Infact,anarchitecturalviewcanbeseenas‘diagrams+explainingtext’.<br />
Althoughthe‘explainingtext’isnotautomaticallyupdatedusingourapproach,itdoesprovideastartingpointfordoingso(i.e.,thenewlygenerateddiagram).<br />
WhetheramappingtoUMLisfeasible,dependsonthetype<strong>of</strong>models<br />
involved<strong>and</strong>thedocumentationrequirements.Apotentialrisk<strong>of</strong>ouruse<br />
<strong>of</strong> UML,isthatthe UMLsemanticsmightnotmatchwiththesemantics<br />
<strong>of</strong>therepresented(DSML)modelelements,resultinginambiguities. In<br />
thesecasesappropriatestereotypesshouldbeintroduced.Asanexample,<br />
considerthestereotypesinFigure8.4(c)onpage178. Thesestereotypes<br />
areincludedintheATLmappingswedefined.<br />
Inthecasethatthesemanticgapbetweentheinvolvedmetamodel<strong>and</strong><br />
UMListoolargetobesolvedwithstereotypes,instead<strong>of</strong>UML,moregeneric<br />
graphlanguagessuchasdot 1 <strong>and</strong>GXL 2 couldbeusedastarget<strong>of</strong>themapping.<br />
Theeffortrequiredforspecification<strong>of</strong>themappingstoUMLismainly<br />
determinedbythecomplexity<strong>and</strong>size<strong>of</strong>theDSMLmetamodel.Typically,<br />
thesearerelativelysmall(e.g.,comparedtoUML).Furthermore,suchmappingscanbeeitherspecificallydeveloped(asinthecase<strong>of</strong>task-resource<br />
models)orreused(asinthecase<strong>of</strong>ADLs).Inthelattercasetheyonlyneed<br />
tobespecifiedasamodeltransformation.<br />
1 dot-LanguageusedbyGraphviz(GraphVisualisationS<strong>of</strong>tware),seehttp://www.<br />
graphviz.org(June2007)<br />
2 GXL-GrapheXchangeLanguage,seehttp://www.gupro.de/GXL(June2007)
186 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
Ourapproachfocusesonvisualisation<strong>of</strong>DSMLmodels.Itdoesnot<strong>of</strong>fer<br />
visualeditingformodelsconformingtocomplexmetamodels. Whenthat<br />
isrequired,editorshavetobedevelopedspecifically.Technologytopartly<br />
generatesucheditorsisprovidedintheEclipseGraphicalEditingFramework<br />
1 (GMF)usingEMF. Basedonthespecification<strong>of</strong>aconcretesyntax<br />
<strong>and</strong>theabstractsyntaxspecifiedbyametamodelthisplugincangenerateaneditor.However,inthecasethatonlyvisualisationisrequired,our<br />
approach<strong>of</strong>fersalightweightalternative.<br />
Anotheralternativeistosimplymanuallycreatedocumentationinstead<br />
<strong>of</strong>automaticallyasinourapproach.Inthatcasethediagramscorrespondingtosomes<strong>of</strong>twaremodelsarecreated(drawn)manuallyusingmodelling<br />
ormoregenerictools. Obviously,consistencybecomesanissuewithsuch<br />
anapproach.<br />
8.7 RelatedWork<br />
Fondement<strong>and</strong>Baar[2005]presentanapproachtospecify(graphical)concretesyntaxbyextendingmetamodels.Basedonthisapproachtoolscould<br />
bedevelopedto(partly)generatecorrespondingeditors. Instead,wetake<br />
advantage<strong>of</strong>existingUMLtools.<br />
Medvidovicetal.[2002]investigatetheuse<strong>of</strong> UMLinthedomain<strong>of</strong><br />
s<strong>of</strong>twarearchitecture. Moreinparticular,theyinvestigatehowmodelling<br />
constructsusedinADLs(i.e.,atype<strong>of</strong>DSML)canberepresentedusingUML.<br />
TheyconsidertwoapproachesforusingUMLtomodels<strong>of</strong>twarearchitectures:(1)useUML‘as-is’,<strong>and</strong>(2)useUML’sextensionmechanisms.<br />
They<br />
concludethatUMLhasanumber<strong>of</strong>limitationswhenusedtomodels<strong>of</strong>twarearchitectures.<br />
Thelack<strong>of</strong>architecturalmodellingconstructsmakes<br />
itnecessarytoadoptspecificinterpretations<strong>of</strong>UMLmodelelementsorto<br />
relyonOCLtoconstraintheuse<strong>of</strong>modelconstructs. Inthischapterwe<br />
investigatedathirdstrategythatisbasedonthedefinition<strong>of</strong>metamodels<br />
forADLs<strong>and</strong>theirmappingtoUMLusingmodeltransformations.<br />
FivestrategiesforrepresentingarchitecturalstructureinUMLaredescribedbyGarlanetal.[2002].Theyconcludethatthereisnosinglebest<br />
waytodothis. Furthermore,theyidentifyatrade-<strong>of</strong>fbetweencompleteness<strong>and</strong>legibility:strategiesthatassigndifferentUMLmodelelementsfor<br />
eachADLconstruct(completeness)tendtobeveryverbose<strong>and</strong>hencepoorly<br />
readable(legibility).One<strong>of</strong>theirrecommendationstosolvethis,istocontinuetouseADLsbuttoprovidemappingstoobject-orientednotations.Inthecurrentchapterwespecifiedsuchmappingsusingmodeltransformations,whichmakesthemautomated.<br />
1 http://www.eclipse.org/gmf(June2007)
8.8. ConcludingRemarks 187<br />
WhereweproposetouseMOFforthedefinition<strong>of</strong>DSMLs,Dash<strong>of</strong>yetal.<br />
[2005]useXMLforthedefinition<strong>of</strong>ADLs. Itprovidesgenerichigh-level<br />
XMLschemasthatcanbeextendedfordevelopment<strong>of</strong>ADLs.Theyleverage<br />
theavailabletoolsupportforXML. AsweuseMOF,weleverageavailable<br />
UML<strong>and</strong>MOFtoolsaswell.Thisenables,forinstance,thespecification<strong>of</strong><br />
transformationsonahigherlevel<strong>of</strong>abstractionbyamodeltransformation<br />
language.<br />
8.8 ConcludingRemarks<br />
InthischapterweproposedtocombineDSMLmodels<strong>and</strong>UMLdiagrams<br />
formodel-drivens<strong>of</strong>twaredocumentation.WhereMDEapproachestypically<br />
aimtouseDSMLmodelstoautomaticallycreatesourcecode,ourapproach<br />
complementsMDEwiththe(partial)creation<strong>of</strong>documentation.<br />
Themainmotivationforourapproachistheobservationthatalthough<br />
DSMLshaveclearadvantagesovergeneral-purposemodellinglanguages,<br />
itrequiresconsiderableefforttodevelopgraphicaleditors<strong>and</strong>representations.Inparticular,thedefinition<strong>and</strong>implementation<strong>of</strong>theirconcretesyntaxornotationismuchmoreinvolvedthanthat<strong>of</strong>theirabstractsyntax,whichissupportedbytechnologies,suchasMOF<strong>and</strong>EMF.<br />
Thisisa<br />
problem,asgraphicalrepresentations<strong>of</strong>modelsareanessentialpart<strong>of</strong><br />
s<strong>of</strong>twaredocumentation.<br />
Ourapproachusesmodeltransformationsto(automatically)mapDSML<br />
modelstoUMLmodels.TheseUMLmodelsareeasilyvisualisedasUMLdiagramsusingavailablemodellingtools.WhiletheDSMLmodelscanbeused<br />
forcodegeneration<strong>and</strong>otherautomateds<strong>of</strong>twareengineeringtasks,these<br />
diagramsareusedinthedocumentation.Assuch,ourapproachallowsto<br />
optimisebothcompleteness(bytheADLmodel)<strong>and</strong>legibility(bytheUML<br />
diagram)<strong>of</strong>architecturedescriptions. Furthermore,part<strong>of</strong>thedocumentationcanbeautomaticallyupdatedasthes<strong>of</strong>twaresystemevolves.<br />
Application<strong>of</strong>ourapproachrequiresthedefinition<strong>of</strong>aDSMLmetamodel<br />
usingMOF<strong>and</strong>mappingstoUMLusingmodeltransformations.Thisneeds<br />
tobedoneonceforeachDSMLused.Furthermore,ameanstocreateassociatedmodelsisrequired.Wegaveseveralexamplesforthis.Comparedto<br />
thedevelopment<strong>of</strong>acompletegraphicaleditorforthedefinedmetamodel,<br />
ourapproachismorelightweight.<br />
Weevaluatedourapproachinthedomain<strong>of</strong>s<strong>of</strong>twarearchitecture,for<br />
whichwedefinedMDAV. Itrefinestheindustryst<strong>and</strong>ardforarchitecture<br />
documentation(IEEEStd1471-2000)bylinkingarchitecturalviews(documentation)toarchitecturalmodelsusingmodeltransformations<strong>and</strong>UML.<br />
MDAViseasilygeneralisedtootherdomains.Asanexample,wediscussed<br />
anindustrialapplicationinthedomain<strong>of</strong>controlsystems.
188 Chapter8. Visualisation<strong>of</strong>DSMLs<br />
Currentlyweareinvestigatinghowtheproposedmodeltransformationscanbestbeintegratedwithexistingtooling<strong>and</strong>developmentprocesses.Anotherproblemweareinvestigatingisthe(automatic)derivation<br />
<strong>of</strong>metamodels(e.g.,basedonMOF)fromgrammars(e.g.,basedonEBNF).A<br />
solutiontothisproblemincreasestheeffectiveness<strong>of</strong>ourapproachwhen<br />
appliedtoexistingDSMLsthatarenotbasedonMDAtechnology.
Chapter9<br />
Conclusion<br />
Thegoal<strong>of</strong>thisthesisistoinvestigatetechniquesthatreducetherisks<br />
<strong>and</strong>costsinvolvedintheevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.Tostructure<br />
thisproblemweintroducedfours<strong>of</strong>twareevolutiontaskstobeinvestigated<br />
further:evaluation,conformancechecking,migration,<strong>and</strong>documentation.<br />
Asaconclusion,inthischapterwerevisittheresearchquestionswe<br />
raisedintheintroduction<strong>of</strong>thisthesisusingourexperiences<strong>and</strong>observationsasdiscussedinthepreviouschapters.Themainquestionwas:<br />
RQ0Howcantheevolution<strong>of</strong>s<strong>of</strong>twarearchitecturesbesupported?<br />
Belowweaddressthisquestionbyfirstdiscussingthesubquestionswe<br />
raised:<br />
RQ1Howtointegratethesupportfors<strong>of</strong>twareevolutiontasksinpractice,<br />
consideringtheinformaluse<strong>of</strong>modellinglanguages<strong>and</strong>preference<br />
forproventechnologiesinindustry?<br />
RQ2Whatistheimpact<strong>of</strong>theuse<strong>of</strong>s<strong>of</strong>twareproductlines<strong>and</strong>platforms<br />
onthesupportfors<strong>of</strong>twareevolutiontasks?<br />
RQ3Towhatextentcanthesupportfors<strong>of</strong>twareevolutiontasksbeautomatedbytheuse<strong>of</strong>model-drivenengineering?<br />
Wherethechapters<strong>of</strong>thisthesisaremainlysetupaccordingtothe<br />
s<strong>of</strong>twareevolutiontasksintroducedinChapter1,theoutline<strong>of</strong>thisconclusionisbasedonourresearchquestions.Afteralist<strong>of</strong>ourcontributions,<br />
theresultsforeach<strong>of</strong>themarediscussedinaseparatesectionbelow.We<br />
concludewithafinallist<strong>of</strong>recommendations<strong>and</strong>futurework.<br />
189
190 Chapter9. Conclusion<br />
9.1 Contributions<br />
Intheprocess<strong>of</strong>findinganswerstoourresearchquestions,wesurveyed<br />
thecurrentstate<strong>of</strong>thepractice<strong>of</strong>s<strong>of</strong>twareengineeringinindustry<strong>and</strong><br />
developedsolutionsthatsupportthes<strong>of</strong>twareevolutiontaskswedefined.<br />
Togetherwiththeanswerstoourresearchquestions,thesearethemain<br />
contributions<strong>of</strong>thisthesis:<br />
•anoverview<strong>of</strong>thes<strong>of</strong>twareengineeringtechnologiesusedinindustry<br />
forthedevelopment<strong>of</strong>embeddeds<strong>of</strong>tware(seeChapter3);<br />
•an approach for the evaluation <strong>of</strong> product-line architectures (see<br />
Chapter4);<br />
•amodel-drivenapproachforcheckingtheconformancebetweenstatebased<strong>and</strong>interaction-basedbehaviouralmodels(seeChapter5);<br />
•amodel-driven <strong>and</strong> view-based approach for automatically checkingtheconformancebetweenimplementation<strong>and</strong>architecture(see<br />
Chapter6);<br />
•amodel-drivenapproachforthemigration<strong>of</strong>supervisorymachine<br />
controlarchitectures(seeChapter7);<strong>and</strong><br />
•amodel-drivenapproachforsimultaneousevolution<strong>of</strong>models<strong>and</strong><br />
documentation based on views, the Unified <strong>Model</strong>ing Language 1<br />
(UML),<strong>and</strong>the<strong>Model</strong><strong>Driven</strong>Architecture 2 (MDA)(seeChapter8)<br />
One<strong>of</strong>thedistinguishingcharacteristics<strong>of</strong>ourworkliesinthefactthat<br />
wetakeintoaccountseveraladvancesins<strong>of</strong>twaredevelopmentpractices,<br />
thatis,s<strong>of</strong>twareproductlines<strong>and</strong>model-drivenengineering(MDE).Atthe<br />
sametimeweconsidertheimpact<strong>and</strong>application<strong>of</strong>theseapproachesin<br />
terms<strong>of</strong>s<strong>of</strong>twareevolution,whichtakesupmost(upto90%)<strong>of</strong>thetime,effort,<strong>and</strong>money<strong>of</strong>s<strong>of</strong>twaredevelopmentprojects<strong>and</strong>organisations[Lientz<br />
etal.,1978;Pigoski,1996]. Furthermore,weexplicitlyensuredthatthe<br />
methods<strong>and</strong>techniquesweproposedareamenabletobeintegratedinindustrialdevelopmentpractices.<br />
9.2 IntegrationinPractice(RQ1)<br />
AnimportantobservationfromthesurveywereportedoninChapter3is<br />
thegapbetweens<strong>of</strong>twareengineeringtechnologiesactuallyusedinindustry<strong>and</strong>thosedevelopedbytheresearchcommunity.<br />
Toreducethisgap,<br />
1 http://www.uml.org(June2007)<br />
2 http://www.omg.org/mda(June2007)
9.2. IntegrationinPractice(RQ1) 191<br />
wecontinuouslyconsideredindustrialintegrationasanimportantaspect<br />
<strong>of</strong>thesolutionsweproposed. Inparticularweaimedatreducingtheorganisationalimpact<strong>of</strong>oursolutions<strong>and</strong>addressedtheadoption<strong>of</strong><br />
MDA<br />
st<strong>and</strong>ards.<br />
ReducingOrganisationalImpact Instead<strong>of</strong>definingnewlanguages<strong>and</strong>methods,weusedexistingindustrialst<strong>and</strong>ardsasmuchaspossible(i.e,those<br />
relatedtotheMDA)<strong>and</strong>tookintoaccountcurrentindustrialpractices,such<br />
astheinformaluse<strong>of</strong>modelling. Ingeneral,weaimedatusing<strong>and</strong>extending(similar)technologiesasalreadyusedinpractice.Additionally,we<br />
triedtominimisetheresourcesrequiredtoapplyoursolutions.<br />
Wedidnotadvocatetheuse<strong>of</strong>newlanguagesifnotstrictlynecessary.<br />
Inthecaseswherewediddefinenewlanguages,theseareusedalongside(Chapter6)oraremappedto(Chapters7<strong>and</strong>8)languagesalready<br />
used(i.e., UML). Moreover,fortheirdefinitionweusedtheMetaObject<br />
Facility 1 (MOF),themetamodellinglanguage<strong>of</strong> MDA. Theadvantageis<br />
thatMOFuseswell-knownobject-orientedconceptstodefinemodellinglanguages.<br />
Furthermore,MOFissupportedbyanincreasingnumber<strong>of</strong>tools<br />
<strong>and</strong>open-sourceimplementationsareavailable(e.g.,theEclipse<strong>Model</strong>ing<br />
Framework 2 (EMF)).<br />
AlthoughUMLisawell-definedlanguage(atleastsyntactically),even<br />
inorganisationswhereUMLisused,modelsare<strong>of</strong>tenveryinformal.Such<br />
models,aremoreusedasillustrativediagramsthanprecises<strong>of</strong>twarespecifications.Toaccountfortheinformaluse<strong>of</strong>modellinglanguagesingeneral,<strong>and</strong>inparticularthat<strong>of</strong>UML,oursolutionsforconformancechecking<br />
(Chapter5)<strong>and</strong>migration(Chapter7)involveaspecificnormalisationstep.<br />
Suchastepisnecessarybecauseouraimtoautomatethesetasksbymeans<br />
<strong>of</strong>modeltransformations,requiresthatinputmodelsstrictlyconformtoa<br />
metamodel.<br />
Currently,thenormalisationstepisessentialfortheapplication<strong>of</strong>our<br />
model-drivensolutionsforthes<strong>of</strong>twareevolutiontasksinindustry. The<br />
mainreasonisthatatpresentmodellinginindustrycanbecharacterised<br />
asimmature[Kleppeetal.,2003],whichwealsoobservedduringoursurvey(seeChapter3).However,whentheuse<strong>of</strong>MDEtechnologiesingeneral,<br />
<strong>and</strong>theassociatedst<strong>and</strong>ardsinparticularbecomesmorewide-spread,we<br />
expectthatthemodellingmaturitylevelinindustrywillrise. Asmodels<br />
becomemoreprecise,theneedfornormalisationisreduced.<br />
To increase the potential for integration in practice it is important<br />
thatas<strong>of</strong>twareengineeringtechniquedoesnotrequireas<strong>of</strong>twaredevelopmentorganisationtochangemuch<strong>of</strong>itscurrentway<strong>of</strong>working<strong>and</strong><br />
1 http://www.omg.org/m<strong>of</strong>(June2007)<br />
2 http://www.eclipse.org/emf(June2007)
192 Chapter9. Conclusion<br />
thattheorganisationalimpactinterms<strong>of</strong>resources<strong>of</strong>thetechniqueis<br />
minimal.Therefore,inChapter4wereducedthenumber<strong>of</strong>stakeholders<br />
involvedintheevaluationapproachasmuchaspossible. Furthermore,<br />
byreducingtheinvolvementperstakeholder,theorganisationalimpactis<br />
minimised. TheresultingarchitectureevaluationprocessisnamedDistributedSAAM(DSAAM)<strong>and</strong>isbasedontheS<strong>of</strong>twareArchitectureAnalysis<br />
Method(SAAM),whichisextensivelydocumented[Kazmanetal.,1994,<br />
1996;Clementsetal.,2002b]). Withstakeholderinvolvementreduced,<br />
DSAAMstillproducedvaluableresults.<br />
Adoption<strong>of</strong>MDASt<strong>and</strong>ards Ourproposaltogenerate UML-baseddocumentation<br />
from domain-specific language (DSL) models in Chapter 8 enables<br />
the adoption <strong>of</strong> MDE approaches. It is expected that in the future<br />
MDE approaches will be more based on domain-specific modelling<br />
languages(DSMLs)thanonUML[Boochetal.,2004;Bézivinetal.,2005].<br />
Thisrequiresaconsiderableshiftfromthecurrentwide-spreaduse<strong>of</strong>UML.<br />
Additionally,theimplementation<strong>of</strong>toolsupportforDSMLsrequiressignificanteffort,forinstance,toimplementmodeleditors<strong>and</strong>visualisations.ThisbecomesevenmoreproblematicwhenanMDEapproachrequiresmultipleDSMLstocompletelyspecify<strong>and</strong>subsequentlygenerateapplications.<br />
Insuchcases,amappingtoUMLcanbeused,whilemovingtocomplete<br />
supportforthoseDSMLswithrespecttomodelling<strong>and</strong>visualisationtools.<br />
Theuse<strong>of</strong>MDAtechnology,mostnotably<strong>of</strong>UML,MOF<strong>and</strong>XMLMetadata<br />
Interchange 1 (XMI),throughoutthechapters<strong>of</strong>thisthesisfurthersupports<br />
theintegration<strong>of</strong>oursolutionsinpractice. Theuse<strong>of</strong>thesest<strong>and</strong>ards<br />
takesadvantage<strong>of</strong>existingtooling<strong>and</strong>skills<strong>of</strong>present-days<strong>of</strong>twarepractitioners.However,althoughtheiruseisanimprovement,thelevel<strong>of</strong>interoperabilityaspromisedbythesest<strong>and</strong>ardsisnotachieved.Withoutinvestigatingtheunderlyingreasons,thiswasalsoobservedbyLundelletal.<br />
[2006]. Amongthereasonsweencounteredduringourresearchareincorrect<strong>and</strong>incompleteimplementation<strong>of</strong>st<strong>and</strong>ardsbytoolvendors(especially<strong>of</strong>UML),<strong>and</strong>theuse<strong>of</strong>differentversions<strong>of</strong>UML,MOF,XMI,<strong>and</strong>combinationsthere<strong>of</strong>.Theconsequenceisthatadditionaltransformationsarerequiredonmodelserialisationsbeforetheycanbeexchangedbetweendifferenttools.Because<strong>of</strong>thelow-levelmodificationsrequiredinsuchcases<br />
ExtensibleMarkupLanguage 2 (XML)processingtools,suchasExtensible<br />
StylesheetLanguageTransformations 3 (XSLT),canbeusedforthis.<br />
1 http://www.omg.org/mda/specs.htm#XMI(June2007)<br />
2 http://www.w3.org/XML(June2007)<br />
3 http://www.w3.org/TR/xslt(June2007)
9.3. S<strong>of</strong>twareProductLines(RQ2) 193<br />
9.3 S<strong>of</strong>twareProductLines(RQ2)<br />
InChapter3wesignalledatrendtowardsapproachesthatallowamore<br />
structuredform<strong>of</strong>reusecomparedtotheadhoctype<strong>of</strong>reusethatistypicalinindustry.<br />
Inthiscontextproductlines<strong>and</strong>MDEaretwoimportant<br />
developments. Weobservedthatdifferentcompaniesareorganisingtheir<br />
s<strong>of</strong>twaredevelopmentsuchthattheirproductsaredevelopedaspart<strong>of</strong>a<br />
s<strong>of</strong>twareproductline.<br />
Theimpact<strong>of</strong>aproduct-linearchitectureonours<strong>of</strong>twareevolution<br />
tasksistwo-fold:<br />
•Theuse<strong>of</strong>s<strong>of</strong>twareproductlinesmakesthetasksmorecomplicated<br />
becausethecorrespondingproduct-linearchitecturesaremoreabstract,applytomultipleproducts,<strong>and</strong>,hence,involvealargernumber<br />
<strong>of</strong>stakeholders;theirscopeislargerwithrespecttotheproducts<strong>and</strong><br />
stakeholdersinvolved.<br />
•Ontheotherh<strong>and</strong>,theuse<strong>of</strong>anarchitecturethatappliestoawhole<br />
set<strong>of</strong>productsimprovesthereturnoninvestmentforsolutionsthat<br />
applytoalltheseproduct-linemembers.<br />
Scope<strong>of</strong>S<strong>of</strong>twareProductLines In Chapter 4 we discuss how the use <strong>of</strong><br />
product-lineprinciplesmakess<strong>of</strong>twarearchitectureevaluationsmorecomplex.Thefindings<strong>of</strong>suchanevaluationaremorebasedonindirectevidence,asscenariosareidentifiedforproduct-linemembers<strong>and</strong>notforthe<br />
productlineasawhole. Furthermore,aproduct-linearchitecturehasa<br />
muchwiderscopethanasingle-productarchitecture,therebyincreasing<br />
thenumber<strong>of</strong>stakeholders. Ourapproachtakesintoaccountboththese<br />
effects.<br />
Werefinedthetypicalclassification<strong>of</strong>scenariosaseitherdirect(i.e.,<br />
scenariosthatdonotrequirechangestothecurrentarchitecture)orindirect(i.e.,scenariosthatdorequirechangestothecurrentarchitecture)<br />
bydistinguishingbetweentwotypes<strong>of</strong>directscenarios:concretescenarios<br />
<strong>and</strong>floatingscenarios.Theformerareexplicitlysupportedbytheproductlinearchitecture,whilethelatterarenotexplicitlysupported,butnotpreventedbyitaswell(rememberthatas<strong>of</strong>twarearchitectureisbothpermissive<strong>and</strong>restrictivewithrespecttotheimplementationsitallows).<br />
Thenumber<strong>of</strong>scenariosthatwillbecharacterisedasfloatingina<br />
product-linearchitectureevaluationdependsonitsmaturity.BythematurityscaleproposedbyBosch[2002],Océ’sproduct-linearchitecturecanbe<br />
characterisedasaplatform.Thismeansthatcommonalitiesareidentified<br />
<strong>and</strong>separatedoutasaplatform,butthatthevariabilitiesarenotmade<br />
explicit. Thisresultsinalargernumber<strong>of</strong>floatingscenarios. However,
194 Chapter9. Conclusion<br />
ifthematurityisraisedbytheidentification<strong>of</strong>variabilities<strong>and</strong>theirexplicitspecificationinaproduct-linearchitecture,alargernumber<strong>of</strong>direct<br />
scenarioscanbeclassifiedasconcrete. Thus,amorematureproduct-line<br />
allowsamorecompleteevaluation.<br />
A drawback <strong>of</strong> scenario-based architecture evaluation approaches is<br />
theirhighorganisationalimpactcausedbytheinvolvement<strong>of</strong>thearchitecture’sstakeholdersinajointevaluationsession,whichcantakeupto<br />
severaldays. Inthecase<strong>of</strong>aproduct-linearchitecturethisproblemis<br />
particularlyimportant.Sucharchitectureshavealargerscoperesultingin<br />
anincreasednumber<strong>of</strong>stakeholders.Therefore,werestrictedthenumber<br />
<strong>of</strong>stakeholdersinvolvedinthejointevaluationsession<strong>and</strong>consultedother<br />
stakeholders separately. This significantly reduced the organisational<br />
impact<strong>of</strong>theevaluation.<br />
IncreasedReturnonInvestment Aswehaveseeninthisthesis,theuse<strong>of</strong>MDE<br />
approachesrequiresconsiderableeffortforthedefinition<strong>of</strong>metamodels,<br />
<strong>and</strong>transformation<strong>and</strong>normalisationrules. Forevolutiontasksthatare<br />
carriedoutonaregularbasis,thiseffortmightbejustified.Evaluationor<br />
conformancecheckingareexamples<strong>of</strong>tasksthatarecarriedoutrepeatedly<br />
atdifferentpointsintime. Aparticularmigration,however,istypically<br />
carriedoutonlyonce. Theimprovedreliability<strong>of</strong>anautomaticmigration<br />
basedonMDEispossiblynotsufficienttomotivatetheextraeffortrequired.<br />
Theuse<strong>of</strong>productlinesallowstojustifytherequiredeffortalsointhe<br />
case<strong>of</strong>amigration,asthiseffortissplitovereach<strong>of</strong>theproduct-linemembers.Assuch,theincreasedreturnoninvestmentforproduct-lineassets,suchasarchitecturedesigns<strong>and</strong>implementations<strong>of</strong>architecturalcomponents,alsoappliestothemodeltransformations<strong>and</strong>metamodelsdevelopedfortheautomation<strong>of</strong>particulars<strong>of</strong>twareengineeringtasks.<br />
Asan<br />
example,inthecase<strong>of</strong>themigrationdiscussedinChapter7forwhichwe<br />
definedanapproachthatisdomainspecifictosomeextent,wecouldreuse<br />
theconcernsweidentified,theircorrespondingpatterns,metamodels,<strong>and</strong><br />
transformationrules.<br />
9.4 <strong>Model</strong>-<strong>Driven</strong>Engineering(RQ3)<br />
Ourgoalwastoreducetherisks<strong>and</strong>costs<strong>of</strong>architectureevolution.Tothis<br />
end,weaimedatautomatingoursolutionsusingMDEtechniques.Automationismadepossiblebyconsideringtheinvolvedmodels(inarchitectural<br />
views)asmodelsintheMDEsense,thatis,specifiedusingawell-defined<br />
(atleastsyntactically)modellinglanguage.WithMDE,modellinglanguages<br />
aredefinedusingmetamodels.Assuch,thisrequiresthecreationorreuse
9.4. <strong>Model</strong>-<strong>Driven</strong>Engineering(RQ3) 195<br />
Source Space MDE Space Target Space<br />
Metametamodel Metametamodel<br />
conforms to<br />
+ source<br />
Normalisation Rules<br />
Normalisation<br />
Transformation Rules<br />
Metamodel Metamodel Metamodel<br />
represented by<br />
conforms to conforms to<br />
Source<br />
+ source<br />
+ target<br />
conforms to conforms to<br />
Source <strong>Model</strong><br />
target<br />
source<br />
+ source + target<br />
represented by<br />
<strong>Evolution</strong> Transformation<br />
conforms to<br />
Generation Rules<br />
+ source<br />
represented by<br />
Generation<br />
Metametamodel<br />
conforms to<br />
+ target<br />
Metamodel<br />
conforms to<br />
Target <strong>Model</strong><br />
Target<br />
+ target + source + target<br />
Figure 9.1:Megamodelformodel-drivenevolution<strong>of</strong>s<strong>of</strong>twarearchitectures<br />
<strong>of</strong>suitablemetamodels. Inparticular,weemployed MDAst<strong>and</strong>ards<strong>and</strong><br />
theirsupportingtools.<br />
Interms<strong>of</strong>theeffortrequiredfortheapplication<strong>of</strong>MDE,theautomation<strong>of</strong>as<strong>of</strong>twareevolutiontaskinvolvesatrade-<strong>of</strong>fbetweentwoaspects:<br />
theprocess<strong>of</strong>(partly)automatingthetask,<strong>and</strong>thesubsequentexecution<br />
<strong>of</strong>the(partly)automatedtask.Theformerdeterminesthecosts<strong>of</strong>following<br />
amodel-drivenapproach,whilethelatterrelatestotheresultingbenefit.<br />
Weexplainallaspects<strong>of</strong>thedeployment<strong>of</strong>MDEtechniquesforthes<strong>of</strong>twareevolutiontasksbymeans<strong>of</strong>thegenericframeworkinFigure9.1.In<br />
Section2.3.2<strong>and</strong>Figure2.6onpage33wereferredtosuchaframeworkas<br />
amegamodel.<br />
AMegamodelfor<strong>Model</strong>-<strong>Driven</strong><strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong> Thedifferent<br />
MDEsolutionsforthes<strong>of</strong>twareevolutiontaskswedefined<strong>and</strong>discussed<br />
inthisthesisleadtothegenericmegamodelformodel-drivenevolution<strong>of</strong><br />
s<strong>of</strong>twarearchitecturesdepictedinFigure9.1.Thismegamodelillustrates<br />
theartefacts<strong>and</strong>theirrelationshipsinvolvedinthemodel-drivensupport<br />
<strong>of</strong>as<strong>of</strong>twareevolutiontask.Werevised<strong>and</strong>extendedthetwo-phasedmigrationprocess<strong>of</strong>Figure7.3onpage137suchthattheprocessesweapplied<br />
intheotherchaptersfittheresultingevolutionmegamodelaswell.
196 Chapter9. Conclusion<br />
Themegamodelinvolvesthreetechnologicalspaces(seeSection2.3.4):a<br />
Source Space,whichcontainsthe Sourceartefactsforaparticularevolution<br />
task;an MDE Space(i.e.,modelware),inwhichweapplymodeltransformationstosupportas<strong>of</strong>twareevolutiontask;<strong>and</strong>aTarget<br />
Space,inwhich<br />
the Targetartefactsaregenerated.Dependingontheevolutioncontext,the<br />
Source<strong>and</strong>TargetmayalsobeintheMDEspace. Otherpossibilitiesinclude,theXML<strong>and</strong>grammarwarespaces.<br />
The <strong>Evolution</strong> TransformationiscarriedoutintheMDESpace<strong>and</strong>transformsaSource<br />
<strong>Model</strong>intoaTarget <strong>Model</strong>. Itisspecified(i.e., represented by)<br />
aset<strong>of</strong> Transformation RulesintheMDESpace.Thisimpliesthattheserules<br />
aredefinedusingamodeltransformationlanguage.This<strong>Evolution</strong>Transformationisspecifictothetaskath<strong>and</strong>.<br />
TheTransformationRulesare<br />
specifiedinterms<strong>of</strong>asource<strong>and</strong>atarget Metamodelassociatedwiththe<br />
source<strong>and</strong> targetmodel<strong>of</strong>thetransformation.<br />
Ascanbeseenfromthisthesis,<strong>of</strong>tennomodelisavailablethatissuitabletoserveassource<strong>of</strong>the<strong>Evolution</strong>Transformation.Insuchcasesan<br />
additionalstepisrequired. Normalisationistheexecution<strong>of</strong>aset<strong>of</strong> Normalisation<br />
Ruleswiththeaim<strong>of</strong>populatingaSource<strong>Model</strong>intheMDESpace<br />
suitableforfurthertransformationusingmodeltransformations.<br />
Finally,inthe Generationstepthe Targetfortheparticularevolutiontask<br />
iscreatedaccordingtoaset<strong>of</strong> Generation Rules.The target<strong>of</strong>theGeneration<br />
stepisinaspecificTargetSpace,forinstance,thegrammarwareorXML<br />
space.<br />
Allinvolvedmodel-levelartefacts(seeFigure2.3onpage30),thatis,<br />
theSource,Source<strong>Model</strong>,Target<strong>Model</strong>,<strong>and</strong>Target conform toaMetamodel.<br />
Itdependsonthetype<strong>of</strong>technologicalspacewhatkind<strong>of</strong>Metamodelis<br />
used,suchasagrammar,MOFmetamodel,orXMLschema.Inturn,these<br />
metamodels conform tothegoverning Metametamodelforthattechnological<br />
space,forinstance,MOFinthecase<strong>of</strong>theMDAspace.<br />
Normalisation Thenormalisationstepweintroducedinseveralcasesisnot<br />
alwaysfullyautomated. Itisthisnormalisationstepthatallowstoautomatesubsequentsteps.Normalisationisforalargepartcontextdependent.Theamount<strong>of</strong>normalisationrequireddependsonthetype<strong>of</strong>source<br />
artefacts,themodellingmaturitylevel,modellingconventions,thescope<strong>of</strong><br />
thesourcelanguage,<strong>and</strong>thetransformationrules.<br />
WhentheSourceSpace<strong>of</strong>thes<strong>of</strong>twareevolutiontaskisnotthesame<br />
astheMDESpace,normalisationatleastincludesabridgebetweenthat<br />
SourceSpace<strong>and</strong>theparticularMDESpace(e.g.,MDA).Insomecasesnormalisationinvolvesnotmorethanthatbridge.Ifthesourceisbasedona<br />
well-definedlanguagethebridgecanbefullyautomated.
9.4. <strong>Model</strong>-<strong>Driven</strong>Engineering(RQ3) 197<br />
NormalisationinChapter6wasslightlymoreinvolved.Here,afterthe<br />
bridgebetweenthegrammarware<strong>and</strong>MDAspaces,forwhichwereused<br />
existinggrammarwaretoXML<strong>and</strong>XMLtoMDAbridges,alsosomeabstractionstepswererequired.Wespecifiedtheseabstractionstepsusingmodel<br />
transformations.Hence,thisnormalisationstepwasals<strong>of</strong>ullyautomated.<br />
Inothercasesnormalisationismoredifficult<strong>and</strong>requiresreplacement<br />
<strong>of</strong>customannotations(seeChapter5),theapplication<strong>of</strong>aUMLpr<strong>of</strong>ile,<br />
ortheapplication<strong>of</strong>st<strong>and</strong>ardidiomsforparticularconcerns(seeChapter7).<br />
Thesecasesinvolvemanualeffortfornormalisationthatrequires<br />
domainknowledge. Asanexample,considertheuse<strong>of</strong>UML,ageneralpurposelanguage(GPL),inChapter7.UMLallowstoexpressaparticularconcernusingamultitude<strong>of</strong>differentidioms.<br />
Therefore,additional<br />
constraints<strong>and</strong>modellingconventionsarerequiredtoreducethecomplexity<strong>of</strong>modeltransformations.<br />
Otherwisesuchtransformationshave<br />
totakeintoaccounttoomanypossibleidiomsforaparticularconcern,as<br />
weillustratedinChapter7. Asasolutionweidentifiedtherelevantconcernsinthedomain<strong>of</strong>supervisorymachinecontrol(SMC)systems.<br />
For<br />
eachconcern,wedefinedasinglecorrespondingdesignidiom,whichconformsstrictlytoacorrespondingmetamodel.WedefinedaUML-SMCpr<strong>of</strong>ile,whichconsists<strong>of</strong>stereotypes<strong>and</strong>well-formednessrulesintheObjectConstraintLanguage<br />
1 (OCL)correspondingtothesedesignidioms. Normalisationinvolvesapplyingstereotypestoappropriatemodelelements<strong>and</strong><br />
modifyingthesourcemodelinsuchawaythatconcernsareconsistently<br />
addressedbytheircorrespondingdesignidiomwithoutviolatingany<strong>of</strong>the<br />
well-formednessrules<strong>of</strong>thepr<strong>of</strong>ile.<br />
Forcomplexnormalisations,weidentifiedatrade-<strong>of</strong>fbetweencomplex<br />
transformationrulestoaccountforalargeidiom<strong>of</strong>possibleinputpatterns,<br />
oramoreextensivenormalisationproceduretoaccountforalargenumber<br />
<strong>of</strong>restrictionsonthesourcemodels(i.e.,tolimitthesize<strong>of</strong>thesourcelanguage).<br />
So,evenincaseswherethesource<strong>of</strong>anevolutiontaskisavalidUML<br />
model(i.e.,amodelthatconformstotheUMLmetamodel),normalisation<br />
canberequiredtorestrictthenumber<strong>of</strong>possiblesourceidiomsresultingin<br />
alesscomplexevolutiontransformation.ThiswasnecessaryinChapter7<br />
<strong>and</strong>toalesserextentalsoinChapter5.<br />
TheneedforrestrictingUMLlikethis,raisesthequestionwhetherthe<br />
use<strong>of</strong>aDSMLdefinedusingMOFinsuchcaseswouldn’tbemoreappropriate.Thisisamatter<strong>of</strong>ongoingdebatebetweentwoschools<strong>of</strong>thoughtin<br />
theMDEcommunity[France<strong>and</strong>Rumpe,2007].Onearguesinfavour<strong>of</strong>the<br />
use<strong>of</strong>anextensiblegeneral-purposemodellinglanguage,whiletheother<br />
promotesthedefinition<strong>of</strong>DSMLs.Incurrentpractice,however,thelack<strong>of</strong><br />
1 http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL(June2007)
198 Chapter9. Conclusion<br />
sufficienttoolsupportforthedefinition<strong>of</strong>DSMLs<strong>and</strong>thewide-spreaduse<br />
<strong>of</strong>UMLareforcompanies<strong>of</strong>tensufficientreasonsforusingUML.<br />
<strong>Evolution</strong>Transformation Exceptforevaluation, oursolutionsforthes<strong>of</strong>twareevolutionstaskswereatleastpartlyautomatedbyspecifyingthem<br />
asmodeltransformationsintheAtlasTransformationLanguage[Jouault<br />
<strong>and</strong>Kurtev,2005](ATL).Inoursolutionfortheconformancecheckingtasks<br />
inChapter6,wehadtwosourcemodels.Ingeneral,wespecifiedthedifferentsteps<strong>of</strong>anevolutiontaskinseparatemodeltransformations.Typically,<br />
multiple<strong>of</strong>suchtransformationsarerequired.<br />
NowthatMDEapproachesthatinvolvethedefinition<strong>and</strong>application<br />
<strong>of</strong>modeltransformationsgetmoreinuse,companiesmightwanttoreconsidertheiruse<strong>of</strong>UML.Inourresearchweexperiencedthattheuse<strong>of</strong>UML<br />
resultsincomplicateddefinitions<strong>of</strong>modeltransformations. Thereasons<br />
forthisaretheaforementionedsize<strong>of</strong>theUMLmetamodel,aswellasits<br />
complexity<strong>and</strong>thefactthatmostUMLmodellingtoolsonlypartiallyimplementtheUMLspecificationor,evenworse,incorrectly.Theformerrelatesto<br />
thetrade-<strong>of</strong>fweidentifiedbetweenthenumber<strong>of</strong>sourcemodelrestrictions<br />
involvedinthenormalisationprocedure<strong>and</strong>thecomplexity<strong>of</strong>subsequent<br />
modeltransformations.<br />
Becausethecurrentstate<strong>of</strong>modellinginindustryissuchthatlanguagesasUMLareonlyusedinformally<strong>and</strong>free-formbox-<strong>and</strong>-linediagramsarealso<strong>of</strong>tenused,theapplication<strong>of</strong>model-drivenapproachesinindustrialcontextstypicallyrequiresthedefinition<strong>of</strong>metamodels.Ofcourse,transformationrulesalsoneedtobespecified.Theextenttowhichtheeffortthatthisrequiresisjustifieddependsontheparticularcontext.<br />
As<br />
discussedaboveinthecase<strong>of</strong>productlinesthereturnoninvestmentfor<br />
thiseffortisincreased. Here,theuse<strong>of</strong>st<strong>and</strong>ardsformodelling,metamodelling,<strong>and</strong>modeltransformations,<strong>of</strong>fersaverystrongbenefit.<br />
They<br />
enable,forinstance,thecreation<strong>of</strong>repositoriestosharetheseMDEartefactsamongdifferentprojects,productlines,<strong>and</strong>companies.<br />
Infact,we<br />
contributedthemodeltransformationswedefinedinChapter5forthe<br />
generation<strong>of</strong>astatemodelfromaset<strong>of</strong>scenariostosucharepository 1 .<br />
Inothercases,wereusedmetamodels(e.g.,metamodelsforDOT<strong>and</strong>XML)<br />
<strong>and</strong>transformations(e.g.,DOTtotext)availablefromrepositoriesourselves<br />
aswell.<br />
Generation Thefinal(code)generationstepiswell-studiedintheMDEliterature.Forthatreason,wedecidednott<strong>of</strong>ocusonthisstepinthisthesis,directingourattentiontothenormalisation<strong>and</strong>transformationstepsinstead.Nevertheless,aftertheexecution<strong>of</strong>theevolutiontransformation(s),<br />
1 http://www.eclipse.org/gmt/atl/atlTransformations(June2007)
9.5. Supportfor<strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong>(RQ0) 199<br />
typically,someoutputneedstobegenerated,possiblyinadifferenttechnologicalspace.Theresultcanbe,forinstance,sourcecode,diagrams,oran<br />
XMLrepresentation<strong>of</strong>thetargetmodel.Examples<strong>of</strong>suchgenerationsteps<br />
inthisthesisincludethefollowing:<br />
•InChapter5generationencompassesserialisingtheresult<strong>of</strong>theevolutiontransformationusingXMIintoXMLwiththeaim<strong>of</strong>loadingthe<br />
targetmodelinaUMLmodellingtoolforvisualisation. Essentially,<br />
theXMIst<strong>and</strong>ardprovidesthenecessarygenerationrulesinthiscase,<br />
<strong>and</strong>actsasabridgebetweentheMDA<strong>and</strong>XMLspace.<br />
•InChapter6wegenerateDOTcodeinthegrammarwarespacefrom<br />
thetargetmodel.Thegenerationrulesincluderulestomapthetargetmodel<strong>of</strong>theevolutiontransformationtoa(MOF-based)DOTmodel<strong>and</strong>rulestogenerateDOTsourcecodefromthatDOTmodel.Wedefinedtheformerourselves,<strong>and</strong>reusedthelatterfromarepository<strong>of</strong><br />
modeltransformations.<br />
•Finally,inChapter8,thegoal<strong>of</strong>theevolutiontaskistovisualise<br />
DSMLmodelsasUMLdiagramstobeincludedindocumentation.Here,<br />
thegenerationstepisthetransformation<strong>of</strong>aUMLmodelinsome<br />
graphicalformat,suchasScalableVectorGraphics 1 (SVG)(intheXML<br />
space)orPostScript(inthegrammarwarespace).<br />
9.5 Supportfor<strong>Evolution</strong><strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong>(RQ0)<br />
Havinglookedatthethreesubquestions,wereturntothemainquestion,<br />
howtosupporttheevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.Wefirstrevisitthe<br />
fours<strong>of</strong>twareevolutiontasks,<strong>and</strong>thendiscussthescope<strong>of</strong>theindustrial<br />
casestudiesweconducted.<br />
S<strong>of</strong>tware<strong>Evolution</strong>Tasks Byvalidatingtheresearchresultsbymeans<strong>of</strong>industrialcasestudies,anevaluation<strong>of</strong>theapplicability<strong>of</strong>ourtechniquesin<br />
tothes<strong>of</strong>twareevolutiontasksinindustrialpracticewasobtained.<br />
For evaluations, in contrast with other approaches (e.g., Gallagher<br />
[2000];Olum<strong>of</strong>in<strong>and</strong>Mišlić[2006]),DSAAMspecificallytakesintoaccount<br />
thedifferenceinscope(i.e., withrespecttoproducts<strong>and</strong>stakeholders)<br />
betweensingle-productarchitectures<strong>and</strong>product-linearchitectures. In<br />
fact,Océusedtheresults<strong>of</strong>ourevaluationtodecidetocontinuewiththe<br />
development(evolution)<strong>of</strong>theirreference(product-line)architecture.<br />
1 http://www.w3.org/Graphics/SVG(June2007)
200 Chapter9. Conclusion<br />
Wediscussedtwoapproachesforconformancechecking. Oneisfully<br />
automatic,whiletheotherrequiresamanualcomparison.Weappliedthe<br />
latterinChapter5totheembeddeds<strong>of</strong>twareforcopiersdevelopedbyOcé<br />
<strong>and</strong>asmallATMexample.Inbothapplicationswedetectedinconsistencies<br />
thatwouldhavebeendifficulttodetectwithoutoursupport.Althoughthe<br />
actualcomparisonismanual,itismadepossiblebyourautomaticmapping<br />
betweentwotypes<strong>of</strong>architecturalmodels,whichwespecifiedusingmodel<br />
transformations. InChapter6wefocusedonalsoautomatingtheactual<br />
comparisonstep.<br />
Forthemigrationtaskourautomatic,model-drivensolution<strong>of</strong>fersclear<br />
benefitswithrespecttothealternative,amanualmigration.Theneedfor<br />
domainexpertsisreduced<strong>and</strong>thenecessarydefinition<strong>of</strong>asuitablemetamodelincreasestheunderst<strong>and</strong>ing<strong>of</strong>themigrationitself<strong>and</strong>thetarget<br />
architecture. Finally,becausethedefinedtransformation<strong>and</strong>normalisationrulesaregeneric,theycanbereusedforthemigration<strong>of</strong>otherSMCcomponents.Thiswasillustratedbythemigration<strong>of</strong>asecondSMCcomponent,forwhichweonlyhadtodefineafewextratransformationrulesto<br />
includefeatures<strong>of</strong>thetargetarchitecturethatwerenotrelevantinthefirst<br />
case.Here,theuse<strong>of</strong>product-lineprinciplesforthedevelopment<strong>of</strong>these<br />
SMCcomponents,justifiestheeffortrequiredforapplyingamodel-driven<br />
migrationapproach.<br />
Oursolutionforthedocumentationtask<strong>of</strong>fersanalternativefordevelopingacomplete(graphical)notation<strong>and</strong>correspondingeditorforaDSML.<br />
Althoughitmightnotalwaysbepossibletodefineasuitablemappingto<br />
UMLduetothesemanticgapbetweenUML<strong>and</strong>theDSML,oursolutionhas<br />
thebenefit<strong>of</strong>beingmorelight-weight. Assuch,ourapproachisparticularlysuitedforsituationswheregraphicalediting<strong>of</strong>DSMLmodelsisnot<br />
(yet)required,forexample,whenacompanyisgraduallymigratingfrom<br />
UMLt<strong>of</strong>ullDSMLsupport.<br />
Ourresultsdemonstratetheapplicability<strong>of</strong>model-drivensolutionsto<br />
specifics<strong>of</strong>twareevolutiontasks.Forthes<strong>of</strong>twareevolutiontasksweconsidered,weproposedsolutionsthattakeintoaccountproduct-linearchitectures(opposedtosingle-productarchitectures),aimtoreduceorganisationalimpact,oraremodel-driven.Furthermore,weextend<strong>and</strong>usetechnologiesthathavealreadyproventheirapplicabilityinpractice,suchas<br />
SAAM<strong>and</strong>MOF.<br />
EmbeddedS<strong>of</strong>tware Althoughoursolutionswereinvestigatedinthecontext<br />
<strong>of</strong>concrete(industrial)problems,ourevaluationsshowthattheycanbe<br />
applied(tosomeextent)toours<strong>of</strong>twareevolutiontasksforabroaderclass<br />
<strong>of</strong>systems. Intheintroductionwealsoraisedthequestionwhetherour<br />
resultsonlyapplytotheevolution<strong>of</strong>embeddeds<strong>of</strong>tware. Toanswerthis
9.6. FutureWork<strong>and</strong>Recommendations 201<br />
questionwehavetodecidewhetheras<strong>of</strong>twaresystem’s‘embeddedness’is<br />
relevantfromtheperspective<strong>of</strong>thes<strong>of</strong>twareevolutiontasksweidentified.<br />
Ourworkappliestoaspecialtype<strong>of</strong>s<strong>of</strong>twareinterms<strong>of</strong>thecasestudiesweconducted;allwereinthedomain<strong>of</strong>embeddeds<strong>of</strong>tware.Acommonperceptionisthatdevelopingembeddeds<strong>of</strong>twareisdifferentfromdevelopingotherkinds<strong>of</strong>s<strong>of</strong>twarebecause<strong>of</strong>somespecificcharacteristics:embeddeds<strong>of</strong>twarehasadedicatedfunction,<strong>and</strong>isembeddedin,<strong>and</strong>reactive<strong>and</strong>logicallyconnectedtoaphysicalsystemcomposed<strong>of</strong>hardware<br />
(e.g.,mechanical,electronic,oropticalcomponents)<strong>and</strong>s<strong>of</strong>tware. These<br />
characteristicsmakethatembeddeds<strong>of</strong>twarehassomespecificproperties<br />
thatmakedevelopingembeddeds<strong>of</strong>twaredifferentfromatechnicalpoint<br />
<strong>of</strong>view. Asanexample,inmanycasesreal-timeconstraintsplayanimportantrole,aswellassize<strong>of</strong>memoryfootprints.Furthermore,embedded<br />
s<strong>of</strong>tware<strong>of</strong>tenneedstocomplytosafetyconstraints(inthecaseitcontrols<br />
aphysicalsystemthatmightcausephysicaldamage).<br />
So,indeedembeddeds<strong>of</strong>twarehasmanyspecificcharacteristics. However,mostimportantfors<strong>of</strong>twareevolution,thetopic<strong>of</strong>ourresearch,isthe<br />
factthatthistype<strong>of</strong>s<strong>of</strong>twareisembeddedinaphysicalsystem.Although<br />
wecannotconcludefromthisthats<strong>of</strong>twareevolutionisdifferentforembeddedsystems,itdoesmakeevolutionunavoidable.Infact,thetwos<strong>of</strong>twareevolutionlawsdiscussedinSection2.1onlyapplytoaspecialclass<strong>of</strong>systems.<br />
Lehman[1980]definesthisclass<strong>of</strong>,so-called,E-typesystems,as<br />
theclass<strong>of</strong>systems<strong>of</strong>whichthespecificationincludesamodel<strong>of</strong>the‘real’<br />
world.Theembeddedsystemssuchasthosestudiedinourcasestudiesare<br />
prototypicalexamples<strong>of</strong>E-typesystems.Therefore,weconjecturethatour<br />
resultsarevalidforE-typesystemsingeneral,<strong>and</strong>notjustforembedded<br />
systems.<br />
9.6 FutureWork<strong>and</strong>Recommendations<br />
Inthisthesisweinvestigatedhowtosupportfourdifferents<strong>of</strong>twareevolutiontasks.<br />
Tothisend,wedefinedsolutionsthataremodel-driven<strong>and</strong><br />
takeintoaccounttheuse<strong>of</strong>productlines.Toenableindustrytointegrate<br />
oursolutionsintheirdevelopmentprocesses,weminimisedtheirorganisationalimpactbyreusingproventechnologies<strong>and</strong>st<strong>and</strong>ardsasmuchaspossible<strong>and</strong>limitingtherequiredadditionaleffort.Inmostcasesweinterpretedthes<strong>of</strong>twareevolutiontasksasmodeltransformationproblems<strong>and</strong>providedsuitabletransformationrules,whichcanbeexecutedautomatically.<br />
Inthechapters<strong>of</strong>thisthesisweraisedmanyissuestobeinvestigated<br />
furtherthatinclude,supportings<strong>of</strong>twareevolutiontasksinothertechnologicalspaces,development<strong>of</strong>hybridapproaches,<strong>and</strong>management<strong>and</strong>
202 Chapter9. Conclusion<br />
evolution<strong>of</strong>modelwareartefacts. Toconcludewebrieflyrevisitthembelow.WeprimarilyusedMDAmodeltransformationsinATLtosupports<strong>of</strong>tware<br />
evolution tasks. Similar support can also be developed in other<br />
technologicalspaces. Inthegrammarwarespace,forinstance,als<strong>of</strong>ormalisms<strong>and</strong>toolsareavailableforthedefinition<strong>of</strong>languages<strong>and</strong>transformations,<br />
suchastheASF+SDF Meta-Environment[Klint,1993]<strong>and</strong><br />
Stratego/XT[Visser,2004]. Astheprocesseswedefinedforthesupport<br />
<strong>of</strong> the different evolution tasks are technology independent, our work<br />
providesthestartingpointfordevelopingsimilarsupportbyusing<strong>and</strong><br />
combiningothertechnologies. Thisraisesinterestingresearchquestions<br />
withrespecttowhichtechnologicalspaceisbestsuitedfordevelopment<strong>of</strong><br />
supportforaspecificevolutiontask<strong>and</strong>howtobettercombinelanguages<br />
<strong>and</strong>transformationsdefinedindifferenttechnologicalspaces.<br />
Assumingthatsourcecoderemainsinthegrammarware<strong>and</strong>s<strong>of</strong>tware<br />
modelsremaininthemodelwaretechnologicalspaces,thiscombination<strong>of</strong><br />
artefactsfromdifferenttechnologicalspacesisunavoidableformostsolutionsfors<strong>of</strong>twareevolutiontasks.<br />
Unfortunately,therequiredbridges<br />
currentlyneedtobespecificallydeveloped,atleastpartially.Theproblem<br />
withthebridgesweusedisthattheyaredefinedonthemetamodellevel.<br />
Forsuchbridgestobegeneric<strong>and</strong>reusabletheyshouldbedefinedonthe<br />
metametamodellevel. Infact,for MDAto XMLsuchabridgeisalready<br />
availableintheform<strong>of</strong>XMI.Asimilarbridgebetweengrammarware<strong>and</strong><br />
MDAisessentialforcombiningthesetwotechnologicalspaces.Thisbridge<br />
wouldmapEBNFtoMOFsuchthatEBNFgrammarscanbeautomatically<br />
transformedincorrespondingMOFmetamodels<strong>and</strong>viceversa,aswellas<br />
theprograms<strong>and</strong>modelsconformingtothosegrammars<strong>and</strong>metamodels.<br />
Ourexperienceshowsthatforautomaticsupport<strong>of</strong>aparticulars<strong>of</strong>twareevolutiontaskmultiplemodeltransformationsarerequired.<br />
Each<br />
modeltransformationinvolvesitsowntransformationrules,source<strong>and</strong><br />
targetmodels,<strong>and</strong>correspondingmetamodels.Moreover,<strong>of</strong>tenthesupport<br />
<strong>of</strong>evolutiontasksalsoinvolvesoperationsoutsidetheMDAspace,suchas<br />
XSLTtransformationsintheXMLspace,orsed<strong>and</strong>Perlscripts.Thismakes<br />
thatthemanagement<strong>of</strong>alltheinvolvedartefact<strong>and</strong>transformationssteps<br />
requiresspecialattention.Althoughthisproblemwasnotthefocus<strong>of</strong>our<br />
research,inonecaseweusedabuildtool(Ant)tosolvethisproblem.However,withthisapproach,therequiredconfigurationfilesalsotendtoget<br />
verycomplex. Assuch,thisproblemcallsforadditionalsupport,which<br />
requiresadditionalresearch.<br />
Meansforthemanagement<strong>of</strong>modelwareartefactsareessentialforsuccessfulapplication<strong>of</strong>oursolutionsinindustry.<br />
Similartoothers<strong>of</strong>tware<br />
developmentartefactsthismodelwareisalsoexpectedtoevolve. Interestingpossibilitiestominimisetherequiredevolution<strong>of</strong>suchartefactsby
9.6. FutureWork<strong>and</strong>Recommendations 203<br />
raisingtheirgenerality,arehigher-ordertransformations. Suchtransformationsthathaveanothertransformationassourceortargetmodel,canbeusedfortheconformancecheckingtask,forinstance,togenerateconformancecheckingtransformationsfromthemetamodelsassociatedwiththeinvolvedmodels.Thisrequiresthatthereisametamodelforthetransformationlanguage,whichisthecaseforATL.Finally,forfurtherinvestigation<strong>of</strong>theissuesdiscussedabove,industrialcasestudiesshouldplayanessentialroleastheydidinthisthesis.Thefocusonrealindustrialproblemsenabledustodiscover<strong>and</strong>investigatedifficultiesthatareinherenttoindustrialpractice.Asanexample,the<br />
needfornormalisation,whichplaysaprominentroleinthisthesis,could<br />
nothavebeeninvestigatedwithoutsuchcasestudies.
Bibliography<br />
Abowd,Gregory,RobertAllen,<strong>and</strong>DavidGarlan. Usingstyletounderst<strong>and</strong>descriptions<strong>of</strong>s<strong>of</strong>twararchitecture.ACMSIGSOFTS<strong>of</strong>twareEngineeringNotes,18(5):pages9–20,1993.<br />
Al-Ekram,Raihan<strong>and</strong>KostasKontogiannis. AnXML-basedframework<br />
forlanguageneutralprogramrepresentation<strong>and</strong>genericanalysis. In<br />
Proceedings<strong>of</strong>the9 th EuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong><br />
Reengineering(CSMR2005),pages42–51.IEEEComputerSociety,2005.<br />
Aldrich,Jonathan,CraigChambers,<strong>and</strong>DavidNotkin.Archjava:Connectings<strong>of</strong>twarearchitecturetoimplementation.<br />
InProceedings<strong>of</strong>the24 th<br />
InternationalConferenceonS<strong>of</strong>twareEngineering(ICSE2002),pages<br />
187–197.IEEEComputerSociety,2002.<br />
Allen,Robert<strong>and</strong>DavidGarlan.Formalizingarchitecturalconnection.In<br />
Proceedings<strong>of</strong>the16 th InternationalConferenceonS<strong>of</strong>twareEngineering.(ICSE1994),pages71–80.IEEEComputerSociety,1994.<br />
Allen, Robert<strong>and</strong>DavidGarlan. Aformalbasisforarchitecturalconnection.<br />
ACMTransactionsonS<strong>of</strong>twareEngineering<strong>and</strong>Methodology<br />
(TOSEM),6(3):pages213–249,1997.<br />
Amyot,Daniel<strong>and</strong>ArminEberlein. Anevaluation<strong>of</strong>scenarionotations<br />
<strong>and</strong> construction approaches for telecommunication systems development.TelecommunicationSystems,24(1):pages61–94,2003.<br />
Atkinson,Colin<strong>and</strong>ThomasKüne. <strong>Model</strong>-drivendevelopment: Ametamodelingfoundation.IEEES<strong>of</strong>tware,20(5):pages36–41,2003.<br />
ATLASgroup. ATLUserManual. LINA&INRIA,Nantes,2006. http:<br />
//www.eclipse.org/m2m/atl/doc/ATL_User_Manual[v0.7].pdf.<br />
Badros,GregJ.Javaml:amarkuplanguageforjavasourcecode.Computer<br />
Networks,33(1–6):pages159–177,2000.<br />
205
206 BIBLIOGRAPHY<br />
Bass,Len,PaulClements,<strong>and</strong>RickKazman. S<strong>of</strong>twareArchitecturein<br />
Practice.Addison-Wesley,2 nd edition,2003.<br />
Baxter,IraD.,ChristopherPidgeon,<strong>and</strong>MichaelMehlich.DMS:Program<br />
transformationsforpracticalscalables<strong>of</strong>twareevolution. InProceedings<strong>of</strong>the26<br />
th InternationalConferenceonS<strong>of</strong>twareEngineering(ICSE<br />
2004),pages625–634.IEEEComputerSociety,2004.<br />
Bengtsson, PerOl<strong>of</strong>, Nico Lassing, Jan Bosch, <strong>and</strong> Hans van Vliet.<br />
Architecture-levelmodifiabilityanalysis(ALMA). Journal<strong>of</strong>Systems<br />
<strong>and</strong>S<strong>of</strong>tware,69(1–2):pages129–147,2004.<br />
Bézivin,Jean. Ontheunificationpower<strong>of</strong>models. S<strong>of</strong>tware<strong>and</strong>Systems<br />
<strong>Model</strong>ling,4(2):pages171–188,2005.<br />
Bézivin,Jean.<strong>Model</strong>drivenengineering:Anemergingtechnicalspace.In<br />
Generative<strong>and</strong>TransformationalTechniquesinS<strong>of</strong>twareEngineering,<br />
InternationalSummerSchool,(GTTSE2005),volume4143<strong>of</strong>Lecture<br />
NotesinComputerScience,pages36–64.Springer-Verlag,2006.<br />
Bézivin,Jean,MikäelBarbero,<strong>and</strong>FrédériqueJouault. Ontheapplicabilityscope<strong>of</strong>modeldrivenengineering.InProceedings<strong>of</strong>the4<br />
th InternationalWorkshopon<strong>Model</strong>-basedMethodologiesforPervasive<strong>and</strong>EmbeddedS<strong>of</strong>tware(MOMPES2007),pages3–7.IEEEComputerSociety,<br />
2007.<br />
Bézivin, Jean <strong>and</strong> Olivier Gerbé. Towards a precise definition <strong>of</strong> the<br />
OMG/MDAframework.InProceedings<strong>of</strong>the16 th AnnualInternational<br />
ConferenceonAutomatedS<strong>of</strong>twareEngineering(ASE2001),pages273–<br />
280.IEEEComputerSociety,2001.<br />
Bézivin,Jean,FrédéricJouault,PeterRosenthal,<strong>and</strong>PatrickValduriez.<br />
<strong>Model</strong>inginthelarge<strong>and</strong>modelinginthesmall.In<strong>Model</strong><strong>Driven</strong>Architecture:<br />
EuropeanMDAWorkshops, volume3599<strong>of</strong>LectureNotesin<br />
ComputerScience,pages33–46.Springer-Verlag,2005.<br />
Bontemps,Yves,PatrickHeymans,<strong>and</strong>Pierre-YvesSchobbens.Fromlive<br />
sequencechartstostatemachines<strong>and</strong>back:Aguidedtour.IEEETransactionsonS<strong>of</strong>twareEngineering,31(12):pages999–1014,2005.<br />
Booch,Grady,AlanBrown,SridharIyengar,JamesRumbaugh,<strong>and</strong>Bran<br />
Selic.AnMDAmanifesto.InFrankel,DavidS.<strong>and</strong>JohnParodi,editors,<br />
TheMDAJournal:<strong>Model</strong><strong>Driven</strong>ArchitectureStraightfromtheMasters,<br />
chapter11.Meghan-KifferPress,2004.
BIBLIOGRAPHY 207<br />
Bosch,Jan.Design&Use<strong>of</strong>S<strong>of</strong>tware<strong>Architectures</strong>:Adopting<strong>and</strong>evolving<br />
aproduct-lineapproach.Addison-Wesley,2000.<br />
Bosch,Jan.Maturity<strong>and</strong>evolutionins<strong>of</strong>twareproductlines:Approaches,<br />
artefacts<strong>and</strong>organization.InProceedings<strong>of</strong>the2 nd InternationalConferenceonS<strong>of</strong>twareProductLines(SPLC2),volume2379<strong>of</strong>LectureNotes<br />
inComputerScience,pages257–271.Springer-Verlag,2002.<br />
Bosch,Jan<strong>and</strong>PeterMolin.S<strong>of</strong>twarearchitecturedesign:evaluation<strong>and</strong><br />
transformation.InProceedings<strong>of</strong>theIEEEConference<strong>and</strong>Workshopon<br />
Engineering<strong>of</strong>Computer-BasedSystems(ECBS’99),pages4–10.IEEE<br />
CS,1999.<br />
Bril,R.J.,R.L.Krikhaar,<strong>and</strong>A.Postma. Architecturalsupportinindustry:<br />
areflectionusingC-POSH. Journal<strong>of</strong>s<strong>of</strong>twaremaintenance<strong>and</strong><br />
evolution:research<strong>and</strong>practice,17:pages3–25,2005.<br />
Bröhl,A.P.<strong>and</strong>W.Dröschel. DasV-<strong>Model</strong>l.DerSt<strong>and</strong>ardfürdieS<strong>of</strong>twareentwicklungmitPraxisleitfaden.Oldenbourg-Verlag,München,2<br />
nd<br />
edition,1995.<br />
Brooks,FrederickP.,Jr.TheMythicalMan-Month.Addison-Wesley,1975.<br />
Buschmann,Frank,RegineMeunier,HansRohnert,PeterSommerlad,<strong>and</strong><br />
MichaelStal.Pattern-orienteds<strong>of</strong>twarearchitecture:asystem<strong>of</strong>patterns.<br />
JohnWiley&Sons,1996.<br />
Buttazzo,G.C. Hardreal-timecomputingsystems:predictablescheduling<br />
algorithms<strong>and</strong>applications.KluwerAcademicPublishers,2002.<br />
Chen,PeterPin-Shan. Theentity-relationshipmodel–towardaunified<br />
view<strong>of</strong>data. ACMTransactionsDatabaseSystems, 1(1):pages9–36,<br />
1976.<br />
Clarke, EdmundM., Jr., OrnaGrumberg, <strong>and</strong>DoranA.Peled. <strong>Model</strong><br />
Checking.MITPress,1999.<br />
Cleavel<strong>and</strong>,J.Craig. Buildingapplicationgenerators. IEEES<strong>of</strong>tware,<br />
5(4):pages25–33,1988.<br />
Clements,Paul,FelixBachmann,LenBass,DavidGarlan,JamesIvers,<br />
ReedLittle,RobertNord,<strong>and</strong>JudithStafford. DocumentingS<strong>of</strong>tware<br />
<strong>Architectures</strong>:Views<strong>and</strong>Beyond.Addison-Wesley,2002a.<br />
Clements,Paul,RickKazman,<strong>and</strong>MarkKlein. EvaluatingS<strong>of</strong>tware<strong>Architectures</strong>.Addison-Wesley,2002b.
208 BIBLIOGRAPHY<br />
Clements,Paul<strong>and</strong>LindaNorthrop.S<strong>of</strong>twareProductLines:Practices<strong>and</strong><br />
Patterns.Addison-Wesley,2002.<br />
Cornelissen,Bas,BasGraaf,<strong>and</strong>LeonMoonen.Identification<strong>of</strong>variation<br />
pointsusingdynamicanalysis. InProceedings<strong>of</strong>the1 st International<br />
WorkshoponReengineeringtowardsProductLines(R2PL2005),pages<br />
9–13.2005.<br />
Cornelissen,Bas,ArievanDeursen,LeonMoonen,<strong>and</strong>AndyZaidman.Visualizingtestsuitestoaidins<strong>of</strong>twareunderst<strong>and</strong>ing.<br />
InProceedings<strong>of</strong><br />
the11 th EuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong>Reengineering(CSMR2007),pages213–222.IEEEComputerSociety,2007.<br />
Czarnecki,K.<strong>and</strong>S.Helsen.Feature-basedsurvey<strong>of</strong>modeltransformation<br />
approaches.IBMSystemsJournal,45(3):pages621–645,2006.<br />
Czarnecki,Krzyszt<strong>of</strong><strong>and</strong>UlrichW.Eisenecker.GenerativeProgramming:<br />
Methods,Tools,<strong>and</strong>Applications.Addison-Wesley,2000.<br />
Damm,Werner<strong>and</strong>DavidHarel. LSCs: Breathinglifeintomessagesequencecharts.FormalMethodsinSystemDesign,19:pages45–80,2001.<br />
Dash<strong>of</strong>y,EricM.,Andrév<strong>and</strong>erHoek,<strong>and</strong>RichardN.Taylor. Acomprehensiveapproachforthedevelopment<strong>of</strong>modulars<strong>of</strong>twarearchitecture<br />
descriptionlanguages. ACMTransactionsonS<strong>of</strong>twareEngineering<strong>and</strong><br />
Methodology,14(2):pages199–245,2005.<br />
Deelstra,Sybren,MarcoSinnema,<strong>and</strong>JanBosch. Productderivationin<br />
s<strong>of</strong>twareproductfamilies:acasestudy.Journal<strong>of</strong>Systems<strong>and</strong>S<strong>of</strong>tware,<br />
74(2):pages173–194,2005.<br />
Deelstra,Sybren,MarcoSinnema,JillesvanGurp,<strong>and</strong>JanBosch.<strong>Model</strong><br />
drivenarchitectureasapproachtomanagevariabilityins<strong>of</strong>twareproductfamilies.InProceedings<strong>of</strong>theWorkshopon<strong>Model</strong><strong>Driven</strong>Architecture:Foundations<strong>and</strong>Applications(MDAFA2003),numberTR-CTIT-<br />
03-27inCTITTechnicalReport,pages109–114.University<strong>of</strong>Twente,<br />
2003.<br />
Dijkstra,EdsgerW.Thestructure<strong>of</strong>the"THE"-multiprogrammingsystem.<br />
Communications<strong>of</strong>theACM,11(5):pages341–346,1968.<br />
Dijkstra,EdsgerW.Ontherole<strong>of</strong>scientificthought.PublishedinDijkstra<br />
[1982],1974.EWD447.<br />
Dijkstra,EdsgerW.Selectedwritingsoncomputing:apersonalperspective.<br />
Springer-Verlag,1982.
BIBLIOGRAPHY 209<br />
Dinther,Y.van,W.Schijfs,F.v<strong>and</strong>enBerk,<strong>and</strong>K.Rijnierse. Architecturalmodeling:IntroducingtheArchitectureMeta<strong>Model</strong>.<br />
InL<strong>and</strong>elijk<br />
ArchitectuurCongres.SERC,Utrecht,TheNetherl<strong>and</strong>s,2001.<br />
Dobrica,L.<strong>and</strong>E.Niemelä. Asurveyons<strong>of</strong>twarearchitectureanalysis<br />
methods.IEEETransactionsonS<strong>of</strong>twareEngineering,28(7):pages638–<br />
653,2002.<br />
Dohmen,L.A.J.<strong>and</strong>L.JSomers.Experiences<strong>and</strong>lessonslearnedusing<br />
UML-RTtodevelopembeddedprinters<strong>of</strong>tware.InProceedings<strong>of</strong>the4 th<br />
InternationalConferenceonProductFocusedS<strong>of</strong>twareProcessImprovement(PROFES2002),volume2559<strong>of</strong>LectureNotesinComputerScience,<br />
pages475–484.Springer-Verlag,2003.<br />
Doyle,Duncan,HansGeers,BasGraaf,<strong>and</strong>ArievanDeursen.Migrating<br />
adomain-specificmodelinglanguagetoMDAtechnology. InProceedings<strong>of</strong>the3<br />
rd InternationalWorkshoponMetamodels,Schemas,Grammars,<strong>and</strong>OntologiesforReverseEngineering(ateM2006),number1/<br />
2006inMainzerInformatik-Berichte,pages47–54.JohannesGutenberg-<br />
UniversitätMainz,2006.<br />
D’Souza,DesmondFrancis<strong>and</strong>AlanCameronWills.Objects,Components,<br />
<strong>and</strong>FrameworkswithUML:TheCatalysisApproach. Addison-Wesley,<br />
1998.<br />
Eden,A.H.,Y.Hirshfeld,<strong>and</strong>R.Kazman. Abstractionclassesins<strong>of</strong>tware<br />
design.IEEProceedingsS<strong>of</strong>tware,153(4):pages163–182,2006.<br />
Eden,AmnonH.<strong>and</strong>RickKazman.Architecture,design,implementation.<br />
InProceedings<strong>of</strong>the25 th InternationalConferenceonS<strong>of</strong>twareEngineering(ICSE2003),pages149–159.IEEEComputerSociety,2003.<br />
Emam,KhaledEl,Jean-Norm<strong>and</strong>Drouin,<strong>and</strong>WalcelioMelo.TheTheory<br />
<strong>and</strong>Practice<strong>of</strong>S<strong>of</strong>twareProcessImprovement<strong>and</strong>CapabilityDetermination.IEEEComputerSociety,1997.<br />
Endres,Albert<strong>and</strong>DieterRombach.AH<strong>and</strong>book<strong>of</strong>S<strong>of</strong>tware<strong>and</strong>Systems<br />
Engineering.AddisonWesley,2003.<br />
Fahmy,Hoda<strong>and</strong>RichardC.Holt.S<strong>of</strong>twarearchitecturetransformations.<br />
InProceedings<strong>of</strong>the16 th InternationalConferenceonS<strong>of</strong>twareMaintenance(ICSM2000),pages88–96.IEEEComputerSociety,2000a.<br />
Fahmy,Hoda<strong>and</strong>RichardC.Holt. Usinggraphrewritingtospecifys<strong>of</strong>twarearchitecturaltransformations.InProceedings<strong>of</strong>15<br />
th IEEEInternationalConferenceonAutomatedS<strong>of</strong>twareEngineering(ASE2000),pages<br />
187–196.IEEEComputerSociety,2000b.
210 BIBLIOGRAPHY<br />
Favre,Jean-Marie. Foundations<strong>of</strong>meta-pyramids: Languagesvs.metamodels–EpisodeII:Story<strong>of</strong>ThotustheBaboon.InLanguageEngineeringfor<strong>Model</strong>-<strong>Driven</strong>S<strong>of</strong>twareDevelopment,number04101inDagstuhlSeminarProceedings.InternationalesBegegnungs-undForschungszentrumfuerInformatik(IBFI),SchlossDagstuhl,Germany,2005a.<br />
Favre,Jean-Marie. Foundations<strong>of</strong>model(driven)(reverse)engineering:<br />
<strong>Model</strong>s–EpisodeI:Stories<strong>of</strong>TheFidusPapyrus<strong>and</strong><strong>of</strong>TheSolarus.In<br />
LanguageEngineeringfor<strong>Model</strong>-<strong>Driven</strong>S<strong>of</strong>twareDevelopment,number<br />
04101inDagstuhlSeminarProceedings.InternationalesBegegnungsundForschungszentrumfuerInformatik(IBFI),SchlossDagstuhl,Germany,2005b.<br />
Fondement,Frédéric<strong>and</strong>ThomasBaar.Makingmetamodelsaware<strong>of</strong>concretesyntax.<br />
InProceedings<strong>of</strong>the1 st EuropeanConferenceon<strong>Model</strong><br />
<strong>Driven</strong>Architecture-Foundations<strong>and</strong>Applications(ECMDA-FA2005),<br />
volume 3748 <strong>of</strong> Lecture Notes in Computer Science, pages 190–204.<br />
Springer-Verlag,2005.<br />
Forward,Andrew<strong>and</strong>TimothyC.Lethbridge. Therelevance<strong>of</strong>s<strong>of</strong>tware<br />
documentation,tools<strong>and</strong>technologies: asurvey. InProceedings<strong>of</strong>the<br />
2002ACMsymposiumonDocumentengineering(DocEng2002),pages<br />
26–33.ACMPress,2001.<br />
France,Robert<strong>and</strong>BernhardRumpe. <strong>Model</strong>-drivendevelopment<strong>of</strong>complexs<strong>of</strong>tware:Aresearchroadmap.<br />
InFuture<strong>of</strong>S<strong>of</strong>twareEngineering<br />
(FoSE2007),pages37–54.IEEEComputerSociety,2007.<br />
Gallagher,BrianP.Usingthearchitecturetrade<strong>of</strong>fanalysismethodtoevaluateareferencearchitecture:Acasestudy.TechnicalReportCMU/SEI-2000-TN-007,CarnegieMellonUniversity,S<strong>of</strong>twareEngineeringInstitute,2000.<br />
Garlan,David,RobertAllen,<strong>and</strong>JohnOckerbloom. Architecturalmismatchorwhyit’shardtobuildsystemsout<strong>of</strong>existingparts.InProceedings<strong>of</strong>the17<br />
th InternationalConferenceonS<strong>of</strong>twareEngineering(ICSE<br />
1995),pages179–185.ACMPress,1995.<br />
Garlan,David,Shang-WenCheng,<strong>and</strong>AndrewJ.Kompanek. Reconcilingtheneeds<strong>of</strong>architecturaldescriptionwithobject-modelingnotations.<br />
Science<strong>of</strong>ComputerProgramming,44:pages23–49,2002.<br />
Garlan,David,RobertT.Monroe,<strong>and</strong>DavidWile. ACME:architectural<br />
description<strong>of</strong>component-basedsystems. InFoundations<strong>of</strong>componentbasedsystems,pages47–67.CambridgeUniversityPress,2000.
BIBLIOGRAPHY 211<br />
Garlan,David<strong>and</strong>MaryShaw. Anintroductiontos<strong>of</strong>twarearchitecture.<br />
InAdvancesinS<strong>of</strong>twareEngineering<strong>and</strong>KnowledgeEngineering,volume2,pages1–39.WorldScientificPublishingCompany,1993.<br />
Gerber,Anna,MichaelLawley,KerryRaymond,JimSteel,<strong>and</strong>Andrew<br />
Wood.Transformation:Themissinglink<strong>of</strong>MDA.InProceedings<strong>of</strong>the<br />
1 st InternationalConferenceonGraphTransformation(ICGT2002),volume2505<strong>of</strong>LectureNotesinComputerScience,pages90–105.Springer-<br />
Verlag,2002.<br />
Gohari,P.<strong>and</strong>W.M.Wonham.Reducedsupervisorsfortimeddiscrete-event<br />
systems. IEEETransactionsonAutomaticControl,48(7):pages1187–<br />
1198,2003.<br />
Graaf, Bas. <strong>Model</strong>-drivenevolution<strong>of</strong>s<strong>of</strong>twarearchitectures. InProceedings<strong>of</strong>the11<br />
th EuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong><br />
Reengineering(CSMR2007),pages357–360.IEEEComputerSociety,<br />
2007.<br />
Graaf,Bas,MarcoLormans,<strong>and</strong>HansToetenel. S<strong>of</strong>twaretechnologies<br />
forembeddedsystems:Anindustryinventory. InProceedings<strong>of</strong>the4 th<br />
InternationalConferenceonProductFocusedS<strong>of</strong>twareProcessImprovement(PROFES2002),volume2559<strong>of</strong>LectureNotesinComputerScience,<br />
pages453–465.Springer-Verlag,2002.<br />
Graaf,Bas,MarcoLormans,<strong>and</strong>HansToetenel. Embeddeds<strong>of</strong>twareengineering:Thestate<strong>of</strong>thepractice.<br />
IEEES<strong>of</strong>tware,20(6):pages61–69,<br />
2003.<br />
Graaf,Bas<strong>and</strong>ArievanDeursen. <strong>Model</strong>-drivenconsistencychecking<strong>of</strong><br />
behaviouralspecifications.InProceedings<strong>of</strong>the4 th InternationalWorkshopon<strong>Model</strong>-basedMethodologiesforPervasive<strong>and</strong>EmbeddedS<strong>of</strong>tware(MOMPES2007),pages115–126.IEEEComputerSociety,2007a.<br />
Graaf,Bas<strong>and</strong>ArievanDeursen. UsingMDEforgenericcomparison<strong>of</strong><br />
views. InProceedings<strong>of</strong>the4 th InternationalWorkshopon<strong>Model</strong>Design,Verification<strong>and</strong>Validation(MoDeVVa2007),pages57–66.INRIA,<br />
2007b.<br />
Graaf,Bas<strong>and</strong>ArievanDeursen. Visualisation<strong>of</strong>domain-specificmodellinglanguagesusingUML.<br />
InProceedings<strong>of</strong>the14 th AnnualIEEE<br />
InternationalConference<strong>and</strong>WorkshopontheEngineering<strong>of</strong>Computer<br />
BasedSystems(ECBS2007),pages586–595.IEEEComputerSociety,<br />
2007c.
212 BIBLIOGRAPHY<br />
Graaf,Bas,HylkevanDijk,<strong>and</strong>ArievanDeursen. Evaluatinganembeddeds<strong>of</strong>twarereferencearchitecture–industrialexperiencereport.<br />
InProceedings<strong>of</strong>the9 th EuropeanConferenceonS<strong>of</strong>twareMaintenance<br />
<strong>and</strong>Reengineering(CSMR2005),pages354–363.IEEEComputerSociety,2005.<br />
Graaf,Bas,SvenWeber,<strong>and</strong>ArievanDeursen. Migratingsupervisory<br />
controlarchitecturesusingmodeltransformations.InProceedings<strong>of</strong>the<br />
10thEuropeanConferenceonS<strong>of</strong>twareMaintenance<strong>and</strong>Reengineering<br />
(CSMR2006),pages151–160.IEEEComputerSociety,2006.<br />
Graaf,Bas,SvenWeber,<strong>and</strong>ArievanDeursen. <strong>Model</strong>-drivenmigration<br />
<strong>of</strong>supervisorymachinecontrolarchitectures. Journal<strong>of</strong>Systems<strong>and</strong><br />
S<strong>of</strong>tware,2007.Doi:10.1016/j.jss.2007.06.007.<br />
Gray,Jeff,JingZhang,SumanRoychoudhury,HuiWu,RajeshSudarsan,<br />
Aniruddha,S<strong>and</strong>eepNeema,FengShi,<strong>and</strong>TedBapty. <strong>Model</strong>-driven<br />
programtransformation<strong>of</strong>alargeavionicsframework.InProceedings<strong>of</strong><br />
the3 rd InternationalConferenceonGenerativeProgramming<strong>and</strong>ComponentEngineering(GPCE2004),pages361–378.Springer-Verlag,2004.<br />
Greenfield,Jack,KeithShort,SteveCook,<strong>and</strong>StuartKent.S<strong>of</strong>twareFactories:AssemblingApplicationswithPatterns,<strong>Model</strong>s,Frameworks,<strong>and</strong><br />
Tools.JohnWiley&Sons,2004.<br />
Grose,TimothyJ.,GaryC.Doney,<strong>and</strong>PhD.StephanA.Brodsky.Mastering<br />
XMI.JavaprogrammingwithXMI,XML,<strong>and</strong>UML.JohnWiley&Sons,<br />
2002.<br />
Han,Minmin,ChristineH<strong>of</strong>meister,<strong>and</strong>RobertL.Nord. Reconstructing<br />
s<strong>of</strong>twarearchitectureforJ2EEwebapplications. InProceedings<strong>of</strong>the<br />
10thWorkingConferenceonReverseEngineering(WCRE2003),pages<br />
67–78.IEEEComputerSociety,2003.<br />
Hatley,DerekJ.<strong>and</strong>ImtiazA.Pirbhai. StrategiesforReal-TimeSystem<br />
Specification.DorsetHousePublishing,1987.<br />
H<strong>of</strong>meister, C., R. Nord, <strong>and</strong> D. Soni. Applied S<strong>of</strong>tware Architecture.<br />
Addison-Wesley,1999.<br />
H<strong>of</strong>meister,Christine,PhilipeKruchten,RobertL.Nord,HenkObbink,<br />
Alex<strong>and</strong>erRan,<strong>and</strong>PierreAmerica. Generalizingamodel<strong>of</strong>s<strong>of</strong>tware<br />
architecturedesignfromfiveindustrialapproaches. InProceedings<strong>of</strong><br />
the5 th WorkingIEEE/IFIPConferenceonS<strong>of</strong>twareArchitecture(WICSA<br />
2005),pages77–88.IEEEComputerSociety,2005.
BIBLIOGRAPHY 213<br />
Horowitz,Ellis,AlfonsKemper,<strong>and</strong>BalajiNarasimhan.Asurvey<strong>of</strong>applicationgenerators.IEEES<strong>of</strong>tware,2(1):pages40–54,1985.<br />
Humphrey,WattsS.Managingthes<strong>of</strong>twareprocess.Addison-Wesley,1989.<br />
IEEE-1219. IEEEst<strong>and</strong>ardfors<strong>of</strong>twaremaintenance. IEEEStd1219–<br />
1998,1998.<br />
IEEE-1471. IEEErecommendedpracticeforarchitecturaldescription<strong>of</strong><br />
s<strong>of</strong>twareintensivesystems.IEEEStd1471–2000,2000.<br />
Jacobson,Ivar. Object-OrientedS<strong>of</strong>twareEngineering:AUseCase<strong>Driven</strong><br />
Approach.Addison-Wesley,1992.<br />
Jacobson,Ivar,GradyBooch,<strong>and</strong>JamesRumbaugh.TheUnifiedS<strong>of</strong>tware<br />
DevelopmentProcess.Addison-Wesley,1999.<br />
Jacobson,Ivar,MartinGriss,<strong>and</strong>PatrickJonsson.S<strong>of</strong>twareReuse:Architecture,Process<strong>and</strong>OrganizationforBusinessSuccess.Addison-Wesley,<br />
1997.<br />
Jansen,Anton.S<strong>of</strong>twarearchitectureasaset<strong>of</strong>architecturaldesigndecisions.InProceedings<strong>of</strong>the5<br />
th WorkingIEEE/IFIPConferenceonS<strong>of</strong>twareArchitecture(WICSA2005),pages109–120.IEEEComputerSociety,2005.<br />
Jouault,Frédéric<strong>and</strong>IvanKurtev.TransformingmodelswithATL.InProceedings<strong>of</strong>the<strong>Model</strong>TransformationsinPracticeWorkshopatMoDELS<br />
2005.2005.<br />
Kazman,Rick,GregoryAbowd,LenBass,<strong>and</strong>PaulClements. Scenariobasedanalysis<strong>of</strong>s<strong>of</strong>twarearchitecture.IEEES<strong>of</strong>tware,13(6):pages47–<br />
55,1996.<br />
Kazman,Rick,LenBass,<strong>and</strong>MarkKlein. Theessentialcomponents<strong>of</strong><br />
s<strong>of</strong>twarearchitecturedesign<strong>and</strong>analysis.Journal<strong>of</strong>Systems<strong>and</strong>S<strong>of</strong>tware,79(8):pages1207–1216,2006.<br />
Kazman, Rick, LenBass, MikeWebb, <strong>and</strong>GregoryAbowd. SAAM:A<br />
methodforanalyzingtheproperties<strong>of</strong>s<strong>of</strong>twarearchitectures. InProceedings<strong>of</strong>the16<br />
th InternationalConferenceonS<strong>of</strong>twareEngineering.<br />
ICSE1994,pages81–90.IEEEComputerSociety,1994.<br />
Kitchenham,Barbara,LesleyPickard,<strong>and</strong>ShariLawrencePfleeger.Case<br />
studiesformethod<strong>and</strong>toolevaluation.IEEES<strong>of</strong>tware,12(4):pages52–<br />
62,1995.
214 BIBLIOGRAPHY<br />
Klein, Mark H., Rick Kazman, Len Bass, Jeromy Carrierea, Mario<br />
Barbacci,<strong>and</strong>HowardLipson. Attribute-basedarchitecturestyles. In<br />
Proceedings<strong>of</strong>the1 st WorkingIFIPConferenceonS<strong>of</strong>twareArchitecture<br />
(WICSA2001),pages225–243.1999.<br />
Kleppe,Anneke,JosWarmer,<strong>and</strong>WimBast.MDAExplained:The<strong>Model</strong><br />
<strong>Driven</strong>Architecture:Practice<strong>and</strong>Promise.AddisonWesley,2003.<br />
Klint,Paul. Ameta-environmentforgeneratingprogrammingenvironments.ACMTransactionsonS<strong>of</strong>twareEngineering,2(2):pages176–201,<br />
1993.<br />
Klint, Paul,RalfLämmel,<strong>and</strong>ChrisVerhoef. Towardsanengineering<br />
disciplineforgrammarware.TransactionsonS<strong>of</strong>twareEngineering<strong>and</strong><br />
Methodology,14(3):pages331–380,2005.<br />
Kobryn,Cris. UML2001:ast<strong>and</strong>ardizationodyssey. Communications<strong>of</strong><br />
theACM,42(10):pages29–37,1999.<br />
Krikhaar,RenéL.S<strong>of</strong>twarearchitectureReconstruction.Ph.D.thesis,UniversiteitvanAmsterdam,1999.<br />
Kruchten,Philipe,HenkObbink,<strong>and</strong>JudithStafford. Thepast,present,<br />
<strong>and</strong>future<strong>of</strong>s<strong>of</strong>twarearchitecture. IEEES<strong>of</strong>tware,23(2):pages22–30,<br />
2006.<br />
Kruchten,PhilippeB.The4+1viewmodel<strong>of</strong>architecture.IEEES<strong>of</strong>tware,<br />
12(6):pages42–50,1995.<br />
Kruchten,Phillipe.TheRationalUnifiedProcess.Addison-Wesley,1998.<br />
Krueger,CharlesW.S<strong>of</strong>twarereuse.ACMComputingSurveys,24(2):pages<br />
131–183,1992.<br />
Kurtev, Ivan, Jean Bézivin, <strong>and</strong> Mehmet Aksit. Technological spaces:<br />
aninitialappraisal. InConfederatedInternationalConferencesCoopIS,<br />
DOA,<strong>and</strong>ODBASE2002,IndustrialTrack.Springer-Verlag,2002.<br />
Kuvaja, Pasi, Jouni Similä, Lech Krzanik, Adriana Bicego, Samuli<br />
Saukkonen,<strong>and</strong>GünterKoch. S<strong>of</strong>twareProcessAssessment<strong>and</strong>Improvement:TheBOOTSTRAPApproach.BlackwellPublishers,1994.<br />
Lam,VitusS.W.<strong>and</strong>JulianPadget. Analyzingequivalences<strong>of</strong>UMLstatechartdiagramsbystructuralcongruence<strong>and</strong>openbisimulations.<br />
In<br />
Proceedings<strong>of</strong>the2003IEEESymposiaonHumanCentricComputing<br />
Languages<strong>and</strong>Environments(HCC2003),pages137–144.IEEEComputerSociety,2003.
BIBLIOGRAPHY 215<br />
Lange,ChristianF.J.,MichelR.V.Chaudron,<strong>and</strong>JohanMuskens.Inpractice:UMLs<strong>of</strong>twarearchitecture<strong>and</strong>designdescription.IEEES<strong>of</strong>tware,<br />
23(2):pages40–46,2006.<br />
Lehman,M.M. Laws<strong>of</strong>programevolution-rules<strong>and</strong>toolsforprogrammingmanagement.InProceedings<strong>of</strong>theInfotechState<strong>of</strong>theArtConference,WhyS<strong>of</strong>twareProjectsFail?,pages11/1–11/25.1978.Reprintedas<br />
Chapter12in[Lehman<strong>and</strong>Belady,1985].<br />
Lehman,M.M.<strong>and</strong>L.A.Belady,editors. Programevolution:processes<strong>of</strong><br />
s<strong>of</strong>twarechange.AcademicPress,1985.<br />
Lehman,MeirM. Programs,lifecycles,<strong>and</strong>laws<strong>of</strong>s<strong>of</strong>twareevolution.<br />
IEEEProceedings,68(9):pages1060–1076,1980.<br />
Liang,Hongzhi,JuergenDingel,<strong>and</strong>ZinovyDiskin.Acomparativesurvey<br />
<strong>of</strong>scenario-basedtostate-basedmodelsynthesisapproaches.InProceedings<strong>of</strong>the5<br />
th InternationalWorkshoponScenarios<strong>and</strong>StateMachines:<br />
<strong>Model</strong>s,Algorithms<strong>and</strong>Tools(SCESM2006),pages5–11.ACM,2006.<br />
Lientz,B.P.,E.B.Swanson,<strong>and</strong>G.E.Tompkins.Characteristics<strong>of</strong>applications<strong>of</strong>twaremaintenance.<br />
Communications<strong>of</strong>theACM,21(6):pages<br />
466–471,1978.<br />
Liu,C.L.<strong>and</strong>JamesW.Layl<strong>and</strong>.Schedulingalgorithmsformultiprogramminginahardreal-timeenvironment.<br />
Journal<strong>of</strong>theAssociationfor<br />
ComputingMachinery,20(1):pages46–61,1973.<br />
Lundell,Björn,BrianLings,AnnaPersson,<strong>and</strong>AndersMattsson. UML<br />
modelinterchangeinheterogeneoustoolenvironments: Ananalysis<strong>of</strong><br />
adoptions<strong>of</strong>XMI2. InProceedings<strong>of</strong>the9 th InternationalConference<br />
on<strong>Model</strong><strong>Driven</strong>EngineeringLanguages<strong>and</strong>Systems(MoDELS2006),<br />
number4199inLectureNotesinComputerScience, pages619–630.<br />
Springer-Verlag,2006.<br />
Lutz,RobynR.<strong>and</strong>GeraldC.Gannod.Analysis<strong>of</strong>as<strong>of</strong>twareproductline<br />
architecture:anexperiencereport.TheJournal<strong>of</strong>Systems<strong>and</strong>S<strong>of</strong>tware,<br />
66(3):pages253–267,2003.<br />
Medvidovic,Nenad,DavidS.Rosenblum,DavidF.Redmiles,<strong>and</strong>JasonE.<br />
Robbins.<strong>Model</strong>ingS<strong>of</strong>tware<strong>Architectures</strong>intheUnified<strong>Model</strong>ingLanguage.<br />
ACMTransactionsonS<strong>of</strong>twareEngineering<strong>and</strong>Methodology,<br />
11(1):pages2–57,2002.<br />
Medvidovic,Nenad<strong>and</strong>RichardN.Taylor. Aframeworkforclassifying<br />
<strong>and</strong>comparingarchitecturedescriptionlanguages.InESEC’97/FSE-5:
216 BIBLIOGRAPHY<br />
Proceedings<strong>of</strong>the6 th Europeanconferenceheldjointlywiththe5 th ACM<br />
SIGSOFTinternationalsymposiumonFoundations<strong>of</strong>s<strong>of</strong>twareengineering,pages60–76.Springer-Verlag,1997.<br />
Mellor,StephenJ.,AnthonyM.Clark,<strong>and</strong>TakaoFutagami.Guesteditors’<br />
introduction: <strong>Model</strong>-drivendevelopment. IEEES<strong>of</strong>tware,20(5):pages<br />
14–18,2003.<br />
Mens,Kim. AutomatingArchitecturalConformanceCheckingbymeans<strong>of</strong><br />
LogicMetaProgramming.Ph.D.thesis,VrijeUniversiteitBrussel,2000.<br />
Mens,Tom<strong>and</strong>PietervanGorp. Ataxonomy<strong>of</strong>modeltransformation.<br />
ElectronicNotesinTheoreticalComputerScience,152:pages125–142,<br />
2006.<br />
Mernik, Marjan, Jan Heering, <strong>and</strong> Anthony M. Sloane. When <strong>and</strong><br />
howtodevelopdomain-specificlanguages. ACMComputingSurveys,<br />
37(4):pages316–344,2005.<br />
Monroe, R.T., A.Kompanek, <strong>and</strong>D.Melton, R.;Garlan. Architectural<br />
styles,designpatterns,<strong>and</strong>objects. IEEES<strong>of</strong>tware,14(1):pages43–52,<br />
1997.<br />
Murphy,GailC.,DavidNotkin,<strong>and</strong>KevinSullivan. S<strong>of</strong>twarereflexion<br />
models: bridgingthegapbetweensource<strong>and</strong>high-levelmodels. In<br />
SIGSOFT’95: Proceedings <strong>of</strong> the 3 rd ACMSIGSOFT symposium on<br />
Foundations<strong>of</strong>s<strong>of</strong>twareengineering,pages18–28.ACMPress,1995.<br />
Olum<strong>of</strong>in, FemiG.<strong>and</strong>VojislavB.Mišlić. ExtendingtheATAMarchitectureevaluationtoproductlinearchitectures.InProceedings<strong>of</strong>the5<br />
th<br />
WorkingIEEE/IFIPConferenceonS<strong>of</strong>twareArchitecture(WICSA2005),<br />
pages45–56.IEEEComputerSociety,2006.<br />
OMG. Meta Object Facility (MOF) 2.0 Query/View/Transformation<br />
Specification.FinalAdoptedSpecification. http://www.omg.org/docs/ptc/<br />
05-11-01.pdf,2005.<br />
OMG. OMGUnified<strong>Model</strong>ingLanguageSpecification,Version1.4. http:<br />
//www.omg.org/docs/formal/01-09-67.pdf,2007a.<br />
OMG. Unified<strong>Model</strong>ingLanguage: Superstructure,version2.1.1. http:<br />
//www.omg.org/docs/formal/07-02-05.pdf,2007b.<br />
Parnas,D.L.Onthecriteriatobeusedindecomposingsystemsintomodules.Communications<strong>of</strong>theACM,15(12):pages1053–1058,1972.
BIBLIOGRAPHY 217<br />
Partsch,H.<strong>and</strong>R.Steinbrüggen.Programtransformationsystems.ACM<br />
ComputingSurveys,15(3):pages199–236,1983.<br />
Perry, Dewayne E. <strong>and</strong> Alex<strong>and</strong>er L. Wolf. Foundations for the study<br />
<strong>of</strong>s<strong>of</strong>twarearchitecture. ACMSIGSOFTS<strong>of</strong>twareEngineeringNotes,<br />
17(4):pages40–52,1992.<br />
Pigoski,ThomasM. PracticalS<strong>of</strong>twareMaintenance: BestPracticesfor<br />
ManagingYourS<strong>of</strong>twareInvestment.JohnWiley&Sons,1996.<br />
Potts, Colin. S<strong>of</strong>twareengineeringresearchrevisited. IEEES<strong>of</strong>tware,<br />
10(5):pages19–28,1993.<br />
Poulin,J.S. MeasuringS<strong>of</strong>twareReuse: Principles,Practices,<strong>and</strong>Economic<strong>Model</strong>s.Addison-Wesley,1997.<br />
Ramadge,P.J.<strong>and</strong>W.M.Wonham.Supervisorycontrol<strong>of</strong>aclass<strong>of</strong>discrete<br />
eventprocesses.SIAMJournalonControl<strong>and</strong>Optimization,25(1):pages<br />
206–230,1987.<br />
Reveliotis,SpyrosA. Real-TimeManagement<strong>of</strong>ResourceAllocationSystems.ADiscreteEventSystemsApproach,volume79<strong>of</strong>InternationalSeriesinOperationsResearch&ManagementScience.<br />
Springer-Verlag,<br />
2005.<br />
Sabuncuoglu,I.<strong>and</strong>M.Bayiz. Analysis<strong>of</strong>reactiveschedulingproblems<br />
inajob-shopenvironment. EuropeanJournal<strong>of</strong>operationalresearch,<br />
126:pages567–586,2000.<br />
Schäfer,Timm,Alex<strong>and</strong>erKnapp,<strong>and</strong>StephanMerz.<strong>Model</strong>checkingUML<br />
statemachines<strong>and</strong>collaborations.ElectronicNotesinTheoreticalComputerScience,55(3):pages357–369,2001.<br />
Schmidt, Douglas C. <strong>Model</strong>-driven engineering. IEEE Computer,<br />
39(2):pages25–31,2006.<br />
Seidewitz,Ed. Whatmodelsmean. IEEES<strong>of</strong>tware,20(5):pages26–32,<br />
2003.<br />
Selic,Bran.Thepragmatics<strong>of</strong>model-drivendevelopment.IEEES<strong>of</strong>tware,<br />
20(5):pages14–25,2003.<br />
Selic,Bran,GarthGullekson,<strong>and</strong>PaulT.Ward.Real-TimeObject-Oriented<br />
<strong>Model</strong>ing.JohnWiley&Sons,1994.<br />
Sendall,Shane.<strong>Model</strong>transformation:Theheart<strong>and</strong>soul<strong>of</strong>model-driven<br />
s<strong>of</strong>twaredevelopment.IEEES<strong>of</strong>tware,20(5):pages42–45,2003.
218 BIBLIOGRAPHY<br />
Shaw,Mary,RobertDeLine,DanielV.Klein,TheodoreL.Ross,DavidM.<br />
Young, <strong>and</strong>GregoryZelesnik. Abstarctionsfors<strong>of</strong>twarearchitecture<br />
<strong>and</strong>toolstosupportthem.IEEETransactionsonS<strong>of</strong>twareEngineering,<br />
21(4):pages314–335,1995.<br />
Shaw,Mary<strong>and</strong>DavidGarlan. S<strong>of</strong>twareArchitecture:Perspectivesonan<br />
EmergingDiscipline.PrenticeHall,1996.<br />
S<strong>of</strong>tware Engineering Institute. Published s<strong>of</strong>tware architecture definitions.http://www.sei.cmu.edu/architecture/published_definitions.html,<br />
2006.<br />
Soni,D.,R.L.Nord,<strong>and</strong>C.H<strong>of</strong>meister. S<strong>of</strong>twarearchitectureinindustrialapplications.InProceedings<strong>of</strong>the17<br />
th InternationalConferenceon<br />
S<strong>of</strong>twareEngineering(ICSE1995).ACMPress,1995.<br />
Sonnenberg,C.J.Improvings<strong>of</strong>twaremaintainability:Acasestudy.Master’sthesis,TechnischeUniversiteitEindhoven,2005.<br />
Spanjers, Hans, Maarten ter Huurne, Dan Bendas, Bas Graaf, Marco<br />
Lormans,<strong>and</strong>RinivanSolingen. Toolsupportfordistributeds<strong>of</strong>tware<br />
engineering.InProceedings<strong>of</strong>the1 st InternationalConferenceonGlobal<br />
S<strong>of</strong>twareEngineering(ICGSE2006),pages187–198.IEEEComputerSociety,2006.<br />
Stevens,Perdita. OnassociationsintheUnified<strong>Model</strong>lingLanguage. In<br />
Proceedings<strong>of</strong>the4 th InternationalConferenceontheUnified<strong>Model</strong>ing<br />
Language,<strong>Model</strong>ingLanguages,Concepts,<strong>and</strong>Tools(≪UML≫2001),<br />
volume2185<strong>of</strong>LectureNotesinComputerScience.2001.<br />
Swanson,E.Burton. Thedimensions<strong>of</strong>maintenance. InProceedings2 nd<br />
InternationalConferenceonS<strong>of</strong>twareEngineering(ICSE1976),pages<br />
492–497.IEEEComputerSociety,1976.<br />
Terekhov,AndreyA.<strong>and</strong>ChrisVerhoef. Therealities<strong>of</strong>languageconversions.IEEES<strong>of</strong>tware,17(6):pages111–124,2000.<br />
PROGRESS. Embeddedsystemsroadmap2002: Visiononthetechnology<br />
forthefuture<strong>of</strong>PROGRESS. Technicalreport,TechnologyFoundation<br />
(STW),2002.http://www.stw.nl/Programmas/Progress/ESroadmap.htm.<br />
Van den Br<strong>and</strong>, M.G.J., A. van Deursen, J. Heering, H.A. de Jong,<br />
M.deJonge,T.Kuipers,P.Klint,L.Moonen,P.A.Olivier,J.Scheerder,<br />
J.J.Vinju,E.Visser,<strong>and</strong>J.Visser. TheASF+SDFmeta-environment:<br />
Acomponent-basedlanguagedevelopmentenvironment. InProceedings<strong>of</strong>the10thInternationalConferenceonCompilerConstruction(CC
BIBLIOGRAPHY 219<br />
2001),volume2027<strong>of</strong>LectureNotesinComputerScience,pages365–370.<br />
Springer-Verlag,2001.<br />
V<strong>and</strong>enNieuwelaar,N.J.M. SupervisoryMachineControlbyPredictive-<br />
ReactiveScheduling. Ph.D.thesis,TechnischeUniversiteitEindhoven,<br />
2004.<br />
V<strong>and</strong>enNieuwelaar,N.J.M.,J.M.v<strong>and</strong>eMortel-Fronczak,<strong>and</strong>J.E.Rooda.<br />
Design <strong>of</strong> supervisory machine control. In Glover, Keith <strong>and</strong> Jan<br />
Maciejowski, editors, Proceedings<strong>of</strong>theEuropeanControlConference<br />
ECC2003.2003.<br />
V<strong>and</strong>erAalst,Wil,TonWeijters,<strong>and</strong>LauraMaruster. Workflowmining:Discoveringprocessmodelsfromeventlogs.<br />
IEEETransactionson<br />
Knowledge<strong>and</strong>DataEngineering,16(9):pages1128–1142,2004.<br />
VanDeursen, A., C.H<strong>of</strong>meister, R.Koschke, L.Moonen, <strong>and</strong>C.Riva.<br />
Symphony: View-drivens<strong>of</strong>twarearchitecturereconstruction. InProceedings<strong>of</strong>the4<br />
th WorkingIEEE/IFIPConferenceonS<strong>of</strong>twareArchitecture(WICSA4),pages122–134.IEEEComputerSociety,2004.<br />
VanDeursen,Arie.Des<strong>of</strong>tware-evolutieparadox.http://homepages.cwi.nl/<br />
~arie/intreerede/,2005.InaugurallectureDelftUniversity<strong>of</strong>Technology.<br />
VanDeursen,Arie,JanHeering,<strong>and</strong>PaulKlint,editors.LanguagePrototyping:AnAlgebraicSpecificationApproach,volume5<strong>of</strong>AMASTSeries<br />
inComputing.WorldScientificPublishingCo.,1996.<br />
VanDeursen,Arie<strong>and</strong>PaulKlint. Littlelanguages:Littlemaintenance?<br />
Journal<strong>of</strong>S<strong>of</strong>twareMaintenance:Research<strong>and</strong>Practice,10(2):pages75–<br />
92,1998.<br />
VanDeursen, Arie, PaulKlint, <strong>and</strong>JoostVisser. Domain-specificlanguages:Anannotatedbibliography.ACMSIGPLANNotices,35(6):pages<br />
26–36,2000.<br />
VanDeursen,Arie<strong>and</strong>JoostVisser. SourcemodelanalysisusingtheJJ-<br />
Travelervisitorcombinatorframework. S<strong>of</strong>tware:Practice<strong>and</strong>Experience,34(14):pages1345–1379,2004.<br />
VanDijk,HylkeW.,BasGraaf,<strong>and</strong>RobBoerman.Onthesystematicconformancecheck<strong>of</strong>s<strong>of</strong>twareartefacts.InProceedings<strong>of</strong>the2<br />
nd European<br />
WorkshoponS<strong>of</strong>twareArchitecture(EWSA2005),volume3047<strong>of</strong>Lecture<br />
NotesonComputerScience,pages203–221.Springer-Verlag,2005.<br />
VanGenuchten,Michiel.Theimpact<strong>of</strong>s<strong>of</strong>twaregrowthontheelectronics<br />
industry.IEEEComputer,40(1):pages106–108,2007.
220 BIBLIOGRAPHY<br />
VanOmmering,Rob,Frankv<strong>and</strong>erLinden,JeffKramer,<strong>and</strong>JeffMagee.<br />
TheKoalacomponentmodelforconsumerelectronicss<strong>of</strong>tware. IEEE<br />
Computer,33(3):pages78–85,2000.<br />
Viennot,GérardXavier.Heaps<strong>of</strong>pieces,I:Basicdefinitions<strong>and</strong>combinatoriallemmas.InProceedings<strong>of</strong>theColloquedecombinatoireénumérative(UQAM1985),Montreal,Canada,volume1234<strong>of</strong>LectureNotesin<br />
Mathematics,pages321–350.Springer-Verlag,1986.<br />
Visser,Eelco. Programtransformationwithstratego/xt:Rules,strategies,<br />
tools,<strong>and</strong>systemsinstratego/xt0.9. InDomain-SpecificProgramGeneration,number3016inLectureNotesinComputerScience,pages216–<br />
238.Springer-Verlag,2004.<br />
Wang,Yingxu,GrahamKing,HakanWickberg,<strong>and</strong>AlecDorling.Whatthe<br />
s<strong>of</strong>twareindustrysaysaboutthepracticesmodelledincurrents<strong>of</strong>tware<br />
processmodels? InProceedings<strong>of</strong>the25 th EUROMICROConference,<br />
volume2,pages162–168.IEEEComputerSociety,1999.<br />
Whittle,Jon<strong>and</strong>JohannSchumann. Generatingstatechartdesignsfrom<br />
scenarios. InProceedings<strong>of</strong>the22 nd InternationalConferenceonS<strong>of</strong>twareEngineering(ICSE2000),pages314–323.IEEEComputerSociety,<br />
2000.<br />
Wirth,Niklaus.Programdevelopmentbystepwiserefinement.Communications<strong>of</strong>theACM,14(4):pages221–227,1971.<br />
Yin,RobertK. CaseStudyResearch:Design<strong>and</strong>Methods. SagePublications,2003.
Summary<br />
Twowell-knowns<strong>of</strong>twareengineeringlawsstatethat1)s<strong>of</strong>twarehasto<br />
bechangedconstantlyinresponsetonewuserrequirementsorachanged<br />
environment,thatis,s<strong>of</strong>twareevolvescontinuously<strong>and</strong>2)s<strong>of</strong>twarethat<br />
ischanged,becomesmorecomplicated. Theconsequence<strong>of</strong>thistrend<strong>of</strong><br />
increasingcomplexityisthatthemaintainability<strong>of</strong>s<strong>of</strong>twaresystemsdecreasesovertime:<br />
itbecomesmore<strong>and</strong>moredifficulttomakechanges.<br />
Thecomplexity<strong>of</strong>as<strong>of</strong>twaresystemisforalargepartdeterminedbyits<br />
structure,<strong>of</strong>tenreferredtoasarchitecture.Thisthesisfocusesontheevolution<strong>of</strong>s<strong>of</strong>twarearchitectures.Thistype<strong>of</strong>evolution,whilecommon,comes<br />
withaconsiderablerisk<strong>and</strong>cost.Ouraimistoreducethisrisk<strong>and</strong>cost.<br />
Twoobviousstrategiestoremedytheproblem<strong>of</strong>reducedmaintainability<strong>of</strong>s<strong>of</strong>twaresystemsare:1)applytechniquestomanagetheincreasing<br />
complexity,or2)applytechniquestoreducethecomplexity. Automation<br />
<strong>and</strong>abstractionaretwobasics<strong>of</strong>twareengineeringtechniquestosupport<br />
thesestrategies. Inthisthesisweinvestigatedtheapplicability<strong>of</strong>technologiesforanewapproach<strong>of</strong>s<strong>of</strong>twaredevelopment,basedonautomation<br />
<strong>and</strong>abstraction,tosupporttheevolution<strong>of</strong>s<strong>of</strong>twarearchitectures. This<br />
newapproachisreferredtoasmodel-drivens<strong>of</strong>twaredevelopment.<br />
Themainresearchquestionaddressedinthisworkis: Howcanevolution<strong>of</strong>s<strong>of</strong>twarearchitecturebesupported?<br />
Weclarifiedthescope<strong>of</strong>our<br />
workbydefiningthreerelatedsubquestionsthatdealwithintegration<strong>of</strong><br />
evolutionsupportinindustrialpractice,theimplication<strong>of</strong>theuse<strong>of</strong>productlineprinciplesontheevolutionsupport,<strong>and</strong>theautomation<strong>of</strong>evolutionsupportusingmodel-drivens<strong>of</strong>twaredevelopmenttechniques.Togetabetterunderst<strong>and</strong>ing<strong>of</strong>theuses<strong>of</strong>twareengineeringtechnologiesfordifferenttypes<strong>of</strong>tasksinindustry,westartedbyconductingasurvey.Inthissurveyweaskeds<strong>of</strong>twarepractitioners<strong>of</strong>eights<strong>of</strong>twaredevelopmentorganisationsaboutthes<strong>of</strong>twareengineeringtechnologiesthey<br />
use. Wealsopaidattentiontothesituationinwhichcertaintechnologies<br />
areapplied<strong>and</strong>potentialproblems. Thetrendsweobservedduringthis<br />
surveyinclude:theuse<strong>of</strong>product-lineapproaches,theinformaluse<strong>of</strong>mod-<br />
221
222 Summary<br />
elling<strong>and</strong>theimportance<strong>of</strong>theevolutionaryaspect<strong>of</strong>s<strong>of</strong>tware(i.e.,s<strong>of</strong>twareisseldomdevelopedfromscratch).<br />
Partlytheresults<strong>of</strong>thissurvey<br />
motivatedtheaforementionedresearchquestions.<br />
Then,bycasestudiesatOcé<strong>and</strong>ASML,weinvestigatedhowtheevolution<strong>of</strong>s<strong>of</strong>twarearchitecturescanbesupported.Inparticularweconsidered<br />
fourtypes<strong>of</strong>s<strong>of</strong>twareengineeringtasksrelatedtos<strong>of</strong>twareevolution<br />
EvaluationAfirststepwhenperformingchangestoas<strong>of</strong>twaresystem,<br />
istheevaluation<strong>of</strong>whetherthesechangescanberealisedwithinthe<br />
currentarchitecture.Here,wemainlyinvestigatedhowsuchanevaluationcanbeconductedinthecontext<strong>of</strong>as<strong>of</strong>twareproductline.<br />
ConformancecheckingWhenanarchitecturehastobechangeditis<br />
usefultoknowtoextenttowhichitisconsistentwithotherdevelopmentartefacts.Wefocusedonhowmodel-drivens<strong>of</strong>twaredevelopmenttechnologiescanbeappliedtoanswerthatquestion.<br />
MigrationWeinvestigatedhowanactualmigrationcanbepartlyautomatedbytheuse<strong>of</strong>modeltransformations.<br />
DocumentationAdisadvantage<strong>of</strong>theapplication<strong>of</strong>domain-specificlanguagesformodel-drivens<strong>of</strong>twaredevelopmentisthatthedefinition<br />
<strong>of</strong>a(graphical)notationrequiresconsiderableeffort.Weinvestigated<br />
howmodeltransformationscanbedeployedtomapsuchlanguagesto<br />
UMLnotation.<br />
Westudiedeach<strong>of</strong>thesetasksseparatelyinacasestudy.<br />
Theinformaluse<strong>of</strong>modellinginindustrymakesitnecessarytointroduceanormalisationsteptoenabletheintegration<strong>of</strong>evolutionsupportinindustrialpractice.Thisthesisincludesseveralexamples<strong>of</strong>howtoimplementthisstep,whichistypicallycontextspecific.Additionallybytheuse<br />
<strong>of</strong>severalst<strong>and</strong>ardsinthearea<strong>of</strong>model-drivens<strong>of</strong>twaredevelopmentwe<br />
furtherimprovethepotentialintegration<strong>of</strong>ourresultsinpractice.<br />
Inseveralchaptersweaddresstheimpact<strong>of</strong>theuse<strong>of</strong>product-line<br />
principlesforthedevelopment<strong>of</strong>s<strong>of</strong>twaresystemsonthes<strong>of</strong>twareevolutionsupportweintroduce.<br />
Althoughtheincreasedscope<strong>of</strong>s<strong>of</strong>tware<br />
product-linesmakessuchsupportmoredifficulttodevelop,atthesame<br />
timethereturnoninvestment(e.g.,fortheuse<strong>of</strong>amodel-drivenapproach)<br />
ismuchimproved.<br />
Themodel-drivensupportfortheevolutiontasksthatwepresentin<br />
thisthesisfollowsasimilarthree-steppattern. Aset<strong>of</strong>sourcemodelsis<br />
first’preprocessed’intoaformsuitableformodeltransformations. This<br />
preprocessingincludesanormalisationstepaswellasatranslationinto
Summary 223<br />
arepresentationbasedonthesametechnologyasthemodeltransformations.Then,modeltransformationsareappliedthataredefinedinamodel<br />
transformationlanguage. Thesetransformationsdotheactualworksuch<br />
asconformancechecking(i.e.,usingtwosourcemodels)ormigration. Finally,theresultingtargetmodelsarepostprocessedintothedesiredtargetform.Thismightbeagraphicalrepresentationorsomerepresentationintendedforfurtherprocessing.
Samenvatting<br />
Tweebekendewettenindes<strong>of</strong>tware-engineeringzeggendat: 1)s<strong>of</strong>tware<br />
voortdurendmoetwordenaangepastaannieuweengewijzigdeomgevingsengebruikerseisen;met<strong>and</strong>erewoordens<strong>of</strong>twareevolueertcontinuen2)<br />
s<strong>of</strong>twarediegewijzigdwordt,wordtsteedsingewikkelder.Hetgevolgvan<br />
dezetoenemendecomplexiteitisdatdeonderhoudbaarheidvans<strong>of</strong>twaresystemenafneemtmetdetijd:hetwordtsteedsmoeilijkerver<strong>and</strong>eringenaantebrengen.Vooreengrootdeelwordtdecomplexiteitvaneens<strong>of</strong>twaresysteembepaalddoorzijnstructuur,ookwelarchitectuurgenoemd.<br />
De<br />
focusinditproefschriftisopdeevolutievans<strong>of</strong>twarearchitecturen. Hoewelditsoortevolutievaakvoorkomt,iszerisicovolenkostbaar.Onsdoelishetrisicoendekostendiegepaardgaanmetdeevolutievans<strong>of</strong>twarearchitecturenteverminderen.Voorhetprobleemdatdeonderhoudbaarheidvans<strong>of</strong>twaresystemenafneemtbestaantweevoordeh<strong>and</strong>liggendeoplossingsstrategieën:<br />
1)het<br />
gebruikvantechniekenomdetoenemendecomplexiteittebeheersenen2)<br />
hetgebruikvantechniekenomdecomplexiteitteverminderen.Automatiseringenabstractiezijntweebekendes<strong>of</strong>tware-engineeringtechniekendievoordezetweestrategieëningezetkunnenworden.Inditproefschrifthebbenweonderzochthoetechniekenvooreennieuweaanpakvoors<strong>of</strong>tware<br />
ontwikkeling,diegebaseerdisopautomatiseringenabstractie,toegepast<br />
kunnenwordenvoordeevolutievans<strong>of</strong>twarearchitecturen. Dezenieuwe<br />
aanpakwordtmodelgedrevens<strong>of</strong>twareontwikkelinggenoemd.<br />
Deho<strong>of</strong>donderzoeksvraagdiewebeh<strong>and</strong>elenis:Hoek<strong>and</strong>eevolutievan<br />
s<strong>of</strong>twarearchitecturenwordenondersteund?.Eendrietalgerelateerdesubvragenbakenenonsonderzoekverderaf.<br />
Dezesubvragengaanoverde<br />
integratievanpotentiëleevolutieondersteuningindeindustriëlepraktijk,<br />
degevolgenvanhetgebruikvanproductlijnenopdeevolutieondersteuning<br />
endeautomatiseringv<strong>and</strong>eevolutieondersteuningdoormiddelvanmodelgedrevens<strong>of</strong>twareontwikkeltechnologieën.<br />
Ombetertebegrijpenwelkes<strong>of</strong>twareontwikkeltechnologieënopwelke<br />
manierwordeningezetvoorverschillendesoortentaken,zijnwebegon-<br />
225
226 Samenvatting<br />
nenmeteenenquête.Indezeenquêtehebbenwemenseninverschillende<br />
rollenbijeenachttalorganisatiesindes<strong>of</strong>tware-industriegevraagdnaar<br />
deontwikkeltechnologieëndiezegebruiken.Belangrijkea<strong>and</strong>achtspunten<br />
hierbijwarenookdesituatiewaaringebruikwordtgemaaktvaneenbepaaldetechnologieendeproblemendiedaarbijoptreden.<br />
Enkeletrends<br />
diewetijdensdeenquêtehebbenopgemerktzijn:hettoenemendegebruik<br />
vanproductlijnen,deinformelewijzevanmodellerenenhetbelangvanhet<br />
evolutionaireaspectvans<strong>of</strong>tware(s<strong>of</strong>twaresystemenwordenzeldenvanuit<br />
hetnietsontwikkeld).Deelshebbenderesultatenv<strong>and</strong>ezeenquêtegeleid<br />
toteerdergenoemdeonderzoeksvragen.<br />
Vervolgenshebbenwemetbehulpvancasestudy’sbijOcéenASMLonderzochthoedeevolutievans<strong>of</strong>twarearchitectuurondersteundkanworden.<br />
Wehebbenonshierbijgerichtopviertypens<strong>of</strong>twareontwikkeltaken<br />
dietemakenhebbenmets<strong>of</strong>tware-evolutie<br />
EvaluatieEeneerstestapbijwijzigingenishetvaststellen<strong>of</strong>zijbinnen<br />
dehuidigearchitectuurgerealiseerdkunnenworden.Hierhebbenwe<br />
vooralonderzochthoezo’nevaluatieindecontextvaneenproductlijn<br />
gemaaktkanworden.<br />
ConsistentieWanneerdearchitectuurmoetwordenaangepastishetnuttigteweteninwelkematedezeconsistentismet<strong>and</strong>ereontwikkelartefacten.Wijhebbenonsgeconcentreerdopdemogelijkhedenvan<br />
modelgedrevens<strong>of</strong>twareontwikkeltechniekenvoorhetvindenvaneen<br />
antwoordopdievraag.<br />
MigratieWijhebbenonderzochthoeeendaadwerkelijkemigratiegedeeltelijkgeautomatiseerdkanwordenmetbehulpvanmodeltransformaties.<br />
DocumentatieDetoepassingv<strong>and</strong>omeinspecifieketalenvoormodelgedrevens<strong>of</strong>twareontwikkelingheeftalsnadeeldatdeontwikkelingvan<br />
een(grafische)notatieveelinspanningvergt.Wijhebbenonderzocht<br />
hoemodeltransformatieskunnenwordeningezetomzulketalenaf<br />
tebeeldenopdeUMLnotatie.<br />
Wehebbenelkv<strong>and</strong>ezetakenbestudeerdineenapartecasestudy.<br />
Deinformelewijzevanmodellerenindeindustriemaakthetnoodzakelijkeennormalisatiestapteintroducerenomdeintegratievanevolutieondersteuningindeindustriëlepraktijkmogelijktemaken.Ditproefschrift<br />
bevatverscheidenevoorbeeldenvanhoedezestap,diecontextafhankelijk<br />
is,terealiseren. Verderverbeterenwedeintegreerbaarheidvanonzeresultatenindepraktijkdoorhetgebruikvaneenaantalst<strong>and</strong>aardenophet<br />
gebiedvanmodelgedrevens<strong>of</strong>twareontwikkeling.
Samenvatting 227<br />
Inmeerdereho<strong>of</strong>dstukkenkomenweterugopdeinvloedvanhetgebruikvanproductlijnenvoordeontwikkelingvans<strong>of</strong>twaresystemenopde<br />
evolutieondersteuningdieweontwikkelen.Alhoeweldegroterereikwijdte<br />
vanproductlijnenditmoeilijkermaakt,nemendemogelijkhedendenoodzakelijkeinvesteringen(bv.voorhetgebruikvaneenmodelgedrevenaanpak)terugteverdieneneveneenstoe.<br />
Demodelgedrevenondersteuningvoordes<strong>of</strong>tware-evolutietakendiewe<br />
inditproefschriftpresenterenvolgteenvergelijkbaardriestappenpatroon.<br />
Eenverzamelingbronmodellenwordteerstzodaniggeprepareerddatde<br />
modelleneenformaatkrijgendatgeschiktisomtetransformerenmetmodeltransformaties.Depreparatiestapomvateennormalisatieeneenvertalingnaareenrepresentatiediegebaseerdisopdezelfdetechnologieals<br />
detoetepassenmodeltransformaties. Vervolgenswordendezetransformaties,diegedefinieerdwordenineenmodeltransformatietaal,toegepast.<br />
Dezetransformatiesdoenheteigenlijkewerk,zoalshetcontrolerenvan<br />
consistentie(dusmettweebronmodellen)<strong>of</strong>eenmigratie.Tenslottewordt<br />
hetresultaatnogbewerktomhetineengewenstformaattebrengen.Dit<br />
kanbijvoorbeeldeengrafischerepresentatiezijn<strong>of</strong>eentijdelijkerepresentatiebedoeldvoorverderebewerking.
Curriculum Vitae<br />
BasGraafwasborninTheHagueonFridaythe13 th <strong>of</strong>Januaryin1978.<br />
There,hegraduatedgymnasium(highschool)in1996atCSGOvervoorde.<br />
SubsequentlyheenrolledinthecomputerscienceprogramatDelftUniversity<strong>of</strong>Technology.<br />
Afterspecialisingins<strong>of</strong>twareengineeringhereceived<br />
hismaster’sdegreein2002. Hewrotehismaster’sthesisoncomponentbaseds<strong>of</strong>twaredevelopment<strong>and</strong>theUnified<strong>Model</strong>ingLanguageundersupervision<strong>of</strong>Dr.P.G.Kluit<strong>and</strong>Pr<strong>of</strong>.dr.ir.J.L.G.Dietz.In2002hestartedhisPh.D.researchatthes<strong>of</strong>twaretechnologydepartment<strong>of</strong>DelftUniversity<strong>of</strong>Technology.<br />
Duringthisresearchunder<br />
supervision<strong>of</strong>Pr<strong>of</strong>.dr.A.vanDeursenheinvestigatedtheapplicability<strong>of</strong><br />
model-drivens<strong>of</strong>twaredevelopmenttechnologiestosupports<strong>of</strong>twareevolution.<br />
229
TitlesintheIPADissertationSeriessince2002<br />
M.C.vanWezel.NeuralNetworks<br />
forIntelligentDataAnalysis: theoretical<strong>and</strong>experimentalaspects.Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.2002-01<br />
V.Bos<strong>and</strong>J.J.T.Kleijn. Formal<br />
Specification <strong>and</strong> Analysis <strong>of</strong> IndustrialSystems.Faculty<strong>of</strong>Mathematics<strong>and</strong>ComputerScience<strong>and</strong><br />
Faculty<strong>of</strong>MechanicalEngineering,<br />
TU/e.2002-02<br />
T. Kuipers. Techniques for Underst<strong>and</strong>ingLegacyS<strong>of</strong>twareSystems.<br />
Faculty<strong>of</strong>NaturalSciences,<br />
Mathematics <strong>and</strong> Computer Science,UvA.2002-03<br />
S.P. Luttik. Choice Quantification<br />
in Process Algebra. Faculty<br />
<strong>of</strong>NaturalSciences,Mathematics,<br />
<strong>and</strong>ComputerScience,UvA.2002-<br />
04<br />
R.J.Willemen. SchoolTimetable<br />
Construction: Algorithms <strong>and</strong><br />
Complexity. Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong> Computer Science, TU/e.<br />
2002-05<br />
M.I.A.Stoelinga. AleaJactaEst:<br />
Verification <strong>of</strong> Probabilistic, Realtime<strong>and</strong>ParametricSystems.Faculty<strong>of</strong>Science,<br />
Mathematics<strong>and</strong><br />
ComputerScience,KUN.2002-06<br />
N.vanVugt.<strong>Model</strong>s<strong>of</strong>Molecular<br />
Computing. Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.2002-<br />
07<br />
A.Fehnker.Citius,Vilius,Melius:<br />
Guiding <strong>and</strong> Cost-Optimality in<br />
<strong>Model</strong>Checking<strong>of</strong>Timed<strong>and</strong>HybridSystems.<br />
Faculty<strong>of</strong>Science,<br />
Mathematics <strong>and</strong> Computer Science,KUN.2002-08<br />
R.vanStee. On-lineScheduling<br />
<strong>and</strong>BinPacking.Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.<br />
2002-09<br />
D. Tauritz. Adaptive InformationFiltering:Concepts<strong>and</strong>Algorithms.<br />
Faculty <strong>of</strong> Mathematics<br />
<strong>and</strong>NaturalSciences,UL.2002-10<br />
M.B.v<strong>and</strong>erZwaag.<strong>Model</strong>s<strong>and</strong><br />
LogicsforProcessAlgebra.Faculty<br />
<strong>of</strong>NaturalSciences,Mathematics,<br />
<strong>and</strong>ComputerScience,UvA.2002-<br />
11<br />
J.I. den Hartog. Probabilistic<br />
Extensions <strong>of</strong> Semantical <strong>Model</strong>s.<br />
Faculty <strong>of</strong> Sciences, Division <strong>of</strong><br />
Mathematics <strong>and</strong> Computer Science,VUA.2002-12<br />
L. Moonen. Exploring S<strong>of</strong>tware<br />
Systems. Faculty<strong>of</strong>NaturalSciences,Mathematics,<strong>and</strong>Computer<br />
Science,UvA.2002-13<br />
J.I.vanHemert.Applying<strong>Evolution</strong>aryComputationtoConstraintSatisfaction<strong>and</strong>DataMining.Faculty<br />
<strong>of</strong> Mathematics <strong>and</strong> Natural<br />
Sciences,UL.2002-14<br />
S.Andova. ProbabilisticProcess<br />
Algebra. Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong>ComputerScience,TU/e.2002-<br />
15<br />
Y.S. Usenko. Linearization in<br />
µCRL.Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,TU/e.2002-16<br />
J.J.D.Aerts. R<strong>and</strong>omRedundant<br />
StorageforVideoonDem<strong>and</strong>.Fac-
ulty<strong>of</strong>Mathematics<strong>and</strong>Computer<br />
Science,TU/e.2003-01<br />
M. de Jonge. To Reuse or To<br />
Be Reused: Techniques for component<br />
composition <strong>and</strong> construction.<br />
Faculty<strong>of</strong>NaturalSciences,<br />
Mathematics, <strong>and</strong> Computer Science,UvA.2003-02<br />
J.M.W.Visser. GenericTraversal<br />
overTypedSourceCodeRepresentations.<br />
Faculty <strong>of</strong> Natural Sciences,Mathematics,<strong>and</strong>Computer<br />
Science,UvA.2003-03<br />
S.M.Bohte. SpikingNeuralNetworks.Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
NaturalSciences,UL.2003-04<br />
T.A.C.Willemse. Semantics<strong>and</strong><br />
Verification in Process Algebras<br />
with Data <strong>and</strong> Timing. Faculty<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2003-05<br />
S.V.Nedea. Analysis<strong>and</strong>Simulations<strong>of</strong>CatalyticReactions.Faculty<strong>of</strong>Mathematics<strong>and</strong>Computer<br />
Science,TU/e.2003-06<br />
M.E.M. Lijding. Real-time<br />
Scheduling <strong>of</strong> Tertiary Storage.<br />
Faculty <strong>of</strong> Electrical Engineering,<br />
Mathematics&ComputerScience,<br />
UT.2003-07<br />
H.P. Benz. Casual MultimediaProcessAnnotation–CoMPAs.<br />
Faculty <strong>of</strong> Electrical Engineering,<br />
Mathematics&ComputerScience,<br />
UT.2003-08<br />
D.Distefano. On<strong>Model</strong>checking<br />
theDynamics<strong>of</strong>Object-basedS<strong>of</strong>tware:<br />
a Foundational Approach.<br />
Faculty <strong>of</strong> Electrical Engineering,<br />
Mathematics&ComputerScience,<br />
UT.2003-09<br />
M.H.terBeek. TeamAutomata<br />
–AFormalApproachtothe<strong>Model</strong>ing<strong>of</strong>CollaborationBetweenSystemComponents.Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.<br />
2003-10<br />
D.J.P. Leijen. The λ Abroad –<br />
AFunctionalApproachtoS<strong>of</strong>tware<br />
Components. Faculty <strong>of</strong> Mathematics<strong>and</strong>ComputerScience,UU.<br />
2003-11<br />
W.P.A.J. Michiels. Performance<br />
RatiosfortheDifferencingMethod.<br />
Faculty<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2004-01<br />
G.I. Jojgov. Incomplete Pro<strong>of</strong>s<br />
<strong>and</strong>Terms<strong>and</strong>TheirUseinInteractive<br />
Theorem Proving. Faculty<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2004-02<br />
P. Frisco. Theory <strong>of</strong> Molecular<br />
Computing – Splicing <strong>and</strong> Membranesystems.Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.<br />
2004-03<br />
S.Maneth. <strong>Model</strong>s<strong>of</strong>TreeTranslation.Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
NaturalSciences,UL.2004-04<br />
Y. Qian. Data Synchronization<br />
<strong>and</strong> Browsing for Home Environments.Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
Computer Science <strong>and</strong> Faculty <strong>of</strong><br />
IndustrialDesign,TU/e.2004-05<br />
F.Bartels. OnGeneralisedCoinduction<br />
<strong>and</strong> Probabilistic Specification<br />
Formats. Faculty <strong>of</strong> Sciences,Division<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,VUA.2004-06
L.Cruz-Filipe. ConstructiveReal<br />
Analysis: a Type-Theoretical Formalization<strong>and</strong>Applications.Faculty<strong>of</strong>Science,<br />
Mathematics<strong>and</strong><br />
ComputerScience,KUN.2004-07<br />
E.H. Gerding. Autonomous<br />
AgentsinBargainingGames: An<br />
<strong>Evolution</strong>aryInvestigation<strong>of</strong>Fundamentals,<br />
Strategies, <strong>and</strong> BusinessApplications.Faculty<strong>of</strong>TechnologyManagement,TU/e.<br />
2004-<br />
08<br />
N. Goga. Control <strong>and</strong> Selection<br />
TechniquesfortheAutomatedTesting<br />
<strong>of</strong> Reactive Systems. Faculty<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2004-09<br />
M. Niqui. Formalising Exact<br />
Arithmetic: Representations,Algorithms<strong>and</strong>Pro<strong>of</strong>s.Faculty<strong>of</strong>Science,<br />
Mathematics<strong>and</strong>Computer<br />
Science,RU.2004-10<br />
A.Löh.ExploringGenericHaskell.<br />
Faculty<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,UU.2004-11<br />
I.C.M.Flinsenberg. RoutePlanning<br />
Algorithms for Car Navigation.<br />
Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,TU/e.2004-12<br />
R.J.Bril.Real-timeSchedulingfor<br />
MediaProcessingUsingConditionallyGuaranteedBudgets.<br />
Faculty<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2004-13<br />
J. Pang. Formal Verification <strong>of</strong><br />
Distributed Systems. Faculty <strong>of</strong><br />
Sciences,Division<strong>of</strong>Mathematics<br />
<strong>and</strong>ComputerScience,VUA.2004-<br />
14<br />
F.Alkemade.<strong>Evolution</strong>aryAgent-<br />
BasedEconomics.Faculty<strong>of</strong>TechnologyManagement,TU/e.<br />
2004-<br />
15<br />
E.O.Dijk. IndoorUltrasonicPosition<br />
Estimation Using a Single<br />
Base Station. Faculty <strong>of</strong> Mathematics<br />
<strong>and</strong> Computer Science,<br />
TU/e.2004-16<br />
S.M.Orzan. OnDistributedVerification<strong>and</strong>VerifiedDistribution.<br />
Faculty <strong>of</strong> Sciences, Division <strong>of</strong><br />
Mathematics <strong>and</strong> Computer Science,VUA.2004-17<br />
M.M. Schrage. Proxima - A<br />
Presentation-oriented Editor for<br />
StructuredDocuments. Faculty<strong>of</strong><br />
Mathematics <strong>and</strong> Computer Science,UU.2004-18<br />
E. Eskenazi <strong>and</strong> A. Fyukov.<br />
Quantitative Prediction <strong>of</strong> QualityAttributesforComponent-Based<br />
S<strong>of</strong>tware<strong>Architectures</strong>. Faculty<strong>of</strong><br />
Mathematics <strong>and</strong> Computer Science,TU/e.2004-19<br />
P.J.L. Cuijpers. Hybrid Process<br />
Algebra. Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong>ComputerScience,TU/e.2004-<br />
20<br />
N.J.M. van den Nieuwelaar.<br />
Supervisory Machine Control by<br />
Predictive-Reactive Scheduling.<br />
Faculty<strong>of</strong>MechanicalEngineering,<br />
TU/e.2004-21<br />
E.Ábrahám.AnAssertionalPro<strong>of</strong><br />
System for Multithreaded Java -<br />
Theory <strong>and</strong> Tool Support- . Faculty<br />
<strong>of</strong> Mathematics <strong>and</strong> Natural<br />
Sciences,UL.2005-01
R.Ruimerman.<strong>Model</strong>ing<strong>and</strong>RemodelinginBoneTissue.<br />
Faculty<br />
<strong>of</strong> Biomedical Engineering, TU/e.<br />
2005-02<br />
C.N. Chong. Experiments in<br />
Rights Control - Expression <strong>and</strong><br />
Enforcement. Faculty<strong>of</strong>Electrical<br />
Engineering,Mathematics&ComputerScience,UT.2005-03<br />
H.Gao.Design<strong>and</strong>Verification<strong>of</strong><br />
Lock-freeParallelAlgorithms.Faculty<strong>of</strong>Mathematics<strong>and</strong>ComputingSciences,RUG.2005-04<br />
H.M.A. van Beek. Specification<br />
<strong>and</strong> Analysis <strong>of</strong> Internet Applications.<br />
Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,TU/e.2005-05<br />
M.T.Ionita. Scenario-BasedSystemArchitecting-ASystematicApproachtoDevelopingFuture-Pro<strong>of</strong><br />
System <strong>Architectures</strong>. Faculty <strong>of</strong><br />
Mathematics <strong>and</strong> Computing Sciences,TU/e.2005-06<br />
G.Lenzini. Integration<strong>of</strong>Analysis<br />
Techniques in Security <strong>and</strong><br />
Fault-Tolerance. Faculty <strong>of</strong> ElectricalEngineering,Mathematics&<br />
ComputerScience,UT.2005-07<br />
I.Kurtev. Adaptability<strong>of</strong><strong>Model</strong><br />
Transformations. Faculty<strong>of</strong>ElectricalEngineering,Mathematics&<br />
ComputerScience,UT.2005-08<br />
T.Wolle. ComputationalAspects<br />
<strong>of</strong>Treewidth-LowerBounds<strong>and</strong><br />
NetworkReliability.Faculty<strong>of</strong>Science,UU.2005-09<br />
O. Tveretina. Decision ProceduresforEqualityLogicwithUninterpreted<br />
Functions. Faculty <strong>of</strong><br />
Mathematics <strong>and</strong> Computer Science,TU/e.2005-10<br />
A.M.L.Liekens. <strong>Evolution</strong><strong>of</strong>FinitePopulationsinDynamicEnvironments.<br />
Faculty <strong>of</strong> Biomedical<br />
Engineering,TU/e.2005-11<br />
J.Eggermont. DataMiningusingGeneticProgramming:Classification<br />
<strong>and</strong> Symbolic Regression.<br />
Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.2005-12<br />
B.J.Heeren.TopQualityTypeErrorMessages.<br />
Faculty<strong>of</strong>Science,<br />
UU.2005-13<br />
G.F. Frehse. CompositionalVerification<br />
<strong>of</strong> Hybrid Systems using<br />
Simulation Relations. Faculty <strong>of</strong><br />
Science, Mathematics <strong>and</strong> ComputerScience,RU.2005-14<br />
M.R.Mousavi.StructuringStructuralOperationalSemantics.Faculty<strong>of</strong>Mathematics<strong>and</strong>Computer<br />
Science,TU/e.2005-15<br />
A.Sokolova. CoalgebraicAnalysis<strong>of</strong>ProbabilisticSystems.Faculty<strong>of</strong>Mathematics<strong>and</strong>Computer<br />
Science,TU/e.2005-16<br />
T.Gelsema. Effective<strong>Model</strong>sfor<br />
the Structure <strong>of</strong> pi-Calculus Processes<br />
with Replication. Faculty<br />
<strong>of</strong> Mathematics <strong>and</strong> Natural Sciences,UL.2005-17<br />
P. Zoeteweij. Composing ConstraintSolvers.<br />
Faculty<strong>of</strong>Natural<br />
Sciences, Mathematics, <strong>and</strong>ComputerScience,UvA.2005-18<br />
J.J.Vinju.Analysis<strong>and</strong>Transformation<strong>of</strong>SourceCodebyParsing<br />
<strong>and</strong>Rewriting. Faculty<strong>of</strong>Natural
Sciences, Mathematics, <strong>and</strong>ComputerScience,UvA.2005-19<br />
M.Valero Espada. Modal Abstraction<br />
<strong>and</strong> Replication <strong>of</strong> ProcesseswithData.Faculty<strong>of</strong>Sciences,Division<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,VUA.2005-20<br />
A. Dijkstra. Stepping through<br />
Haskell. Faculty <strong>of</strong> Science, UU.<br />
2005-21<br />
Y.W.Law. Keymanagement<strong>and</strong><br />
link-layersecurity<strong>of</strong>wirelesssensor<br />
networks: energy-efficient attack<strong>and</strong>defense.Faculty<strong>of</strong>ElectricalEngineering,Mathematics&<br />
ComputerScience,UT.2005-22<br />
E.Dolstra.ThePurelyFunctional<br />
S<strong>of</strong>twareDeployment<strong>Model</strong>. Faculty<strong>of</strong>Science,UU.2006-01<br />
R.J. Corin. Analysis <strong>Model</strong>s for<br />
SecurityProtocols.Faculty<strong>of</strong>ElectricalEngineering,Mathematics&<br />
ComputerScience,UT.2006-02<br />
P.R.A. Verbaan. The ComputationalComplexity<strong>of</strong>EvolvingSystems.Faculty<strong>of</strong>Science,UU.2006-<br />
03<br />
K.L. Man <strong>and</strong> R.R.H. Schiffelers.<br />
Formal Specification <strong>and</strong><br />
Analysis<strong>of</strong>HybridSystems. Faculty<strong>of</strong>Mathematics<strong>and</strong>Computer<br />
Science<strong>and</strong>Faculty<strong>of</strong>Mechanical<br />
Engineering,TU/e.2006-04<br />
M.Kyas. VerifyingOCLSpecifications<strong>of</strong>UML<strong>Model</strong>s:ToolSupport<strong>and</strong>Compositionality.Faculty<br />
<strong>of</strong> Mathematics <strong>and</strong> Natural Sciences,UL.2006-05<br />
M. Hendriks. <strong>Model</strong> Checking<br />
TimedAutomata-Techniques<strong>and</strong><br />
Applications. Faculty <strong>of</strong> Science,<br />
Mathematics <strong>and</strong> Computer Science,RU.2006-06<br />
J.Ketema. Böhm-LikeTreesfor<br />
Rewriting. Faculty <strong>of</strong> Sciences,<br />
VUA.2006-07<br />
C.-B. Breunesse. OnJML:topics<br />
in tool-assisted verification <strong>of</strong><br />
JML programs. Faculty <strong>of</strong> Science,<br />
Mathematics<strong>and</strong>Computer<br />
Science,RU.2006-08<br />
B. Markvoort. Towards Hybrid<br />
Molecular Simulations. Faculty<br />
<strong>of</strong> Biomedical Engineering, TU/e.<br />
2006-09<br />
S.G.R. Nijssen. Mining StructuredData.Faculty<strong>of</strong>Mathematics<strong>and</strong>NaturalSciences,UL.2006-<br />
10<br />
G. Russello. Separation <strong>and</strong><br />
Adaptation<strong>of</strong>ConcernsinaShared<br />
DataSpace. Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong> Computer Science, TU/e.<br />
2006-11<br />
L.Cheung.ReconcilingNondeterministic<strong>and</strong>ProbabilisticChoices.<br />
Faculty <strong>of</strong> Science, Mathematics<br />
<strong>and</strong>ComputerScience,RU.2006-<br />
12<br />
B. Badban. Verification techniques<br />
for Extensions <strong>of</strong> Equality<br />
Logic.Faculty<strong>of</strong>Sciences,Division<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,VUA.2006-13<br />
A.J. Mooij. Constructive formal<br />
methods<strong>and</strong>protocolst<strong>and</strong>ardization.<br />
Faculty<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,TU/e.2006-14<br />
T.Krilavicius.HybridTechniques<br />
for Hybrid Systems. Faculty <strong>of</strong>
ElectricalEngineering,Mathematics&ComputerScience,UT.2006-<br />
15<br />
M.E. Warnier. Language Based<br />
SecurityforJava<strong>and</strong>JML.Faculty<br />
<strong>of</strong>Science,Mathematics<strong>and</strong>ComputerScience,RU.2006-16<br />
V.Sundramoorthy. AtHomeIn<br />
ServiceDiscovery. Faculty<strong>of</strong>ElectricalEngineering,Mathematics&<br />
ComputerScience,UT.2006-17<br />
B.Gebremichael. Expressivity<strong>of</strong><br />
TimedAutomata<strong>Model</strong>s. Faculty<br />
<strong>of</strong>Science,Mathematics<strong>and</strong>ComputerScience,RU.2006-18<br />
L.C.M. van Gool. Formalising<br />
Interface Specifications. Faculty<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2006-19<br />
C.J.F. Cremers. Scyther - Semantics<strong>and</strong>Verification<strong>of</strong>Security<br />
Protocols. Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong>ComputerScience,TU/e.2006-<br />
20<br />
J.V. Guillen Scholten. Mobile<br />
ChannelsforExogenousCoordination<br />
<strong>of</strong> Distributed Systems: Semantics,Implementation<strong>and</strong>Composition.<br />
Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong>NaturalSciences,UL.2006-21<br />
H.A.deJong. FlexibleHeterogeneous<br />
S<strong>of</strong>tware Systems. Faculty<br />
<strong>of</strong>NaturalSciences,Mathematics,<br />
<strong>and</strong>ComputerScience,UvA.2007-<br />
01<br />
N.K.Kavaldjiev. Arun-timereconfigurable<br />
Network-on-Chip for<br />
streamingDSPapplications. Faculty<br />
<strong>of</strong> Electrical Engineering,<br />
Mathematics&ComputerScience,<br />
UT.2007-02<br />
M.vanVeelen.Considerationson<br />
<strong>Model</strong>ingforEarlyDetection<strong>of</strong>AbnormalitiesinLocallyAutonomous<br />
Distributed Systems. Faculty <strong>of</strong><br />
Mathematics <strong>and</strong> Computing Sciences,RUG.2007-03<br />
T.D.Vu. Semantics<strong>and</strong>Applications<strong>of</strong>Process<strong>and</strong>ProgramAlgebra.<br />
Faculty<strong>of</strong>NaturalSciences,<br />
Mathematics, <strong>and</strong> Computer Science,UvA.2007-04<br />
L. Br<strong>and</strong>án Briones. Theories<br />
for<strong>Model</strong>-basedTesting:Real-time<br />
<strong>and</strong>Coverage.Faculty<strong>of</strong>Electrical<br />
Engineering,Mathematics&ComputerScience,UT.2007-05<br />
I.Loeb.NaturalDeduction:SharingbyPresentation.Faculty<strong>of</strong>Science,<br />
Mathematics<strong>and</strong>Computer<br />
Science,RU.2007-06<br />
M.W.A.Streppel.Multifunctional<br />
GeometricDataStructures.Faculty<br />
<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2007-07<br />
N.Trčka. SilentStepsinTransitionSystems<strong>and</strong>MarkovChains.Faculty<strong>of</strong>Mathematics<strong>and</strong>ComputerScience,TU/e.2007-08<br />
R. Brinkman. Searching in encrypteddata.<br />
Faculty<strong>of</strong>Electrical<br />
Engineering,Mathematics&ComputerScience,UT.2007-09<br />
A.vanWeelden. Puttingtypesto<br />
gooduse.Faculty<strong>of</strong>Science,Mathematics<strong>and</strong>ComputerScience,RU.<br />
2007-10<br />
J.A.R. Noppen. ImperfectInformation<br />
in S<strong>of</strong>tware Development
Processes. Faculty <strong>of</strong> Electrical<br />
Engineering,Mathematics&ComputerScience,UT.2007-11<br />
R.Boumen. Integration<strong>and</strong>Test<br />
plansforComplexManufacturing<br />
Systems. Faculty <strong>of</strong> Mechanical<br />
Engineering,TU/e.2007-12<br />
A.J. Wijs. What to do Next?:<br />
Analysing<strong>and</strong>OptimisingSystem<br />
BehaviourinTime. Faculty<strong>of</strong>Sciences,Division<strong>of</strong>Mathematics<strong>and</strong><br />
ComputerScience,VUA.2007-13<br />
C.F.J.Lange. Assessing<strong>and</strong>ImprovingtheQuality<strong>of</strong><strong>Model</strong>ing:A<br />
Series<strong>of</strong>EmpiricalStudiesabout<br />
theUML.Faculty<strong>of</strong>Mathematics<br />
<strong>and</strong>ComputerScience,TU/e.2007-<br />
14<br />
T. van der Storm. Componentbased<br />
Configuration, Integration<br />
<strong>and</strong>Delivery. Faculty<strong>of</strong>Natural<br />
Sciences, Mathematics, <strong>and</strong>ComputerScience,UvA.2007-15<br />
B.S. Graaf. <strong>Model</strong>-<strong>Driven</strong> <strong>Evolution</strong><br />
<strong>of</strong> S<strong>of</strong>tware <strong>Architectures</strong>.<br />
Faculty <strong>of</strong> Electrical Engineering,<br />
Mathematics, <strong>and</strong> Computer Science,TUDelft.2007-16