Collaboration and source code driven bottom-up product line engineering

Companies that develop similar software systems often transition from single-system development to software product line development. In this transition, reusable assets are identified and incrementally created over a period of time. Bottom-up Software Product Line Engineering approaches aid stakeholders to identify variability from the legacy artifacts. One of these artifacts is the legacy source code. In this paper, we contribute the Collaboration and Source Code Driven Bottom-up approach, with two main enhancements. We apply clone detection and architecture reengineering techniques for identifying variability from the legacy artifacts. These techniques which have been traditionally used for maintaining software are now used for identifying variability and analyze code coupling and cohesion from the legacy code. Our second enhancement is improving stakeholder collaboration by guiding the domain experts in order to decide on variability. In particular, we apply Questions, Options and Criteria technique for capturing rationale and supporting collaboration.

[1]  Pietu Pohjalainen Bottom-up Modeling for a Software Product Line: An Experience Report on Agile Modeling of Governmental Mobile Networks , 2011, 2011 15th International Software Product Line Conference.

[2]  Andrew Mark Dalgarno Jump-Starting Software Product Lines with Clone Detection , 2008, 2008 12th International Software Product Line Conference.

[3]  Bernd Brügge,et al.  Evolution in Product Line Requirements Engineering: A Rationale Management Approach , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[4]  Bernd Brügge,et al.  Identifying and Exploiting the Similarities between Rationale Management and Variability Management , 2008, 2008 12th International Software Product Line Conference.

[5]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[6]  I. John,et al.  Elicitation of Requirements from User Documentation , 2003 .

[7]  Rainer Koschke,et al.  Extending the reflexion method for consolidating software variants into product lines , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[8]  Thomas P. Moran,et al.  Questions, Options, and Criteria: Elements of Design Space Analysis , 1991, Hum. Comput. Interact..

[9]  Kyo Chul Kang,et al.  Usage Context as Key Driver for Feature Selection , 2010, SPLC.

[10]  Paul Grünbacher,et al.  Negotiation constellations in reactive product line evolution , 2010, 2010 Fourth International Workshop on Software Product Management.

[11]  Elmar Jürgens,et al.  CloneDetective - A workbench for clone detection research , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[12]  Rainer Koschke,et al.  Supporting the Grow-and-Prune Model in Software Product Lines Evolution Using Clone Detection , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

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

[14]  Rainer Koschke,et al.  Extending the Reflexion Method for Consolidating Software Variants into Product Lines , 2007, WCRE.

[15]  Richard M. Young,et al.  Options and Criteria: Elements of design space analysis , 1991 .

[16]  Thilo Mende,et al.  Clone Detection in a Product Line Context , 2008, Workshop Software Reengineering.

[17]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[18]  Jan Gerben Wijnstra From problem to solution with quality attributes and design aspects , 2003, J. Syst. Softw..

[19]  P MoranThomas,et al.  Questions, options, and criteria , 1991 .

[20]  Zhenchang Xing,et al.  Incremental and iterative reengineering towards Software Product Line: An industrial case study , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[21]  Pim van den Broek,et al.  A model for variability design rationale in SPL , 2010, ECSA '10.