Skip to main content

A constraint-based variability modeling framework


Constraint-based variability modeling is a flexible, declarative approach to managing solution-space variability. Product variants are defined in a top-down manner by successively restricting the admissible combinations of product artifacts until a specific product variant is determined. In this paper, we illustrate the range of constraint-based variability modeling by discussing two of its extreme flavors: constraint-guarded variability modeling and constraint-driven variability modeling. The former applies model checking to establish the global consistency of product variants which are built by manual specification of variations points, whereas the latter uses synthesis technology to fully automatically generate product variants that satisfy all given constraints. Each flavor is illustrated by means of a concrete case study.

This is a preview of subscription content, access via your institution.


  1. Pohl K., Böckle G., van der Linden F.: Software Product Line Engineering—Foundations, Principles, and Techniques. Springer, Berlin (2005)

    MATH  Google Scholar 

  2. Czarnecki K., Eisenecker U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  3. Völter, M., Groher, I (2007) Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242

  4. Clarke E.M., Grumberg O., Peled D.A.: Model Checking. The MIT Press, Cambridge (1999)

    Google Scholar 

  5. Müller-Olm, M., Schmidt, D., Steffen, B.: Model-checking: a tutorial introduction. In: Static Analysis, p. 848 (1999)

  6. Bakera M., Margaria T., Renner C., Steffen B.: Tool-supported enhancement of diagnosis in model-driven verification. Innov. Syst. Softw. Eng. 5, 211–228 (2009). doi:10.1007/s11334-009-0091-6

    Article  Google Scholar 

  7. Jörges S., Margaria T., Steffen B.: Assuring property conformance of code generators via model checking. Form. Asp. Comput. 23, 589–606 (2011)

    Article  Google Scholar 

  8. Steffen B., Margaria T., Braun V., Kalt N.: Hierarchical service definition. Ann. Rev. Commun. ACM 51, 847–856 (1997)

    Google Scholar 

  9. Steffen, B., Margaria, T., Claßen, A., Braun, V., Nisius, R., Reitenspieß, M.: A Constraint-oriented service creation environment. In: TACAS, pp. 418–421 (1996)

  10. Steffen B., Margaria T., Claßen A., Braun V.: Incremental formalization: a key to industrial success. Softw. Concepts Tools 17(2), 78–95 (1996)

    Google Scholar 

  11. Steffen, B.: Method for incremental synthesis of a discrete technical system, WO 98/24022 (1998)

  12. Braun, V., Margaria, T., Steffen, B., Yoo, H., Rychly, T.: Safe service customization. In: Intelligent Network Workshop 1997. IN ’97., IEEE. Volume, Vol. 2 (1997)

  13. Ziadi, T., Hélouët, L., Jézéquel, J.M.: Towards a UML profile for software product lines. In: Workshop on Product Familiy Engineering (PFE), pp. 129–139 (2003)

  14. Gomaa H.: Designing Software Product Lines with UML. Addison Wesley, Reading (2004)

    Google Scholar 

  15. van Ommering R.C.: Software reuse in product populations. IEEE Trans. Softw. Eng. 31(7), 537–550 (2005)

    Article  Google Scholar 

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

    Article  Google Scholar 

  17. Haugen, Ø., Møller-Pedersen, B., Oldevik, J., Olsen, G., Svendsen, A.: Adding Standardized Variability to Domain Specific Languages. In: SPLC (2008)

  18. Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: GPCE, Springer, Berlin (2010)

  19. Schaefer, I., Dave Clarke, R.R., Bettini, L., Benavides, D., Botterweck, G., Pathak, A., Trujilol, S., Villela, K.: Software Diversity State of the Art and Perspectives. STTT, Springer, Berlin (2012)

  20. Steffen, B., Margaria, T., Freitag, B.: Module Configuration by Minimal Model Construction. Technical report Fakultät für Mathematik und Informatik, Universitat Passau (1993)

  21. Steffen B., Margaria T., Braun V.: The electronic tool integration platform: concepts and design. Int. J. Softw. Tools Technol. Transf. STTT 1(1–2), 9–30 (1997)

    MATH  Article  Google Scholar 

  22. Pesic, M., Schonenberg, M.H., Sidorova, N., Van Der Aalst, W.M.P.: Constraint-based workflow models: change made easy. In: Proceedings of the 2007 OTM confederated international conference on the move to meaningful internet systems: CoopIS, DOA, ODBASE, GADA, and IS, Volume Part I. OTM’07, Springer-Verlag, Berlin, Heidelberg, pp. 77–94 (2007)

  23. Schaefer, I., Lamprecht, A.L., Margaria, T.: Constraint-oriented Variability Modeling. In: Rash, J., Rouff, C. (eds.) 34th Annual IEEE Software Engineering Workshop (SEW-34), IEEE CS Press, pp. 77–83 (2011)

  24. Salinesi, C., Djebbi, O., Mazo, R., Diaz, D., Lora-Michiels, A.: Constraints: The core of product line engineering. In: RCIS, IEEE, pp. 1–10 (2011)

  25. Mazo R., Salinesi C., Diaz D., Djebbi O., Lora-Michiels A.: Constraints: The heart of domain and application engineering in the product lines engineering strategy. Int. J. Inf. Syst. Model. Des. 3(2), 33–68 (2012)

    Article  Google Scholar 

  26. Margaria T., Steffen B.: Agile IT thinking in user-centric models. In: Margaria, T., Agile, I.T. (eds) Leveraging Applications of Formal Methods, Verification and Validation, Volume 17 of Communications in Computer and Information Science, pp. 490–. Springer, Berlin (2009)

    Chapter  Google Scholar 

  27. Margaria T., Steffen B.: Business process modelling in the jABC: the one-thing-approach. In: Cardoso, J., van der Aalst, W. (eds) Handbook of Research on Business Process Modeling, IGI Global, USA (2009)

    Google Scholar 

  28. Steffen, B.: Unifying models. In: Reischuk, R., Morvan, M. (eds.) STACS 97. Lecture Notes in Computer Science, Vol. 1200. Springer, Berlin, pp. 1–20 (1997)

  29. Steffen, B., Rüthing, O.: Quality engineering leveraging heterogeneous information (Invited Talk). In: Jhala, R., Schmidt, D. (eds.) Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, Vol. 6538. Springer, Berlin, pp. 23–37 (2011)

  30. Margaria T., Steffen B.: Service-orientation: conquering complexity with XMDD. In: Hinchey, M., Coyle, L. (eds) Conquering Complexity, pp. 217–236. Springer, London (2012)

    Chapter  Google Scholar 

  31. Milner R.: Communication and concurrency. Prentice-Hall, Inc., Upper Saddle River (1989)

    MATH  Google Scholar 

  32. Steffen B., Ingólfsdóttir A.: Characteristic Formulae for Processes with Divergence. Information and Computation. 110(1), 149–163 (1994)

    MathSciNet  MATH  Article  Google Scholar 

  33. Steffen B., Ingólfsdóttir A.: Characteristic formulae for processes with divergence. Inf. Comput. 110(1), 149–163 (1994)

    MATH  Article  Google Scholar 

  34. Steffen, B., Margaria, T., Nagel, R., Jörges, S., Kubczak, C.: Model-Driven Development with the jABC. In: Binm, E., Zivm, A., Ur, S. (eds.) Hardware and Software, Verification and Testing. Lecture Notes in Computer Science, Vol. 4383. Springer, Berlin, pp. 92–108 (2007)

  35. Lamprecht, A.L., Naujokat, S., Margaria, T., Steffen, B.: Synthesis-based loose programming. In: Proceedings of the 7th Internatio al Conference on the Quality of Information and Communications Technology (QUATIC) (2010)

  36. Naujokat, S., Lamprecht, A.L., Steffen, B., Jörges, S., Margaria T.: Simplicity principles for plug-in development: the jABC approach. In: Second International Workshop on Developing Tools as Plug-Ins (TOPI 2012) (2012)

  37. Margaria T., Kubczak C., Steffen B.: Bio-jETI: a service integration, design, and provisioning platform for orchestrated bioinformatics processes. BMC Bioinf. 9(Suppl 4), S12 (2008)

    Article  Google Scholar 

  38. Lamprecht A.L., Margaria T., Steffen B.: Bio-jETI: a framework for semantics-based service composition. BMC Bioinf. 10(Suppl 10), S8 (2009)

    Article  Google Scholar 

  39. Margaria, T., Nagel, R., Steffen, B.: jETI: a tool for remote tool integration. In: Tools and Algorithms for the Construction and Analysis of Systems. LNCS, Vol. 3440/2005. Springer, Berlin, pp. 557–562 (2005)

  40. Jörges, S., Genesys, A.: Model-Driven and Service-Oriented Approach to the Construction and Evolution of Code Generators. PhD thesis, Technische Universität Dortmund (2011)

  41. Jörges S., Margaria T., Steffen B.: Genesys: service-oriented construction of property conform code generators. ISSE 4(4), 361–384 (2008)

    Google Scholar 

  42. Jörges, S., Kubczak, C., Pageau, F., Margaria, T.: Model driven design of reliable robot control programs using the jABC. In: Proceedings of 4th IEEE International Workshop on Engineering of Autonomic and Autonomous Systems (EASe 2007), pp. 137–148 (2007)

  43. Java Community Process JSR 315: Java Servlet 3.0 Specification (2011)

  44. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Proceedings of the 11th European Conference on Object-Oriented Programming, ECOOP, Springer, pp. 220–242 (1997)

  45. Bézivin, J., Jouault, F., Rosenthal, P., Valduriez, P.: Modeling in the large and modeling in the small. In: Model Driven Architecture, European MDA Workshops: Foundations and Applications, MDAFA 2003 and MDAFA 2004. Springer, pp. 33–46 (2004)

  46. Apache Foundation Apache Velocity (2010).

  47. Bakera, M., Margaria, T., Renner, C.D., Steffen, B.: Property-driven functional healing: playing against undesired behavior In: Business Process Engineering, Proceedings of the CONQUEST 2007, dpunkt, pp. 363–372 (2007)

  48. Bakera, M., Margaria, T., Renner, C., Steffen, B.: Verification, diagnosis and adaptation: tool-supported enhancement of the model-driven verification process. In: Revue des Nouvelles Technologies de l’Information (RNTI-SM-1), pp. 85–98 (2007)

  49. Czarnecki, K.: Overview of generative software development. In: International Workshop on Unconventional Programming Paradigms, Springer, pp. 326–341 (2004)

  50. Pettifer, S., Ison, J., Kalas, M., Thorne, D., McDermott, P., Jonassen, I., Liaquat, A., Fernandez, J.M., Rodriguez, J.M., Partners, I., Pisano, D.G., Blanchet, C., Uludag, M., Rice, P., Bartaseviciute, E., Rapacki, K., Hekkelman, M., Sand, O., Stockinger, H., Clegg, A.B., Bongcam-Rudloff, E., Salzemann, J., Breton, V., Attwood, T.K., Cameron, G., Vriend, G.: The EMBRACE web service collection. Nucl. Acids Res., 38, p. gkq297 (2010)

  51. van de Aalst, W.M.P, Pesic, M.: DecSerFlow Towards a Truly Declarative Service Flow Language. In: Web Services and Formal Methods. Third International Workshop. Lecture Notes in Computer Science, Vol. 4184, Springer, Berlin, pp. 1–23 (2006)

  52. Pesic, M., Schonenberg, H., van der Aalst, W.M.P.: DECLARE: full support for loosely-structured processes. In: Proceedings of the 11th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2007), pp. 287–300 (2007)

  53. Montali, M., Pesic, M., van der Aalst, W.M.P., Chesani, F., Mello, P., Storari, S.: Declarative specification and verification of service choreographiess. TWEB 4(1) (2010)

  54. Larkin M., Blackshields G., Brown N., Chenna R., McGettigan P., McWilliam H., Valentin F., Wallace I., Wilm A., Lopez R., Thompson J., Gibson T., Higgins D.: Clustal W and Clustal X version 2.0. Bioinformatics 23(21), 2947–2948 (2007)

    Article  Google Scholar 

  55. Salinesi, C., Mazo, R., Diaz, D., Djebbi, O.: Using integer constraint solving in reuse based requirements engineering. In: IEEE International Conference on 0 Requirements Engineering, pp. 243–251 (2010)

  56. Czarnecki K., Eisenecker U.W.: Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley Publishing Co., New York (2000)

    Google Scholar 

  57. Barth, B., Butler, G., Czarnecki, K., Eisenecker, U.: In: Generative Programming. Lecture Notes in Computer Science, Vol. 2323. Springer, Berlin, pp. 61–88 (2002)

  58. Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: Annual Symposium on Principles of Programming Languages (1989)

  59. Margaria, T., Steffen, B.: LTL guided planning: revisiting automatic tool composition in ETI. In: Proceedings of the 31st IEEE Software Engineering Workshop, IEEE Computer Society, pp. 214–226 (2007)

  60. Metzger, A., Pohl, K., Heymans, P., Schobbens, P.Y., Saval, G.: Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis. In: IEEE International Conference on 0 Requirements Engineering, pp. 243–253 (2007)

  61. Deelstra S., Sinnema M., Bosch J.: Variability assessment in software product families. Inf. Softw. Technol. 51(1), 195–218 (2009)

    Article  Google Scholar 

  62. Than Tun, T., Boucher, Q., Classen, A., Hubaux, A., Heymans, P.: Relating requirements and feature configurations: a systematic approach. In: Proceedings of the 13th International Software Product Line Conference. SPLC ’09, Pittsburgh, PA, USA, Carnegie Mellon University, pp. 201–210 (2009)

  63. Naujokat S.: Automatische Generierung von Prozessen im jABC. Diplomarbeit, TU Dortmund (2009)

    Google Scholar 

  64. Lamprecht, A.L., Margaria, T., Steffen, B.: Seven variations of an alignment workflow—an illustration of agile process design and management in Bio-jETI. In: Bioinformatics Research and Applications. LNBI, Vol. 4983. Springer, Atlanta, Georgia, pp. 445–456 (2008)

  65. Kwon Y., Shigemoto Y., Kuwana Y., Sugawara H.: Web API for biology with a workflow navigation system. Nucl. Acids Res. 37(suppl_2), W11–16 (2009)

    Article  Google Scholar 

  66. Kang K., Lee J., Donohoe P.: Feature-Oriented Project Line Engineering. IEEE Software. 19(4), (2002)

  67. Kastner, C., Thum, T., Saake, G., Feigenspan, J., Leich, T., Wielgorz, F., Apel, S.: Feature IDE: a tool framework for feature -oriented software development. In: Proceedings of the 31st International Conference on Software Engineering. ICSE ’09, Washington, DC, USA, IEEE Computer Society, pp. 611–614 (2009)

  68. Jonsson, B., Margaria, T., Naeser, G., Nyström, J., Steffen, B.: Incremental requirement specification for evolving systems. In: Calder, M., Magill, E.H. (eds.) Feature Interactions in Telecommunications and Software Systems VI (FIW 2000), IOS Press, pp. 145–162 (2000)

  69. Jonsson B., Margaria T., Naeser G., Nyström J., Steffen B.: Incremental requirement specification for evolving systems. Nordic J. Comput. 8, 65–87 (2001)

    MATH  Google Scholar 

  70. Lamprecht, A.L., Margaria, T., Schaefer, I., Steffen, B.: Synthesis-based variability control: correctness by construction. In: FMCO 2011 post-proceedings. LNCS, Springer (2012, submitted)

  71. Gottschalk F., van der Aalst W.M.P., Jansen-Vullers M.H., La Rosa M.: Configurable Workflow Models. Int. J. Coop. Inf. Syst. 17(02), 177+ (2008)

    Article  Google Scholar 

  72. 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 32nd ACM/IEEE International Conference on Software Engineering, Vol. 1. ICSE ’10, New York, NY, USA, ACM, pp. 335–344 (2010)

  73. Asirelli, P., Beek, M.H.T., Fantechi, A., Gnesi, S.: A logical framework to deal with variability. In: Proceedings of the 8th international conference on Integrated formal methods. IFM’10, Berlin, Heidelberg, Springer-Verlag, pp. 43–58 (2010)

  74. Asirelli, P., ter Beek, M., Gnesi, S., Fantechi, A.: Formal Description of Variability in Product Families. In: Software Product Line Conference (SPLC), 2011 15th International, pp. 130–139 (2011)

  75. Lamprecht, A.L., Naujokat, S., Steffen, B., Margaria, T.: Constraint-guided workflow composition based on the EDAM ontology. In: Burger, A., Marshall, M.S., Romano, P., Paschke, A., Splendiani, A. (eds.) Proceedings of the Workshop on Semantic Web Applications and Tools for Life Sciences, Berlin, Germany, December 10, 2010, Vol. 698. CEUR Workshop Proceedings (2010)

  76. Lamprecht A.L., Naujokat S., Margaria T., Steffen B.: Semantics-based composition of EMBOSS services. J. Biomed. Semant. 2(Suppl 1), S5 (2011)

    Article  Google Scholar 

  77. Rice P., Longden I., Bleasby A.: EMBOSS the European molecular biology open software suite. Trends Genet. TIG 16(6), 7–276 (2000)

    Google Scholar 

  78. Gentleman R.C., Carey V.J., Bates D.M., Bolstad B., Dettling M., Dudoi S., Ellis B., Gautier L., Ge Y., Gentry J., Hornik K., Hothorn T., Huber W., Iacus S., Irizarry R., Leisch F., Li C., Maechler M., Rossini A.J., Sawitzki G., Smith C., Smyth G., Tierney L., Yang J.Y., Zhang J.: Bioconductor: open software development for computational biology and bioinformatics. Genome Biol. 5(10), R80 (2004)

    Article  Google Scholar 

  79. DDBJ:Web API for Biology. Workflows composed of the Web APIs

  80. Lamprecht A.L., Margaria T., Steffen B., Sczyrba A., Hartmeier S., Giegerich R., GeneFisher P.: variations of GeneFisher as processes in Bio-jETI. BMC Bioinformatics. 9(Suppl 4), S13 (2008)

    Article  Google Scholar 

  81. Ebert, B.E.: A systems approach to understand and engineer whole-cell redox biocatalysts. Dissertation, Fakultät Bio- und Chemieingenieurwesen, Technische Universität Dortmund (2011)

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Ina Schaefer.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Jörges, S., Lamprecht, AL., Margaria, T. et al. A constraint-based variability modeling framework. Int J Softw Tools Technol Transfer 14, 511–530 (2012).

Download citation

  • Published:

  • Issue Date:

  • DOI:


  • Variability
  • Software product lines
  • Constraint-based variability modeling