SPLICE: A Lightweight Software Product Line Development Process for Small and Medium Size Projects

Combining Software Product Line Engineering (SPLE) and Agile Software Development (ASD) is an approach for companies working with similar systems in scenarios of volatile requirements aiming to address fast changes and a systematic variability management. However, a development process covering the whole SPLE lifecycle and using agile practices in small and medium size development projects has not been established yet. There is a need to disseminate such combination through well-defined roles, activities, tasks and artifacts. This paper presents SPLICE, a lightweight development process combining SPLE and agile practices, following reactive and extractive approaches to build similar systems. SPLICE addresses the needs of small development teams aiming to adopt SPL practices with low upfront costs and fast return on investment. In order to evaluate our proposal, we report our experience in a case study by developing Rescue MeSPL, a product line for mobile applications that assists users in emergency situations. The case study results point SPLICE achieves the three evaluated aspects by providing short and proper iterations, possibilities for activities adaptations and continuous feedback.

[1]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[2]  Geir Kjetil Hanssen,et al.  Process fusion: An industrial case study on agile software product line engineering , 2008, J. Syst. Softw..

[3]  Janice Singer,et al.  Guide to Advanced Empirical Software Engineering , 2007 .

[4]  Jan Bosch,et al.  Communication factors for speed and reuse in large-scale agile software development , 2013, SPLC '13.

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

[6]  Silvio Romero de Lemos Meira,et al.  Agile software product lines: a systematic mapping study , 2011, Softw. Pract. Exp..

[7]  Jacques Lonchamp,et al.  A structured conceptual and terminological framework for software process engineering , 1993, [1993] Proceedings of the Second International Conference on the Software Process-Continuous Software Process Improvement.

[8]  Richard F. Paige,et al.  Towards an Agile Process for Building Software Product Lines , 2006, XP.

[9]  Jean-Marc Jézéquel,et al.  A Comparison of Six UML-Based Languages for Software Process Modeling , 2010, IEEE Transactions on Software Engineering.

[10]  Silvio Romero de Lemos Meira,et al.  Evidence of software inspection on feature specification for software product lines , 2013, J. Syst. Softw..

[11]  Jennifer Pérez,et al.  Agile product line engineering—a systematic literature review , 2011, Softw. Pract. Exp..

[12]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[13]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[14]  R. Yin Case Study Research: Design and Methods , 1984 .

[15]  Vijayan Sugumaran,et al.  Integrating Software Product Line Engineering and Agile Development , 2010, IEEE Software.

[16]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[17]  Ita Richardson,et al.  Key activities for product derivation in software product lines , 2011, J. Syst. Softw..

[18]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[19]  Klaus Schmid A comprehensive product line scoping approach and its validation , 2002, ICSE '02.

[20]  Paul Grünbacher,et al.  Requirements for product derivation support: Results from a systematic literature review and an expert survey , 2010, Inf. Softw. Technol..

[21]  Michael Kircher,et al.  Combining systematic reuse with Agile development: experience report , 2012, SPLC '12.