Extended Feature Algebra

Feature Algebra was introduced as an abstract framework for feature-oriented software development. One goal is to provide a common, clearly defined basis for the key ideas of feature-orientation. The algebra captures major aspects of feature-orientation, such as the hierarchical structure of features and feature composition. However, as we will show, it is not able to model aspects at the level of code, i.e., situations where code fragments of different features have to be merged. In other words, it does not reflect details of concrete implementations. In this paper we first present concrete models for the original axioms of Feature Algebra which represent the main concepts of feature-oriented programs. This shows that the abstract Feature Algebra can be interpreted in different ways. We then use these models to show that the axioms of Feature Algebra do not properly reflect all aspects of feature-orientation from the level of directory structures down to the level of actual code. This gives motivation to extend the abstract algebra, which is the second main contribution of the paper. We modify the axioms and introduce the concept of an Extended Feature Algebra. As third contribution, we introduce more operators to cover concepts like overriding in the abstract setting.

[1]  Han-Hing Dang,et al.  Exploring modal worlds , 2014, J. Log. Algebraic Methods Program..

[2]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[3]  Tobias Nipkow,et al.  Isabelle/HOL , 2002, Lecture Notes in Computer Science.

[4]  Georg Struth,et al.  Kleene algebra with domain , 2003, TOCL.

[5]  Bernhard Möller,et al.  Structured Document Algebra in Action , 2015, Software, Services, and Systems.

[6]  Bernhard Möller Towards Pointer Algebra , 1993, Sci. Comput. Program..

[7]  William R. Cook,et al.  Fitting the pieces together: a machine-checked model of safe composition , 2009, ESEC/FSE '09.

[8]  Mark Harman,et al.  Dependence clusters in source code , 2009, TOPL.

[9]  Sven Apel,et al.  An Algebra for Features and Feature Composition , 2008, AMAST.

[10]  Sven Apel,et al.  Language-Independent and Automated Software Composition: The FeatureHouse Experience , 2013, IEEE Transactions on Software Engineering.

[11]  Ridha Khédri,et al.  Algebraic View Reconciliation , 2008, 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods.

[12]  Don S. Batory,et al.  From implementation to theory in product synthesis , 2007, POPL '07.

[13]  Thomas Hillenbrand,et al.  WALDMEISTER - High-Performance Equational Deduction , 1997, Journal of Automated Reasoning.

[14]  Ridha Khédri,et al.  Feature Algebra , 2006, FM.

[15]  Sven Apel,et al.  A calculus for uniform feature composition , 2010, TOPL.

[16]  William R. Cook,et al.  A virtual class calculus , 2006, POPL '06.

[17]  Sven Apel,et al.  Semistructured Merge in Revision Control Systems , 2010, VaMoS.

[18]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[19]  DeLesley Hutchins,et al.  Eliminating distinctions of class: using prototypes to model virtual classes , 2006, OOPSLA '06.

[20]  Ridha Khédri,et al.  Supplementing Product Families with Behaviour , 2011, Int. J. Softw. Informatics.

[21]  Don Batory Feature-oriented programming and the AHEAD tool suite , 2004, ICSE 2004.

[22]  Roberto Erick Lopez-Herrejon,et al.  A Standard Problem for Evaluating Product-Line Methodologies , 2001, GCSE.

[23]  Sven Apel,et al.  Superimposition: A Language-Independent Approach to Software Composition , 2008, SC@ETAPS.

[24]  Thorsten Ehm,et al.  Pointer Kleene Algebra , 2003, RelMiCS.

[25]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[26]  Oscar Nierstrasz,et al.  Traits: A mechanism for fine-grained reuse , 2006, TOPL.

[27]  Tom Mens,et al.  A State-of-the-Art Survey on Software Merging , 2002, IEEE Trans. Software Eng..

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

[29]  Sven Apel,et al.  A Case Study Implementing Features Using AspectJ , 2007 .

[30]  Sophia Drossopoulou,et al.  Tribe: a simple virtual class calculus , 2007, AOSD.

[31]  Don S. Batory,et al.  Feature interactions, products, and composition , 2011, GPCE '11.

[32]  Harold Ossher,et al.  Hyper/J/sup TM/: multi-dimensional separation of concerns for Java/sup TM/ , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[33]  Sven Apel,et al.  An algebraic foundation for automatic feature-based program synthesis , 2010, Sci. Comput. Program..

[34]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[35]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

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

[37]  Don S. Batory,et al.  Scalable software libraries , 1993, SIGSOFT '93.

[38]  Thomas W. Reps,et al.  A Theory of Program Modifications , 1991, TAPSOFT, Vol.2.

[39]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[40]  Thomas W. Reps,et al.  Modification Algebras , 1991, AMAST.

[41]  Bernhard Möller,et al.  Features, modularity, and variation points , 2013, FOSD '13.