Visualizing Software Product Line Variabilities in Source Code

Implementing software product lines is a challenging task. Depending on the implementation technique the code that realizes a feature is often scattered across multiple code units. This way it becomes difficult to trace features in source code which hinders maintenance and evolution. While previous effort on visualization technologies in software product lines has focused mainly on the feature model, we suggest tool support for feature traceability in the code base. With our tool CIDE, we propose an approach based on filters and views on source code in order to visualize and trace features in source code.

[1]  Charles W. Krueger,et al.  Point - Counterpoint: Being Proactive Pays Off - Eliminating the Adoption , 2002, IEEE Softw..

[2]  Renaud Pawlak Spoon: Compile-time Annotation Processing for Middleware , 2006, IEEE Distributed Systems Online.

[3]  Weishan Zhang,et al.  XVCL: XML-based variant configuration language , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[4]  Paul Grünbacher,et al.  Tool Support for Product Derivation in Large-Scale Product Lines: A Wizard-based Approach , 2007, SPLC.

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

[6]  Yann-Gaël Guéhéneuc,et al.  On feature traceability in object oriented programs , 2005, TEFSE '05.

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

[8]  Gail C. Murphy,et al.  Explicit programming , 2002, AOSD '02.

[9]  Thomas Leich,et al.  Aspectual Feature Modules , 2008, IEEE Transactions on Software Engineering.

[10]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[11]  Christian Wende,et al.  On Controlled Visualisations in Software Product Line Engineering , 2008, SPLC.

[12]  Kris De Volder,et al.  Programming with Crosscutting Effective Views , 2004, ECOOP.

[13]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[14]  Sven Apel,et al.  Language-Independent Safe Decomposition of Legacy Applications into Features , 2008 .

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

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

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

[18]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

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

[20]  David Coppit,et al.  Spotlight: A Prototype Tool for Software Plans , 2007, 29th International Conference on Software Engineering (ICSE'07).

[21]  Goetz Botterweck,et al.  Towards Supporting Feature Configuration by Interactive Visualisation , 2007, SPLC.

[22]  Mike Mannion,et al.  Visualizing Product Line Requirement Selection Decisions , 2007, SPLC.

[23]  Don Batory,et al.  Scaling Step-Wise Refinement , 2004, IEEE Trans. Software Eng..

[24]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[25]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[26]  Mark A. Linton Implementing relational views of programs , 1984 .

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

[28]  Aaron Turon,et al.  Metaprogramming with Traits , 2007, ECOOP.

[29]  Brian Foote,et al.  Designing Reusable Classes , 2001 .

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

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

[32]  Mark Chu-Carroll,et al.  Visual separation of concerns through multidimensional program storage , 2003, AOSD '03.

[33]  Charles W. Krueger,et al.  Easing the Transition to Software Mass Customization , 2001, PFE.

[34]  Danilo Beuche,et al.  Variability management with feature models , 2004, Sci. Comput. Program..

[35]  M. Mannion,et al.  Visualising Product Line Requirement Selection Decision Inter-dependencies , 2007, Second International Workshop on Requirements Engineering Visualization (REV 2007).

[36]  Sven Apel,et al.  A Case Study Implementing Features Using AspectJ , 2007, 11th International Software Product Line Conference (SPLC 2007).

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

[38]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[39]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[40]  Mira Mezini,et al.  Separation of Concerns with Procedures, Annotations, Advice and Pointcuts , 2005, ECOOP.

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