ASPECT-ORIENTED, MODEL-DRIVEN SOFTWARE PRODUCT LINES Software product lines provide a systematic means of managing variability in a suiteofproducts.Theyhavemanybenefits,buttherearethreemajorbarriersthat canpreventthemfromreachingtheirfullpotential.First,thereisthechallengeof scale:alargenumberofvariantsmayexistinaproductlinecontextandthenumber of interrelationships and dependencies can rise exponentially. Second, variations tend to be systemic by nature in that they affect the whole architecture of the softwareproductline.Third,softwareproductlinesoftenservedifferentbusiness contexts,eachwithitsownintricaciesandcomplexities. The AMPLE approach (see www.ample-project.net) tackles these three chal- lengesbycombiningadvancesinaspect-orientedsoftwaredevelopmentandmodel- drivenengineering.Thefullsuiteofmethodsandtoolsthatconstitutethisapproach arediscussedindetailinthiseditedvolumeandillustratedusingthreereal-world industrialcasestudies. awais rashid is a Professor of Software Engineering at Lancaster University, UK. jean-claude royer isaProfessorofComputerScienceattheE´coledesMines deNantes,France. andreas rummler holdsthepositionofSeniorResearcheratSAPResearchin Dresden,Germany. ASPECT-ORIENTED, MODEL-DRIVEN SOFTWARE PRODUCT LINES The AMPLE Way Editedby AWAIS RASHID LancasterUniversity JEAN-CLAUDE ROYER E´coledesMinesdeNantes ANDREAS RUMMLER SAPResearch,Dresden cambridge university press Cambridge,NewYork,Melbourne,Madrid,CapeTown, Singapore,Sa˜oPaulo,Delhi,Tokyo,MexicoCity CambridgeUniversityPress TheEdinburghBuilding,CambridgeCB28RU,UK PublishedintheUnitedStatesofAmericabyCambridgeUniversityPress,NewYork www.cambridge.org Informationonthistitle:www.cambridge.org/9780521767224 (cid:2)c CambridgeUniversityPress2011 Thispublicationisincopyright.Subjecttostatutoryexception andtotheprovisionsofrelevantcollectivelicensingagreements, noreproductionofanypartmaytakeplacewithoutthewritten permissionofCambridgeUniversityPress. Firstpublished2011 PrintedintheUnitedKingdomattheUniversityPress,Cambridge AcataloguerecordforthispublicationisavailablefromtheBritishLibrary ISBN978-0-521-76722-4Hardback CambridgeUniversityPresshasnoresponsibilityforthepersistenceor accuracyofURLsforexternalorthird-partyinternetwebsitesreferredto inthispublication,anddoesnotguaranteethatanycontentonsuch websitesis,orwillremain,accurateorappropriate. Contents PartI Softwareproductlineengineeringchallenges Page1 1 Introduction 3 awais rashid, jean-claude royer and andreas rummler 2 Casestudiesforsoftwareproductlineengineering 27 andreas rummler, ludger fiege, catarina gomes and rita ribeiro PartII Variabilityanalysisandmodelling 53 3 Fromrequirementstofeaturemodels 55 nathan weston and phil greenwood 4 Variabilitymanagement 82 steffen zschaler, pablo sa´nchez, joa˜o santos, mauricio alfe´rez, ana moreira, joa˜o arau´jo, uira´ kulesza and lidia fuentes 5 Hybridassessmentmethodforsoftwareproductlines 125 afonso pimentel, rita ribeiro, ana moreira, joa˜o arau´jo, joa˜o santos, anto´nio costa, mauricio alfe´rez and uira´ kulesza PartIII Variabilityimplementationandtraceability 159 6 ProductlineimplementationwithECaesarJ 161 vaidas gasiunas, angel nu´n˜ez, jacques noye´ and mira mezini 7 Model-drivenengineeringsupportforproductlineengineering 197 christoph elsner, iris groher, ludger fiege and markus vo¨lter 8 ManaginginformationflowintheSPLdevelopmentprocesses 222 nicolas anquetil, uira´ kulesza, ricardo mateus, ralf mitschke, ana moreira, jean-claude royer and andreas rummler v vi Contents 9 UsingdesignrationaletoimproveSPLtraceability 263 ismeˆnia galva˜o, mehmet aksit, pim van den broek and michiel hendriks PartIV Product-drivenvs.solution-drivensoftware productlineengineering 285 10 Product-drivensoftwareproductlineengineering 287 steffen zschaler, pablo sa´nchez, carlos nebrera, lidia fuentes, vaidas gasiunas and ludger fiege 11 Solution-drivensoftwareproductlineengineering 316 iris groher, ludger fiege, christoph elsner, christa schwanninger and markus vo¨lter PartV Futuretrends 345 12 Dynamicvariabilityinadaptivesystems 347 ruzanna chitchyan, brice morin, franck fleurey, nelly bencomo, arnor solberg and thomas genssler 13 Imperfectinformationinsoftwareproductlineengineering 378 joost noppen and pim van den broek 14 Empiricalresearchinsoftwareproductlineengineering 411 phil greenwood, vander alves, john hutchinson, christa schwanninger and nicolas anquetil Epilogue 444 andreas rummler, awais rashid and jean-claude royer References 447 Index 463 Part I Software product line engineering challenges 1 Introduction awais rashid, jean-claude royer and andreas rummler He sat, in defiance of municipal orders, astride the gun Zam-Zammah onherbrickplatformoppositetheoldAjaib-Gher–theWonderHouse, as the natives call the Lahore Museum. Who hold Zam-Zammah, that ‘fire-breathingdragon’,holdthePunjab. (RudyardKipling,Kim) As the size and complexity of software systems grows, so does the need for effectivemodularity,abstractionandcompositionmechanismstoimprovethereuse of software development assets during software systems engineering. This need for reusability is dictated by pressures to minimise costs and shorten the time to market. However, such reusability is only possible if these assets are variable enough to be usable in different products. Variability support has thus become an importantattributeofmodernsoftwaredevelopmentpractices.Thisisreflectedby the increasing interest in mechanisms such as software product lines (Clements & Northrop, 2001) and generative programming (Czarnecki & Eisenecker 2000). Suchmechanismsallowtheautomationofsoftwaredevelopmentasopposedtothe creation of custom ‘one of a kind’ software from scratch. By utilising variability techniques, highly reusable code libraries and components can be created, thus cuttingcostsandreducingthetimetomarket. Asoftwareproductlineisasetofsoftware-intensivesystemssharingacommon, managedsetoffeaturesthatsatisfythespecificneedsofaparticularmarketsegment ormissionandthataredevelopedfromacommonsetofcoreassetsinaprescribed way. Core assets are produced and reused in a number of products that form a family. These core assets may be documents, models, etc., comprising product portfolios,requirements,projectplans,architecture,designmodelsand,ofcourse, softwarecomponents. Thus, software product lines provide a systematic means to manage variability in a suite of products. Their potential benefits involve identification of variants 3
Description: