Skip to main content

Software Reuse: From Cloned Variants to Managed Software Product Lines

  • Chapter
  • First Online:
Automotive Systems and Software Engineering

Abstract

Many software systems are available in similar, yet different variants to accommodate specific customer requirements. Even though sophisticated techniques exist to manage this variability, industrial practice mainly is to copy and modify existing products to create variants in an ad hoc manner. This clone-and-own practice loses variability information as no explicit connection between the variants is kept. This causes significant cost in the long term with a large set of variants as each software system has to be maintained individually. Software product line (SPL) engineering remedies this problem by allowing to develop and maintain large sets of software systems as a software family.

In this chapter, we give an overview of variability realization mechanisms in the state of practice in the industry and the state of the art in SPL engineering. Furthermore, we describe a procedure for variability mining to retrieve previously unavailable variability information from a set of cloned variants and to generate an SPL from cloned variants. Finally, we demonstrate our tool suite DeltaEcore to manage the resulting SPL and to extend it with new functionality or different realization artifacts. We illustrate the entire procedure and our tool suite with an example from the automotive industry.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 109.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 149.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 139.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alves V, Matos P, Cole L, Vasconcelos A, Borba P, Ramalho G (2007) Extracting and evolving code in product lines with aspect-oriented programming. In: Transactions on aspect-oriented software development IV. Springer, Berlin, pp 117–142

    Chapter  Google Scholar 

  2. Apel S, Kästner C (2009) An overview of feature-oriented software development. J Object Technol 8(5):49–84

    Article  Google Scholar 

  3. B ąk K, Czarnecki K, W ąsowski A (2011) Feature and meta-models in Clafer: mixed, specialized, and coupled. In: Proceedings of the international conference on software language engineering (SLE), SLE ’11. Springer, Berlin, pp 102–122

    Google Scholar 

  4. Batory D (2004) Feature-oriented programming and the AHEAD tool suite. In: Proceedings of the international conference on software engineering (ICSE), ICSE ’04. IEEE, Piscataway, pp 702–703

    Chapter  Google Scholar 

  5. Berger T, Rublack R, Nair D, Atlee JM, Becker M, Czarnecki K, W ąsowski A (2013) A survey of variability modeling in industrial practice. In: Proceedings of the international workshop on variability modeling in software-intensive systems (VaMoS), VaMoS ’13. ACM, New York, pp 7:1–7:8

    Google Scholar 

  6. Berger T, Lettner D, Rubin J, Grünbacher P, Silva A, Becker M, Chechik M, Czarnecki K (2015) What is a feature?: a qualitative study of features in industrial software product lines. In: Proceedings of the international software product line conference (SPLC), SPLC ’15. ACM, New York, pp 16–25

    Chapter  Google Scholar 

  7. Beuche D (2012) Modeling and building software product lines with pure::variants. In: Proceedings of the international software product line conference (SPLC), SPLC ’12. ACM, New York, pp 255–255

    Chapter  Google Scholar 

  8. Clements PC, Northrop LM (2001) Software product lines: practices and patterns. Addison-Wesley, Boston

    Google Scholar 

  9. Czarnecki K, Eisenecker UW (2000) Generative programming: methods, tools, and applications. Addison-Wesley, Boston

    Google Scholar 

  10. Damiani F, Lienhardt M (2016) On type checking delta-oriented product lines. In: Proceedings of the international conference on integrated formal methods (iFM), iFM ’16. Springer, Berlin, pp 47–62

    Chapter  Google Scholar 

  11. Damiani F, Lienhardt M (2016) Refactoring delta oriented product lines to enforce guidelines for efficient type-checking. In: Proceedings of the international symposium on leveraging applications of formal methods, verification and validation (ISoLA), ISoLA’16. Springer, Berlin

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  13. Figueiredo E, Cacho N, Sant’Anna C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari F, Khan S, Dantas F (2008) Evolving software product lines with aspects. In: Proceedings of the international conference on software engineering (ICSE), ICSE ’08. IEEE, Piscataway, pp 261–270

    Chapter  Google Scholar 

  14. Greenfield J, Short K (2003) Software factories: assembling applications with patterns, models, frameworks and tools. In: Proceedings of the international conference on object-oriented programming, systems, languages and applications (OOPSLA), OOPSLA ’03. ACM, New York, pp 16–27

    Google Scholar 

  15. Groher I, Voelter M (2009) Aspect-oriented model-driven software product line engineering. In: Transactions on aspect-oriented software development VI. Springer, Berlin, pp 111–152

    Chapter  Google Scholar 

  16. Haugen Ø, Møller-Pedersen B, Oldevik J, Olsen GK, Svendsen A (2008) Adding standardized variability to domain specific languages. In: Proceedings of the international software product line conference (SPLC), SPLC ’08. IEEE, Piscataway, pp 139–148

    Google Scholar 

  17. Heidenreich F, Kopcsek J, Wende C (2008) FeatureMapper: mapping features to models. In: Proceedings of the international conference on software engineering (ICSE), ICSE ’08. ACM, New York

    Google Scholar 

  18. Holthusen S, Wille D, Legat C, Beddig S, Schaefer I, Vogel-Heuser B (2014) Family model mining for function block diagrams in automation software. In: Proceedings of the international workshop on reverse variability engineering (REVE), SPLC ’14. ACM, New York, pp 36–43

    Google Scholar 

  19. International Electrotechnical Commission (2009) Programmable logic controllers – part 3: programming languages. IEC61131-3 Standard

    Google Scholar 

  20. Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) Feature-oriented domain analysis (FODA) feasibility study. Tech. Rep. CMU/SEI-90-TR-021, Carnegie-Mellon University Software Engineering Institute

    Google Scholar 

  21. Kapser C, Godfrey MW (2006) “Cloning Considered Harmful” considered harmful. In: Proceedings of the working conference on reverse engineering (WCRE), WCRE ’06. IEEE, Piscataway, pp 19–28

    Google Scholar 

  22. Kästner C, Apel S, Kuhlemann M (2008) Granularity in software product lines. In: Proceedings of the international conference on software engineering (ICSE), ICSE ’08. ACM, New York, pp 311–320

    Chapter  Google Scholar 

  23. Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier JM, Irwin J (1997) Aspect-oriented programming. ECOOP ’97. Springer, Berlin

    Chapter  Google Scholar 

  24. Krueger C (2002) Variation management for software production lines. In: Software product lines. Springer, Berlin, pp 37–48

    Chapter  Google Scholar 

  25. Krueger CW (2008) The Biglever software gears unified software product line engineering framework. In: Proceedings of the international software product line conference (SPLC), SPLC ’08. IEEE, Piscataway, pp 353–353

    Google Scholar 

  26. Liebig J, Apel S, Lengauer C, Kästner C, Schulze M (2010) An analysis of the variability in forty preprocessor-based software product lines. In: Proceedings of the international conference on software engineering (ICSE). ACM, New York, pp 105–114

    Google Scholar 

  27. Lity S, Lachmann R, Lochau M, Schaefer I (2012) Delta-oriented software product line test models – the body comfort system case study. Tech. Rep. 2012-07, Technische Universität Braunschweig, Braunschweig

    Google Scholar 

  28. Muthig D, Atkinson C (2002) Model-driven product line architectures. In: Software product lines. Springer, Berlin, pp 110–129

    Chapter  Google Scholar 

  29. Pohl K, Böckle G, van der Linden FJ (2005) Software product line engineering: foundations, principles and techniques. Springer, Berlin

    Book  Google Scholar 

  30. Rubin J, Chechik M (2013) A survey of feature location techniques. In: Domain engineering: product lines, languages, and conceptual models. Springer, Berlin, pp 29–58

    Chapter  Google Scholar 

  31. Rumpe B, Weisemöller I (2011) A domain specific transformation language. In: Proceedings of the international workshop on models and evolution (ME), ME ’11

    Google Scholar 

  32. Ryssel U, Ploennigs J, Kabitzsch K (2011) Extraction of feature models from formal contexts. In: Proceedings of the international software product line conference (SPLC), SPLC ’11. ACM, New York, pp 4:1–4:8

    Google Scholar 

  33. Schaefer I, Bettini L, Bono V, Damiani F, Tanzarella N (2010) Delta-oriented programming of software product lines. In: Software product lines: going beyond. Lecture notes in computer science, vol 6287. Springer, Berlin, pp 77–91

    Chapter  Google Scholar 

  34. Schaefer I, Rabiser R, Clarke D, Bettini L, Benavides D, Botterweck G, Pathak A, Trujillo S, Villela K (2012) Software diversity: state of the art and perspectives. Int J Softw Tools Technol Transfer 14(5):477–495

    Article  Google Scholar 

  35. Schmidt DC (2006) Model-driven engineering. Computer 39(2):25

    Article  Google Scholar 

  36. Seidl C, Schaefer I, Aßmann U (2014) DeltaEcore – a model-based delta language generation framework. In: Modellierung, Modellierung’14, pp 81–96

    Google Scholar 

  37. Seidl C, Schaefer I, Aßmann U (2014) Integrated management of variability in space and time in software families. In: Proceedings of the international software product line conference (SPLC), SPLC ’14. ACM, New York

    Google Scholar 

  38. Sendall S, Kozaczynski W (2003) Model transformation the heart and soul of model-driven software development. Tech. rep., Microsoft

    Article  Google Scholar 

  39. She S, Lotufo R, Berger T, Wasowski A, Czarnecki K (2011) Reverse engineering feature models. In: Proceedings of the international conference on software engineering (ICSE), ICSE ’11. IEEE, Piscataway, pp 461–470

    Google Scholar 

  40. Steinberg D, Budinsky F, Paternostro M, Merks E (2008) Eclipse modeling framework, 2nd edn. Addison-Wesley, Boston

    Google Scholar 

  41. Szyperski CA (1998) Component software - beyond object-oriented programming. Addison-Wesley, Boston

    Google Scholar 

  42. Thüm T, Kästner C, Benduhn F, Meinicke J, Saake G, Leich T (2014) FeatureIDE: an extensible framework for feature-oriented software development. Sci Comput Program 79:70–85

    Article  Google Scholar 

  43. van der Linden F, Schmid K, Rommes E (2010) Software product lines in action: the best industrial practice in product line engineering. Springer, Berlin

    Google Scholar 

  44. von Rhein A, Thüm T, Schaefer I, Liebig J, Apel S (2016) Variability encoding: from compile-time to load-time variability. J Log Algebr Methods Program 85(1):125–145

    Article  MathSciNet  Google Scholar 

  45. Weiland J, Manhart P (2014) A classification of modeling variability in Simulink. In: Proceedings of the international workshop on variability modeling in software-intensive systems (VaMoS), VaMoS ’14. ACM, New York, pp 7:1–7:8

    Google Scholar 

  46. Weston N, Chitchyan R, Rashid A (2009) A framework for constructing semantically composable feature models from natural language requirements. In: Proceedings of the international software product line conference (SPLC), SPLC ’09. ACM, New York, pp 211–220

    Google Scholar 

  47. Wille D (2014) Managing lots of models: the FaMine approach. In: Proceedings of the international symposium on the foundations of software engineering (FSE), FSE ’14. ACM, New York, pp 817–819

    Google Scholar 

  48. Wille D, Holthusen S, Schulze S, Schaefer I (2013) Interface variability in family model mining. In: Proceedings of the international workshop on model-driven approaches in software product line engineering (MAPLE), SPLC ’13. ACM, New York, pp 44–51

    Google Scholar 

  49. Wille D, Schulze S, Seidl C, Schaefer I (2016) Custom-tailored variability mining for block-based languages. In: Proceedings of the international conference on software analysis, evolution, and reengineering (SANER), SANER ’16, vol 1. IEEE, Piscataway, pp 271–282

    Google Scholar 

  50. Zhang X, Haugen Ø, Møller-Pedersen B (2011) Model comparison to synthesize a model-driven software product line. In: Proceedings of the international software product line conference (SPLC), SPLC ’11. IEEE, Piscataway, pp 90–99

    Google Scholar 

  51. Zhang X, Haugen Ø, Møller-Pedersen B (2012) Augmenting product lines. In: Proceedings of the Asia-Pacific software engineering conference (APSEC), vol 1. IEEE, Piscataway, pp 766–771

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christoph Seidl .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Seidl, C., Wille, D., Schaefer, I. (2019). Software Reuse: From Cloned Variants to Managed Software Product Lines. In: Dajsuren, Y., van den Brand, M. (eds) Automotive Systems and Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-12157-0_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-12157-0_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-12156-3

  • Online ISBN: 978-3-030-12157-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics