Bridging the Gap Between Features and Models

Software product lines refer to engineering techniques for creating a portfolio of similar software systems from a shared set of software assets in a controlled way. Managing variability is the key issue of software product line practice. Modelling variation points is largely addressed by a selection of linguistic constructs and modelling techniques (e.g., design pattern, macro, configuration files). New constraints and industrial requirements often result in the emergence of new variation points. The success of the evolution of a product line depends on its capability to absorb unanticipated variation points. This paper presents the classboxes programming construct to support unanticipated variation point in the software source code. Classboxes offer a visibility mechanism that controls the scope of an evolution step and limits it only to the part of a program that needs to be affected by this evolution. Benefits of classboxes are illustrated on an arcade game maker product line.

[1]  David Lorge Parnas,et al.  Information Distribution Aspects of Design Methodology , 1971, IFIP Congress.

[2]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[3]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[4]  David Lorge Parnas,et al.  A procedure for designing abstract interfaces for device interface modules , 1981, ICSE '81.

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

[6]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[7]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  David A. Moon,et al.  A monotonic superclass linearization for Dylan , 1996, OOPSLA '96.

[10]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[11]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[12]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

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

[14]  Mira Mezini,et al.  Adaptive plug-and-play components for evolutionary software development , 1998, OOPSLA '98.

[15]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

[16]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[17]  Andreas Ludwig,et al.  Aspect Weaving with Graph Rewriting , 1999, GCSE.

[18]  Erik Ernst,et al.  Propagating Class and Method Combination , 1999, ECOOP.

[19]  Alexander L. Wolf,et al.  A conceptual basis for feature engineering , 1999, J. Syst. Softw..

[20]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[21]  Erik Ernst gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance , 2000 .

[22]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[23]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[24]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[25]  Mikio Aoyama Continuous and discontinuous software evolution: aspects of software evolution across multiple product lines , 2001, IWPSE '01.

[26]  Stephan Herrmann,et al.  Object Teams: Improving Modularity for Crosscutting Collaborations , 2002, NetObjectDays.

[27]  Steve R. Palmer,et al.  A Practical Guide to Feature-Driven Development , 2002 .

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

[29]  Ron Cytron,et al.  Footprint and feature management using aspect-oriented programming techniques , 2002, LCTES/SCOPES '02.

[30]  Rob C. van Ommering Building product populations with software components , 2002, ICSE '02.

[31]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[32]  Kris Gybels,et al.  On the Existence of the AOSD-Evolution Paradox , 2003 .

[33]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[34]  Noureddine Belkhatir,et al.  Dynamic Interface Adaptability in Service Oriented Software , 2003 .

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

[36]  Jan Bredereke,et al.  On Feature Orientation and on Requirements Encapsulation Using Families of Requirements , 2003, Objects, Agents, and Features.

[37]  Karl J. Lieberherr,et al.  Aspectual Collaborations: Combining Modules and Aspects , 2003, Comput. J..

[38]  Jon Whittle,et al.  Scenario Modeling with Aspects. , 2004 .

[39]  D. Batory,et al.  Scaling step-wise refinement , 2003, IEEE Transactions on Software Engineering.

[40]  Petr Hnětynka Component Model for Unified Deployment of Distributed Component-based Software , 2004 .

[41]  João Araújo,et al.  Modeling and composing scenario-based requirements with aspects , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[42]  Daniel Sabbah Aspects: from promise to reality , 2004, AOSD '04.

[43]  Krzysztof Czarnecki,et al.  Overview of Generative Software Development , 2004, UPP.

[44]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

[45]  Jörgen Hansson,et al.  Application-tailored database systems: a case of aspects in an embedded database , 2004, Proceedings. International Database Engineering and Applications Symposium, 2004. IDEAS '04..

[46]  Michal Antkiewicz,et al.  FeaturePlugin: feature modeling plug-in for Eclipse , 2004, eclipse '04.

[47]  Weishan Zhang,et al.  Supporting Product Line Evolution with Framed Aspects , 2004 .

[48]  Uwe Zdun,et al.  Some Patterns of Component and Language Integration , 2004, EuroPLoP.

[49]  Mira Mezini,et al.  Variability management with feature-oriented programming and aspects , 2004, SIGSOFT '04/FSE-12.

[50]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[51]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[52]  Ruzanna Chitchyan,et al.  A Survey of Analysis and Design Approaches , 2005 .

[53]  Merijn de Jonge,et al.  Build-level components , 2005, IEEE Transactions on Software Engineering.

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

[55]  Thomas Leich,et al.  FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming , 2005, GPCE'05.

[56]  R. van Ommering Software reuse in product populations , 2005, IEEE Transactions on Software Engineering.

[57]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[58]  Jürgen Graf,et al.  Using pointcut delta analysis to support evolution of aspect-oriented software , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[59]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[60]  Ludovic Henrio,et al.  Behavioural Models for Hierarchical Components , 2005, SPIN.

[61]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[62]  Sven Apel,et al.  On the Structure of Crosscutting Concerns : Using Aspects or Collaborations ? , 2006 .

[63]  Roberto Erick Lopez-Herrejon,et al.  A disciplined approach to aspect composition , 2006, PEPM '06.

[64]  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).

[65]  Günter Kniesel,et al.  A Definition, Overview and Taxonomy of Generic Aspect Languages , 2006, Obj. Logiciel Base données Réseaux.

[66]  Oscar Díaz,et al.  Feature refactoring a multi-representation program into a product line , 2006, GPCE '06.

[67]  Shigeru Chiba,et al.  An Aspect-Aware Outline Viewer , 2006, RAM-SE.

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

[69]  Using Graph-Rewriting for Model Weaving in the context of Aspect-Oriented Product Line Engineering , 2006 .

[70]  Carlos José Pereira de Lucena,et al.  Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming , 2006, ICSR.

[71]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[72]  Friedrich Steimann The paradoxical success of aspect-oriented programming , 2006, OOPSLA '06.

[73]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[74]  Thomas Leich,et al.  Aspectual mixin layers: aspects and features in concert , 2006, ICSE '06.

[75]  João Araújo,et al.  Modeling Volatile Concerns as Aspects , 2006, CAiSE.

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

[77]  Orlando Avila-García,et al.  Using software product lines to manage model families in model-driven engineering , 2007, SAC '07.

[78]  Iris Groher,et al.  Product Line Implementation using Aspect-Oriented and Model-Driven Software Development , 2007, 11th International Software Product Line Conference (SPLC 2007).

[79]  William R. Cook,et al.  Safe composition of product lines , 2007, GPCE '07.

[80]  Software Product-Lines: What To Do When Enumaration Won't Work , 2007, VaMoS.

[81]  A Case Study Implementing Features Using AspectJ , 2007, 11th International Software Product Line Conference (SPLC 2007).

[82]  Thomas Leich,et al.  On the duality of aspect-oriented and feature-oriented design patterns , 2007, ACP4IS.

[83]  Aleksandra Tesanovic Evolving embedded product lines: opportunities for aspects , 2007, ACP4IS.

[84]  Uwe Zdun,et al.  Argument , 1963, Social Service Review.

[85]  Karen Cortes Verdin,et al.  Assessment of Product Line Architecture and Aspect Oriented Software Architecture , .