Skip to main content
Log in

A framework for automated multi-stage and multi-step product configuration of cyber-physical systems

  • Regular Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

Product line engineering (PLE) has been employed to large-scale cyber-physical systems (CPSs) to provide customization based on users’ needs. A PLE methodology can be characterized by its support for capturing and managing the abstractions as commonalities and variabilities and the automation of the configuration process for effective selection and customization of reusable artifacts. The automation of a configuration process heavily relies on the captured abstractions and formally specified constraints using a well-defined modeling methodology. Based on the results of our previous work and a thorough literature review, in this paper, we propose a conceptual framework to support multi-stage and multi-step automated product configuration of CPSs, including a comprehensive classification of constraints and a list of automated functionalities of a CPS configuration solution. Such a framework can serve as a guide for researchers and practitioners to evaluate an existing CPS PLE solution or devise a novel CPS PLE solution. To validate the framework, we conducted three real-world case studies. Results show that the framework fulfills all the requirements of the case studies in terms of capturing and managing variabilities and constraints. Results of the literature review indicate that the framework covers all the functionalities concerned by the literature, suggesting that the framework is complete for enabling the maximum automation of configuration in CPS PLE.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Notes

  1. www.ulmahandling.com.

  2. www.cordis.europa.eu/project/id/645463.

  3. www.cisco.com.

  4. https://www.cisco.com/c/en/us/products/collaboration-endpoints/product-listing.html.

  5. https://software.cisco.com/download/release.html?mdfid=286271155&flowid=71282&softwareid=280886992&release=CE-console-v8.1.0&relind=AVAILABLE&rellifecycle=&reltype=latest.

References

  1. Derler, P., Lee, E.A., Vincentelli, A.S.: Modeling cyber-physical systems. Proc. IEEE Spec. Issue CPS 100(1), 13–28 (2012)

    Google Scholar 

  2. Cyber-Physical Systems (CPSs). Available from: http://cyberphysicalsystems.org/

  3. Rawat, D.B., Rodrigues, J.J., Stojmenovic, I.: Cyber-Physical Systems: From Theory to Practice. CRC Press, Boca Raton (2015)

    Book  Google Scholar 

  4. Ma, T., Ali, S., Yue, T.: Modeling foundations for executable model-based testing of self-healing cyber-physical systems. Softw. Syst. Model. 18(5), 2843–2873 (2019)

    Article  Google Scholar 

  5. Zhang, M., et al.: Uncertainty-wise cyber-physical system test modeling. Softw. Syst. Model. 1–40 (2017)

  6. Nie, K., et al.: Constraints: the core of supporting automated product configuration of cyber-physical systems. In: Proceeding of International Conference on Model-Driven Engineering Languages and Systems (MODELS). Springer (2013)

  7. Iglesias, A., et al.: Product line engineering of monitoring functionality in industrial cyber-physical systems: a domain analysis. In: Proceedings of the 21st International Systems and Software Product Line Conference-Volume A. ACM (2017)

  8. Arrieta, A., et al.: Search-Based test case prioritization for simulation-Based testing of cyber-Physical system product lines. J. Syst. Softw. 149, 1–34 (2019)

    Article  Google Scholar 

  9. Lu, H., et al.: Model-based Incremental Conformance Checking to Enable Interactive Product Configuration. Inf. Softw. Technol. (IST) 72, 68–89 (2015)

    Article  Google Scholar 

  10. Lu, H., et al.: Nonconformity resolving recommendations for product line configuration. In: International Conference on Software Testing, p. 57–68. IEEE (2016)

  11. ISO: Software and systems engineering—Reference model for product line engineering and management. ISO (2013)

  12. Yue, T., Ali, S., Selic. B.: Cyber-physical system product line engineering: comprehensive domain analysis and experience report. In: Proceeding of International Systems and Software Product Line Conference (SPLC). ACM (2015)

  13. Yue, T., Ali, S., Selic, B.: Cyber-physical system product line engineering: comprehensive domain analysis and experience report. In: Proceedings of the 19th International Conference on Software Product Line. ACM (2015)

  14. Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration through specialization and multilevel configuration of feature models. Softw. Process: Improv. Pract. 10(2), 143–169 (2005)

    Article  Google Scholar 

  15. OCL: Object Constraint Language Specification, Version 2.2. Object Management Group (OMG) (2011)

  16. Safdar, S.A., et al.: Evaluating variability modeling techniques for supporting cyber-physical system product line engineering. In: Proceeding of International Conference on System Analysis and Modeling (SAM). Springer (2016)

  17. ULMA Handling Systems.: (2002) Available from: http://www.ulmahandling.com

  18. Ali, S., et al.: Empowering testing activities with modeling-achievements and insights from nine years of collaboration with cisco. In: Proceeding of International Conference on Model-Driven Engineering and Software Development (MODELSWARD). Springer (2017)

  19. Behjati, R., Nejati, S., Briand, L.C.: Architecture-level configuration of large-scale embedded software systems. ACM Trans. Softw. Eng. Methodol. (TOSEM) 23(3), 25 (2014)

    Article  Google Scholar 

  20. Safdar, S.A., et al.: Mining cross product line rules with multi-objective search and machine learning. In: Proceeding of the genetic and evolutionary computation conference (GECCO). Berlin, Germany: ACM (2017)

  21. Zhang, M., et al.: Understanding uncertainty in cyber-physical systems: a conceptual model. In: European Conference on Modelling Foundations and Applications. Springer (2016)

  22. Chakravarthy, V., Regehr, J., Eide, E.: Edicts: implementing features with flexible binding times. In: Proceedings of the 7th international conference on Aspect-oriented software development. ACM (2008)

  23. Beuche, D., Weiland, J.: Managing flexibility: modeling binding-times in simulink. In: European Conference on Model Driven Architecture-Foundations and Applications. Springer (2009)

  24. Hotz, L., et al.: Evaluation across multiple views for variable automation systems. In: Proceedings of the 19th International Conference on Software Product Line. ACM (2015)

  25. OMG: Systems Modeling Language (SysML) v1.4, http://sysml.org/ (2015)

  26. The UML MARTE profile, http://www.omgmarte.org/

  27. Selic, B., Gérard, S.: Modeling and Analysis of Real-Time and Embedded Systems with UML and MARTE: Developing Cyber-Physical Systems. Elsevier, Amsterdam (2013)

    Google Scholar 

  28. Bagheri, E., et al.: Configuring software product line feature models based on stakeholders’ soft and hard requirements. In: Proceeding of International Systems and Software Product Line Conference (SPLC). Springer (2010)

  29. Nadi, S., et al.: Where do configuration constraints stem from? an extraction approach and an empirical study. IEEE Trans. Softw. Eng. (TSE) 41(8), 820–841 (2015)

    Article  Google Scholar 

  30. Czarnecki, K., She, S., Wasowski, A.: Sample spaces and feature models: there and back again. In: Proceeding of International Systems and Software Product Line Conference (SPLC). IEEE (2008)

  31. Bécan, G., et al.: Synthesis of attributed feature models from product descriptions. In: Proceeding of International Systems and Software Product Line Conference (SPLC). ACM (2015)

  32. Behjati, R., et al.: SimPL: a product-line modeling methodology for families of integrated control systems. Inf. Softw. Technol. (2013)

  33. Jaring, M., Bosch, B.: A taxonomy and hierarchy of variability dependencies in software product family engineering. In Proceedings of the 28th Annual International on Computer Software and Applications Conference, 2004. COMPSAC 2004. IEEE (2004)

  34. Safdar, S.A., et al.: Using multi-objective search and machine learning to infer rules constraining product configurations. Autom. Softw. Eng. 27(1), 1–62 (2019)

    Google Scholar 

  35. Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering, pp. 211–220. ACM: Portland, Oregon, USA (2006)

  36. Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (FODA) feasibility study (CMU/SEI-90-TR-021). In: Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A. (eds.) Secondary Feature-Oriented Domain Analysis (FODA) Feasibility Study (CMU/SEI-90-TR-021), Secondary RN (1990)

  37. Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration using feature models. In: Software Product Lines, pp. 266–283. Springer (2004)

  38. Haugen, O.: Common Variability Language (CVL). OMG Revised Submission (2012)

  39. Lu, H., et al.: Zen-CC: an automated and incremental conformance checking solution to support interactive product configuration. In: 25th International Symposium on Software Reliability Engineering, pp. 13–22. IEEE (2014)

  40. Vierhauser, M., et al.: Flexible and scalable consistency checking on product line variability models. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, pp. 63–72. ACM: Antwerp, Belgium (2010)

  41. Gomaa, H., Shin, M.E.: A multiple-view meta-modeling approach for variability management in software product lines. In: International Conference on Software Reuse. Springer (2004)

  42. El-Sharkawy, S., Schmid, K.: Supporting the effective configuration of software product lines. In: Proceedings of the 16th International Software Product Line Conference. ACM (2012)

  43. Mendonça, M., et al.: Collaborative product configuration. J. Softw. 3(2), 69 (2008)

    Article  Google Scholar 

  44. Mendonça, M., Bartolomei, T.T., Cowan, D.: Decision-making coordination in collaborative product configuration. In: Proceedings of the 2008 ACM Symposium on APPLIED Computing. ACM (2008)

  45. Ali, S., et al.: Insights on the use of OCL in diverse industrial applications. In: International Conference on System Analysis and Modeling. Springer (2014)

  46. Myllärniemi, V., et al.: Kumbang configurator–a configuration tool for software product families. In: 19th International Joint Conference on Artificial Intelligence. Citeseer (2005)

  47. Czarnecki, K., et al.: fmp and fmp2rsm: eclipse plug-ins for modeling features using model templates. In: OOPSLA ‘05 Companion. ACM (2005)

  48. La Rosa, M., et al.: Questionnaire-based variability modeling for system configuration. Softw. Syst. Model. 8(2), 251–274 (2009)

    Article  Google Scholar 

  49. Rabiser, R., et al.: DOPLER, decision oriented product line engineering for effective reuse. Available from: http://ase.jku.at/dopler/

  50. Lettner, D., et al.: Supporting end users with business calculations in product configuration. In: Proceedings of the 16th International Software Product Line Conference-Volume 1. ACM (2012)

  51. Zhou, C., Lin, Z., Liu, C.: Customer-driven product configuration optimization for assemble-to-order manufacturing enterprises. Int. J. Adv. Manuf. Technol. 38(1), 185–194 (2008)

    Article  Google Scholar 

  52. Pure-Systems. Pure::Variants available at: http://www.pure-systems.com/ (2017)

  53. Sinnema, M., et al.: Covamof: a framework for modeling variability in software product families. In: Nord, R.L. (ed.) Software Product Lines, pp. 197–213. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  54. Mendonca, M., Branco, M., Cowan, D.: SPLOT: software product lines online tools. In: Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications. ACM (2009)

  55. Antkiewicz, M. Czarnecki, K.: FeaturePlugin: feature modeling plug-in for Eclipse. In: Proceedings of OOPSLA, workshop on eclipse technology eXchange. ACM (2004)

  56. Hong, L., Tao, Y., Shaukat, A.: Zen-configurator: interactive and optimal configuration of cyber physical system product lines. https://www.simula.no/research/projects/zen-configurator-interactive-and-optimal-configuration-cyber-physical-system (2017)

  57. Thüm, T., et al.: FeatureIDE: an extensible framework for feature-oriented software development. Sci. Comput. Program. 79, 70–85 (2014)

    Article  Google Scholar 

  58. Nöhrer, A., Egyed, A.: C2O configurator: a tool for guided decision-making. Autom. Softw. Eng. 20(2), 265–296 (2013)

    Article  Google Scholar 

  59. Krueger, C.W.: Biglever software gears and the 3-tiered spl methodology. In: Companion to the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion. ACM (2007)

  60. Heider, W., Rabiser, R., Grünbacher, P.: Facilitating the evolution of products in product line engineering by capturing and replaying configuration decisions. Int. J. Softw. Tools Technol. Transf. (STTT) 14(5), 613–630 (2012)

    Article  Google Scholar 

  61. Mazo, R., et al.: Using constraint programming to verify DOPLER variability models. In: Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems. ACM (2011)

  62. Dhungana, D., Grünbacher, P., Rabiser, R.: The DOPLER meta-tool for decision-oriented variability modeling: a multiple case study. Autom. Softw. Eng. 18(1), 77–114 (2011)

    Article  Google Scholar 

  63. Sinnema, M., Deelstra, S., Hoekstra, P.: The COVAMOF derivation process. Reuse of Off-the-Shelf Components, pp. 101–114 (2006)

  64. Myllärniemi, V.: Kumbang Configurator—a tool for configuring software product families. Master’s thesis, Helsinki University of Technology, Department of Computer Science and Engineering (2005)

  65. Nie, K., Yue, T., Ali, S.: Towards a search-based interactive configuration of cyber physical system product lines. In: Demos/Posters/StudentResearch@ MoDELS (2013)

  66. Yue, T., et al.: Search-based decision ordering to facilitate product line engineering of cyber-physical system. In: 2016 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD). IEEE (2016)

  67. Rabiser, R., Grunbacher, P., Lehofer, M.: A qualitative study on user guidance capabilities in product configuration tools. In: 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE (2012)

  68. Heidenreich, F.: Towards systematic ensuring well-formedness of software product lines. In: Proceedings of the First International Workshop on Feature-Oriented Software Development. ACM (2009)

  69. Hwan, C., Kim, P., Czarnecki, K.: Synchronizing cardinality-based feature models and their specializations. In: Model Driven Architecture–Foundations and Applications. Springer (2005)

  70. Dhungana, D., Grünbacher, P., Rabiser, R.: DecisionKing: a flexible and extensible tool for integrated variability modeling. VaMoS 2007, 01 (2007)

    Google Scholar 

  71. Czarnecki, K., Kim, C.H.P.: Cardinality-based feature modeling and constraints: a progress report. In: International Workshop on Software Factories (2005)

  72. Alférez, M., et al.: Supporting consistency checking between features and software product line use scenarios. In: Schmid, K. (ed.) Top Productivity through Software Reuse, pp. 20–35. Springer, Berlin (2011)

    Chapter  Google Scholar 

  73. Rabiser, R., Grünbacher, P., Holl, G.: Improving awareness during product derivation in multi-user multi product line environments (2010)

  74. De Mendonça, M.F.: Collaborative feature-based product configuration in software product lines (2007)

  75. Heider, W., et al.: Using regression testing to analyze the impact of changes to variability models on products. In: Proceedings of the 16th International Software Product Line Conference-Volume 1. ACM (2012)

  76. Chen, L., Ali Babar, M., Ali, N.: Variability management in software product lines: a systematic review. In: 13th International Software Product Line Conference, pp. 81–90 (2009)

  77. Arrieta, A., Sagardui, G., Etxeberria, L.: A comparative on variability modelling and management approach in simulink for embedded systems. V Jornadas de Computación Empotrada, ser. JCE (2014)

  78. Djebbi, O., Salinesi, C.: Criteria for comparing requirements variability modeling notations for product lines. In: 4th International Workshop on Comparative Evaluation in Requirements Engineering. IEEE (2006)

  79. Sinnema, M., Deelstra, S.: Classifying variability modeling techniques. Inf. Softw. Technol. 49(7), 717–739 (2007)

    Article  Google Scholar 

  80. Eichelberger, H., Schmid, K.: A systematic analysis of textual variability modeling languages. In: Proceedings of the 17th International Software Product Line Conference. ACM (2013)

  81. Hartmann, H., Trew, T.: Using feature diagrams with context variability to model multiple product lines for software supply chains. In: Proceeding of International Systems and Software Product Line Conference (SPLC). IEEE (2008)

  82. Clauß, M., Jena, I.: Modeling variability with UML. In: GCSE 2001 Young Researchers Workshop. Citeseer (2001)

  83. Ziadi, T., Hélouët, L., Jézéquel, J.-M.: Towards a UML profile for software product lines. In: Software Product-Family Engineering, pp. 129–139, Springer (2004)

  84. Dhungana, D., Grünbacher, P., Rabiser, R.: Domain-specific adaptations of product line variability modeling. In: Situational Method Engineering: Fundamentals and Experiences, pp. 238–251, Springer (2007)

  85. Sinnema, M., et al.: Covamof: a framework for modeling variability in software product families. In: International Systems and Software Product Line Conference (SPLC). Springer (2004)

  86. Haugen, Ø., Øgård, O.: BVR–better variability results. In: System Analysis and Modeling: Models and Reusability, pp. 1–15. Springer (2014)

  87. Berger, T., et al.: A survey of variability modeling in industrial practice. In: Proceedings of 7th International Workshop on Variability Modelling of Software intensive Systems. ACM (2013)

  88. Safdar, S.A., Iqbal, M.Z., Khan, M.U.: Empirical evaluation of UML modeling tools–a controlled experiment. In: European Conference on Modeling Foundations and Applications, pp. 33–44. Springer: Italy (2015)

  89. Clauß, M.: Generic modeling using UML extensions for variability. In: Workshop on Domain Specific Visual Languages at OOPSLA (2001)

  90. Van Deursen, A., Klint, P.: Domain-specific language design requires feature descriptions. CIT J Comput Inf Technol 10(1), 1–17 (2002)

    Article  Google Scholar 

  91. Batory, D.: Feature models, grammars, and propositional formulas. In: SPLC. Springer (2005)

  92. Abele, A., et al.: The CVM framework-a prototype tool for compositional variability management. VaMoS 10, 101–105 (2010)

    Google Scholar 

  93. Acher, M., et al.: Familiar: a domain-specific language for large scale management of feature models. Sci. Comput. Program. 78(6), 657–681 (2013)

    Article  Google Scholar 

  94. Boucher, Q., et al.: Introducing TVL, a text-based feature modelling language. In: Proceedings of the Fourth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’10), Linz, Austria, January (2010)

  95. BVR Eclipse Based Tool. Available from: https://github.com/SINTEF-9012/bvr

  96. Bühne, S., Lauenroth, K., Pohl, K.: Why is it not sufficient to model requirements variability with feature models. In: Proceedings of Workshop: Automotive Requirements Engineering (AURE04), Los Alamitos. Citeseer (2004)

  97. Kunming, N., Shaukat Ali, T.Y.: Towards a search based interactive configuration of cyber physical system product lines. In: Demos/Posters/StudentResearch@ACM/IEEE 16th International Conference on Model Driven Engineering Languages and Systems, pp. 71–75 (2013)

  98. Classen, A., Hubaux, A., Heymans, P.: A formal semantics for multi-level staged configuration. VaMoS 9, 51–60 (2009)

    Google Scholar 

  99. Chavarriaga, J., et al.: Supporting multi-level configuration with feature-solution graphs formal semantics and alloy implementation. In: Chavarriaga, J., et al. (Ed.) Secondary Supporting Multi-level Configuration with Feature-Solution Graphs Formal Semantics and Alloy Implementation, Secondary. RN (2013)

  100. Chavarriaga, J., et al.: Propagating decisions to detect and explain conflicts in a multi-step configuration process. In: International Conference on Model Driven Engineering Languages and Systems. Springer (2014)

  101. Urli, S., Blay-Fornarino, M., Collet, P.: Handling complex configurations in software product lines: a tooled approach. In: Proceedings of the 18th International Software Product Line Conference-Volume 1 (2014)

  102. Abbasi, E.K., Hubaux, A., Heymans, P.: A toolset for feature-based configuration workflows. In: 2011 15th International Software Product Line Conference. IEEE (2011)

  103. Schroeter, J., et al.: Dynamic configuration management of cloud-based applications. In: Proceedings of the 16th International Software Product Line Conference-Volume 2 (2012)

  104. Hubaux, A., et al.: Supporting multiple perspectives in feature-based configuration. Softw. Syst. Model. 12(3), 641–663 (2013)

    Article  Google Scholar 

  105. White, J., et al.: Evolving feature model configurations in software product lines. J. Syst. Softw. 87, 119–136 (2014)

    Article  Google Scholar 

  106. White, J., et al.: Automated reasoning for multi-step feature model configuration problems. In: Proceedings of the 13th International Software Product Line Conference. Carnegie Mellon University (2009)

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

    Article  Google Scholar 

  108. Janota, M., Kiniry, J.: Reasoning about feature models in higher-order logic. In: Software Product Line Conference, 2007. SPLC 2007. 11th International. IEEE (2007)

  109. Hubaux, A.: Feature-Based Configuration: Collaborative, Dependable, and Controlled. University of Namur, Belgium (2012)

    Google Scholar 

  110. Cisco C-Series Video Conferencing Systems. https://www.cisco.com/c/en/us/products/collaboration-endpoints/telepresence-integrator-c-series/index.html (2012)

Download references

Acknowledgements

Safdar Aqeel Safdar and Hong Lu are supported by the Zen-Configurator project funded by the Research Council of Norway (Grant No. 240024/F20) under the category of Young Research Talents of the FRIPO funding scheme. Tao Yue and Shaukat Ali are supported by the Co-evolver project (No. 286898/F20) funded by the Research Council of Norway under the FRIPRO program.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Safdar Aqeel Safdar.

Additional information

Communicated by Yves Le Traon.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix A: concepts definitions and examples

See Tables 15, 16, 17, 18, and 19 define and exemplify various concepts presented in the conceptual models of PLE, CPS, configuration process, CPS product lines, and CPS-specific VP types, respectively.

Table 15 Concept definitions of the PLE conceptual model
Table 16 Concept definitions of the CPS conceptual model
Table 17 Concept definitions of the configuration process conceptual model
Table 18 Concept definitions for the conceptual model for modeling CPS product lines
Table 19 Definitions of CPS-specific VP types

Appendix B: OCL constraints

Tables 20, 21, 22, 23, 24, and 25 present the OCL constraints used to formalize the conceptual models of PLE, configuration process, CPS product lines, basic data types, constraints classification, and configuration tool’s functionalities, respectively.

Table 20 OCL constraints for conceptual model of PLE (Fig. 2)
Table 21 OCL constraints for conceptual model of configuration process (Fig. 5)
Table 22 OCL constraints for conceptual model for modeling CPS product lines (Fig. 7)
Table 23 OCL constraints for conceptual model of basic data types (Fig. 8) [16]
Table 24 OCL constraints for constraints classification (Fig. 10)
Table 25 OCL constraints for functionalities (Fig. 11)

Appendix C: formal definitions of constraints

In this section, we present the formal definitions of eight types of Constraint presented in Sect. 4.3. To formalize each type of the Constraint in “Appendix C” and functionalities of an automated ConfigurationSolution in “Appendix D”, we define some basic notations corresponding to the concepts (classes, attributes, and roles) presented in Figs. 2, 5, and 7, as follows:

First, we clarify the notations that we used to access the different concepts presented in the conceptual models (Figs. 2, 5,  7) and then we define the notations used to formalize Constraint types (and functionalities of ConfigurationSolution). Let \( C_{1} \) and \( C_{2} \) be two classes in the conceptual model, where \( C_{1} \) has a relationship (i.e., bidirectional association, unidirectional association, composition, and aggregation) with \( C_{2} \) with role name \( r \). Class \( C_{1} \) and \( C_{2} \) have attribute \( a_{1} \) and \( a_{2} \), respectively. Then, to access \( a_{1} \), \( r \), and \( a_{2} \) from class \( C_{1} \), we use notations \( \left( {C_{1} .a_{1} } \right) \), (\( C_{1} .r \)), and \( \left( {C_{1} .r.a_{2} } \right) \), respectively. Notation \( A\text{ := }B \) represents an assignment operation where \( B \) is assigned to \( A \). Similarly, \( A = B \) represents equality operation (i.e., \( A \) is equal to \( B \)) and \( A \to B \) shows implies relationship where \( A \) implies \( B \).

Let \( PL \) be a ProductLine containing \( nvp \) VariationPoints, \( VP = \{ vp_{1} ,vp_{2} ,..,vp_{nvp} \} \). For each \( vp_{i} \), \( VA_{i} \) = \( \{ v_{i1} ,v_{i2} ,..,v_{inv} \) } is a set of possible Variants and \( cp_{ij} \) is a ConfigurableParameter (i.e., an instance of VariationPoint \( vp_{i} \)). \( CP_{iC} = \{ cp_{i1} ,cp_{i2} ,..,cp_{inc} \} \) is a set of configured ConfigurableParameters for \( vp_{i} \) such that \( \forall cp_{ij} \in CP_{iC} , (cp_{ij} .status = Configured \wedge (cp_{ij} .selectedVariant = v_{is} ) \wedge (v_{is} \in VA_{i} ) \wedge \left( {cp_{ij} .cd.status = Valid} \right)) \), where \( cp_{ij} .cd \) represent the ConfigurationData corresponding to \( cp_{ij} \) and \( v_{is} \) is the Variant assigned/selected to configure \( cp_{ij} \). \( CP_{iUC} = \{ cp_{nic + 1} ,cp_{nic + 2} ,..,cp_{inuc} \} \) is a set of un-configured ConfigurableParameters for \( vp_{i} \) such that \( \forall cp_{ik} \in CP_{iUC} ,( cp_{ik} .status = Unconfigured) \). If \( vp_{i} \) is not instantiated yet, then \( \left| {CP_{iC} } \right| = \left| {CP_{iUC} } \right| = \emptyset \). Let \( Instance(vp_{i} ) \) be a function that instantiates \( vp_{i} \) and returns a ConfigurableParameter \( cp_{ij} \).

Let \( P \) be a partially configured MemberProduct of \( PL \) and \( RM \) is the ResolutionModel corresponding to MemberProduct \( P \) containing \( ncp \) ConfigurableParameters such that \( RM = \{ CP_{C} \cup CP_{UC} \) }, where \( CP_{C} = \{ CP_{1C} \cup CP_{2C} \cup \ldots \cup CP_{nvpC} \} \) and \( CP_{UC} = \{ CP_{1UC} \cup CP_{2UC} \cup \ldots \cup CP_{nvpUC} \} \). Corresponding to \( CP_{C} \), \( CD \) is a set of ConfigurationData such that \( |CP_{C} | = \left| {CD} \right| \). \( F_{i} \) is a ConfigurationFile representing a partial or complete ResolutionModel \( RM \) corresponding to a MemberProduct \( P \), which contains \( in \) ConfigurableParameters \( CP_{i} = \{ cp_{1} ,cp_{2} ,..,cp_{in} \} \) and the corresponding ConfigurationData \( CD_{i} = \{ cp_{1} .cd,cp_{2} .cd,..,cp_{in} .cd\} \). Let \( C = \{ c_{1} ,c_{2} ,..,c_{nc} \} \) be a set of Constraints in the context of PLE, where each Constraint \( c_{i} \) is defined over one or more VariationPoints (or MetaModelElemenets in case of WellFormednessConstraint). Let \( VAR(c_{i} ) \) be a function that gives a set of elements (e.g., VariationPoints, MetaModelElemenets) constrained by \( c_{i} \) and \( VAL(c_{i} ) \) be a function that gives a set of possible values (e.g., a subset of Variants corresponding to a VariationPoint(s), configuration order for certain VariationPoints) that satisfy the constraint \( c_{i} \).

figure m
figure n
figure o
figure p
figure q
figure r
figure s
figure t

Appendix D: formal definitions of functionalities

In this section, we present the formal definitions of 14 functionalities of the ConfigurationSolution presented in Sect. 5.1. To formally define each functionality, we use the following template.

  • Inputs: The inputs of the function.

  • Outputs: The outputs of the function.

  • Definition: A concise and precise definition of the functionality using mathematical notations based on set theory.

4.1 DecisionInference

Inputs: Sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), ConfigurationData \( CD \), and DecisionInferenceConstraints \( C_{DI} \).

Outputs: Updated sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), and ConfigurationData \( CD \).

figure u

4.2 DecisionOrdering

Inputs: Sets of un-configured ConfigurableParameters \( CP_{UC} \) and DecisionOrderingConstraints \( C_{DO} \).

Outputs: A sequence of un-configured ConfigurableParameters \( CP_{UC} \) in which they should be configured.

figure v

4.3 RevertingDecision

Inputs: A ConfigurableParameter \( cp_{ik} \) to be reverted and sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), ConfigurationData \( CD \), and DecisionInferenceConstraints \( C_{DI} \).

Outputs: Updated sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), and ConfigurationData \( CD \).

figure w

4.4 WellFormednessChecking

Inputs: A set of ModelElements \( ME \) (e.g., ConfigurableParameters) corresponding to a ResolutionModel and a set of WellFormednessConstraints \( C_{WF} \).

Outputs: A set of ill-formed ModelElements \( ME_{IF} \).

figure x

4.5 ConformanceChecking

Inputs: A set of configured ConfigurableParameters \( CP_{C} \) and a set of ConformanceConstraints \( C_{CF} \).

Outputs: A set of ConfigurableParameters \( CP_{V} \) violating one or more ConformanceConstraints.

figure y

4.6 ConsistencyChecking

Inputs: A set of configured ConfigurableParameters \( CP_{C} \) and a set of ConsistencyConstraints \( C_{CS} \).

Outputs: A set \( C_{IC} \) containing sets of inconsistent ConfigurableParameters (i.e., violating one or more ConsistencyConstraints).

figure z

4.7 ResolvingViolation

Inputs: A set of Violations \( VL = \left\{ {vl_{1} ,vl_{2} ,..,vl_{ni} } \right\} \) identified where \( \forall vl_{j} \in VL, vl_{j} .violationType \in \left\{ {WellFormednessConstraint,ConformanceConstraint, ConsistencyConstraint} \right\} \) and sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), and ConfigurationData \( CD \).

Outputs: A set of unresolved Violations \( VL \) and updated sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), and ConfigurationData \( CD \).

figure aa

4.8 CollaborativeConfiguration

Inputs: A set of VariationPoints VP and sets of eight types of constraints (i.e., \( C_{DO} ,C_{WF} ,C_{C} ,C_{VD} ,C_{DI} ,C_{OP} ,C_{CF} ,C_{CS} \)).

Outputs: A valid configured MemberProduct \( P \) containing a set of ConfigurableParameters \( CP \) and ConfigurationData \( CD \).

figure ab

4.9 ImpactAnalysis

Inputs: A sourceChange \( ch_{s} \) for which Impact \( I \) needs to be assessed and sets of configured ConfigurableParameters \( CP_{C} \), un-configured ConfigurableParameters \( CP_{UC} \), VariationPoints \( VP \), and VariabilityDependencyConstraints \( C_{VD} \).

Outputs: Impact \( I \) with a set of target Changes \( CH \) (i.e., Impact).

figure ac

4.10 ConflictDetection

Inputs: A set of hard constraints \( C \) of any type defined in Sect. 4.3 except OptimizationConstraints corresponding to a ProductLine for which conflicting constraints are to be detected.

Outputs: A set of pairs of conflicting constraints \( S \).

figure ad

4.11 ConstraintSelection

Inputs: A set of VariationPoints \( VP \), a set of ConfigurableParameters \( CP \), and a set of constraints \( C = \{ c_{1} ,c_{2} ,..,c_{nc} \) } of a particular type (e.g., DecisionInferenceConstraints) corresponding to which a subset of constraints needs to be selected.

Outputs: A subset of selected constraints.

figure ae

4.12 ConfigurationOptimization

Inputs: A set of ConfigurableParameters \( CP_{C} \) and a set of OptimizationConstraints \( C_{OP} \).

Outputs: Updated set of ConfigurableParameters \( CP_{C} \) with optimal Variants assigned.

figure af

4.13 RedundancyDetection

Inputs: Two ConfigurationFiles \( F_{1} \) and \( F_{2} \) (or only one) representing a ResolutionModel corresponding to a MemberProduct \( P \) containing a set of \( n \) ConfigurableParameters \( CP = \left( {CP_{1} \cup CP_{2} } \right) \), where \( CP_{1} = \{ cp_{1} ,cp_{2} ,..,cp_{m} \) } and \( CP_{2} = \{ cp_{m + 1} ,cp_{m + 2} ,..,cp_{n} \) } are ConfigurableParameters corresponding to \( F_{1} \) and \( F_{2} \), respectively. \( CD_{1} = \{ cp_{1} .cd,cp_{2} .cd,..,cp_{m} .cd \) } and \( CD_{2} = \{ cp_{m + 1} .cd,cp_{m + 2} .cd,..,cp_{n} .cd \) } are two sets of ConfigurationData corresponding to \( F_{1} \) and \( F_{2} \), respectively.

Outputs: A set of duplicate ConfigurationData.

figure ag

Note that if a ResolutionModel is represented in more than two ConfigurationFiles, then RedundancyDetection can be applied multiple times on each pair of ConfigurationFiles.

4.14 IncompletenessDetection

Inputs: A ConfigurationFile \( F \) representing a ResolutionModel corresponding to a MemberProduct \( P \) containing a set of \( n \) ConfigurableParameters \( CP = \{ cp_{1} ,cp_{2} ,..,cp_{n} \) } and ConfigurationData \( CD = \{ cp_{1} .cd,cp_{2} .cd,..,cp_{n} .cd \) } representing the ConfigurationDecisions made to configure \( n \) ConfigurableParameters.

Outputs: A set of un-configured ConfigurableParameters.

figure ah

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Safdar, S.A., Lu, H., Yue, T. et al. A framework for automated multi-stage and multi-step product configuration of cyber-physical systems. Softw Syst Model 20, 211–265 (2021). https://doi.org/10.1007/s10270-020-00803-8

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-020-00803-8

Keywords

Navigation