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

  • Thomas BuchmannEmail author
  • Felix Schwägerl
Regular Paper


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.


Software product line engineering Negative variability Consistency Product repair 



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: We recommend a clean Eclipse Modeling installation. Screencasts demonstrating the usage of the tool can be found here:


  1. 1.
    31st International Conference on Software Engineering, ICSE 2009, May 16–24, Vancouver, Canada. Proceedings, IEEE (2009)Google Scholar
  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. SpringerGoogle Scholar
  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–231Google Scholar
  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, FranceGoogle Scholar
  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. ScitePressGoogle Scholar
  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–30Google Scholar
  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, ACMGoogle Scholar
  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)Google Scholar
  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–246Google 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–1527CrossRefGoogle Scholar
  11. 11.
    Clements P, Northrop L (2001) Software product lines: practices and patterns. Addison-Wesley, BostonGoogle 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, EstoniaGoogle Scholar
  13. 13.
    Czarnecki K, Helsen S, Eisenecker UW (2005) Formalizing cardinality-based feature models and their specialization. Softw Process Improv Pract 10(1):7–29CrossRefGoogle 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, ORGoogle Scholar
  15. 15.
    Gomaa H (2004) Designing software product lines with UML: from use cases to pattern-based software architectures. Addison-Wesley, BostonGoogle 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, ACMGoogle Scholar
  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, GermanyGoogle Scholar
  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, ACMGoogle Scholar
  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 InstituteGoogle Scholar
  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–168CrossRefGoogle 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, SwitzerlandGoogle Scholar
  22. 22.
    Kernighan BW, Ritchie DM (1988) The C programming language, 2nd edn. Prentice Hall Professional Technical Reference, Upper Saddle RiverzbMATHGoogle 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, IndiaGoogle Scholar
  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, ACMGoogle Scholar
  25. 25.
    Norbisrath U, Jubeh R, Zündorf A (2013) Story driven modeling. CreateSpace Independent Publishing Platform, WashingtonGoogle Scholar
  26. 26.
    OMG. Meta object facility (MOF) core. Object Management Group, Needham, MA, (formal/2011-08-07 edn) (2011)Google Scholar
  27. 27.
    Pohl K, Böckle G, van der Linden F (2005) Software product line engineering: foundations. Principles and techniques. Springer, BerlinCrossRefzbMATHGoogle 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–145Google Scholar
  29. 29.
    Steinberg D, Budinsky F, Paternostro M, Merks E (2009) EMF eclipse modeling framework. The eclipse series, 2nd edn. Addison-Wesley, BostonGoogle 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:45CrossRefGoogle Scholar
  31. 31.
    Völter M, Stahl T, Bettin J, Haase A, Helsen S (2006) Model-driven software development: technology, engineering, management. Wiley, New YorkGoogle 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/HeidelbergGoogle Scholar
  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–619CrossRefGoogle 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–588Google Scholar
  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, USAGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  1. 1.Applied Computer Science IUniversity of BayreuthBayreuthGermany

Personalised recommendations