Emergent feature modularization

Virtual Separation of Concerns reduces the drawbacks of implementing product line variability with preprocessors. Developers can focus on certain features and hide others of no interest. However, these features eventually share elements between them, which might break feature modularization, since modifications in a feature result in problems for another. We present the concept of emergent feature modularization, which aims to establish contracts between features, to prevent developers from breaking other features when performing a maintenance task. These interfaces are product-line-aware, in the sense that it only considers valid feature combinations. We also present a prototype tool that implements the concept.

[1]  Shigeru Chiba,et al.  AspectScope: An Outline Viewer for AspectJ Programs , 2007, J. Object Technol..

[2]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[3]  David M. Weiss,et al.  Software Product Line Engineering , 2005, SEKE.

[4]  Mira Mezini,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[5]  Christian Koppen,et al.  PCDiff : Attacking the Fragile Pointcut Problem , 2004 .

[6]  Kim B. Clark,et al.  The Option Value of Modularity in Design: An Example From Design Rules, Volume 1: The Power of Modularity , 2000 .

[7]  Informatika Software Product Line , 2010 .

[8]  Sven Apel,et al.  Type-Checking Software Product Lines - A Formal Approach , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[9]  Mary Shaw,et al.  Global variable considered harmful , 1973, SIGP.

[10]  Mik Kersten,et al.  Using task context to improve programmer productivity , 2006, SIGSOFT '06/FSE-14.

[11]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

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

[13]  Henry Spencer,et al.  #ifdef Considered Harmful, or Portability Experience with C News , 1992, USENIX Summer.

[14]  Martin P. Robillard,et al.  Separating features in source code: an exploratory study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

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

[16]  Márcio Ribeiro,et al.  Towards feature modularization , 2010, SPLASH/OOPSLA Companion.

[17]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

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

[19]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[20]  Eric Clayberg,et al.  Eclipse: Building Commercial-Quality Plug-ins , 2004 .

[21]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[22]  Gail C. Murphy,et al.  Conceptual module querying for software reengineering , 1998, Proceedings of the 20th International Conference on Software Engineering.

[23]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

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

[25]  Kim B. Clark,et al.  Design Rules: The Power of Modularity , 2000 .

[26]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[27]  Sven Apel,et al.  Virtual Separation of Concerns - A Second Chance for Preprocessors , 2009, J. Object Technol..

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

[29]  Luiz Cláudio Villar dos Santos,et al.  An Object-Oriented Framework for Improving Software Reuse on Automated Testing of Mobile Phones , 2007, TestCom/FATES.

[30]  Vander Alves,et al.  Implementing software product line adoption strategies , 2007 .

[31]  Cristina Gacek,et al.  Implementing product line variabilities , 2001, SSR '01.