skip to main content
10.1145/3377024.3377034acmotherconferencesArticle/Chapter ViewAbstractPublication PagesvamosConference Proceedingsconference-collections
research-article

Recovering variability information from source code of clone-and-own software systems

Published: 06 February 2020 Publication History

Abstract

Clone-and-own prevails as an ad-hoc reuse strategy that addresses changing requirements by copying and modifying existing system variants. Proper documentation is typically not cherished and knowledge about common and varying parts between individual variants, denoted their variability information, is lost with a growing system family. With overall maintainability impaired in the longrun, software product lines (SPLs) or concepts thereof, can be a remedy. However, migrating a system family towards structured reuse requires a prior recovery of the systems' variability information. For software systems resulting from clone-and-own, this information is not explicitly available and recovering it remains an open challenge.
We aim to bridge this gap and propose a fine-grained metric and analysis procedure, which compares software systems to the extent of individual statements including their nesting. By that, we recover variability information from software systems written in imperative programming languages. Moreover, we create a software family representation of all analyzed systems, called a 150% model, which contains implementation artifacts and their identified variability information. We demonstrate the feasibility of our approach using two case studies implemented in Java and show our approach to exhibit a good performance and the 150% model to precisely capture variability information of the analyzed systems.

References

[1]
Jonas Akesson, Sebastian Nilsson, Jacob Krüger, and Thorsten Berger. 2019. Migrating the Android Apo-Games into an Annotation-Based Software Product Line. In Proc. of the Intl. Software Product Line Conference (SPLC). ACM, 103--107.
[2]
Michal Antkiewicz, Wenbin Ji, Thorsten Berger, Krzysztof Czarnecki, Thomas Schmorleiz, Ralf Lammel, Stefan Stanciulescu, Andrzej Wasowski, and Ina Schaefer. 2014. Flexible Product Line Engineering with a Virtual Platform. In Proc. of the Intl. Conference on Software Engineering (ICSE). ACM, 532--535.
[3]
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2016. Feature-Oriented Software Product Lines. Springer.
[4]
S. Apel, C. Kästner, and C. Lengauer. 2013. Language-Independent and Automated Software Composition: The FeatureHouse Experience. IEEE Transactions on Software Engineering 39, 1 (Jan 2013), 63--79.
[5]
Wesley K. Assunção, Roberto E. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, and Alexander Egyed. 2017. Reengineering Legacy Applications into Software Product Lines: A Systematic Mapping. Empirical Software Engineering 22, 6 (Dec. 2017), 2972--3016.
[6]
Thorsten Berger, Helge Pfeiffer, Reinhard Tartler, Steffen Dienst, Krzysztof Czarnecki, Andrzej Wasowski, and Steven She. 2014. Variability mechanisms in software ecosystems. Information and Software Technology 56 (11 2014), 1520--1535.
[7]
John Businge, Moses Openja, Sarah Nadi, Engineer Bainomugisha, and Thorsten Berger. 2018. Clone-Based Variability Management in the Android Ecosystem. In Proc. of the Intl. Conference on Software Maintenance and Evolution (ICSME). IEEE, 625--634.
[8]
Krzysztof Czarnecki and MichałAntkiewicz. 2005. Mapping Features to Models: A Template Approach Based on Superimposed Variants. In Proc. of the Intl. Conference on Generative Programming and Component Engineering (GPCE). Springer-Verlag, 422--437.
[9]
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 Proc. of the Intl. Workshop on Variability Modeling in Software-intensive Systems (VaMoS). ACM, 173--182.
[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 Proc. of the European Conference on Software Maintenance and Reengineering (CSMR). IEEE, 25--34.
[11]
David Faust and Chris Verhoef. 2003. Software Product Line Migration and Deployment. Software: Practice and Experiences 33, 10 (2003), 933--955.
[12]
W. Fenske, J. Meinicke, S. Schulze, S. Schulze, and G. Saake. 2017. Variant-Preserving Refactorings for Migrating Cloned Products to a Product Line. In Proc. of the Intl. Conference on Software Analysis, Evolution, and Reengineering (SANER). 316--326.
[13]
Yoshiki Higo, Shinji Kusumoto, and Katsuro Inoue. 2008. A Metric-based Approach to Identifying Refactoring Opportunities for Merging Code Clones in a Java Software System. Journal of Software Maintenance and Evolution: Research and Practice 20, 6 (Nov. 2008), 435--461.
[14]
Kyo Chul Kang, Moonzoo Kim, Jaejoon Lee, and Byungkil Kim. 2005. Feature-Oriented Re-Engineering of Legacy Systems into Product Line Assets - A Case Study. In Proc. of the Intl. Software Product Line Conference (SPLC). 45--56.
[15]
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.
[16]
Christian Kästner, Sven Apel, and Martin Kuhlemann. 2008. Granularity in Software Product Lines. In Proc. of the Intl. Conference on Software Engineering (ICSE). ACM, 311--320.
[17]
R. Koschke. 2012. Large-Scale Inter-System Clone Detection Using Suffix Trees. In Proc. of the European Conference on Software Maintenance and Reengineering (CSMR). 309--318.
[18]
Jens Krinke. 2008. Is Cloned Code More Stable than Non-cloned Code?. In Proc. of the Working Conference on Source Code Manipulation and Analysis (SCAM). IEEE, 57--66.
[19]
Jacob Krüger, Wolfram Fenske, Thomas Thüm, Dirk Aporius, Gunter Saake, and Thomas Leich. 2018. Apo-games: A Case Study for Reverse Engineering Variability from Cloned Java Variants. In Proc. of the Intl. Software Product Line Conference (SPLC). ACM, 251--256.
[20]
H.W. Kuhn. 1955. The Hungarian Method for the Assignment Problem. Naval Res. Logist. Quart. 2 (01 1955), 83--98.
[21]
V. I. Levenshtein. 1966. Binary Codes Capable of Correcting Deletions, Insertions, and Reversals. Soviet Physics Doklady 10, 8 (1966), 707--710.
[22]
J. Liebig, A. Janker, F. Garbe, S. Apel, and C. Lengauer. 2015. Morpheus: Variability-Aware Refactoring in the Wild. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1. 380--391.
[23]
Crescencio Lima, Ivan Machado, Eduardo Santana de Almeida, and Christina von Flach G. Chavez. 2018. Recovering the Product Line Architecture of the Apo-Games. In Proc. of the Intl. Software Product Line Conference (SPLC). 289--293.
[24]
Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2017. Variability Extraction and Modeling for Product Variants. Software & Systems Modeling 16, 4, 1179--1199.
[25]
Raúl Mazo, Camille Salinesi, Daniel Diaz, and Alberto Lora Michiels. 2011. Transforming Attribute and Clone-Enabled Feature Models Into Constraint Programs Over Finite Domains. In Proc. of the Intl. Conference on Evaluation of Novel Approaches to Software Engineering (ENASE). 188--199.
[26]
Jens Meinicke, Thomas Thüm, Reimar Schröter, Fabian Benduhn, Thomas Leich, and Gunter Saake. 2017. Mastering Software Variability with FeatureIDE. Springer.
[27]
Andrzej Olszak and Bo Nørregaard Jørgensen. 2009. Remodularizing Java Programs for Comprehension of Features. In Proc. of the Intl. Workshop on Feature-Oriented Software Development (FOSD). ACM, 19--26.
[28]
Tristan Pfofe, Thomas Thüm, Sandro Schulze, Wolfram Fenske, and Ina Schaefer. 2016. Synchronizing Software Variants with Variantsync. In Proc. of the Intl. Software Product Line Conference (SPLC). 329--332.
[29]
Claudio Riva and Christian Del Rosso. 2003. Experiences with Software Product Family Evolution. In Proc. of the Joint Workshop on Software Evolution and Intl. Workshop on Principles of Software Evolution (IWPSE-EVOL). IEEE, 161--169.
[30]
Julia Rubin and Marsha Chechik. 2013. A Framework for Managing Cloned Product Variants. In Proc. of the Intl. Conference on Software Engineering (ICSE). IEEE, 1233--1236.
[31]
J. Rubin and M. Chechik. 2013. N-way Model Merging. In Proc. of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE). ACM, 301--311.
[32]
P. Runeson and M. Höst. 2009. Guidelines for Conducting and Reporting Case Study Research in Software Engineering. Empirical Software Engineering 14, 2 (2009), 131--164.
[33]
Vaibhav Saini, Farima Farmahinifarahani, Yadong Lu, Pierre Baldi, and Cristina V. Lopes. 2018. Oreo: Detection of Clones in the Twilight Zone. In Proc. of the Intl. Symposium on the Foundations of Software Engineering (FSE). ACM, 354--365.
[34]
Ina Schaefer, Christoph Seidl, Loek Cleophas, and Bruce Watson. 2016. Tax-PLEASE - Towards Taxonomy-Based Software Product Line Engineering. In Proc. of the Intl. Conference on Software Reuse (ICSR). 63--70.
[35]
Thomas Schmorleiz and Ralf Lämmel. 2016. Similarity Management of 'Cloned and Owned' Variants. In Proc. of the ACM Symposium on Applied Computing (SAC). ACM, 1466--1471.
[36]
Michael Schulze, Jan Mauersberger, and Danilo Beuche. 2013. Functional Safety and Variability: Can it be brought together?. In Proc. of the Intl. Software Product Line Conference (SPLC).
[37]
Stefan Stanciulescu, Sandro Schulze, and Andrzej Wasowski. 2015. Forked and Integrated Variants in an Open-Source Firmware Project. In Proc. of the Intl. Conference on Software Maintenance and Evolution (ICSME). IEEE, 151--160.
[38]
M. T. Valente, V. Borges, and L. Passos. 2012. A Semi-Automatic Approach for Extracting Software Product Lines. IEEE Transactions on Software Engineering 38, 4 (July 2012), 737--754.
[39]
Bruce Watson. 2010. Constructing minimal acyclic deterministic finite automata. Ph.D. Dissertation. University of Pretoria. http://www.repository.up.ac.za/dspace/bitstream/handle/2263/23648/thesis.pdf?sequence=1&isAllowed=y
[40]
David Wille, Michael Tiede, Sandro Schulze, Christoph Seidl, and Ina Schaefer. 2016. Identifying Variability in Object-Oriented Code Using Model-Based Code Mining. In Proc. of the Intl. Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA). Springer International, 547--562.
[41]
Zhenchang Xing. 2010. Model Comparison with GenericDiff. In Proc. of the Intl. Conference on Automated Software Engineering (ASE). ACM, 135--138.
[42]
Yinxing Xue. 2011. Reengineering Legacy Software Products into Software Product Line Based on Automatic Variability Analysis. In Proc. of the Intl. Conference on Software Engineering (ICSE). ACM, 1114--1117.
[43]
Y. Xue, Z. Xing, and S. Jarzabek. 2010. Understanding Feature Evolution in a Family of Product Variants. In Proc. of the Working Conference on Reverse Engineering (WCRE). 109--118.
[44]
B. Zhang, S. Duszynski, and M. Becker. 2016. Variability Mechanisms and Lessons Learned in Practice. In Proc. of the Intl. Workshop on Variability and Complexity in Software Design (VACE). 14--20.
[45]
Tewfik Ziadi, Luz Frias, Marcos Aurelio Almeida da Silva, and Mikal Ziane. 2012. Feature Identification from the Source Code of Product Variants. In Proc. of the European Conference on Software Maintenance and Reengineering (CSMR). IEEE, 417--422.

Cited By

View all
  • (2024)Modular language product lines: concept, tool and analysisSoftware and Systems Modeling10.1007/s10270-024-01179-9Online publication date: 28-May-2024
  • (2023)True Variability Shining Through Taxonomy MiningProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608989(182-193)Online publication date: 28-Aug-2023
  • (2023)Extracting Common and Variable Code using the LCS Algorithm for Migration to SPLE2023 IEEE 47th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC57700.2023.00148(1004-1005)Online publication date: Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
VaMoS '20: Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems
February 2020
184 pages
ISBN:9781450375016
DOI:10.1145/3377024
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: 06 February 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. 150% model
  2. clone-and-own
  3. recovering
  4. source code
  5. variability

Qualifiers

  • Research-article

Funding Sources

Conference

VaMoS '20

Acceptance Rates

Overall Acceptance Rate 66 of 147 submissions, 45%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)3
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Modular language product lines: concept, tool and analysisSoftware and Systems Modeling10.1007/s10270-024-01179-9Online publication date: 28-May-2024
  • (2023)True Variability Shining Through Taxonomy MiningProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608989(182-193)Online publication date: 28-Aug-2023
  • (2023)Extracting Common and Variable Code using the LCS Algorithm for Migration to SPLE2023 IEEE 47th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC57700.2023.00148(1004-1005)Online publication date: Jun-2023
  • (2023)A benchmark generator framework for evolving variant-rich softwareJournal of Systems and Software10.1016/j.jss.2023.111736203(111736)Online publication date: Sep-2023
  • (2022)Variability Analysis for Robot Operating System Applications2022 Sixth IEEE International Conference on Robotic Computing (IRC)10.1109/IRC55401.2022.00028(111-118)Online publication date: Dec-2022
  • (2022)RaQuN: a generic and scalable n-way model matching algorithmSoftware and Systems Modeling10.1007/s10270-022-01062-522:5(1495-1517)Online publication date: 21-Nov-2022
  • (2021)Scalable N-Way Model Matching Using Multi-Dimensional Search Trees2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS50736.2021.00010(1-12)Online publication date: Oct-2021
  • (2020)On the use of product-line variants as experimental subjects for clone-and-own researchProceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A10.1145/3382025.3414972(1-6)Online publication date: 19-Oct-2020
  • (2020)Incremental migration to software product line engineeringProceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A10.1145/3382025.3414956(1-11)Online publication date: 19-Oct-2020
  • (2020)N-way Diff: Set-based Comparison of Software Variants2020 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT51673.2020.00012(72-83)Online publication date: Sep-2020
  • 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