Product Model Derivation from Feature Model and Formal Specification
Abstract
:1. Introduction
- A product model derivation method is proposed, which enables the computer-aided construction of formal product models from a feature model and feature specification;
- A supporting tool is provided to guide through the process of product model construction and ease the burden of product derivation;
- A functional-scenario-based behavior-preserving mechanism is given to guarantee the completeness of the resultant product model.
2. Related Work
3. Product Derivation Based on Feature Model and Specification Approach
3.1. Feature Model
3.2. SOFL
3.3. Product Model Derivation Approach
3.3.1. Integration Ordering
3.3.2. Behavior Preserving Integration
Algorithm 1 Integration Ordering |
Input: feature module , configuration c Output: pair sequence |
Algorithm 2 Feature Scenario Paths Generation |
Input: module Output: /* the set of functional scenario paths */ |
3.3.3. Validity Check
4. Supporting Tool and Case Study
4.1. Supporting Tool
- Obtaining the feature integration order;
- Structuring and matching feature scenario paths;
- Integrating the formal specification of features.
4.2. Case Study
- The OSS product family has 14 features, the user selects 9 features, and these features contain 12 processes, of which the declaration integration used the rules 4, 5, and 6 in Table 1, and 5 paths are effectively matched. The final product’s formal specification was as expected.
- The BVMS product family has 11 features, and the user selects 7 features, including 7 processes. Since the function is relatively simple, there is no declaration integration involved, and there are two valid paths matching obtain. The effect of the formalized specification of the product is not obvious.
- The HRR product family has 9 features, and the user selects 6 features, of which the rules 4 and 6 about Composite and Set collections in Table 1 are used in declaration integration, and 4 paths are effectively matched. The final product’s formal specification is as expected.
- The TMS product family has 11 features. The user selects 5 of them, the declaration integration applies rules 4 and 6, and 4 paths are effectively matched. The final product’s formal specification is as expected.
5. Discussion
5.1. The Advantage of our Method
5.2. The Limitations of our Method
6. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Losavio, F.; Ordaz, O. Quality-based heuristic for optimal product derivation in Software Product Lines. In Proceedings of the 2015 Internet Technologies and Applications (ITA), Wrexham, UK, 8–11 September 2015; pp. 125–131. [Google Scholar]
- Li, Z.; Ding, L. Research on Fuzzy Hierarchy Optimization of Product Family for Mass Customization. In Proceedings of the 2019 International Conference on Economic Management and Model Engineering (ICEMME), Malacca, Malaysia, 6–8 December 2019; pp. 564–568. [Google Scholar]
- Holl, G.; Grünbacher, P.; Elsner, C.; Klambauer, T.; Vierhauser, M. Constraint checking in distributed product configuration of multi product lines. In Proceedings of the 2013 20th Asia-Pacific Software Engineering Conference (APSEC), Bangkok, Thailand, 2–5 December 2013; Volume 1, pp. 347–354. [Google Scholar]
- Michelon, G.K.; Obermann, D.; Assunção, W.K.; Linsbauer, L.; Grünbacher, P.; Fischer, S.; Lopez-Herrejon, R.E.; Egyed, A. Evolving software system families in space and time with feature revisions. Empir. Softw. Eng. 2022, 27, 112. [Google Scholar] [CrossRef]
- Cu, C.; Zheng, Y. Architecture-centric derivation of products in a software product line. In Proceedings of the 2016 IEEE/ACM 8th International Workshop on Modeling in Software Engineering (MiSE), Austin, TX, USA, 16–17 May 2016; pp. 27–33. [Google Scholar]
- Angerer, F.; Grimmer, A.; Prähofer, H.; Grünbacher, P. Change impact analysis for maintenance and evolution of variable software systems. Autom. Softw. Eng. 2019, 26, 417–461. [Google Scholar] [CrossRef] [Green Version]
- Moreira, R.A.F.; Assunção, W.K.; Martinez, J.; Figueiredo, E. Open-source software product line extraction processes: The ArgoUML-SPL and Phaser cases. Empir. Softw. Eng. 2022, 27, 85. [Google Scholar] [CrossRef]
- Ananieva, S.; Greiner, S.; Kühn, T.; Krüger, J.; Linsbauer, L.; Grüner, S.; Kehrer, T.; Klare, H.; Koziolek, A.; Lönn, H.; et al. A conceptual model for unifying variability in space and time. In Proceedings of the 24th ACM Conference on Systems and Software Product Line, Montreal, QC, Canada, 19–23 October 2020; pp. 1–12. [Google Scholar]
- Kästner, C.; Giarrusso, P.G.; Rendel, T.; Erdweg, S.; Ostermann, K.; Berger, T. Variability-aware parsing in the presence of lexical macros and conditional compilation. In Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, Portland, OR, USA, 22–27 October 2011; pp. 805–824. [Google Scholar]
- Eichelberger, H.; Schmid, K. A systematic analysis of textual variability modeling languages. In Proceedings of the 17th International Software Product Line Conference, Tokyo, Japan, 26–30 August 2013; pp. 12–21. [Google Scholar]
- Ghabach, E.; Blay-Fornarino, M.; El Khoury, F.; Baz, B. Clone-and-own software product derivation based on developer preferences and cost estimation. In Proceedings of the 2018 12th International Conference on Research Challenges in Information Science (RCIS), Nantes, France, 29–31 May 2018; pp. 1–6. [Google Scholar]
- González-Huerta, J.; Insfran, E.; Abrahão, S.; McGregor, J.D. Architecture derivation in product line development through model transformations. In Proceedings of the Information System Development, Auckland, New Zealand, 14–17 December 2014; pp. 371–384. [Google Scholar]
- Tawhid, R.; Petriu, D.C. Product model derivation by model transformation in software product lines. In Proceedings of the 2011 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops, Newport Beach, CA, USA, 28–31 March 2011; pp. 72–79. [Google Scholar]
- Wang, X. Combining Product Line Approach and Formal Specification for Product Family Modeling. In Proceedings of the 2019 IEEE 5th International Conference on Computer and Communications (ICCC), Chengdu, China, 6–10 December 2019; pp. 515–519. [Google Scholar]
- Wang, X.; Khedri, R.; Miao, W. A Formal Engineering Approach to Product Family Modeling. In Proceedings of the 2021 International Symposium on Theoretical Aspects of Software Engineering (TASE), Shanghai, China, 25–27 August 2021; pp. 87–94. [Google Scholar]
- Liu, S.; Miao, W. A formal specification animation method for operation validation. J. Syst. Softw. 2021, 178, 110948. [Google Scholar] [CrossRef]
- Liu, S. A three-step hybrid specification approach to error prevention. J. Syst. Softw. 2021, 178, 110975. [Google Scholar] [CrossRef]
- Liu, S.; Nakajima, S. Automatic test case and test oracle generation based on functional scenarios in formal specifications for conformance testing. IEEE Trans. Softw. Eng. 2020, 48, 691–712. [Google Scholar] [CrossRef]
- Wang, R.; Liu, S.; Sato, Y. SIT-SE: A Specification-Based Incremental Testing Method With Symbolic Execution. IEEE Trans. Reliab. 2021, 70, 1053–1070. [Google Scholar] [CrossRef]
- Li, J.; Liu, S.; Liu, A.; Huang, R. Multilevel Traceability Links Establishments Between SOFL Formal Specifications and Java Codes Using Multi-dimensional Similarity Measures. In Proceedings of the 2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS), Hainan, China, 6–10 December 2021; pp. 852–863. [Google Scholar]
- Dai, Y.; Liu, S. Applying Cognitive Complexity to Checklist-Based Human-Machine Pair Inspection. In Proceedings of the 2021 IEEE 21st International Conference on Software Quality, Reliability and Security Companion (QRS-C), Hainan, China, 6–10 December 2021; pp. 314–318. [Google Scholar]
- de Souza, L.O.; O’Leary, P.; de Almeida, E.S.; de Lemos Meira, S.R. Product derivation in practice. Inf. Softw. Technol. 2015, 58, 319–337. [Google Scholar] [CrossRef]
- O’Leary, P.; De Almeida, E.S.; Richardson, I. The pro-pd process model for product derivation within software product lines. Inf. Softw. Technol. 2012, 54, 1014–1028. [Google Scholar] [CrossRef] [Green Version]
- Feichtinger, K.; Hinterreiter, D.; Linsbauer, L.; Prähofer, H.; Grünbacher, P. Guiding feature model evolution by lifting code-level dependencies. J. Comput. Lang. 2021, 63, 101034. [Google Scholar] [CrossRef]
- Tërnava, X.; Collet, P. A framework for managing the imperfect modularity of variability implementations. J. Comput. Lang. 2020, 61, 100998. [Google Scholar] [CrossRef]
- Marah, H.; Kardas, G.; Challenger, M. Model-driven round-trip engineering for TinyOS-based WSN applications. J. Comput. Lang. 2021, 65, 101051. [Google Scholar] [CrossRef]
- Sepúlveda, S.; Cravero, A.; Cachero, C. Requirements modeling languages for software product lines: A systematic literature review. Inf. Softw. Technol. 2016, 69, 16–36. [Google Scholar] [CrossRef]
- Hajri, I.; Goknil, A.; Briand, L.C.; Stephany, T. Change impact analysis for evolving configuration decisions in product line use case models. J. Syst. Softw. 2018, 139, 211–237. [Google Scholar] [CrossRef]
- Ziadi, T.; Frias, L.; da Silva, M.A.A.; Ziane, M. Feature identification from the source code of product variants. In Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering, Szeged, Hungary, 27–30 March 2012; pp. 417–422. [Google Scholar]
- Marcolino, A.; Oliveira, E.; Gimenes, I. Variability identification and representation in software product line UML sequence diagrams: Proposal and empirical study. In Proceedings of the 2014 Brazilian Symposium on Software Engineering, Maceió, Brazil, 28 September–3 October 2014; pp. 141–150. [Google Scholar]
- Fronchetti, F.; Ritschel, N.; Holmes, R.; Li, L.; Soto, M.; Jetley, R.; Wiese, I.; Shepherd, D. Language impact on productivity for industrial end users: A case study from Programmable Logic Controllers. J. Comput. Lang. 2022, 69, 101087. [Google Scholar] [CrossRef]
- Vještica, M.; Dimitrieski, V.; Pisarić, M.; Kordić, S.; Ristić, S.; Luković, I. Multi-level production process modeling language. J. Comput. Lang. 2021, 66, 101053. [Google Scholar] [CrossRef]
- Nieke, M.; Hoff, A.; Seidl, C.; Schaefer, I. Augmenting metamodels with seamless support for planning, tracking, and slicing model evolution timelines. J. Comput. Lang. 2021, 63, 101031. [Google Scholar] [CrossRef]
- Nejati, S.; Sabetzadeh, M.; Chechik, M.; Easterbrook, S.; Zave, P. Matching and merging of variant feature specifications. IEEE Trans. Softw. Eng. 2011, 38, 1355–1375. [Google Scholar] [CrossRef] [Green Version]
- Sibay, G.E.; Braberman, V.; Uchitel, S.; Kramer, J. Synthesizing modal transition systems from triggered scenarios. IEEE Trans. Softw. Eng. 2012, 39, 975–1001. [Google Scholar] [CrossRef] [Green Version]
- Harel, D.; Maoz, S.; Szekely, S.; Barkan, D. PlayGo: Towards a comprehensive tool for scenario based programming. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, Antwerp, Belgium, 20–24 September 2010; pp. 359–360. [Google Scholar]
- Cordy, M.; Davril, J.M.; Greenyer, J.; Gressi, E.; Heymans, P. All-at-once-synthesis of controllers from scenario-based product line specifications. In Proceedings of the 19th International Conference on Software Product Line, Nashville, TN, USA, 20–24 July 2015; pp. 26–35. [Google Scholar]
- Harel, D.; Maoz, S. Assert and negate revisited: Modal semantics for UML sequence diagrams. Softw. Syst. Model. 2008, 7, 237–252. [Google Scholar] [CrossRef]
- Śmiałek, M.; Straszak, T. Facilitating transition from requirements to code with the ReDSeeDS tool. In Proceedings of the 2012 20th IEEE International Requirements Engineering Conference (RE), Chicago, IL, USA, 24–28 September 2012; pp. 321–322. [Google Scholar]
- Liu, S. Formal Engineering for Industrial Software Development: Using the SOFL Method; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2013. [Google Scholar]
- Apel, S.; Lengauer, C.; Möller, B.; Kästner, C. An algebraic foundation for automatic feature-based program synthesis. Sci. Comput. Program. 2010, 75, 1022–1047. [Google Scholar] [CrossRef] [Green Version]
- Li, M.; Liu, S. Adopting Variable Dependency in Animation for Presenting the Behaviour of Process. In Proceedings of the International Workshop on Structured Object-Oriented Formal Language and Method, Luxembourg, 5–6 November 2014; pp. 81–93. [Google Scholar]
No. | Types | Conditions | Actions |
---|---|---|---|
1 | Map | s1 = {a1→b1, a2→b2, …, an→bn} s2 = {b1, b2, …, bn} | rng(s1) = s2 |
2 | Map | s1 = {a1→b1, a2→b2, …, an→bn} s2 = {a1, a2, …, an} | dom(s1) = s2 |
3 | Map | s1 inter s2 not empty | comp(s) = union(s1, s2) |
4 | Set | s1 inter s2 not empty | set s = s1 union s2 |
5 | Sequence | s1 concatenated s2 | sequence s = conc(s1, s2), len(s) = len(s1) + len(s2) |
6 | Composite | s1 inter s2 not empty | comp(s) = s1 union s2 |
Feature/Module | Functional Scenario Paths |
---|---|
ReserveforBus | [reserve_for_bus_request,user_id]Check_Bus11[wrong_id] |
[reserve_for_bus_request,user_id]Check_Bus12[bus_plan]->[bus_plan,pass_no]Check_Pass11 [account_info]->[cost,account_info]Confirm_Bus11[failed_msg] | |
[reserve_for_bus_request,user_id]Check_Bus12[bus_plan]->[bus_plan,pass_no]Check_Pass12 [err_msg] | |
[reserve_for_bus_request,user_id]Check_Bus12[bus_plan]->[bus_plan,pass_no]Check_Pass11 [account_info]->[cost,account_info]Confirm_Bus12[pay_confirmed]->[pay_confirmed] Confirm_Invoice11[invoice] | |
ReserveforFlight | [reserve_for_filght_request,user_id]Check_Filght11[wrong_id] |
[reserve_for_filght_request,user_id]Check_Filght12[filght_plan]->[filght_plan,pass_no] Check_Pass11[account_info]->[cost,account_info]Confirm_Filght11[failed_msg] | |
[reserve_for_filght_request,user_id]Check_Filght12[filght_plan]->[filght_plan,pass_no] Check_Pass11[account_info]->[cost,account_info]Confirm_Filght12[pay_confirmed]-> [pay_confirmed]Confirm_Invoice11[invoice] | |
[reserve_for_filght_request,user_id]Check_Filght12[filght_plan]->[filght_plan,pass_no] Check_Pass12[err_msg] |
Product Family | Integration Order | Rules Used in Declaration Integration | The Number of Scenario Path | The Number of Scenario Paths Matched |
---|---|---|---|---|
OSS | [Login, Logout, FillOrderForm, SubmitOrderform, CheckOrderForm, SendInvoice, ReceiveInvoice, MakePayment, AcceptPayment] | Composite, set, sequence | 17 | 5 |
BVMS | [Tea, Coffee, HotWater, Vegetable, Tomato, BalanceOut, Coinin] | \ | 7 | 2 |
HRR | [CheckIn, CheckOut,ReserveRoom, ReserveCancel, Reservation, TelService] | Composite, set | 11 | 4 |
TMS | [ReserveforFlight, ReserveforBus, Login, Register, UpdateProfile] | Composite, set, | 16 | 4 |
Feature/Module | No. | Functional Scenario Path |
---|---|---|
reserveforBus, reserveforFlight | 1 | [reserve_for_bus_request,user_id]Check_Bus11[wrong_id] |
2 | [reserve_for_filght_request,user_id]Check_Filght11[wrong_id] | |
3 | [reserve_for_filght_request,user_id]Check_Filght12[filght_plan]-> [filght_plan,pass_no] Check_Pass23 [account_info2]-> [cost, account_info2]Confirm_Filght11[failed_msg] | |
4 | [reserve_for_filght_request,user_id]Check_Filght12[filght_plan]-> [filght_plan,pass_no] Check_Pass23 [account_info2]-> [cost, account_info2]Confirm_Filght12[ pay_confirmed2]-> [ pay_confirmed2] Confirm_invoice11[invoice] | |
5 | [reserve_for_filght_request,user_id]Check_Filght12[filght_plan]-> [filght_plan,pass_no]Check_Pass12[err_msg] | |
6 | [reserve_for_bus_request,user_id]Check_Bus12[bus_plan]-> [bus_plan,pass_no] Check_Pass11 [account_info1]-> [cost, account_info1]Confirm_Bus11[failed_msg] | |
7 | [reserve_for_bus_request,user_id]Check_Bus12[bus_plan]-> [bus_plan,pass_no] Check_Pass11 [account_info1]-> [cost, account_info1]Confirm_Bus12[ pay_confirmed1]-> [ pay_confirmed1] Confirm_invoice11[invoice] | |
8 | [reserve_for_bus_request,user_id]Check_Bus12[bus_plan]-> [bus_plan,pass_no]Check_Pass12[err_msg] |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Wang, X.; Wang, W.; Liu, H. Product Model Derivation from Feature Model and Formal Specification. Appl. Sci. 2022, 12, 6241. https://doi.org/10.3390/app12126241
Wang X, Wang W, Liu H. Product Model Derivation from Feature Model and Formal Specification. Applied Sciences. 2022; 12(12):6241. https://doi.org/10.3390/app12126241
Chicago/Turabian StyleWang, Xi, Weiwei Wang, and Hongbo Liu. 2022. "Product Model Derivation from Feature Model and Formal Specification" Applied Sciences 12, no. 12: 6241. https://doi.org/10.3390/app12126241