Feature Diagrams for Change-Oriented Programming

Abstract. The idea of feature-oriented programming is to map requirements to fea-tures, concepts that can be composed to form a software product. Change-orientedprogramming (ChOP), in which features are seen as sets of changes that can beapplied to a base program, has recently been proposed as an approach to FOP.Changes are recorded as the programmer works and can encapsulate any developeraction, including the removing of code.Before changes can be combined to form a product, it has to be verified that thereare no harmful interactions between selected changes. There exists, however, noformal model of the current approach that may serve as a reference specificationfor ChOP implementations. In an effort to fill this gap, we propose a formal modelof ChOP, which, as we will show, maps to the well-understood notion of feature di-agram. Thanks to this, we can reuse a number of results in feature diagram researchand apply them to ChOP.Keywords. Formal Methods, Feature-Oriented Programming, Feature Diagrams,Software Product Lines

[1]  Sander Tichelaar,et al.  Modeling Object-Oriented Software for Reverse Engineering and Refactoring , 2001 .

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

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

[5]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

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

[7]  Theo D'Hondt,et al.  Change-oriented software engineering , 2007, ICDL '07.

[8]  Sven Apel,et al.  An Algebra for Feature-Oriented Software Development , 2007 .

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

[10]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

[11]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[12]  Don Batory,et al.  A Tutorial on Feature Oriented Programming and the AHEAD Tool Suite and the AHEAD Tool Suite , 2006 .

[13]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[14]  Peraphon Sophatsathit,et al.  A formal approach for specification and classification of software components , 2002, SEKE '02.

[15]  Don S. Batory,et al.  Automatic code generation for actuator interfacing from a declarative specification , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[16]  Romain Robbes,et al.  A Change-based Approach to Software Evolution , 2006, EVOL.

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

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

[19]  Pierre-Yves Schobbens,et al.  Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

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

[21]  Serge Demeyer,et al.  The FAMOOS Object-Oriented Reengineering Handbook , 1999 .