Skip to main content
Log in

Cloned product variants: from ad-hoc to managed software product lines

  • Splc 2013
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

We focus on the problem of managing a collection of related software product variants realized via cloning. By analyzing three industrial case studies of organizations with cloned product lines, we conclude that an efficient management of clones relies on both refactoring cloned variants into a single-copy product line representation and improving development experience when maintaining existing clones. We propose a framework that consists of seven conceptual operators for cloned product line management and show that these operators are adequate to realize development activities we observed in the analyzed case studies. We discuss options for implementing the operators and benefits of the operator-based view.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. http://www-01.ibm.com/software/awdtools/doors/.

  2. http://www.esterel-technologies.com/products/scade-suite/.

  3. DO-178B.

  4. http://www.pure-systems.com/.

References

  1. Acher, M., Collet, P., Lahire, P., France, R.: Comparing approaches to implement feature model composition. In: Proceedings of the European Conference on Modeling—Foundations and Applications (ECMFA’10), pp. 3–19 (2010)

  2. Batory, D.S., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. 30(6), 355–371 (2004)

    Article  Google Scholar 

  3. Bayer, J., Girard, J.-F., Würthner, M., DeBaud, J.-M., Apel, M.: Transitioning legacy assets to a product line architecture. In: Proceedings of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’99), pp. 446–463 (1999)

  4. Bellon, S., Koschke, R., Antoniol, G., Krinke, J., Merlo, E.: Comparison and evaluation of clone detection tools. IEEE Trans. Softw. Eng. 33, 577–591 (2007)

    Article  Google Scholar 

  5. Borba, P., Teixeira, L., Gheyi, R.: A theory of software product line refinement. Theor. Comput. Sci. 455, 2–30 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  6. Brunet, G., Chechik, M., Easterbrook, S., Nejati, S., Niu, N., Sabetzadeh, M.: A manifesto for model merging. In: Proceedings of the Workshop on Global Integrated Model Management (GaMMa) at the International Conference on Software Engineering (ICSE’06), pp. 5–12 (2006)

  7. Chen, K., Rajlich, V.: Case study of feature location using dependence graph. In: Proceedings of the International Workshop on Program Comprehension (IWPC’00), pp. 241–249 (2000)

  8. Chen, K., Zhang, W., Zhao, H., Mei, H.: An approach to constructing feature models based on requirements clustering. In: Proceedings of the IEEE International Requirements Engineering Conference (RE’05), pp. 31–40 (2005)

  9. Classen, A., Heymans, P., Schobbens, P.-Y., Legay, A., Raskin, J.-F.: Model checking lots of systems: efficient verification of temporal properties in software product lines. In: Proceedings of the International Conference on Software Engineering (ICSE’10), pp. 335–344 (2010)

  10. Clements, P.C., Northrop, L.: Software product lines: practices and patterns. Addison-Wesley, New York (2001)

  11. Davril, J.-M., Delfosse, E., Hariri, N., Acher, M., Cleland-Huang, J., Heymans, P.: Feature model extraction from large collections of informal product descriptions. In: Proceeding of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’13), pp. 290–300 (2013)

  12. Dubinsky, Y., Rubin, J., Berger, T., Duszynski, S., Becker, M., Czarnecki, K.: An exploratory study of cloning in industrial software product lines. In: Proceedings of the European Conference on Software Maintenance and Reengineering (CSMR’13), pp. 25–34 (2013)

  13. Ferber, S., Haag, J., Savolainen, J.: Feature interaction and dependencies: modeling features for reengineering a legacy product line. In: Proceedings of the International Software Product Line Conference (SPLC’02), pp. 235–256 (2002)

  14. Fluri, B., Wuersch, M., Pinzger, M., Gall, H.: Change distilling: tree differencing for fine-grained source code change extraction. IEEE Trans. Softw. Eng. 33(11), 725–743 (2007)

    Article  Google Scholar 

  15. Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley, New York (1999)

  16. Goldin, L., Berry, D.M.: AbstFinder, a prototype natural language text abstraction finder for use in requirements elicitation. J. Autom. Softw. Eng. 4(4), 375–412 (1997)

    Article  Google Scholar 

  17. Gomaa, H.: Designing software product lines with UML: from use cases to pattern-based software architectures. Addison-Wesley, Redwood city (2004)

    Google Scholar 

  18. Herzig, K., Zeller, A.: Untangling changes (2011) (Manuscript)

  19. Hetrick, W.A., Krueger, C.W., Moore, J.G.: Incremental return on incremental investment: Engenio’s transition to software product line practice. In: Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’06), Companion Volume, pp. 798–804 (2006)

  20. Horwitz, S.: Identifying the semantic and textual differences between two versions of a program. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’90), pp. 234–245 (1990)

  21. Jackson, D., Ladd, D.A.: Semantic diff: a tool for summarizing the effects of modifications. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM’94), pp. 243–252 (1994)

  22. Jepsen, H.P., Beuche, D.: Running a software product line: standing still is going backwards. In: Proceedings of the International Software Product Line Conference (SPLC’09), pp. 101–110 (2009)

  23. Jepsen, H.P., Dall, J.G., Beuche, D.: Minimally invasive migration to software product lines. In: Proceedings of the International Software Product Line Conference (SPLC’07), pp. 203–211 (2007)

  24. Jepsen, H.P., Nielsen, F.: A two-part architectural model as basis for frequency converter product families. In: Proceedings of the International Workshop on Software Architectures for Product Families (IW-SAPF’00), pp. 30–38 (2000)

  25. Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical report, Software Engineering Institute, Carnegie Mellon University, CMU/SEI-90TR-21 (1990)

  26. Kang, K.C., Kim, M., Lee, J., Kim, B.: Feature-oriented re-engineering of legacy systems into product line assets. In: Proceedings of the International Software Product Line Conference (SPLC’05), pp. 45–56 (2005)

  27. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspects. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP’01), pp. 327–353 (2001)

  28. Kim, K., Kim, H., Kim, W.: Building software product line from the legacy systems: experience in the digital audio and video domain. In: Proceedings of the International Software Product Line Conference (SPLC’07), pp. 171–180 (2007)

  29. Kolb, R., Muthig, D., Patzke, T., Yamauchi, K.: Refactoring a legacy component for reuse in a software product line: a case study: practice articles. J. Softw. Maint. Evol. 18(2), 109–132 (2006)

    Article  Google Scholar 

  30. Koschke, R., Frenzel, P., Breu, A.P., Angstmann, K.: Extending the reflexion method for consolidating software variants into product lines. J. Softw. Qual. Control 17(4), 331–366 (2009)

    Article  Google Scholar 

  31. Levenshtein, V.I.: Binary codes capable of correcting deletions, insertions and reversals. Sov. Phys. Doklady 10, 707 (1966)

    MathSciNet  Google Scholar 

  32. Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: Proceedings of the International Conference on Software Engineering (ICSE’06), pp. 112–121 (2006)

  33. MacKenzie, D., Eggert, P., Stallman, R.: Comparing and merging files with GNU diff and patch. Network Theory Ltd. (2003)

  34. Mende, T., Koschke, R., Beckwermert, F.: An evaluation of code similarity identification for the grow-and-prune model. J. Softw. Maint. Evol. 21(2), 143–169 (2009)

    Article  Google Scholar 

  35. Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)

    Article  Google Scholar 

  36. Murphy, G.C., Lai, A., Walker, R.J., Robillard, M.P.: Separating features in source code: an exploratory study. In: Proceedings of the International Conference on Software Engineering (ICSE’01), pp. 275–284 (2001)

  37. Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and merging of statecharts specifications. In: Proceedings of the International Conference on Software Engineering (ICSE’07), pp. 54–64 (2007)

  38. Northrop, L.: Software product lines: reuse that makes business sense. In: Proceedings of the Australasian Software Engineering Conference (ASWEC’06) (2006)

  39. Pohl, K., Boeckle, G., van der Linden, F.: Software product line engineering : foundations, principles, and techniques. Springer, Berlin, Heidelberg (2005)

  40. Rastkar, S., Murphy, G.C., Bradley, A.W.J.: Generating natural language summaries for crosscutting source code concerns. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM’11), pp. 103–112 (2011)

  41. Reason, P., Bradbury, H.: Handbook of action research: participative inquiry and practice. Sage Publications Inc (2001)

  42. Rubin, J., Chechik, M.: A framework for managing cloned product variants. In: Proceedings of the International Conference on Software Engineering (ICSE’13), pp. 1233–1236 (2013)

  43. Rubin, J., Chechik, M.: A survey of feature location techniques. In: Reinhartz-Berger, I., et al. (eds.) Domain engineering: product lines, conceptual models, and languages, pp. 29–58. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  44. Rubin, J., Chechik, M.: N-way model merging. In: Proceedings of the European Software Engineering Conference and the ACM Sigsoft Symposium on the Foundations of Software Engineering (ESEC/FSE’13), pp. 301–311 (2013)

  45. Rubin, J., Chechik, M.: Quality of merge-refactorings for product lines. In: Proceedings of the International Conference on Fundamental Approaches to Software Engineering (FASE’13), pp. 83–98 (2013)

  46. Rubin, J., Czarnecki, K., Chechik, M.: Managing cloned variants: a framework and experience. In: Proceedings of the International Software Product Line Conference (SPLC’13), pp. 101–110 (2013)

  47. Rubin, J., Kirshin, A., Botterweck, G., Chechik, M.: Managing forked product variants. In: Proceedings of the International Software Product Line Conference (SPLC’12), pp. 156–160 (2012)

  48. Ryssel, U., Ploennigs, J., Kabitzsch, K.: Extraction of feature models from formal contexts. In: Proceedings of the International Software Product Line Conference (SPLC’11), pp. 4:1–4:8 (2011)

  49. Schmidt, D.C.: Guest editor’s introduction. Model Driven Engineering. IEEE Comput. 39(2), 25–31 (2006)

  50. She, S., Czarnecki, K., Wasowski, A.: Usage scenarios for feature model synthesis. In: Proceedings of the Workshop on Variability for you (VARY) at the ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS’12), pp. 13–18 (2012)

  51. She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse engineering feature models. In: Proceedings of the International Conference on Software Engineering (ICSE’11) (2011)

  52. Stephan, M., Cordy, J.R.: A survey of methods and applications of model comparison. Technical report, Queen’s University, Kingson (2011)

  53. Tip, F.: A survey of program slicing techniques. J. Program. Lang. 3(3), 121–189 (1995)

    Google Scholar 

  54. Weiss, D.M., Lai, C.T.R.: Software product line engineering: a family-based software development process. Addison-Wesley, Boston (1999)

    Google Scholar 

  55. Weston, N., Chitchyan, R., Rashid, A.: A framework for constructing semantically composable feature models from natural language requirements. In: Proceedings of the International Software Product Line Conference (SPLC’09), pp. 211–220 (2009)

  56. Zave, P.: FAQ sheet on feature interaction. http://www2.research.att.com/~pamela/faq.html (2004)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Julia Rubin.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Rubin, J., Czarnecki, K. & Chechik, M. Cloned product variants: from ad-hoc to managed software product lines. Int J Softw Tools Technol Transfer 17, 627–646 (2015). https://doi.org/10.1007/s10009-014-0347-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-014-0347-9

Keywords

Navigation