Abstract
In Software Product Line (SPL) engineering one uses Variability Models (VMs) as input to automated reasoners to generate optimal products according to certain Quality Attributes (QAs). Variability models, however, and more specifically those including numerical features (i.e., NVMs), do not natively support QAs, and consequently, neither do automated reasoners commonly used for variability resolution. However, those satisfiability and optimisation problems have been covered and refined in other relational models such as databases.
Category Theory (CT) is an abstract mathematical theory typically used to capture the common aspects of seemingly dissimilar algebraic structures. We propose a unified relational modelling framework subsuming the structured objects of VMs and QAs and their relationships into algebraic categories. This abstraction allows a combination of automated reasoners over different domains to analyse SPLs. The solutions’ optimisation can now be natively performed by a combination of automated theorem proving, hashing, balanced-trees and chasing algorithms. We validate this approach by means of the edge computing SPL tool HADAS.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Real (\(\mathbb {R}\)), and other continuous domains, are not completely supported by SPL automated reasoners because they generate unlimited solutions.
- 2.
A categories isomorphism is a one-to-one mapping between their sets of objects.
- 3.
HADAS web-services: https://hadas.caosd.lcc.uma.es/.
- 4.
Phoronix Test Suite details: https://openbenchmarking.org/tests/pts.
- 5.
CQL IDE main website: https://www.categoricaldata.net/.
- 6.
HADAS CQL CT model: https://hadas.caosd.lcc.uma.es/ctprototype.cql.
References
Al-Qutaish, R.E.: Quality models in software engineering literature: an analytical and comparative study. J. Am. Sci. 6(3), 166–175 (2010)
Bąk, K., Diskin, Z., Antkiewicz, M., Czarnecki, K., Wąsowski, A.: Clafer: unifying class and feature modeling. Softw. Syst. Model. 15(3), 811–845 (2014). https://doi.org/10.1007/s10270-014-0441-1
Barr, M., Wells, C.: Category Theory for Computing Science. Prentice Hall, New York (1990)
Batory, D., Azanza, M., Saraiva, J.: The objects and arrows of computational design. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 1–20. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-87875-9_1
Benavides, D., Trinidad, P., Ruiz-Cortés, A.: Automated reasoning on feature models. In: Pastor, O., Falcão e Cunha, J. (eds.) CAiSE 2005. LNCS, vol. 3520, pp. 491–503. Springer, Heidelberg (2005). https://doi.org/10.1007/11431855_34
Brown, K.S., Spivak, D.I., Wisnesky, R.: Categorical data integration for computational science. Comput. Mater. Sci. 164, 127–132 (2019)
Budiardjo, E.K., Zamzami, E.M., et al.: Feature modeling and variability modeling syntactic notation comparison and mapping. Comput. Commun. 2, 101–108 (2014)
Chen, L., Ali Babar, M., Ali, N.: Variability management in software product lines: a systematic review. In: Proceedings of the 13th International Software Product Line Conference, SPLC 2009, pp. 81–90. Carnegie Mellon University, USA (2009)
Chohan, A.Z., Bibi, A., Motla, Y.H.: Optimized software product line architecture and feature modeling in improvement of SPL. In: 2017 International Conference on Frontiers of Information Technology (FIT), pp. 167–172. IEEE (2017)
Chowdhury, S., Borle, S., Romansky, S., Hindle, A.: Greenscaler: training software energy models with automatic test generation. Empir. Softw. Eng. 24(4), 1649–1692 (2019). https://doi.org/10.1007/s10664-018-9640-7
Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing cardinality-based feature models and their specialization. Softw. Process 10(1), 7–29 (2005)
de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78800-3_24
Elffers, J., Giráldez-Cru, J., Nordström, J., Vinyals, M.: Using combinatorial benchmarks to probe the reasoning power of pseudo-Boolean solvers. In: Beyersdorff, O., Wintersteiger, C.M. (eds.) SAT 2018. LNCS, vol. 10929, pp. 75–93. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94144-8_5
Elliott, C.: Compiling to categories. In: Proceedings of the ACM on Programming Languages, vol. 1, issue number (ICFP), pp. 1–27 (2017)
Fraenkel, A.A., Bar-Hillel, Y., Levy, A.: Foundations of Set Theory. Elsevier, Burlington (1973)
Gamez, N., Fuentes, L.: Software product line evolution with cardinality-based feature models. In: Schmid, K. (ed.) ICSR 2011. LNCS, vol. 6727, pp. 102–118. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21347-2_9
Glinz, M.: On non-functional requirements. In: 15th IEEE International Requirements Engineering Conference (RE 2007), pp. 21–26. IEEE (2007)
González-Huerta, J., Insfran, E., Abrahão, S., McGregor, J.D.: Non-functional requirements in model-driven software product line engineering. In: Proceedings of the Fourth International Workshop on Nonfunctional System Properties in Domain Specific Modeling Languages, NFPinDSML 2012, NY, USA (2012)
Gurov, D., Østvold, B.M., Schaefer, I.: A hierarchical variability model for software product lines. In: Hähnle, R., Knoop, J., Margaria, T., Schreiner, D., Steffen, B. (eds.) ISoLA 2011. CCIS, pp. 181–199. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-34781-8_15
Gurrola-Ramos, L., Macías, S., Macías-Díaz, J.: On the isomorphism of injective objects in Grothendieck categories. Quaest. Math. 40(5), 617–622 (2017)
Hellendoorn, V.J., Sutton, C., Singh, R., Maniatis, P., Bieber, D.: Global relational models of source code. In: International Conference on Learning Representations (2019)
Horcas, J.M., Pinto, M., Fuentes, L.: An automatic process for weaving functional quality attributes using a software product line approach. J. Syst. Softw. 112, 78–95 (2016)
Jussien, N., Rochart, G., Lorca, X.: Choco: an open source java constraint programming library. In: HAL Archives Ouvertes (2008)
Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (foda) feasibility study. Carnegie-Mellon University Pittsburgh Pa Software Engineering Institute, Technical report (1990)
Kızıltoprak, A., Köse, N.Y.: Relational thinking: the bridge between arithmetic and algebra. Int. J. Elem. Educ. 10(1), 131–145 (2017)
Lambek, J., Scott, P.J.: Introduction to Higher-Order Categorical Logic, vol. 7. Cambridge University Press, Cambridge (1988)
Montenegro, J.A., Pinto, M., Fuentes, L.: What do software developers need to know to build secure energy-efficient android applications? IEEE Access 6, 1428–1450 (2018)
Mueller, J.: Theopogles–a theorem prover based on first-order polynomials and a special Knuth-Bendix procedure. GWAI-87 11th German Workshop on Artifical Intelligence. Informatik-Fachberichte (Subreihe Küstliche Intelligenz), vol. 152. Springer, Heidelberg (1987). https://doi.org/10.1007/978-3-642-73005-4_26
Munoz, D.J., Montenegro, J.A., Pinto, M., Fuentes, L.: Energy-aware environments for the development of green applications for cyber-physical systems. Future Gener. Compu. Syst. 91, 536–554 (2019)
Munoz, D.J., Oh, J., Pinto, M., Fuentes, L., Batory, D.: Uniform random sampling product configurations of feature models that have numerical features. In: Proceedings of the 23rd International Systems and Software Product Line Conference - Volume A, pp. 289–301. Association for Computing Machinery, NY, USA (2019)
Munoz, D.J., Pinto, M., Fuentes, L.: Hadas: analysing quality attributes of software configurations. In: Proceedings of the 23rd International Systems and Software Product Line Conference-Volume B, pp. 13–16 (2019)
Olaechea, R., Stewart, S., Czarnecki, K., Rayside, D.: Modelling and multi-objective optimization of quality attributes in variability-rich software. In: Proceedings of the Fourth International Workshop on Nonfunctional System Properties in Domain Specific Modeling Languages, pp. 1–6 (2012)
Pohl, K., Böckle, G., van Der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer Science & Business Media, Heidelberg (2005). https://doi.org/10.1007/3-540-28901-1
Ren, J., Wang, H., Hou, T., Zheng, S., Tang, C.: Federated learning-based computation offloading optimization in edge computing-supported internet of things. IEEE Access 7, 69194–69201 (2019)
Siegmund, N., Rosenmüller, M., Kuhlemann, M., Kästner, C., Apel, S., Saake, G.: SPL conqueror: toward optimization of non-functional properties in software product lines. Softw. Qual. J. 20(3–4), 487–517 (2012). https://doi.org/10.1007/s11219-011-9152-9
Taentzer, G., Salay, R., Strüber, D., Chechik, M.: Transformations of software product lines: a generalizing framework based on category theory. In: 20th International Conference on Model Driven Engineering Languages and Systems (MODELS) (2017)
Acknowledgements
Munoz, Pinto and Fuentes work is supported by the European Union’s H2020 research and innovation programme under grant agreement DAEMON 101017109, by the projects co-financed by FEDER funds LEIA UMA18-FEDERJA-15, MEDEA RTI2018-099213-B-I00 and Rhea P18-FR-1081 and the PRE2019-087496 grant from the Ministerio de Ciencia e Innovación.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Munoz, DJ., Gurov, D., Pinto, M., Fuentes, L. (2021). Category Theory Framework for Variability Models with Non-functional Requirements. In: La Rosa, M., Sadiq, S., Teniente, E. (eds) Advanced Information Systems Engineering. CAiSE 2021. Lecture Notes in Computer Science(), vol 12751. Springer, Cham. https://doi.org/10.1007/978-3-030-79382-1_24
Download citation
DOI: https://doi.org/10.1007/978-3-030-79382-1_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-79381-4
Online ISBN: 978-3-030-79382-1
eBook Packages: Computer ScienceComputer Science (R0)