When Aspect-Orientation Meets Software Product Line Engineering

Aspect-oriented software development (AOSD) and software product line engineering (SPLE) are two approaches for software reuse, which promote model-driven development and variability management. While AOSD supports developing crosscutting concerns separately from traditional units and weaving them to different software products, software product line engineering (SPLE) handles the development and maintenance of families of software products utilizing different domain and application engineering techniques. In this chapter, we review the existing points of synergy between these two approaches and, in particular, the complementary and aggregative use of these approaches. Furthermore, we present a method that uses aspect-oriented principles for horizontal reuse and domain engineering guidelines for vertical reuse. We term this kind of use dimensional synergy. The presented method supports defining families of aspects and their weaving rules applied to families of software products, potentially increasing the reuse throughout the entire development life cycle. We exemplify the method on a Check-In check-Out product line and a family of security aspects, utilizing UML 2 class and sequence diagrams.

[1]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[2]  Brice Morin,et al.  Weaving Aspect Configurations for Managing System Variability , 2008, VaMoS.

[3]  Shmuel Katz,et al.  A concern architecture view for aspect-oriented software design , 2007, Software & Systems Modeling.

[4]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[5]  João Araújo,et al.  aspect- oriented pr ogramming , 2006 .

[6]  Iris Groher,et al.  Aspect-Orientation from Design to Code , 2004 .

[7]  Jean-Marc Jézéquel,et al.  Towards a UML Profile for Software Product Lines , 2003, PFE.

[8]  Iris Groher,et al.  Generating Aspect Code from UML Models , 2003 .

[9]  Bogdan Franczyk,et al.  EXTENDING THE UML TO MODEL SYSTEM FAMILIES , 2000 .

[10]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[11]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[12]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[13]  Michel Coriat,et al.  The SPLIT Method , 2000, SPLC.

[14]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

[15]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[16]  Michel Coriat,et al.  The SPLIT method: building product lines for software-intensive systems , 2000 .

[17]  Jacques Klein,et al.  Weaving Multiple Aspects in Sequence Diagrams , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[18]  Iris Reinhartz-Berger,et al.  Utilizing domain models for application design and validation , 2009, Inf. Softw. Technol..

[19]  Dirk Muthig,et al.  An Evaluation of Aspect-Oriented Programming as a Product Line Implementation Technology , 2004, ICSR.

[20]  Klaus Pohl,et al.  Communicating the variability of a software-product family to customers , 2003, Software and Systems Modeling.

[21]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[22]  Yijun Yu,et al.  From goals to aspects: discovering aspects from requirements goal models , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[23]  S. Meier,et al.  Visualizing Product Line Domain Variability by Aspect-Oriented Modeling , 2007, Second International Workshop on Requirements Engineering Visualization (REV 2007).

[24]  Awais Rashid,et al.  From Requirements Documents to Feature Models for Aspect Oriented Product Line Implementation , 2005, MoDELS.

[25]  Krzysztof Czarnecki,et al.  Generative programming [Book Review] , 2001, IEEE Software.

[26]  Mohamed Mancona Kandé,et al.  A concern-oriented approach to software architecture , 2003 .

[27]  Iris Reinhartz-Berger,et al.  Enhancing UML Models: A Domain Analysis Approach , 2008, J. Database Manag..

[28]  Mehmet Aksit,et al.  Transactions on Aspect-Oriented Software Development I , 2006, Trans. Aspect-Oriented Software Development I.

[29]  Don Batory,et al.  From Crosscutting Concerns to Product Lines : A Function Composition Approach , 2006 .

[30]  Carlos José Pereira de Lucena,et al.  An aspect-oriented generative approach , 2004, OOPSLA '04.

[31]  Martin L. Griss Implementing Product-line features by composing aspects , 2000, SPLC.

[32]  Hassan Gomaa,et al.  Modeling variability in software product lines with the variation point model , 2004, Sci. Comput. Program..

[33]  Sooyong Park,et al.  Combining feature-oriented analysis and aspect-oriented programming for product line asset development , 2006 .

[34]  M. Clauß,et al.  Modeling variability with UML , 2001 .

[35]  Matthias Clauss,et al.  Generic Modeling using UML extensions for variability , 2001 .

[36]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[37]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[38]  Robert B. France,et al.  A UML-based language for specifying domain-specific patterns , 2004, J. Vis. Lang. Comput..

[39]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[40]  Sooyong Park,et al.  Combining feature-oriented analysis and aspect-oriented programming for product line asset development , 2006, 10th International Software Product Line Conference (SPLC'06).

[41]  Tzilla Elrad,et al.  A UML Profile for Aspect Oriented Modeling , 2001 .

[42]  Carlos José Pereira de Lucena,et al.  Generating Aspect-Oriented Agent Architectures , 2004 .

[43]  Stefan Hanenberg,et al.  Expressing different conceptual models of join point selections in aspect-oriented design , 2006, AOSD.

[44]  Iris Reinhartz-Berger,et al.  Facilitating Reuse by Specialization of Reference Models for Business Process Design , 2007 .

[45]  Itana Maria de Souza Gimenes,et al.  A variability management process for software product lines , 2005, CASCON.

[46]  Tzilla Elrad,et al.  Weaving With Statecharts , 2002 .

[47]  Robert B. France,et al.  Directives for Composing Aspect-Oriented Design Class Models , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[48]  Lidia Fuentes,et al.  Designing and Weaving Aspect-Oriented Executable UML Models , 2007, J. Object Technol..

[49]  Jan Bosch,et al.  Software Reuse: Methods, Techniques, and Tools , 2004, Lecture Notes in Computer Science.

[50]  Klaus Pohl,et al.  Documenting Application-Specific Adaptations in Software Product Line Engineering , 2008, CAiSE.

[51]  Ruzanna Chitchyan,et al.  Survey of Aspect-Oriented Analysis and Design Approaches , 2015 .

[52]  M. Wimmer,et al.  A Survey on Aspect-Oriented Modeling Approaches , 2006 .

[53]  Stephan Herrmann,et al.  Composable Designs with UFA , 2007 .

[54]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[55]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[56]  Marco Sinnema,et al.  Classifying variability modeling techniques , 2007, Inf. Softw. Technol..

[57]  Iris Reinhartz-Berger,et al.  Experimenting with the Comprehension of Feature-Oriented and UML-Based Core Assets , 2011, BMMDS/EMMSAD.

[58]  Siobhán Clarke,et al.  Extending standard UML with model composition semantics , 2002, Sci. Comput. Program..

[59]  Paul Clements,et al.  Variability in Software Product Lines , 2005 .

[60]  Iris Groher,et al.  XWeave: models and aspects in concert , 2007, AOM@AOSD.

[61]  M. Morisio,et al.  Extending UML to support domain analysis , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[62]  Bogdan Franczyk,et al.  EXTENDING THE UML FOR MODELLING VARIABILITY FOR SYSTEM FAMILIES , 2002 .