Compositional Feature-Oriented Systems
- 283 Downloads
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.
References
- 1.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)Google Scholar
- 2.Apel, S., Kästner, C.: An overview of feature-oriented software development. J. Object Technol. 8, 49–84 (2009)CrossRefGoogle Scholar
- 3.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)Google Scholar
- 4.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_10CrossRefGoogle Scholar
- 5.Baier, C., Dubslaff, C.: From verification to synthesis under cost-utility constraints. ACM SIGLOG News 5(4), 26–46 (2018)Google Scholar
- 6.Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press, Cambridge (2008)zbMATHGoogle Scholar
- 7.Bettini, L., Damiani, F., Schaefer, I.: Compositional type checking of delta-oriented software product lines. Acta Informatica 50(2), 77–122 (2013)MathSciNetCrossRefGoogle Scholar
- 8.Chandy, K.M., Misra, J.: A Foundation of Parallel Program Design. Addison-Wesley, Reading (1988)zbMATHGoogle Scholar
- 9.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_17CrossRefGoogle Scholar
- 10.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)MathSciNetCrossRefGoogle Scholar
- 11.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_29CrossRefGoogle Scholar
- 12.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)CrossRefGoogle Scholar
- 13.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)CrossRefGoogle Scholar
- 14.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)CrossRefGoogle Scholar
- 15.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)Google Scholar
- 16.Clements, P., Northrop, L.: Software Product Lines : Practices and Patterns. Addison-Wesley Professional, Boston (2001)Google Scholar
- 17.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)Google Scholar
- 18.Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley Publishing Co. (2000)Google Scholar
- 19.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)Google Scholar
- 20.Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Upper Saddle River (1976)zbMATHGoogle Scholar
- 21.Dubslaff, C., Baier, C., Klüppelholz, S.: Probabilistic model checking for feature-oriented systems. Trans. Aspect-Oriented Softw. Dev. 12, 180–220 (2015)Google Scholar
- 22.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)Google Scholar
- 23.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/BFb0039063CrossRefGoogle Scholar
- 24.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_33CrossRefGoogle Scholar
- 25.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_8CrossRefGoogle Scholar
- 26.Hallsteinsen, S., Hinchey, M., Park, S., Schmid, K.: Dynamic software product lines. Computer 41(4), 93–95 (2008)CrossRefGoogle Scholar
- 27.Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual, vol. 1003. Addison-Wesley, Reading (2004)Google Scholar
- 28.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)CrossRefGoogle Scholar
- 29.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 1990Google Scholar
- 30.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)Google Scholar
- 31.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)Google Scholar
- 32.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)Google Scholar
- 33.Katz, S.: A superimposition control construct for distributed systems. ACM Trans. Program. Lang. Syst. (TOPLAS) 15(2), 337–356 (1993)CrossRefGoogle Scholar
- 34.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_47CrossRefGoogle Scholar
- 35.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)Google Scholar
- 36.Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)Google Scholar
- 37.Plath, M., Ryan, M.: Feature integration using a feature construct. Sci. Comput. Program. 41(1), 53–84 (2001)CrossRefGoogle Scholar
- 38.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)Google Scholar
- 39.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)Google Scholar
- 40.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_2CrossRefGoogle Scholar