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

Finding Lost Features in Cloned Systems

Authors Info & Claims
Published:25 September 2017Publication History

ABSTRACT

Copying and adapting a system, also known as clone-and-own, is a common reuse approach that requires little initial effort. However, the drawbacks of clones are increasing maintenance costs as bug fixes and updates must be propagated. To reduce these costs, migrating cloned legacy systems towards a software product line promises to enable systematic reuse and customization. For both, managing and migrating cloned systems, it remains a challenge to identify and map features in the systems. In this paper, we i) propose a semi-automatic process to identify and map features between legacy systems, ii) suggest a corresponding visualization approach, and iii) assess our process on a case study. The results indicate that our process is suitable to identify features and present commonalities and variability in cloned systems. Our process can be used to enable traceability, prepare refactorings, and extract software product lines.

References

  1. Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer. Google ScholarGoogle ScholarCross RefCross Ref
  2. Sven Apel and Christian Kästner. 2009. An Overview of Feature-Oriented Software Development. JOT 8, 5 (2009), 49--84. Google ScholarGoogle ScholarCross RefCross Ref
  3. Wesley K. G. Assunção and Silvia R. Vergilio. 2014. Feature Location for Software Product Line Migration: A Mapping Study. In SPLC. ACM, 52--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Veronika Bauer and Benedikt Hauptmann. 2013. Assessing Cross-Project Clones for Reuse Optimization. In IWSC. IEEE, 60--61. Google ScholarGoogle ScholarCross RefCross Ref
  5. Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wąsowski. 2013. A Survey of Variability Modeling in Industrial Practice. In VAMOS. ACM, 7:1--7:8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ted J. Biggerstaff, Bharat G. Mitbander, and Dallas Webster. 1993. The Concept Assignment Problem in Program Understanding. In ICSE. IEEE, 482--498.Google ScholarGoogle Scholar
  7. Lianping Chen and Muhammad Ali Babar. 2011. A Systematic Review of Evaluation of Variability Management Approaches in Software Product Lines. IST 53, 4 (2011), 344--362. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Paul C. Clements and Charles W. Krueger. 2002. Point/Counterpoint: Being Proactive Pays Off/Eliminating the Adoption Barrier. Software 19, 4 (2002), 28--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Paul C. Clements and Linda M. Northrop. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley.Google ScholarGoogle Scholar
  10. Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. Addison-Wesley.Google ScholarGoogle Scholar
  11. 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 VAMOS. ACM, 173--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Florian Deissenboeck, Elmar Juergens, Benjamin Hummel, Stefan Wagner, Benedikt Mas y Parareda, and Markus Pizka. 2008. Tool Support for Continuous Quality Control. Software 25, 5 (2008), 60--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Bogdan Dit, Meghan Revelle, Malcom Gethers, and Denys Poshyvanyk. 2013. Feature Location in Source Code: A Taxonomy and Survey. SMR 25, 1 (2013), 53--95. Google ScholarGoogle ScholarCross RefCross Ref
  14. 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 CSMR. IEEE, 25--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Slawomir Duszynski. 2010. Visualizing and Analyzing Software Variability with Bar Diagrams and Occurrence Matrices. In SPLC. Springer, 481--485. Google ScholarGoogle ScholarCross RefCross Ref
  16. Slawomir Duszynski, Jens Knodel, and Martin Becker. 2011. Analyzing the Source Code of Multiple Software Variants for Reuse Potential. In WCRE. IEEE, 303--307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, and Gunter Saake. 2017. Variant-Preserving Refactorings for Migrating Cloned Products to a Product Line. In SANER. IEEE, 316--326. Google ScholarGoogle ScholarCross RefCross Ref
  18. 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, 391--400. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Wenbin Ji, Thorsten Berger, Michal Antkiewicz, and Krzysztof Czarnecki. 2015. Maintaining Feature Traceability with Embedded Annotations. In SPLC. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Elmar Juergens, Florian Deissenboeck, and Benjamin Hummel. 2009. CloneDetective - A Workbench for Clone Detection Research. In ICSE. IEEE, 603--606. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, and A. Spencer Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report. SEI, CMU.Google ScholarGoogle Scholar
  22. Christian Kästner, Alexander Dreiling, and Klaus Ostermann. 2014. Variability Mining: Consistent Semi-Automatic Detection of Product-Line Features. TSE 40, 1 (2014), 67--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rainer Koschke, Pierre Frenzel, Andreas P. Breu, and Karsten Angstmann. 2009. Extending the Reflexion Method for Consolidating Software Variants into Product Lines. SQJ 17, 4 (2009), 331--366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Charles W. Krueger. 2002. Easing the Transition to Software Mass Customization. In PFE. Springer, 282--293. Google ScholarGoogle ScholarCross RefCross Ref
  25. Jacob Krüger. 2017. Lost in Source Code: Physically Separating Features in Legacy Systems. In ICSE. IEEE, 461--462. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Jacob Krüger, Wolfram Fenske, Jens Meinicke, Thomas Leich, and Gunter Saake. 2016. Extracting Software Product Lines: A Cost Estimation Perspective. In SPLC. ACM, 354--361. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Miguel A. Laguna and Yania Crespo. 2013. A Systematic Mapping Study on Software Product Line Evolution: From Legacy System Reengineering to Product Line Refactoring. SCICO 78, 8 (2013), 1010--1034. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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. ACM, 101--110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Sarah Nadi, Thorsten Berger, Christian Kästner, and Krzysztof Czarnecki. 2015. Where do Configuration Constraints Stem From? An Extraction Approach and an Empirical Study. TSE 41, 8 (2015), 820--841. Google ScholarGoogle ScholarCross RefCross Ref
  30. Tristan Pfofe, Thomas Thüm, Sandro Schulze, Wolfram Fenske, and Ina Schaefer. 2016. Synchronizing Software Variants with Variantsync. In SPLC. ACM, 329--332. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Chanchal K. Roy, James R. Cordy, and Rainer Koschke. 2009. Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach. SCICO 74, 7 (2009), 470--495. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Julia Rubin and Marsha Chechik. 2013. A Framework for Managing Cloned Product Variants. In ICSE. IEEE, 1233--1236. Google ScholarGoogle ScholarCross RefCross Ref
  33. Julia Rubin and Marsha Chechik. 2013. A Survey of Feature Location Techniques. In Domain Engineering: Product Lines, Languages, and Conceptual Models. Springer, 29--58. Google ScholarGoogle ScholarCross RefCross Ref
  34. Julia Rubin, Krzysztof Czarnecki, and Marsha Chechik. 2013. Managing Cloned Variants: A Framework and Experience. In SPLC. ACM, 101--110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Julia Rubin, Andrei Kirshin, Goetz Botterweck, and Marsha Chechik. 2012. Managing Forked Product Variants. In SPLC. ACM, 156--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Ina Schaefer, Rick Rabiser, Dave Clarke, Lorenzo Bettini, David Benavides, Goetz Botterweck, Animesh Pathak, Salvador Trujillo, and Karina Villela. 2012. Software Diversity: State of the Art and Perspectives. STTT 14, 5 (2012), 477--495. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Klaus Schmid and Martin Verlage. 2002. The Economic Impact of Product Line Adoption and Evolution. Software 19, 4 (2002), 50--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Pierre-Yves Schobbens, Patrick Heymans, and Jean-Christophe Trigaux. 2006. Feature Diagrams: A Survey and a Formal Aemantics. In RE. IEEE, 139--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Steven She, Rafael Lotufo, Thorsten Berger, Andrzej Wasowski, and Krzysztof Czarnecki. 2011. Reverse Engineering Feature Models. In ICSE. IEEE, 461--470. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Ştefan Stănciulescu, Sandro Schulze, and Andrzej Wąsowski. 2015. Forked and Integrated Variants in an Open-Source Firmware Project. In ICSME. IEEE, 151--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Thomas Thüm, Christian Kästner, Sebastian Erdweg, and Norbert Siegmund. 2011. Abstract Features in Feature Modeling. In SPLC. IEEE, 191--200. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Jinshui Wang, Xin Peng, Zhenchang Xing, and Wenyun Zhao. 2013. How Developers Perform Feature Location Tasks: A Human-Centric and Process-Oriented Exploratory Study. SMR 25, 11 (2013), 1193--1224. Google ScholarGoogle ScholarCross RefCross Ref
  43. Zhenchang Xing, Yinxing Xue, and Stan Jarzabek. 2011. CloneDifferentiator: Analyzing Clones by Differentiation. In ASE. IEEE, 576--579. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Yinxing Xue. 2011. Reengineering Legacy Software Products into Software Product Line Based on Automatic Variability Analysis. In ICSE. ACM, 1114--1117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Yinxing Xue. 2013. Reengineering Legacy Software Products Into Software Product Line. Ph.D. Dissertation. University of Singapore.Google ScholarGoogle Scholar
  46. Yinxing Xue, Zhenchang Xing, and Stan Jarzabek. 2010. Understanding Feature Evolution in a Family of Product Variants. In WCRE. IEEE, 109--118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Yinxing Xue, Zhenchang Xing, and Stan Jarzabek. 2012. Feature Location in a Collection of Product Variants. In WCRE. IEEE, 145--154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Tewfik Ziadi, Luz Frias, Marcos Aurélio Almeida da Silva, and Mikal Ziane. 2012. Feature Identification from the Source Code of Product Variants. In CSMR. IEEE, 417--422. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Finding Lost Features in Cloned Systems

        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

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader