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.
Similar content being viewed by others
Notes
References
Derler, P., Lee, E.A., Vincentelli, A.S.: Modeling cyber-physical systems. Proc. IEEE Spec. Issue CPS 100(1), 13–28 (2012)
Cyber-Physical Systems (CPSs). Available from: http://cyberphysicalsystems.org/
Rawat, D.B., Rodrigues, J.J., Stojmenovic, I.: Cyber-Physical Systems: From Theory to Practice. CRC Press, Boca Raton (2015)
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)
Zhang, M., et al.: Uncertainty-wise cyber-physical system test modeling. Softw. Syst. Model. 1–40 (2017)
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)
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)
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)
Lu, H., et al.: Model-based Incremental Conformance Checking to Enable Interactive Product Configuration. Inf. Softw. Technol. (IST) 72, 68–89 (2015)
Lu, H., et al.: Nonconformity resolving recommendations for product line configuration. In: International Conference on Software Testing, p. 57–68. IEEE (2016)
ISO: Software and systems engineering—Reference model for product line engineering and management. ISO (2013)
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)
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)
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)
OCL: Object Constraint Language Specification, Version 2.2. Object Management Group (OMG) (2011)
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)
ULMA Handling Systems.: (2002) Available from: http://www.ulmahandling.com
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)
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)
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)
Zhang, M., et al.: Understanding uncertainty in cyber-physical systems: a conceptual model. In: European Conference on Modelling Foundations and Applications. Springer (2016)
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)
Beuche, D., Weiland, J.: Managing flexibility: modeling binding-times in simulink. In: European Conference on Model Driven Architecture-Foundations and Applications. Springer (2009)
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)
OMG: Systems Modeling Language (SysML) v1.4, http://sysml.org/ (2015)
The UML MARTE profile, http://www.omgmarte.org/
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)
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)
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)
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)
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)
Behjati, R., et al.: SimPL: a product-line modeling methodology for families of integrated control systems. Inf. Softw. Technol. (2013)
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)
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)
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)
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)
Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration using feature models. In: Software Product Lines, pp. 266–283. Springer (2004)
Haugen, O.: Common Variability Language (CVL). OMG Revised Submission (2012)
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)
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)
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)
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)
Mendonça, M., et al.: Collaborative product configuration. J. Softw. 3(2), 69 (2008)
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)
Ali, S., et al.: Insights on the use of OCL in diverse industrial applications. In: International Conference on System Analysis and Modeling. Springer (2014)
Myllärniemi, V., et al.: Kumbang configurator–a configuration tool for software product families. In: 19th International Joint Conference on Artificial Intelligence. Citeseer (2005)
Czarnecki, K., et al.: fmp and fmp2rsm: eclipse plug-ins for modeling features using model templates. In: OOPSLA ‘05 Companion. ACM (2005)
La Rosa, M., et al.: Questionnaire-based variability modeling for system configuration. Softw. Syst. Model. 8(2), 251–274 (2009)
Rabiser, R., et al.: DOPLER, decision oriented product line engineering for effective reuse. Available from: http://ase.jku.at/dopler/
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)
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)
Pure-Systems. Pure::Variants available at: http://www.pure-systems.com/ (2017)
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)
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)
Antkiewicz, M. Czarnecki, K.: FeaturePlugin: feature modeling plug-in for Eclipse. In: Proceedings of OOPSLA, workshop on eclipse technology eXchange. ACM (2004)
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)
Thüm, T., et al.: FeatureIDE: an extensible framework for feature-oriented software development. Sci. Comput. Program. 79, 70–85 (2014)
Nöhrer, A., Egyed, A.: C2O configurator: a tool for guided decision-making. Autom. Softw. Eng. 20(2), 265–296 (2013)
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)
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)
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)
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)
Sinnema, M., Deelstra, S., Hoekstra, P.: The COVAMOF derivation process. Reuse of Off-the-Shelf Components, pp. 101–114 (2006)
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)
Nie, K., Yue, T., Ali, S.: Towards a search-based interactive configuration of cyber physical system product lines. In: Demos/Posters/StudentResearch@ MoDELS (2013)
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)
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)
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)
Hwan, C., Kim, P., Czarnecki, K.: Synchronizing cardinality-based feature models and their specializations. In: Model Driven Architecture–Foundations and Applications. Springer (2005)
Dhungana, D., Grünbacher, P., Rabiser, R.: DecisionKing: a flexible and extensible tool for integrated variability modeling. VaMoS 2007, 01 (2007)
Czarnecki, K., Kim, C.H.P.: Cardinality-based feature modeling and constraints: a progress report. In: International Workshop on Software Factories (2005)
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)
Rabiser, R., Grünbacher, P., Holl, G.: Improving awareness during product derivation in multi-user multi product line environments (2010)
De Mendonça, M.F.: Collaborative feature-based product configuration in software product lines (2007)
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)
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)
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)
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)
Sinnema, M., Deelstra, S.: Classifying variability modeling techniques. Inf. Softw. Technol. 49(7), 717–739 (2007)
Eichelberger, H., Schmid, K.: A systematic analysis of textual variability modeling languages. In: Proceedings of the 17th International Software Product Line Conference. ACM (2013)
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)
Clauß, M., Jena, I.: Modeling variability with UML. In: GCSE 2001 Young Researchers Workshop. Citeseer (2001)
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)
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)
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)
Haugen, Ø., Øgård, O.: BVR–better variability results. In: System Analysis and Modeling: Models and Reusability, pp. 1–15. Springer (2014)
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)
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)
Clauß, M.: Generic modeling using UML extensions for variability. In: Workshop on Domain Specific Visual Languages at OOPSLA (2001)
Van Deursen, A., Klint, P.: Domain-specific language design requires feature descriptions. CIT J Comput Inf Technol 10(1), 1–17 (2002)
Batory, D.: Feature models, grammars, and propositional formulas. In: SPLC. Springer (2005)
Abele, A., et al.: The CVM framework-a prototype tool for compositional variability management. VaMoS 10, 101–105 (2010)
Acher, M., et al.: Familiar: a domain-specific language for large scale management of feature models. Sci. Comput. Program. 78(6), 657–681 (2013)
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)
BVR Eclipse Based Tool. Available from: https://github.com/SINTEF-9012/bvr
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)
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)
Classen, A., Hubaux, A., Heymans, P.: A formal semantics for multi-level staged configuration. VaMoS 9, 51–60 (2009)
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)
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)
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)
Abbasi, E.K., Hubaux, A., Heymans, P.: A toolset for feature-based configuration workflows. In: 2011 15th International Software Product Line Conference. IEEE (2011)
Schroeter, J., et al.: Dynamic configuration management of cloud-based applications. In: Proceedings of the 16th International Software Product Line Conference-Volume 2 (2012)
Hubaux, A., et al.: Supporting multiple perspectives in feature-based configuration. Softw. Syst. Model. 12(3), 641–663 (2013)
White, J., et al.: Evolving feature model configurations in software product lines. J. Syst. Softw. 87, 119–136 (2014)
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)
Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing cardinality-based feature models and their specialization. Softw. Process Improv. Pract. 10(1), 7–29 (2005)
Janota, M., Kiniry, J.: Reasoning about feature models in higher-order logic. In: Software Product Line Conference, 2007. SPLC 2007. 11th International. IEEE (2007)
Hubaux, A.: Feature-Based Configuration: Collaborative, Dependable, and Controlled. University of Namur, Belgium (2012)
Cisco C-Series Video Conferencing Systems. https://www.cisco.com/c/en/us/products/collaboration-endpoints/telepresence-integrator-c-series/index.html (2012)
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
Corresponding author
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.
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.
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} \).
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 \).
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.
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 \).
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} \).
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.
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).
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 \).
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 \).
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).
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 \).
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.
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.
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.
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.
Rights and permissions
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-020-00803-8