ABSTRACT
The engineering of a Software Product Line (SPL), either by creating it from scratch or through the re-engineering of existing variants, it uses to be a project that spans several years with a high investment. It is often hard to analyse and quantify this investment, especially in the context of extractive SPL adoption when the related software variants are independently created by different developers following different system architectures and implementation conventions. This paper reports an experience on the creation of an SPL by re-engineering system variants implemented around an educational game called Robocode. The objective of this game is to program a bot (a battle tank) that battles against the bots of other developers. The world-wide Robocode community creates and maintains a large base of knowledge and implementations that are mainly organized in terms of features, although not presented as an SPL. Therefore, a group of master students analysed this variability-rich domain and extracted a Robocode SPL. We present the results of such extraction augmented with an analysis and a quantification regarding the spent time and effort. We believe that the results and the a-posteriori analysis can provide insights on global challenges on SPL adoption. We also provide all the elements to SPL educators to reproduce the teaching activity, and we make available this SPL to be used for any research purpose.
- Mathieu Acher, Roberto E. Lopez-Herrejon, and Rick Rabiser. 2017. Teaching Software Product Lines: A Snapshot of Current Practices and Challenges. TOCE 18, 1 (2017), 2:1--2:31. Google ScholarDigital Library
- Sven Apel, Don S. Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines - Concepts and Implementation. Springer. Google ScholarDigital Library
- Sven Apel, Christian Kästner, and Christian Lengauer. 2009. FEATUREHOUSE: Language-independent, automated software composition. In ICSE 2009. 221--231. Google ScholarDigital Library
- Manuel Ballarín, Raúl Lapeña, and Carlos Cetina. 2016. Leveraging Feature Location to Extract the Clone-and-Own Relationships of a Family of Software Products. In ICSR 2016, Vol. 9679. Springer, 215--230. Google ScholarDigital Library
- Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wasowski. 2013. A Survey of Variability Modeling in Industrial Practice. In VaMoS 2013. Google ScholarDigital Library
- Stefan Fischer, Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2014. Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants. In ICSME. IEEE Computer Society, 391--400. Google ScholarDigital Library
- Jianmei Guo, Jules White, Guangxin Wang, Jian Li, and Yinglin Wang. 2011. A genetic algorithm for optimized feature selection with resource constraints in software product lines. Journal of Systems and Software 84, 12 (2011), 2208--2221. Google ScholarDigital Library
- Ken Hartness. 2004. Robocode: using games to teach artificial intelligence. Journal of Computing Sciences in Colleges 19, 4 (2004), 287--291. Google ScholarDigital Library
- K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report. Carnegie-Mellon University Soft. Eng. Institute.Google Scholar
- Cory Kapser and Michael W. Godfrey. 2008. "Cloning considered harmful" considered harmful: patterns of cloning in software. Empirical Software Engineering 13, 6 (2008), 645--692. Google ScholarDigital Library
- Charles W. Krueger. 2001. Easing the Transition to Software Mass Customization. In Software Product-Family Engineering, 4th International Workshop, PFE 2001 (Lecture Notes in Computer Science), Vol. 2290. Springer, 282--293. Google ScholarDigital Library
- Charles W. Krueger, Dale Churchett, and Ross Buhrdorf. 2008. HomeAway's Transition to Software Product Line Practice: Engineering and Business Results in 60 Days. In SPLC 2008. 297--306. Google ScholarDigital Library
- Roberto E. Lopez-Herrejon and Don S. Batory. 2001. A Standard Problem for Evaluating Product-Line Methodologies. In Generative and Component-Based Software Engineering, Third International Conference, GCSE 2001, Erfurt, Germany, September 9-13, 2001, Proceedings (Lecture Notes in Computer Science), Vol. 2186. Springer, 10--24. Google ScholarDigital Library
- Roberto E. Lopez-Herrejon, Don S. Batory, and William R. Cook. 2005. Evaluating Support for Features in Advanced Modularization Technologies. In ECOOP 2005 - Object-Oriented Programming (Lecture Notes in Computer Science), Vol. 3586. Springer, 169--194. Google ScholarDigital Library
- Jabier Martinez, Wesley K. G. Assunção, and Tewfik Ziadi. 2017. ESPLA: A Catalog of Extractive SPL Adoption Case Studies. In SPLC. ACM, 38--41. Google ScholarDigital Library
- Jabier Martinez, Tewfik Ziadi, Tegawendé F. Bissyandé, Jacques Klein, and Yves Le Traon. 2015. Bottom-up adoption of software product lines: a generic and extensible approach. In SPLC 2015. ACM, 101--110. Google ScholarDigital Library
- John D. McGregor. 2014. Ten years of the arcade game maker pedagogical product line. In SPLC 2014, Volume 2. ACM, 24--25. Google ScholarDigital Library
- Jackie O'Kelly and J. Paul Gibson. 2006. RoboCode & problem-based learning: a non-prescriptive approach to teaching programming. In SIGCSE ITiCSE 2006. ACM, 217--221. Google ScholarDigital Library
- Marcello La Rosa, Wil M. P. van der Aalst, Marlon Dumas, and Fredrik Milani. 2017. Business Process Variability Modeling: A Survey. ACM Comput. Surv. 50, 1 (2017), 2:1--2:45. Google ScholarDigital Library
- Yehonatan Shichel, Eran Ziserman, and Moshe Sipper. 2005. GP-Robocode: Using Genetic Programming to Evolve Robocode Players. In EuroGP 2005. 143--154. Google ScholarDigital Library
- Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, and Thomas Leich. 2014. FeatureIDE: An extensible framework for feature-oriented software development. Sci. Comput. Program. 79 (2014), 70--85. Google ScholarDigital Library
- Pamela Zave. 2009. Modularity in Distributed Feature Composition. In Software Requirements and Design: The Work of Michael Jackson.Google Scholar
Index Terms
- Software product line extraction from variability-rich systems: the robocode case study
Recommendations
Feature location benchmark with argoUML SPL
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1Feature location is a traceability recovery activity to identify the implementation elements associated to a characteristic of a system. Besides its relevance for software maintenance of a single system, feature location in a collection of systems ...
Teaching projects and research objectives in SPL extraction
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 2This year at SPLC we present a teaching and research project where a group of master students analysed a variability-rich domain and extracted an SPL (The Robocode SPL). We present the results of such extraction augmented with an analysis and a ...
Variability management in software product line engineering
ICSE '06: Proceedings of the 28th international conference on Software engineeringBy explicitly modeling and managing variability, software product line engineering provides a systematic approach for creating a diversity of similar products at low cost, in short time, and with high quality. This tutorial focuses on the two principle ...
Comments