Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Variability modules

Published: 01 January 2023 Publication History

Abstract

A Software Product Line (SPL) is a family of similar programs, called variants, generated from a common artifact base. A Multi SPL (MPL) is a set of interdependent SPLs: each variant can depend on variants from other SPLs. MPLs are challenging to model and to implement efficiently, especially when different variants of the same SPL must coexist and interoperate. We address this challenge by introducing the concept of a variability module (VM), a new language construct. A VM constitutes at the same time a module and an SPL of standard (variability-free), possibly interdependent, modules. Generating a variant of a VM triggers the generation of all variants required to satisfy its dependencies. Consequentially, a set of interdependent VMs represents an MPL that can be compiled into a set of standard modules. We illustrate the VM concept with an example from an industrial modeling scenario and formalize it in a core calculus. We define family-based analyses to check that a VM satisfies certain well-formedness conditions and whether all variants can be generated. Finally, we provide an implementation of VM for the Java-like modeling language ABS, and evaluate it with case studies.

Highlights

Extension of the standard concept of module to support multi product lines.
Interoperability of different variants of the same product line.
Dependencies among different variants reduced to dependencies among standard modules.
Statically checkable properties.
Implemented for the Abstract Behavioral Specification language.

References

[1]
Alouneh S., Abed S., Shayeji M.H.A., Mesleh R., A comprehensive study and analysis on SAT-solvers: advances, usages and achievements, Artif. Intell. Rev. 52 (2019) 2575–2601.
[2]
Apel S., Batory D.S., Kästner C., Saake G., Feature-Oriented Software Product Lines: Concepts and Implementation, Springer, 2013.
[3]
Batory D., Feature models, grammars, and propositional formulas, in: Proceedings of International Software Product Line Conference, in: LNCS, vol. 3714, SPLC, Springer, 2005, pp. 7–20,.
[4]
Batory D., Sarvela J.N., Rauschmayer A., Scaling step-wise refinement, IEEE Trans. Softw. Eng. 30 (2004) 355–371,.
[5]
Bettini L., Damiani F., Xtraitj: Traits for the Java platform, J. Syst. Softw. 131 (2017) 419–441,.
[6]
Bettini L., Damiani F., Schaefer I., Compositional type checking of delta-oriented software product lines, Acta Inform. 50 (2) (2013) 77–122,.
[7]
Bettini L., Damiani F., Schaefer I., Strocco F., TraitRecordJ: A programming language with traits and records, Sci. Comput. Program. 78 (5) (2013) 521–541,.
[8]
Bono V., Damiani F., Giachino E., On traits and types in a java-like setting, in: Fifth IFIP International Conference on Theoretical Computer Science - TCS 2008, IFIP 20th World Computer Congress, TC 1, Foundations of Computer Science, September 7-10, 2008, Milano, Italy, 2008, pp. 367–382,.
[9]
Bracha G., The Programming Language JIGSAW: Mixins, Modularity and Multiple Inheritance, (Ph.D. thesis) Department of Comp. Sci., Univ. of Utah, 1992.
[10]
Cardelli L., Program fragments, linking, and modularization, in: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’97, ACM, New York, NY, USA, 1997, pp. 266–277,. URL: http://doi.acm.org/10.1145/263699.263735.
[11]
Clarke D., Muschevici R., Proença J., Schaefer I., Schlatte R., Variability modelling in the ABS language, in: FMCO, in: LNCS, vol. 6957, Springer, 2010, pp. 204–224,.
[12]
Clements P., Northrop L., Software Product Lines: Practices & Patterns, Addison Wesley Longman, 2001.
[13]
Czarnecki K., Eisenecker U.W., Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000.
[14]
Damiani F., Hähnle R., Kamburjan E., Lienhardt M., A unified and formal programming model for deltas and traits, in: FASE, in: LNCS, vol. 10202, Springer, 2017, pp. 424–441,.
[15]
Damiani F., Hähnle R., Kamburjan E., Lienhardt M., Interoperability of software product line variants, in: SPLC, ACM, 2018, pp. 264–268,.
[16]
Damiani F., Hähnle R., Kamburjan E., Lienhardt M., Same same but different: Interoperability of software product line variants, in: Principled Software Development, Springer, 2018, pp. 99–117,.
[17]
Damiani F., Hähnle R., Kamburjan E., Lienhardt M., Paolini L., Variability modules for Java-like languages, in: Mousavi M., Schobbens P. (Eds.), Proc. 25th ACM Intl. Systems and Software Product Line Conf., Volume A, ACM, New York, NY, USA, 2021, pp. 1–-12,.
[18]
Damiani F., Lienhardt M., On type checking delta-oriented product lines, in: Integrated Formal Methods - 12th International Conference, IFM 2016, Reykjavik, Iceland, June 1-5, 2016, Proceedings, in: LNCS, vol. 9681, Springer, 2016, pp. 47–62,.
[19]
Damiani F., Lienhardt M., Muschevici R., Schaefer I., An extension of the ABS toolchain with a mechanism for type checking SPLs, in: Integrated Formal Methods, 13th Intl. Conf., IFM, Turin, Italy, in: LNCS, vol. 10510, Springer, 2017, pp. 111–126,.
[20]
Damiani F., Lienhardt M., Paolini L., A formal model for multi software product lines, Sci. Comput. Program. 172 (2019) 203–231,.
[21]
Damiani F., Schaefer I., Family-based analysis of type safety for delta-oriented software product lines, in: Margaria T., Steffen B. (Eds.), Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change, in: LNCS, vol. 7609, Springer Berlin Heidelberg, 2012, pp. 193–207,.
[22]
Damiani F., Schaefer I., Schuster S., Winkelmann T., Delta-trait programming of software product lines, in: Margaria T., Steffen B. (Eds.), Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change, Springer Berlin Heidelberg, Berlin, Heidelberg, 2014, pp. 289–303,.
[23]
Damiani F., Schaefer I., Winkelmann T., Delta-oriented multi software product lines, in: Proceedings of the 18th International Software Product Line Conference - Volume 1, SPLC ’14, ACM, 2014, pp. 232–236,.
[24]
Delaware B., Cook W.R., Batory D., Fitting the pieces together: A machine-checked model of safe composition, in: ESEC/FSE, ACM, 2009, pp. 243–252,.
[25]
Ducasse S., Nierstrasz O., Schärli N., Wuyts R., Black A.P., Traits: A mechanism for fine-grained reuse, ACM Trans. Program. Lang. Syst. 28 (2) (2006) 331–388,.
[26]
Hähnle R., The abstract behavioral specification language: A tutorial introduction, in: Bonsangue M., de Boer F., Giachino E., Hähnle R. (Eds.), Intl. School on Formal Models for Components and Objects: Post Proceedings, in: LNCS, vol. 7866, Springer, 2013, pp. 1–37,.
[27]
Holl G., Grünbacher P., Rabiser R., A systematic review and an expert survey on capabilities supporting multi product lines, Inf. Softw. Technol. 54 (8) (2012) 828–852,. URL: http://www.sciencedirect.com/science/article/pii/S095058491200033X.
[28]
Igarashi A., Pierce B.C., Wadler P., Featherweight Java: A minimal core calculus for Java and GJ, in: Hailpern B., Northrop L.M., Berman A.M. (Eds.), Proc. ACM SIGPLAN Conf. on Object-Oriented Programming Systems, Languages & Applications (OOPSLA), Denver, Colorado, USA, ACM, 1999, pp. 132–146,.
[29]
Igarashi A., Pierce B., Wadler P., Featherweight Java: A minimal core calculus for Java and GJ, ACM TOPLAS 23 (3) (2001) 396–450,.
[30]
Johnsen E.B., Hähnle R., Schäfer J., Schlatte R., Steffen M., ABS: A core language for abstract behavioral specification, in: Formal Methods for Components and Objects - 9th International Symposium, FMCO 2010, Graz, Austria, November 29 - December 1, 2010. Revised Papers, 2010, pp. 142–164,.
[31]
Kamburjan E., Hähnle R., Uniform modeling of railway operations, in: FTSCS, in: Communications in Computer and Information Science, vol. 694, 2016, pp. 55–71,.
[32]
Kamburjan E., Hähnle R., Prototyping formal system models with active objects, in: Bartoletti M., Knight S. (Eds.), Proceedings 11th Interaction and Concurrency Experience, ICE 2018, Madrid, Spain, June 20-21, 2018, in: EPTCS, vol. 279, 2018, pp. 52–67,.
[33]
Kamburjan E., Hähnle R., Schön S., Formal modeling and analysis of railway operations with active objects, Sci. Comput. Program. 166 (2018) 167–193,.
[34]
Kästner C., Apel S., Thüm T., Saake G., Type checking annotation-based product lines, ACM Trans. Softw. Eng. Methodol. 21 (3) (2012),.
[35]
Kästner C., Ostermann K., Erdweg S., A variability-aware module system, in: Leavens G.T., Dwyer M.B. (Eds.), Proc. ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’12, ACM, New York, NY, USA, 2012, pp. 773–792,.
[36]
Koscielny J., Holthusen S., Schaefer I., Schulze S., Bettini L., Damiani F., DeltaJ 1.5: delta-oriented programming for Java 1.5, in: Kolodziej J., Childers B.R. (Eds.), Intl. Conf. on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages and Tools, PPPJ, Cracow, Poland, ACM, 2014, pp. 63–74,.
[37]
Lagorio G., Servetto M., Zucca E., Featherweight Jigsaw: A minimal core calculus for modular composition of classes, in: Proceedings of the 23rd European Conference on ECOOP 2009 — Object-Oriented Programming, Springer-Verlag, Berlin, Heidelberg, 2009, pp. 244–268,.
[38]
Lagorio G., Servetto M., Zucca E., Featherweight Jigsaw - Replacing inheritance by composition in Java-like languages, Inform. and Comput. 214 (2012) 86–111,.
[39]
Lienhardt M., Clarke D., Conflict detection in delta-oriented programming, in: ISoLA 2012, Heraklion, Crete, Greece, October 15-18, 2012, Proceedings, Part I, in: LNCS, vol. 7609, Springer, 2012, pp. 178–192,.
[40]
Liquori L., Spiwack A., Feathertrait: A modest extension of featherweight java, ACM Trans. Program. Lang. Syst. 30 (2) (2008) 11:1–11:32,.
[41]
Mauliadi R., Setyautami M.R.A., Afriyanti I., Azurat A., A platform for charities system generation with SPL approach, in: Proc. Intl. Conf. on Information Technology Systems and Innovation, ICITSI, IEEE, New York, NY, USA, 2017, pp. 108–113,.
[42]
Mikhajlov L., Sekerinski E., A study of the fragile base class problem, in: ECOOP’98, in: LNCS, vol. 1445, 1998, pp. 355–383. cited By 1.
[43]
Nierstrasz O., Ducasse S., Schärli N., Flattening traits, J. Object Technol. 5 (4) (2006) 129–148,.
[44]
Pohl K., Böckle G., van der Linden F., Software Product Line Engineering - Foundations, Principles, and Techniques, Springer, Berlin, Germany, 2005.
[45]
Reppy J.H., Turon A., Metaprogramming with traits, in: Ernst E. (Ed.), ECOOP 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30 - August 3, 2007, Proceedings, in: Lecture Notes in Computer Science, vol. 4609, Springer, 2007, pp. 373–398,.
[46]
Roffe A.J., Calderon J.S.T., Random formula generators, 2021, CoRR abs/2110.09228. URL: https://arxiv.org/abs/2110.09228. arXiv:2110.09228.
[47]
Roman S., Lattices and Ordered Sets, Springer New York, 2008, URL: https://books.google.it/books?id=NZN8aum26LgC.
[48]
Schaefer I., Bettini L., Bono V., Damiani F., Tanzarella N., Delta-oriented programming of software product lines, in: Software Product Lines: Going beyond (SPLC 2010), in: LNCS, vol. 6287, 2010, pp. 77–91,.
[49]
Schaefer I., Damiani F., Pure delta-oriented programming, in: Proceedings of the 2nd International Workshop on Feature-Oriented Software Development, FOSD ’10, ACM, 2010, pp. 49–56,.
[50]
Schaefer I., Rabiser R., Clarke D., Bettini L., Benavides D., Botterweck G., Pathak A., Trujillo S., Villela K., Software diversity, Int. J. Softw. Tools Technol. Transf. 14 (5) (2012) 477–495,.
[51]
Schärli N., Ducasse S., Nierstrasz O., Black A.P., Traits: Composable units of behaviour, in: Cardelli L. (Ed.), ECOOP 2003 - Object-Oriented Programming, 17th European Conference, Darmstadt, Germany, July 21-25, 2003, Proceedings, in: LNCS, vol. 2743, Springer, 2003, pp. 248–274,.
[52]
Schröter R., Krieter S., Thüm T., Benduhn F., Saake G., Feature-model interfaces: The highway to compositional analyses of highly-configurable systems, in: Proceedings of the 38th International Conference on Software Engineering, ICSE ’16, ACM, 2016, pp. 667–678,.
[53]
Schröter R., Siegmund N., Thüm T., Towards modular analysis of multi product lines, in: Proceedings of the 17th International Software Product Line Conference Co-Located Workshops, SPLC ’13, ACM, 2013, pp. 96–99,.
[54]
Schröter R., Thüm T., Siegmund N., Saake G., Automated analysis of dependent feature models, in: The Seventh International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS ’13, Pisa, Italy, January 23 - 25, 2013, 2013, pp. 9:1–9:5,.
[55]
Setyautami M.R.A., Adianto D., Azurat A., Modeling multi software product lines using UML, in: Proc. 22nd Intl. Systems and Software Product Line Conference, Vol. 1, ACM, New York, NY, USA, 2018, pp. 274–278,.
[56]
Setyautami M.R.A., Hähnle R., An architectural pattern to realize multi software product lines in Java, in: Grünbacher P., Seidl C., Dhungana D., Lovasz-Bukvova H. (Eds.), Proc. 15th Intl. Working Conf. on Variability Modelling of Software-Intensive Systems, Krems, Austria, ACM Press, 2021, pp. 9:1–9:9,.
[57]
Setyautami M.R.A., Rubiantoro R.R., Azurat A., Model-driven engineering for delta-oriented software product lines, in: 26th Asia-Pacific Software Engineering Conf., APSEC, Putrajaya, Malaysia, IEEE, 2019, pp. 371–377,.
[58]
Smith C., Drossopoulou S., Chai: Traits for java-like languages, in: Black A.P. (Ed.), ECOOP 2005 - Object-Oriented Programming, Springer Berlin Heidelberg, Berlin, Heidelberg, 2005, pp. 453–478,.
[59]
Strniša R., Sewell P., Parkinson M., The Java module system: Core design and semantic definition, in: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA ’07, Association for Computing Machinery, New York, NY, USA, 2007, pp. 499–514,.
[60]
Thaker S., Batory D., Kitchin D., Cook W., Safe composition of product lines, in: Proceedings of the 6th International Conference on Generative Programming and Component Engineering, GPCE ’07, ACM, New York, NY, USA, 2007, pp. 95–104,.
[61]
Thüm T., Apel S., Kästner C., Schaefer I., Saake G., A classification and survey of analysis strategies for software product lines, ACM Comput. Surv. 47 (1) (2014) 6:1–6:45,.
[62]
Trujillo-Tzanahua G.I., Juárez-Martínez U., Aguilar-Lasserre A.A., Cortés-Verdín M.K., Multiple software product lines: applications and challenges, in: Mejia J., Muñoz M., Rocha A., Quiñonez Y., Calvo-Manzano J. (Eds.), Trends and Applications in Software Engineering, Springer International Publishing, Cham, 2018, pp. 117–126,.
[63]
Wirth N., The module: A system structuring facility in high-level programming languages, in: Tobias J.M. (Ed.), Language Design and Programming Methodology, Springer Berlin Heidelberg, Berlin, Heidelberg, 1980, pp. 1–24,.
[64]
Wong P.Y.H., Diakov N., Schaefer I., Modelling distributed adaptable object oriented systems using HATS approach: A fredhopper case study (invited paper), in: Beckert B., Damiani F., Gurov D. (Eds.), 2nd Intl. Conf. on Formal Verification of Object-Oriented Software, Torino, Italy, in: LNCS, vol. 7421, Springer, 2012, pp. 49–66,.

Cited By

View all
  • (2023)PYDOPProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B10.1145/3579028.3609011(30-33)Online publication date: 28-Aug-2023
  • (2023)Deltas for Functional Programs with Algebraic Data TypesProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608977(52-63)Online publication date: 28-Aug-2023

Index Terms

  1. Variability modules
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Journal of Systems and Software
    Journal of Systems and Software  Volume 195, Issue C
    Jan 2023
    610 pages

    Publisher

    Elsevier Science Inc.

    United States

    Publication History

    Published: 01 January 2023

    Author Tags

    1. Delta-oriented programming
    2. Family-based analysis
    3. Language design
    4. Modules
    5. Multi product line
    6. Variant generation

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 12 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)PYDOPProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B10.1145/3579028.3609011(30-33)Online publication date: 28-Aug-2023
    • (2023)Deltas for Functional Programs with Algebraic Data TypesProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608977(52-63)Online publication date: 28-Aug-2023

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media