Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3233027.3236403acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Apo-games: a case study for reverse engineering variability from cloned Java variants

Published: 10 September 2018 Publication History

Abstract

Software-product-line engineering is an approach to systematically manage reusable software features and has been widely adopted in practice. Still, in most cases, organizations start with a single product that they clone and modify when new customer requirements arise (a.k.a. clone-and-own). With an increasing number of variants, maintenance can become challenging and organizations may consider migrating towards a software product line, which is referred to as extractive approach. While this is the most common approach in practice, techniques to extract variability from cloned variants still fall short in several regards. In particular, this accounts for the low accuracy of automated analyses and refactoring, our limited understanding of the costs involved, and the high manual effort. A main reason for these limitations is the lack of realistic case studies. To tackle this problem, we provide a set of cloned variants. In this paper, we characterize these variants and challenge the research community to apply techniques for reverse engineering feature models, feature location, code smell analysis, architecture recovery, and the migration towards a software product line. By evaluating solutions with the developer of these variants, we aim to contribute to a larger body of knowledge on this real-world case study.

References

[1]
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer.
[2]
Sven Apel, Christian Kastner, and Christian Lengauer. 2009. FeatureHouse: Language-Independent, Automated Software Composition. In International Conference on Software Engineering. IEEE, 221--231.
[3]
Wesley Klewerton Guez Assunção and Silvia Regina Vergilio. 2014. Feature Location for Software Product Line Migration: A Mapping Study. In International Systems and Software Product Line Conference (SPLC). ACM, 52--59.
[4]
Thorsten Berger, Steven She, Rafael Lotufo, Andrzej Wasowski, and Krzysztof Czarnecki. 2013. A Study of Variability Models and Languages in the Systems Software Domain. IEEE Transactions on Software Engineering 39, 12 (2013), 1611--1640.
[5]
Ted J. Biggerstaff, Bharat G. Mitbander, and Dallas Webster. 1986. The Concept Assignment Problem in Program Understanding. In International Conference on Software Engineering(ICSE). IEEE, 482--498.
[6]
Günter Böckle, Jesús Muñoz, Peter Knauber, Charles Krueger, Julio do Prado Leite, Frank van der Linden, Linda Northrop, Michael Stark, and David Weiss. 2002. Adopting and Institutionalizing a Product Line Culture. In International Conference on Software Product Lines (SPLC). Springer, 1--8.
[7]
Paul C. Clements and Charles W. Krueger. 2002. Point/Counterpoint: Being Proactive Pays Off/Eliminating the Adoption Barrier. IEEE Software 19, 4 (2002), 28--30.
[8]
Krzysztof Czarnecki, Paul Grünbacher, Rick Rabiser, Klaus Schmid, and Andrzej Wąsowski. 2012. Cool Features and Tough Decisions: A Comparison of Variability Modeling Approaches. In International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS). ACM, 173--182.
[9]
Bogdan Dit, Meghan Revelle, Malcom Gethers, and Denys Poshyvanyk. 2013. Feature Location in Source Code: A Taxonomy and Survey. Journal of Software: Evolution and Process 25, 1 (2013), 53--95.
[10]
Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In European Conference on Software Maintenance and Reengineering (CSMR). IEEE, 25--34.
[11]
Martin Fowler and Kent Beck. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley.
[12]
Wenbin Ji, Thorsten Berger, Michal Antkiewicz, and Krzysztof Czarnecki. 2015. Maintaining Feature Traceability with Embedded Annotations. In International Systems and Software Product Line Conference (SPLC). ACM, 61--70.
[13]
Peter Knauber, Jesus Bermejo, Günter Böckle, Julio Cesar Sampaio Do Prado Leite, Frank van der Linden, Linda M. Northrop, Michael Stark, and David M. Weiss. 2002. Quantifying Product Line Benefits. In International Workshop on Product-Family Engineering (PFE). Springer, 155--163.
[14]
Peter Knauber, Dirk Muthig, Klaus Schmid, and Tanya Widen. 2000. Applying Product Line Concepts in Small and Medium-Sized Companies. IEEE Software 17, 5 (2000), 88--95.
[15]
Sebastian Krieter, Marcus Pinnecke, Jacob Krüger, Joshua Sprey, Christopher Sontag, Thomas Thüm, Thomas Leich, and Gunter Saake. 2017. FeatureIDE: Empowering Third-Party Developers. In International Systems and Software Product Line Conference. ACM, 42--45.
[16]
Charles W. Krueger. 2002. Easing the Transition to Software Mass Customization. In International Workshop on Software Product-Family Engineering (PFE). Springer, 282--293.
[17]
Jacob Krüger. 2017. Lost in Source Code: Physically Separating Features in Legacy Systems. In International Conference on Software Engineering (ICSE). IEEE, 461--462.
[18]
Jacob Krüger, Wolfram Fenske, Jens Meinicke, Thomas Leich, and Gunter Saake. 2016. Extracting Software Product Lines: A Cost Estimation Perspective. In International Systems and Software Product Line Conference (SPLC). ACM, 354--361.
[19]
Jacob Krüger, Wanzi Gu, Hui Shen, Mukelabai Mukelabai, Regina Hebig, and Thorsten Berger. 2018. Towards a Better Understanding of Software Features and Their Characteristics: A Case Study of Marlin. In International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS). ACM, 105--112.
[20]
Jacob Krüger, Louis Nell, Wolfram Fenske, Gunter Saake, and Thomas Leich. 2017. Finding Lost Features in Cloned Systems. In International Systems and Software Product Line Conference (SPLC). ACM, 65--72.
[21]
Jacob Krüger, Jens Wiemann, Wolfram Fenske, Gunter Saake, and Thomas Leich. 2018. Do You Remember This Source Code?. In International Conference on Software Engineering(ICSE). ACM, 764--775.
[22]
Jabier Martinez, Wesley K. G. Assunção, and Tewfik Ziadi. 2017. ESPLA: A Catalog of Extractive SPL Adoption Case Studies. In International Systems and Software Product Line Conference (SPLC). ACM, 38--41.
[23]
Linda M. Northrop. 2002. SEI's Software Product Line Tenets. IEEE Software 19, 4 (2002), 32--40.
[24]
Andrzej Olszak and Bo Norregaard Jorgensen. 2011. Understanding Legacy Features with Featureous. In Working Conference on Reverse Engineering (WCRE). IEEE, 435--436.
[25]
Tristan Pfofe, Thomas Thüm, Sandro Schulze, Wolfram Fenske, and Ina Schaefer. 2016. Synchronizing Software Variants with VariantSync. In International Systems and Software Product Line Conference (SPLC). ACM, 329--332.
[26]
Klaus Pohl, Günter Böckle, and Frank van der Linden. 2005. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer.
[27]
Julia Rubin and Marsha Chechik. 2013. A Survey of Feature Location Techniques. In Domain Engineering. Springer, 29--58.
[28]
Julia Rubin, Andrei Kirshin, Goetz Botterweck, and Marsha Chechik. 2012. Managing Forked Product Variants. In International Systems and Software Product Line Conference (SPLC). ACM, 156--160.
[29]
Ina Schaefer, Rick Rabiser, Dave Clarke, Lorenzo Bettini, David Benavides, Goetz Botterweck, AnimeshPathak, Salvador Trujillo, and Karina Villela. 2012. Software Diversity: State of the Art and Perspectives. International Journal on Software Tools for Technology Transfer 14, 5 (2012), 477--495.
[30]
Ştefan Stănciulescu, Sandro Schulze, and Andrzej Wąsowski. 2015. Forked and Integrated Variants in an Open-Source Firmware Project. In International Conference on Software Maintenance and Evolution (ICSME). IEEE, 151--160.
[31]
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. Science of Computer Programming 79 (2014), 70--85.
[32]
Jinshui Wang, Xin Peng, Zhenchang Xing, and Wenyun Zhao. 2013. How Developers Perform Feature Location Tasks: A Human-Centric and Process-Oriented Exploratory Study. Journal of Software: Evolution and Process 25, 11 (2013), 1193--1224.

Cited By

View all
  • (2024)Towards a Flexible Approach for Variability MiningProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3676543(75-81)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
  • (2024)Cloned Code Clustering for the Software Product Line Engineering Approach to Developing a Family of Products2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00178(1350-1355)Online publication date: 2-Jul-2024
  • 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 the author(s) 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. case study
  2. data set
  3. extractive approach
  4. feature location
  5. reverse engineering
  6. software-product-line engineering

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)21
  • Downloads (Last 6 weeks)6
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Towards a Flexible Approach for Variability MiningProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3676543(75-81)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
  • (2024)Cloned Code Clustering for the Software Product Line Engineering Approach to Developing a Family of Products2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00178(1350-1355)Online publication date: 2-Jul-2024
  • (2024)Leveraging a combination of machine learning and formal concept analysis to locate the implementation of features in software variantsInformation and Software Technology10.1016/j.infsof.2023.107320164:COnline publication date: 10-Jan-2024
  • (2023)How to Retire and Replace a Software Product LineProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3609004(275-286)Online publication date: 28-Aug-2023
  • (2023)VariantIncProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608984(129-140)Online publication date: 28-Aug-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)Code smell analysis in cloned Java variantsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547015(250-254)Online publication date: 12-Sep-2022
  • (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)Reuse of Similarly Behaving Software Through Polymorphism-Inspired Variability MechanismsIEEE Transactions on Software Engineering10.1109/TSE.2020.300151248:3(773-785)Online publication date: 1-Mar-2022
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media