skip to main content
10.1145/3233027.3233038acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Software product line extraction from variability-rich systems: the robocode case study

Published: 10 September 2018 Publication History

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.

References

[1]
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.
[2]
Sven Apel, Don S. Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines - Concepts and Implementation. Springer.
[3]
Sven Apel, Christian Kästner, and Christian Lengauer. 2009. FEATUREHOUSE: Language-independent, automated software composition. In ICSE 2009. 221--231.
[4]
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.
[5]
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.
[6]
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.
[7]
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.
[8]
Ken Hartness. 2004. Robocode: using games to teach artificial intelligence. Journal of Computing Sciences in Colleges 19, 4 (2004), 287--291.
[9]
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.
[10]
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.
[11]
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.
[12]
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.
[13]
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.
[14]
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.
[15]
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.
[16]
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.
[17]
John D. McGregor. 2014. Ten years of the arcade game maker pedagogical product line. In SPLC 2014, Volume 2. ACM, 24--25.
[18]
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.
[19]
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.
[20]
Yehonatan Shichel, Eran Ziserman, and Moshe Sipper. 2005. GP-Robocode: Using Genetic Programming to Evolve Robocode Players. In EuroGP 2005. 143--154.
[21]
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.
[22]
Pamela Zave. 2009. Modularity in Distributed Feature Composition. In Software Requirements and Design: The Work of Michael Jackson.

Cited By

View all
  • (2024)Visualizing Variability Implemented with Object-Orientation and Code Clones: A Tale of Two CitiesProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3673037(107-112)Online publication date: 2-Sep-2024
  • (2024)Leveraging Phylogenetics in Software Product Families: The Case of Latent Content Generation in Video GamesProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672596(113-124)Online publication date: 2-Sep-2024
  • (2023)Elimination of constraints for parallel analysis of feature modelsProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608981(99-110)Online publication date: 28-Aug-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1
September 2018
324 pages
ISBN:9781450364645
DOI:10.1145/3233027
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 September 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. education
  2. extractive software product line adoption
  3. reverse-engineering
  4. robocode
  5. software product lines

Qualifiers

  • Research-article

Funding Sources

Conference

SPLC '18

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Visualizing Variability Implemented with Object-Orientation and Code Clones: A Tale of Two CitiesProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3673037(107-112)Online publication date: 2-Sep-2024
  • (2024)Leveraging Phylogenetics in Software Product Families: The Case of Latent Content Generation in Video GamesProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672596(113-124)Online publication date: 2-Sep-2024
  • (2023)Elimination of constraints for parallel analysis of feature modelsProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608981(99-110)Online publication date: 28-Aug-2023
  • (2023)Migrating Individual Applications into Software Product Lines Using the Mobioos Forge Platform2023 30th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC60848.2023.00060(483-492)Online publication date: 4-Dec-2023
  • (2023)Comparing software product lines and Clone and Own for game software engineering under two paradigmsJournal of Systems and Software10.1016/j.jss.2023.111824205:COnline publication date: 17-Oct-2023
  • (2022)Evaluating the benefits of software product lines in game software engineeringProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3546998(120-130)Online publication date: 12-Sep-2022
  • (2022)Effects of variability in models: a family of experimentsEmpirical Software Engineering10.1007/s10664-021-10112-327:3Online publication date: 1-May-2022
  • (2022)Extending Boolean Variability Relationship Extraction to Multi-valued Software DescriptionsHandbook of Re-Engineering Software Intensive Systems into Software Product Lines10.1007/978-3-031-11686-5_6(143-173)Online publication date: 23-Nov-2022
  • (2021)On reducing the energy consumption of software product linesProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471142(89-99)Online publication date: 6-Sep-2021
  • (2021)A proposal for organizing source code variability in the git version control systemProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471141(82-88)Online publication date: 6-Sep-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media