Abstract
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.
Similar content being viewed by others
References
Pohl K., Böckle G., van der Linden F.: Software Product Line Engineering—Foundations, Principles, and Techniques. Springer, Berlin (2005)
Czarnecki K., Eisenecker U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Völter, M., Groher, I (2007) Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242
Clarke E.M., Grumberg O., Peled D.A.: Model Checking. The MIT Press, Cambridge (1999)
Müller-Olm, M., Schmidt, D., Steffen, B.: Model-checking: a tutorial introduction. In: Static Analysis, p. 848 (1999)
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
Jörges S., Margaria T., Steffen B.: Assuring property conformance of code generators via model checking. Form. Asp. Comput. 23, 589–606 (2011)
Steffen B., Margaria T., Braun V., Kalt N.: Hierarchical service definition. Ann. Rev. Commun. ACM 51, 847–856 (1997)
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)
Steffen B., Margaria T., Claßen A., Braun V.: Incremental formalization: a key to industrial success. Softw. Concepts Tools 17(2), 78–95 (1996)
Steffen, B.: Method for incremental synthesis of a discrete technical system, WO 98/24022 (1998)
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)
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)
Gomaa H.: Designing Software Product Lines with UML. Addison Wesley, Reading (2004)
van Ommering R.C.: Software reuse in product populations. IEEE Trans. Softw. Eng. 31(7), 537–550 (2005)
Batory D., Sarvela J., Rauschmayer A.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. 30(6), 355–371 (2004)
Haugen, Ø., Møller-Pedersen, B., Oldevik, J., Olsen, G., Svendsen, A.: Adding Standardized Variability to Domain Specific Languages. In: SPLC (2008)
Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: GPCE, Springer, Berlin (2010)
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)
Steffen, B., Margaria, T., Freitag, B.: Module Configuration by Minimal Model Construction. Technical report Fakultät für Mathematik und Informatik, Universitat Passau (1993)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Margaria T., Steffen B.: Service-orientation: conquering complexity with XMDD. In: Hinchey, M., Coyle, L. (eds) Conquering Complexity, pp. 217–236. Springer, London (2012)
Milner R.: Communication and concurrency. Prentice-Hall, Inc., Upper Saddle River (1989)
Steffen B., Ingólfsdóttir A.: Characteristic Formulae for Processes with Divergence. Information and Computation. 110(1), 149–163 (1994)
Steffen B., Ingólfsdóttir A.: Characteristic formulae for processes with divergence. Inf. Comput. 110(1), 149–163 (1994)
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)
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)
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)
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)
Lamprecht A.L., Margaria T., Steffen B.: Bio-jETI: a framework for semantics-based service composition. BMC Bioinf. 10(Suppl 10), S8 (2009)
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)
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)
Jörges S., Margaria T., Steffen B.: Genesys: service-oriented construction of property conform code generators. ISSE 4(4), 361–384 (2008)
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)
Java Community Process JSR 315: Java Servlet 3.0 Specification (2011)
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)
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)
Apache Foundation Apache Velocity (2010). http://www.apache.org
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)
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)
Czarnecki, K.: Overview of generative software development. In: International Workshop on Unconventional Programming Paradigms, Springer, pp. 326–341 (2004)
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)
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)
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)
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)
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)
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)
Czarnecki K., Eisenecker U.W.: Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley Publishing Co., New York (2000)
Barth, B., Butler, G., Czarnecki, K., Eisenecker, U.: In: Generative Programming. Lecture Notes in Computer Science, Vol. 2323. Springer, Berlin, pp. 61–88 (2002)
Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: Annual Symposium on Principles of Programming Languages (1989)
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)
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)
Deelstra S., Sinnema M., Bosch J.: Variability assessment in software product families. Inf. Softw. Technol. 51(1), 195–218 (2009)
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)
Naujokat S.: Automatische Generierung von Prozessen im jABC. Diplomarbeit, TU Dortmund (2009)
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)
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)
Kang K., Lee J., Donohoe P.: Feature-Oriented Project Line Engineering. IEEE Software. 19(4), (2002)
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)
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)
Jonsson B., Margaria T., Naeser G., Nyström J., Steffen B.: Incremental requirement specification for evolving systems. Nordic J. Comput. 8, 65–87 (2001)
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)
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)
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)
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)
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)
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)
Lamprecht A.L., Naujokat S., Margaria T., Steffen B.: Semantics-based composition of EMBOSS services. J. Biomed. Semant. 2(Suppl 1), S5 (2011)
Rice P., Longden I., Bleasby A.: EMBOSS the European molecular biology open software suite. Trends Genet. TIG 16(6), 7–276 (2000)
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)
DDBJ:Web API for Biology. http://xml.nig.ac.jp/workflow/ Workflows composed of the Web APIs
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)
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)
Author information
Authors and Affiliations
Corresponding author
Rights 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). https://doi.org/10.1007/s10009-012-0254-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-012-0254-x