A repair-oriented approach to product consistency in product lines using negative variability

Abstract

Software product line engineering emphasizes the organized reuse of software artifacts in order to create customized products on demand, while maintenance costs are reduced. In the special case of negative variability, products are created by removing irrelevant elements from a multi-variant platform. One of the greatest challenges connected to negative variability is the question of product consistency. In the literature, several approaches are described to ensure consistent products: either, the derivation of inconsistent products is inhibited in advance, which significantly restricts the product line’s customizability, or the developer is directly involved in repairing inconsistent products, which increases maintenance effort. This paper presents the theoretical foundations of an approach to automatically repair product inconsistencies based on two mechanisms, propagation strategies and selection strategies. The presented approach constitutes a compromise between strict enforcement of product consistency and the reduction of maintenance efforts. Given a consistent product description, the derivation of a consistent product is guaranteed; automatically applied repair actions may be reworked by the developer afterwards. As a proof of concept, the theoretical concepts have been implemented in the model-driven product line tool FAMILE.

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

Fig. 1
Fig. 2
Fig. 3

Notes

  1. 1.

    Throughout the remainder of this paper, we use the terms domain model and product as synonyms. Similarly, a domain model element denotes a product element. The multi-variant domain model is equivalent to the multi-variant product, or platform. Conversely, a domain model configuration denotes a product (configuration).

  2. 2.

    The notion of forward and reverse is not consistent with the direction of the implication arrow. This is due to “historical” reasons: Initially, the presented approach was restricted to the propagation of selections within parent-child relationships in tree-like products. Parent-child relationships are inverse to dependency relationships (a child depends on its parent). For the same reason, the implication arrow is reversed in [7].

  3. 3.

    In case several candidates with the same number exist, the first element among the list of elements is chosen.

  4. 4.

    In FAMILE, the term selection states is used to denote the inclusion of a domain model element in the disjoint sets \(E_{supp}\), \(E_{enf}\), etc. (cf. Sect. 3.5).

  5. 5.

    http://www.sparxsystems.eu.

References

  1. 1.

    31st International Conference on Software Engineering, ICSE 2009, May 16–24, Vancouver, Canada. Proceedings, IEEE (2009)

  2. 2.

    Apel S, Janda F, Trujillo S, Kästner C (2009) Model superimposition in software product lines. In Paige RF (ed) Proceedings of the international conference on model transformation (ICMT), volume 5563 of Lecture notes in computer science, pp 4–19. Springer

  3. 3.

    Apel S, Kästner C, Lengauer C (2009) FeatureHouse: language-independent, automated software composition. In: Proceedings of the ACM/IEEE international conference on software engineering (ICSE) [1], pp 221–231

  4. 4.

    Batory DS (2005) Feature models, grammars, and propositional formulas. In: Henk Obbink J, Pohl Klaus (eds) Proceedings of the 9th international software product line conference (SPLC’05), volume 3714 of Lecture notes in computer science, pp 7–20. Springer Verlag, Rennes, France

  5. 5.

    Baumgartl J, Buchmann T, Henrich D, Westfechtel B (2013) Towards easy robot programming: using dsls, code generators and software product lines. In: Cordeiro J, Marca D, van Sinderen M (eds) Proceedings of the 8th international conference on software paradigm trends (ICSOFT 2013), pp 548–554. ScitePress

  6. 6.

    Buchmann T, Baumgartl J, Henrich D, Westfechtel B (2015) Robots and their variability—a societal challenge and a potential solution. In: Pleuss A, Rubin J, Botterweck G, Weiss DM (eds) 2015 IEEE/ACM 5th international workshop on product line approaches in software engineering (PLEASE), pp 27–30

  7. 7.

    Buchmann T, Schwägerl F (2012) Ensuring well-formedness of configured domain models in model-driven product lines based on negative variability. In: Proceedings of the 4th international workshop on feature-oriented software development, FOSD 2012, pp 37–44, New York, NY, USA, 2012, ACM

  8. 8.

    Buchmann T, Schwägerl F (2012) FAMILE: tool support for evolving model-driven product lines. In: Störrle H, Botterweck G, Bourdellès M, Kolovos D, Paige R, Roubtsova E, Rubin J, Tolvanen J-P (eds) Joint Proceedings of co-located events at the 8th European conference on modelling foundations and applications, CEUR WS, pp 59–62, Building 321, DK-2800 Kongens Lyngby, July 2012. Technical University of Denmark (DTU)

  9. 9.

    Buchmann T, Schwägerl F (2015) Developing heterogeneous software product lines with FAMILE—a model-driven approach. Int J Adv Softw 8(1 & 2):232–246

    Google Scholar 

  10. 10.

    Buchmann T, Westfechtel B (2014) Mapping feature models onto domain models: ensuring consistency of configured domain models. Softw Syst Model 13(4):1495–1527

    Article  Google Scholar 

  11. 11.

    Clements P, Northrop L (2001) Software product lines: practices and patterns. Addison-Wesley, Boston

    Google Scholar 

  12. 12.

    Czarnecki K, Antkiewicz M (2005) Mapping features to models: a template approach based on superimposed variants. In: Glück R, Lowry MR (eds) 4th International conference on generative programming and component engineering (GPCE 2005), volume 3676 of Lecture notes in computer science, pp 422–437. Springer Verlag, Tallin, Estonia

  13. 13.

    Czarnecki K, Helsen S, Eisenecker UW (2005) Formalizing cardinality-based feature models and their specialization. Softw Process Improv Pract 10(1):7–29

    Article  Google Scholar 

  14. 14.

    Czarnecki K, Pietroszek K (2006) Verifying feature-based model templates against well-formedness ocl constraints. In: Stan J, Schmidt DC, Veldhuizen TL (eds) Proceedings of ACM SIGSOFT/SIGPLAN international conference on generative programming and component engineering (GPCE’06), pp 211–220. ACM Press, Portland, OR

  15. 15.

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

    Google Scholar 

  16. 16.

    Heidenreich F (2009) Towards systematic ensuring well-formedness of software product lines. In: Proceedings of the 1st workshop on feature-oriented software development, pp 69–74, Denver, CO, USA, ACM

  17. 17.

    Heidenreich F, Kopcsek J, Wende C (2008) FeatureMapper: Mapping features to models. In: Companion Proceedings of the 30th International Conference on Software engineering (ICSE’08), pp 943–944, ACM Press, Leipzig, Germany

  18. 18.

    Heidenreich F, Kopcsek J, Wende C (2008) Featuremapper: mapping features to models. In: Schäfer W, Dwyer MB, Gruhn V (eds) 30th International conference on software engineering (ICSE 2008), Leipzig, Germany, May 10–18, 2008, Companion Volume, pp 943–944, ACM

  19. 19.

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

  20. 20.

    Kang KC, Kim S, Lee J, Kim K, Kim GJ, Shin E (1998) Form: a feature-oriented reuse method with domain-specific reference architectures. Ann Softw Eng 5:143–168

    Article  Google Scholar 

  21. 21.

    Kästner C, Apel S, Trujillo S, Kuhlemann M, Batory DS (2009) Guaranteeing syntactic correctness for all product line variants: a language-independent approach. In: Oriol M, Meyer B (eds) Proceedings of the 47th International conference: objects., components, models and patterns (TOOLS EUROPE 2009), volume 33 of Lecture notes in business information processing, pp 175–194. Springer, Zurich, Switzerland

  22. 22.

    Kernighan BW, Ritchie DM (1988) The C programming language, 2nd edn. Prentice Hall Professional Technical Reference, Upper Saddle River

    Google Scholar 

  23. 23.

    Khanna S, Kunal K, Pierce BC (2007) A formal investigation of diff3. In: Arvind V, Prasad S (eds) FSTTCS 2007: foundations of software technology and theoretical computer science, volume 4855 of Lecture notes in computer science, pp 485–496. Springer Verlag, New Delhi, India

  24. 24.

    Liebig J, Rhein AV, Kästner C, Apel S, Dörre J, Lengauer C (2013) Scalable analysis of variable software. In: Proceedings of the 2013 9th joint meeting on foundations of software engineering, ESEC/FSE 2013, pp 81–91, New York, NY, USA, 2013, ACM

  25. 25.

    Norbisrath U, Jubeh R, Zündorf A (2013) Story driven modeling. CreateSpace Independent Publishing Platform, Washington

    Google Scholar 

  26. 26.

    OMG. Meta object facility (MOF) core. Object Management Group, Needham, MA, (formal/2011-08-07 edn) (2011)

  27. 27.

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

    Google Scholar 

  28. 28.

    Schobbens P-Y, Heymans P, Trigaux J-C (2006) Feature diagrams: a survey and a formal semantics. In: 14th IEEE international conference on requirements engineering (RE 2006), 11–15 September 2006, Minneapolis/St.Paul, Minnesota, USA, pp 136–145

  29. 29.

    Steinberg D, Budinsky F, Paternostro M, Merks E (2009) EMF eclipse modeling framework. The eclipse series, 2nd edn. Addison-Wesley, Boston

    Google Scholar 

  30. 30.

    Thüm T, Apel S, Kästner C, Schaefer I, Saake G (2014) A classification and survey of analysis strategies for software product lines. ACM Comput Surv 47(1):6:1–6:45

    Article  Google Scholar 

  31. 31.

    Völter M, Stahl T, Bettin J, Haase A, Helsen S (2006) Model-driven software development: technology, engineering, management. Wiley, New York

    Google Scholar 

  32. 32.

    Whittle J, Jayaraman P, Elkhodary A, Moreira A, Araújo J (2009) MATA: a unified approach for composing UML aspect models based on graph transformation. In: Katz S, Ossher H, France R, Jézéquel J-M (eds) Transactions on aspect-oriented software development VI, volume 5560 of Lecture notes in computer science, pp 191–237. Springer, Berlin/Heidelberg

  33. 33.

    Xiong Y, Zhang H, Hubaux A, She S, Wang J, Czarnecki K (2015) Range fixes: interactive error resolution for software configuration. IEEE Trans Softw Eng 41(6):603–619

    Article  Google Scholar 

  34. 34.

    Ziadi T, Jézéquel J-M (2006) Software product line engineering with the UML: deriving products. In: Käköla T, Duenas JC (eds) Software product lines. Springer, Berlin, pp 557–588

  35. 35.

    Zschaler S, Sánchez P, Santos J, Alférez M, Rashid A, Fuentes L, Moreira A, Araújo J, Kulesza U (2010) VML*—a family of languages for variability management in software product lines. In: van den Brand M, Gaševic D, Gray J (eds) Software language engineering, volume 5969 of Lecture notes in computer science, pp 82–102. Springer, Berlin/Heidelberg, Denver, CO, USA

Download references

Acknowledgments

The authors want to thank Bernhard Westfechtel for his valuable and much appreciated comments on the draft of this article.

Resources Our tool chain FAMILE can be obtained by using the Eclipse update site provided at: http://btn1x4.inf.uni-bayreuth.de/famile/update/ We recommend a clean Eclipse Modeling installation. Screencasts demonstrating the usage of the tool can be found here: http://btn1x4.inf.uni-bayreuth.de/famile/screen-casts/.

Author information

Affiliations

Authors

Corresponding author

Correspondence to Thomas Buchmann.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Buchmann, T., Schwägerl, F. A repair-oriented approach to product consistency in product lines using negative variability. SICS Softw.-Inensiv. Cyber-Phys. Syst. 34, 17–33 (2019). https://doi.org/10.1007/s00450-016-0329-0

Download citation

Keywords

  • Software product line engineering
  • Negative variability
  • Consistency
  • Product repair