Abstract
Feature-oriented systems describe system variants through features as first-class abstractions of optional or incremental units of systems functionality. The choice how to treat modularity and composition in feature-oriented systems strongly influences their design and behavioral modeling. Popular paradigms for the composition of features are superimposition and parallel composition. We approach both in a unified formal way for programs in guarded command language by introducing compositional feature-oriented systems (CFOSs). We show how both compositions relate to each other by providing transformations that preserve the behaviors of system variants. Family models of feature-oriented systems encapsulate all behaviors of system variants in a single model, prominently used in family-based analysis approaches. We introduce family-ready CFOSs that admit a family model and show by an annotative approach that every CFOS can be transformed into a family-ready one that has the same modularity and behaviors.
The author has been supported by the DFG through the Cluster of Excellence EXC 2050/1 (CeTI, project ID 390696704, as part of Germany’s Excellence Strategy), the Collaborative Research Centers CRC 912 (HAEC) and TRR 248 (see https://perspicuous-computing.science, project ID 389792660), the Research Training Group RoSI (GRK 1907), Deutsche Telekom Stiftung, and the 5G Lab Germany.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Recall Definition 3 of \(\chi (X)\), the characteristic Boolean expression of X.
- 2.
Note that an empty disjunction always evaluates to \(\mathtt {ff}\).
References
Acher, M., Collet, P., Fleurey, F., Lahire, P., Moisan, S., Rigault, J.-P.: Modeling context and dynamic adaptations with feature models. In: 4th International Workshop Models@run.time at Models 2009 (MRT 2009), p. 10 (2009)
Apel, S., Kästner, C.: An overview of feature-oriented software development. J. Object Technol. 8, 49–84 (2009)
Apel, S., Kästner, C., Lengauer, C.: Feature featherweight Java: a calculus for feature-oriented programming and stepwise refinement. In: Proceedings of the 7th International Conference on Generative Programming and Component Engineering, GPCE 2008, pp. 101–112. ACM, New York (2008)
Apel, S., Leich, T., Rosenmüller, M., Saake, G.: FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 125–140. Springer, Heidelberg (2005). https://doi.org/10.1007/11561347_10
Baier, C., Dubslaff, C.: From verification to synthesis under cost-utility constraints. ACM SIGLOG News 5(4), 26–46 (2018)
Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press, Cambridge (2008)
Bettini, L., Damiani, F., Schaefer, I.: Compositional type checking of delta-oriented software product lines. Acta Informatica 50(2), 77–122 (2013)
Chandy, K.M., Misra, J.: A Foundation of Parallel Program Design. Addison-Wesley, Reading (1988)
Chrszon, P., Dubslaff, C., Klüppelholz, S., Baier, C.: Family-based modeling and analysis for probabilistic systems – featuring ProFeat. In: Stevens, P., Wąsowski, A. (eds.) FASE 2016. LNCS, vol. 9633, pp. 287–304. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49665-7_17
Chrszon, P., Dubslaff, C., Klüppelholz, S., Baier, C.: Profeat: feature-oriented engineering for family-based probabilistic model checking. Formal Aspects Comput. 30(1), 45–75 (2018)
Cimatti, A., et al.: NuSMV 2: an opensource tool for symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 359–364. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45657-0_29
Classen, A., Cordy, M., Heymans, P., Legay, A., Schobbens, P.-Y.: Model checking software product lines with SNIP. Int. J. Softw. Tools Technol. Transf. 14(5), 589–612 (2012)
Classen, A., Cordy, M., Heymans, P., Legay, A., Schobbens, P.-Y.: Formal semantics, modular specification, and symbolic verification of product-line behaviour. Sci. Comput. Program. 80, 416–439 (2014)
Classen, A., Cordy, M., Schobbens, P.-Y., Heymans, P., Legay, A., Raskin, J.-F.: Featured transition systems: foundations for verifying variability-intensive systems and their application to LTL model checking. IEEE Trans. Softw. Eng. 39(8), 1069–1089 (2013)
Classen, A., Heymans, P., Schobbens, P.-Y., Legay, A., Raskin, J.-F.: Model checking lots of systems: efficient verification of temporal properties in software product lines. In: Proceedings of ICSE 2010, pp. 335–344. ACM (2010)
Clements, P., Northrop, L.: Software Product Lines : Practices and Patterns. Addison-Wesley Professional, Boston (2001)
Cordy, M., Schobbens, P.-Y., Heymans, P., Legay, A.: Beyond Boolean product-line model checking: dealing with feature attributes and multi-features. In: Proceedings of the 2013 International Conference on Software Engineering, ICSE 2013, pp. 472–481. IEEE Press, Piscataway (2013)
Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley Publishing Co. (2000)
Damiani, F., Schaefer, I.: Dynamic delta-oriented programming. In: Proceedings of the 15th Software Product Line Conference (SPLC), vol. 2, pp. 34:1–34:8. ACM (2011)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Upper Saddle River (1976)
Dubslaff, C., Baier, C., Klüppelholz, S.: Probabilistic model checking for feature-oriented systems. Trans. Aspect-Oriented Softw. Dev. 12, 180–220 (2015)
Dubslaff, C., Klüppelholz, S., Baier, C.: Probabilistic model checking for energy analysis in software product lines. In: 13th International Conference on Modularity (MODULARITY), pp. 169–180. ACM (2014)
Francez, N., Forman, I.R.: Superimposition for interacting processes. In: Baeten, J.C.M., Klop, J.W. (eds.) CONCUR 1990. LNCS, vol. 458, pp. 230–245. Springer, Heidelberg (1990). https://doi.org/10.1007/BFb0039063
Gomaa, H., Hussein, M.: Dynamic software reconfiguration in software product families. In: van der Linden, F.J. (ed.) PFE 2003. LNCS, vol. 3014, pp. 435–444. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24667-1_33
Gruler, A., Leucker, M., Scheidemann, K.: Modeling and model checking software product lines. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 113–131. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-68863-1_8
Hallsteinsen, S., Hinchey, M., Park, S., Schmid, K.: Dynamic software product lines. Computer 41(4), 93–95 (2008)
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual, vol. 1003. Addison-Wesley, Reading (2004)
Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)
Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical report, Carnegie-Mellon University Software Engineering Institute, November 1990
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: 2008 ACM/IEEE 30th International Conference on Software Engineering, pp. 311–320 (2008)
Kästner, C., Apel, S., Ostermann, K.: The road to feature modularity? In: Proceedings of the 15th International Software Product Line Conference, SPLC 2011, vol. 2, pp. 5:1–5:8. ACM, New York (2011)
Kästner, C., Apel, S., ur Rahman, S.S., Rosenmüller, M., Batory, D.S., Saake, G.: On the impact of the optional feature problem: analysis and case studies. In: 2009 Proceedings of 13th International Conference on Software Product Lines, SPLC 2009, San Francisco, California, USA, 24–28 August, pp. 181–190 (2009)
Katz, S.: A superimposition control construct for distributed systems. ACM Trans. Program. Lang. Syst. (TOPLAS) 15(2), 337–356 (1993)
Kwiatkowska, M., Norman, G., Parker, D.: PRISM 4.0: verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 585–591. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_47
Leino, K.R.M., Saxe, J.B., Stata, R.: Checking java programs via guarded commands. In: Leino, K.R.M., Saxe, J.B., Stata, R. (eds.) Workshop on Object-oriented Technology, pp. 110–111. Springer, Heidelberg (1999)
Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)
Plath, M., Ryan, M.: Feature integration using a feature construct. Sci. Comput. Program. 41(1), 53–84 (2001)
Post, H., Sinz, C.: Configuration lifting: verification meets software configuration. In: Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering, ASE 2008, pp. 347–350. IEEE Computer Society, Washington, DC (2008)
Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A model-based framework for automated product derivation. In: Proceedings of the 1st International Workshop on Model-driven Approaches in Software Product Line Engineering (MAPLE 2009), collocated with the 13th International Software Product Line Conference (SPLC 2009), San Francisco, USA, 24 August 2009 (2009)
Zave, P.: Feature-oriented description, formal methods, and DFC. In: Gilmore, S., Ryan, M. (eds.) Language Constructs for Describing Features, pp. 11–26. Springer, London (2001). https://doi.org/10.1007/978-1-4471-0287-8_2
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Dubslaff, C. (2019). Compositional Feature-Oriented Systems. In: Ölveczky, P., Salaün, G. (eds) Software Engineering and Formal Methods. SEFM 2019. Lecture Notes in Computer Science(), vol 11724. Springer, Cham. https://doi.org/10.1007/978-3-030-30446-1_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-30446-1_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-30445-4
Online ISBN: 978-3-030-30446-1
eBook Packages: Computer ScienceComputer Science (R0)