Abstract
When evolving a software product line, it is often important to ensure that we do it in a safe way, ensuring that the resulting product line remains well-formed and that the behavior of existing products is not affected. To ensure this, one usually has to analyze the different artifacts that constitute a product line, like feature models, configuration knowledge and assets. Manually analyzing these artifacts can be time-consuming and error prone, since a product line might consist of thousands of products. Existing works show that a non-negligible number of changes performed in commits deal only with the configuration knowledge, that is, the mapping between features and assets. This way, in this paper, we propose a set of algebraic laws, which correspond to bi-directional transformations for configuration knowledge models, that we can use to justify safe evolution of product lines, when only the configuration knowledge model changes. Using a theorem prover, we proved all laws sound with respect to a formal semantics. We also present a case study, where we use these laws to justify safe evolution scenarios of a non trivial industrial software product line.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
Rain of fire mobile game, developed by Meantime mobile creations.
References
Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring product lines. In: GPCE 2006, pp. 201–210 (2006)
Apel, S., Batory, D., Kstner, C., Saake, G.: Feature-Oriented Software ProductLines: Concepts and Implementation. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37521-7
Batory, D.S.: Feature-oriented programming and the AHEAD tool suite. In: ICSE 2004, pp. 702–703 (2004)
Batory, D.: Feature models, grammars, and propositional formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005). https://doi.org/10.1007/11554844_3
Berger, T., She, S., Lotufo, R., Wasowski, A., Czarnecki, K.: Variability modeling in the real: a perspective from the operating systems domain. In: ASE 2010, pp. 73–82 (2010)
Bonifácio, R., Borba, P.: Modeling scenario variability as crosscutting mechanisms. In: AOSD 2009, pp. 125–136 (2009)
Borba, P.: An introduction to software product line refactoring. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2009. LNCS, vol. 6491, pp. 1–26. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-18023-1_1
Borba, P., Teixeira, L., Gheyi, R.: A theory of software product line refinement. Theoret. Comput. Sci. 455, 2–30 (2012)
Calheiros, F., Borba, P., Soares, S., Nepomuceno, V., Alves, V.: Product line variability refactoring tool. In: WRT 2007 at ECOOP 2007, pp. 33–34 (2007)
Cole, L., Borba, P.: Deriving refactorings for AspectJ. In: AOSD 2005, pp. 123–134. ACM (2005)
Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley, New York (2000)
Dintzner, N., van Deursen, A., Pinzger, M.: FEVER: an approach to analyze feature-oriented changes and artefact co-evolution in highly configurable systems. Empirical Softw. Eng. 23(2), 905–952 (2017). https://doi.org/10.1007/s10664-017-9557-6
Ferreira, F., Gheyi, R., Borba, P., Soares, G.: A toolset for checking SPL refinements. J. Univ. Comput. Sci. 20(5), 587–614 (2014)
Ferreira, F., Neves, L., Silva, M., Borba, P.: Target: a model based product line testing tool. In: Tools Session at CBSoft 2010, pp. 67–72 (2010)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, New York (1999)
Gheyi, R., Massoni, T., Borba, P.: Algebraic laws for feature models. J. Univ. Comput. Sci. 14(21), 3573–3591 (2008)
Gomes, K., Teixeira, L., Alves, T., Ribeiro, M., Gheyi, R.: Characterizing safe and partially safe evolution scenarios in product lines: An empirical study. In: VaMoS 2019 (2019)
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical report, CMU Software Engineering Institute (1990)
Kastner, C., Apel, S., Batory, D.: A case study implementing features using AspectJ. In: SPLC 2007, pp. 223–232. IEEE (2007)
Kolb, R., Muthig, D., Patzke, T., Yamauchi, K.: A case study in refactoring a legacy component for reuse in a product line. In: ICSM 2005, pp. 369–378 (2005)
Kröher, C., Gerling, L., Schmid, K.: Identifying the intensity of variability changes in software product line evolution. In: SPLC, pp. 54–64 (2018)
Krueger, C.W.: Easing the transition to software mass customization. In: van der Linden, F. (ed.) PFE 2001. LNCS, vol. 2290, pp. 282–293. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-47833-7_25
Van der Linden, F., Schmid, K., Rommes, E.: Software Product Lines in Action: the Best Industrial Practice in Product Line Engineering. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71437-8
Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: ICSE 2006, pp. 112–121 (2006)
Mendonca, M., Wasowski, A., Czarnecki, K.: Sat-based analysis of feature models is easy. In: SPLC 2009, pp. 231–240 (2009)
Neves, L., Borba, P., Alves, V., Turnes, L., Teixeira, L., Sena, D., Kulesza, U.: Safe evolution templates for software product lines. JSS 106(C), 42–58 (2015)
Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference. SRI International (2001). http://pvs.csl.sri.com/doc/pvs-language-reference.pdf, version 2.4
Sampaio, G., Borba, P., Teixeira, L.: Partially safe evolution of software product lines. J. Syst. Softw. 155, 17–42 (2019)
Schobbens, P.Y., Heymans, P., Trigaux, J.C., Bontemps, Y.: Generic semantics of feature diagrams. Comput. Netw. 51(2), 456–479 (2007)
Spivey: The Z Notation: A Reference Manual. Prentice Hall (1987)
Steimann, F., Thies, A.: From public to private to absent: refactoring Java programs under constrained accessibility. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 419–443. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03013-0_19
Teixeira, L., Gheyi, R., Borba, P.: Online appendix (2020). http://www.cin.ufpe.br/~lmt/sbmf2020/
Teixeira, L., Alves, V., Borba, P., Gheyi, R.: A product line of theories for reasoning about safe evolution of product lines. In: SPLC 2015, pp. 161–170 (2015)
Trinidad, P., Benavides, D., Durán, A., Cortés, A.R., Toro, M.: Automated error analysis for the agilization of feature modeling. JSS 81(6), 883–896 (2008)
Trujillo, S., Batory, D., Diaz, O.: Feature refactoring a multi-representation program into a product line. In: GPCE 2006, pp. 191–200 (2006)
Weiss, D.M., Li, J.J., Slye, J.H., Dinh-Trong, T.T., Sun, H.: Decision-model-based code generation for SPLE. In: SPLC 2008, pp. 129–138 (2008)
Acknowledgments
This work was partially supported by CAPES (grants 117875 and 175956), CNPq (grants 409335/2016-9, 426005/2018-0, and 311442/2019-6) and FACEPE (APQ-0570-1.03/14), as well as INES 2.0, (http://www.ines.org.br) FACEPE grants PRONEX APQ-0388-1.03/14 and APQ-0399-1.03/17, and CNPq grant 465614/2014-0.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Teixeira, L., Gheyi, R., Borba, P. (2020). Safe Evolution of Product Lines Using Configuration Knowledge Laws. In: Carvalho, G., Stolz, V. (eds) Formal Methods: Foundations and Applications. SBMF 2020. Lecture Notes in Computer Science(), vol 12475. Springer, Cham. https://doi.org/10.1007/978-3-030-63882-5_13
Download citation
DOI: https://doi.org/10.1007/978-3-030-63882-5_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-63881-8
Online ISBN: 978-3-030-63882-5
eBook Packages: Computer ScienceComputer Science (R0)