ABSTRACT
We present a realization of multi software product lines in the Java programming language that permits full interoperability and hierarchical dependencies among multiple product variants. This concept, called variability modules (VM), is implemented in terms of an architectural pattern in Java and does not require any pre-processing or language extension. It can be used with any Java development environment. The VM architectural pattern comes with a dedicated UML profile, which makes it possible to present variability to non-technical stakeholders. We evaluate our approach with the help of a real-world case study.
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer-Verlag, Berlin. https://doi.org/10.1007/978-3-642-37521-7Google ScholarDigital Library
- Jan Bosch. 2010. Toward Compositional Software Product Lines. IEEE Software 27, 3 (May 2010), 29–34.Google ScholarDigital Library
- Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, and Michael Lienhardt. 2018. Interoperability of Software Product Line Variants. In Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1 (Gothenburg, Sweden) (SPLC ’18). ACM, New York, NY, USA, 264–268.Google ScholarDigital Library
- Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, and Michael Lienhardt. 2018. Same Same But Different: Interoperability of Software Product Line Variants. In Principled Software Development: Essays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday, Peter Müller and Ina Schaefer (Eds.). Springer, Cham, 99–117.Google Scholar
- Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, Michael Lienhardt, and Luca Paolini. 2020. Variable Modules. Submitted, available at https://formbar.raillab.de/vm/.Google Scholar
- Ferruccio Damiani, Michael Lienhardt, and Luca Paolini. 2019. A formal model for Multi Software Product Lines. Science of Computer Programming 172 (2019), 203–231.Google ScholarCross Ref
- Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides. 1994. Design Patterns: ”Elements of Reusable Object-Oriented Software”. Addison-Wesley, Boston, USA.Google Scholar
- Iris Groher and Markus Voelter. 2009. Aspect-Oriented Model-Driven Software Product Line Engineering. In Transactions on Aspect-Oriented Software Development VI: Special Issue on Aspects and Model-Driven Engineering, Shmuel Katz, Harold Ossher, Robert France, and Jean-Marc Jézéquel (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 111–152. https://doi.org/10.1007/978-3-642-03764-1_4Google ScholarDigital Library
- Reiner Hähnle. 2013. The Abstract Behavioral Specification Language: A Tutorial Introduction. In Formal Methods for Components and Objects: 11th Intl. Symp., FMCO 2012, Bertinoro, Italy, September 24-28, 2012, Revised Lectures, Elena Giachino, Reiner Hähnle, Frank S. de Boer, and Marcello M. Bonsangue (Eds.). Springer, Berlin, Heidelberg, 1–37. https://doi.org/10.1007/978-3-642-40615-7_1Google ScholarDigital Library
- Gerald Holl, Paul Grünbacher, and Rick Rabiser. 2012. A systematic review and an expert survey on capabilities supporting multi product lines. Information and Software Technology 54, 8 (2012), 828 – 852. Special Issue: Voice of the Editorial Board.Google ScholarDigital Library
- Einar Broch Johnsen, Reiner Hähnle, Jan Schäfer, Rudolf Schlatte, and Martin Steffen. 2012. ABS: A Core Language for Abstract Behavioral Specification. In Formal Methods for Components and Objects, Bernhard K. Aichernig, Frank S. de Boer, and Marcello M. Bonsangue (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 142–164.Google Scholar
- Christian Kästner, Klaus Ostermann, and Sebastian Erdweg. 2012. A Variability-aware Module System. In Proc. ACM Intl. Conf. on Object Oriented Programming Systems Languages and Applications (Tucson, Arizona, USA) (OOPSLA). ACM, New York, NY, USA, 773–792. https://doi.org/10.1145/2384616.2384673Google ScholarDigital Library
- Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. 2001. An Overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming(ECOOP ’01). Springer-Verlag, Berlin, Heidelberg, 327–353.Google ScholarCross Ref
- Jonathan Koscielny, Sönke Holthusen, Ina Schaefer, Sandro Schulze, Lorenzo Bettini, and Ferruccio Damiani. 2014. DeltaJ 1.5: Delta-oriented Programming for Java 1.5. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (Cracow, Poland) (PPPJ ’14). ACM, New York, NY, USA, 63–74.Google ScholarCross Ref
- Jens Meinicke, Thomas Thüm, Reimar Schröter, Fabian Benduhn, Thomas Leich, and Gunter Saake. 2017. . Springer International Publishing, Cham, 227–234.Google Scholar
- Rizki Muhammad and Maya R.A. Setyautami. 2016. Automatic model translation to UML from software product lines model using UML profile. In Intl. Conf. on Advanced Computer Science and Information Systems (ICACSIS). IEEE, Los Alamitos, 605–610. https://doi.org/10.1109/ICACSIS.2016.7872758Google ScholarCross Ref
- Object Management Group 2011. OMG Unified Modeling LanguageTM (OMG UML), Infrastructure. Object Management Group. https://www.omg.org/spec/UML/2.4.1/Infrastructure/PDFGoogle Scholar
- Klaus Pohl, Gunter Bockle, and Frank van der Linden. 2005. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer-Verlag, Berlin.Google ScholarDigital Library
- Ina Schaefer, Lorenzo Bettini, Viviana Bono, Ferruccio Damiani, and Nico Tanzarella. 2010. Delta-Oriented Programming of Software Product Lines. In Software Product Lines: Going Beyond, Jan Bosch and Jaejoon Lee (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 77–91.Google ScholarDigital Library
- Reimar Schröter, Norbert Siegmund, Thomas Thüm, and Gunter Saake. 2014. Feature-context Interfaces: Tailored Programming Interfaces for SPLs. In Proc. 18th Intl. Software Product Line Conference (Florence, Italy), Vol. 1. ACM, New York, NY, USA, 102–111. https://doi.org/10.1145/2648511.2648522Google ScholarDigital Library
- Maya R. A. Setyautami, Daya Adianto, and Ade Azurat. 2018. Modeling Multi Software Product Lines Using UML. In Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1 (Gothenburg, Sweden) (SPLC ’18). ACM, New York, NY, USA, 274–278.Google ScholarDigital Library
- Maya R. A. Setyautami, Reiner Hähnle, Radu Muschevici, and Ade Azurat. 2016. A UML Profile for Delta-oriented Programming to Support Software Product Line Engineering. In Proceedings of the 20th International Systems and Software Product Line Conference (Beijing, China) (SPLC ’16). ACM, New York, NY, USA, 45–49.Google ScholarDigital Library
- Maya R. A. Setyautami and Reiner Hähnle. 2020. Source Code: Variability Modules for Java (VMJ). https://doi.org/10.5281/zenodo.4352769Google Scholar
- Maya R. A. Setyautami, Rafiano R. Rubiantoro, and Ade Azurat. 2019. Model-Driven Engineering for Delta-Oriented Software Product Lines. In 2019 26th Asia-Pacific Software Engineering Conference (APSEC). IEEE, Los Alamitos, 371–377.Google Scholar
- Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, and Thomas Leich. 2014. FeatureIDE: An extensible framework for feature-oriented software development. Science of Computer Programming 79 (2014), 70 – 85. https://doi.org/10.1016/j.scico.2012.06.002 Experimental Software and Toolkits (EST 4): A special issue of the Workshop on Academic Software Development Tools and Techniques (WASDeTT-3 2010).Google ScholarDigital Library
- Tim Winkelmann, Jonathan Koscielny, Christoph Seidl, Sven Schuster, Ferruccio Damiani, and Ina Schaefer. 2016. Parametric DeltaJ 1.5: Propagating Feature Attributes into Implementation Artifacts. In Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering 2016 (SE), Wien(CEUR Workshop Proceedings, Vol. 1559). CEUR-WS.org, Aachen, 40–54.Google Scholar
Recommendations
Delta-oriented multi software product lines
SPLC '14: Proceedings of the 18th International Software Product Line Conference - Volume 1Modern software systems outgrow the scope of traditional software product lines (SPLs) resulting in multi software product lines (MSPLs) with many interconnected subsystem versions and variants. Delta-oriented programming (DOP) is a flexible, modular ...
Refactoring delta-oriented software product lines
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software developmentDelta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been ...
Towards a development process for maturing Delta-oriented software product lines
FOSD 2017: Proceedings of the 8th ACM SIGPLAN International Workshop on Feature-Oriented Software DevelopmentA Software Product Line (SPL) exploits reuse-in-the-large to enable customization by explicitly modeling commonalities and variabilities of closely related software systems. Delta-Oriented Programming (DOP) is a flexible implementation approach to SPL ...
Comments