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

Index Terms

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

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • 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

          Copyright © 2018 ACM

          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 about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate167of463submissions,36%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader