Abstract
Software with microservice architecture consists of a collection of small and independent services. Those services can be combined and modified to serve various purposes, which leads to an increase in requirement variability. The variability needs to be documented to track any changes and optimize the reusability. The issues are related to variability management, which is one of the main concerns in software product line engineering (SPLE). We propose an approach to re-engineer microservice applications into SPLE. The process comprises variability modeling, architectural design, and product line implementation. To model the variability in microservices, we use a multi-level feature diagram. The feature diagram is combined with the UML class diagram from existing systems to design a product line architecture. We utilize the UML-DOP profile that provides an extension to represent delta-oriented concepts in the UML notation. UML diagrams with UML-DOP profile are used to capture several levels of abstractions in the architectural models. These models enable traceability from requirements to endpoints implementation. The proposed approach is shown by performing a re-engineering for existing microservice-based webshop systems. The result is a microservices-based product line that can be generated into various applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
The current version of ABS does not support multi-feature models yet. Therefore, constraints for each feature model are defined separately.
- 5.
For focusing on the microservice variability, the front end interface is not yet provided.The services can be consumed using tools such as Postman.
- 6.
A running application using ABS microservices, called AISCO (https://aisco.splelive.id/), can automatically generate charity organization web applications.
- 7.
- 8.
- 9.
References
Apel, S., Batory, D.S., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines - Concepts and Implementation. Springer (2013)
Assunção, W.K.G., Krüger, J., Mendonça, W.D.F.: Variability management meets microservices: six challenges of re-engineering microservice-based webshops. In: R.E. Lopez-Herrejon (ed.) SPLC ’20: 24th ACM International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19–23, 2020, Volume A, pp. 22:1–22:6. ACM (2020)
Assunção, W.K.G., Vergilio, S.R., Lopez-Herrejon, R.E.: Automatic extraction of product line architecture and feature models from UML class diagram variants. Inf. Softw. Technol. 117 (2020)
Classen, A., Boucher, Q., Heymans, P.: A text-based approach to feature modelling: Syntax and semantics of TVL. Sci. Comput. Program. 76(12), 1130–1143 (2011)
Clements, P., Northrop, L.M.: Software product lines - practices and patterns. SEI series in software engineering. Addison-Wesley (2002)
Czarnecki, K., Helsen, S., Eisenecker, U.W.: Staged configuration through specialization and multilevel configuration of feature models. Softw. Process. Improv. Pract. 10(2), 143–169 (2005)
Damiani, F., Hähnle, R., Kamburjan, E., Lienhardt, M.: Same same but different: Interoperability of software product line variants. In: P. Müller, I. Schaefer (eds.) Principled Software Development - Essays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday, pp. 99–117. Springer (2018)
Groher, I., Völter, M.: Aspect-oriented model-driven software product line engineering. LNCS Trans. Aspect Oriented Softw. Dev. 6, 111–152 (2009)
Hähnle, R.: The abstract behavioral specification language: A tutorial introduction. In: E. Giachino, R. Hähnle, F.S. de Boer, M.M. Bonsangue (eds.) Formal Methods for Components and Objects - 11th International Symposium, FMCO 2012, Bertinoro, Italy, September 24–28, 2012, Revised Lectures, Lecture Notes in Computer Science, vol. 7866, pp. 1–37. Springer (2012)
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), 828–852 (2012)
Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A core language for abstract behavioral specification. In: B.K. Aichernig, F.S. de Boer, M.M. Bonsangue (eds.) Formal Methods for Components and Objects - 9th International Symposium, FMCO 2010, Graz, Austria, November 29 - December 1, 2010. Revised Papers, Lecture Notes in Computer Science, vol. 6957, pp. 142–164. Springer (2010)
Krüger, J., Berger, T.: Activities and costs of re-engineering cloned variants into an integrated platform. In: M. Cordy, M. Acher, D. Beuche, G. Saake (eds.) VaMoS ’20: 14th International Working Conference on Variability Modelling of Software-Intensive Systems, Magdeburg Germany, February 5–7, 2020, pp. 21:1–21:10. ACM (2020)
Mendonça, W.D.F., Assunção, W.K.G., Estanislau, L.V., Vergilio, S.R., Garcia, A.: Towards a microservices-based product line with multi-objective evolutionary algorithms. In: IEEE Congress on Evolutionary Computation, CEC 2020, Glasgow, United Kingdom, July 19–24, 2020, pp. 1–8. IEEE (2020)
Naily, M.A., Setyautami, M.R.A., Muschevici, R., Azurat, A.: A framework for modelling variable microservices as software product lines. In: A. Cerone, M. Roveri (eds.) Software Engineering and Formal Methods - SEFM 2017 Collocated Workshops: DataMod, FAACS, MSE, CoSim-CPS, and FOCLASA, Trento, Italy, September 4–5, 2017, Revised Selected Papers, Lecture Notes in Computer Science, vol. 10729, pp. 246–261. Springer (2017)
Nesic, D., Krüger, J., Stanciulescu, S., Berger, T.: Principles of feature modeling. In: M. Dumas, D. Pfahl, S. Apel, A. Russo (eds.) Proceedings of the ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/SIGSOFT FSE 2019, Tallinn, Estonia, August 26–30, 2019, pp. 62–73. ACM (2019)
Newman, S.: Building microservices - designing fine-grained systems, 1st Edition. O’Reilly (2015). URL https://www.worldcat.org/oclc/904463848
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering - Foundations, Principles, and Techniques. Springer (2005)
Rabiser, D., Prähofer, H., Grünbacher, P., Petruzelka, M., Eder, K., Angerer, F., Kromoser, M., Grimmer, A.: Multi-purpose, multi-level feature modeling of large-scale industrial software systems. Softw. Syst. Model. 17(3), 913–938 (2018)
Reiser, M., Weber, M.: Managing highly complex product families with multi-level feature trees. In: 14th IEEE International Conference on Requirements Engineering (RE 2006), 11–15 September 2006, Minneapolis/St.Paul, Minnesota, USA, pp. 146–155. IEEE Computer Society (2006)
Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: J. Bosch, J. Lee (eds.) Software Product Lines: Going Beyond - 14th International Conference, SPLC 2010, Jeju Island, South Korea, September 13–17, 2010. Proceedings, Lecture Notes in Computer Science, vol. 6287, pp. 77–91. Springer (2010)
Setyautami, M.R.A., Adianto, D., Azurat, A.: Modeling multi software product lines using UML. In: T. Berger, P. Borba, G. Botterweck, T. Männistö, D. Benavides, S. Nadi, T. Kehrer, R. Rabiser, C. Elsner, M. Mukelabai (eds.) Proceeedings of the 22nd International Systems and Software Product Line Conference - Volume 1, SPLC 2018, Gothenburg, Sweden, September 10–14, 2018, pp. 274–278. ACM (2018)
Setyautami, M.R.A., Fadhlillah, H.S., Adianto, D., Affan, I., Azurat, A.: Solution artifacts on re-engineering microservices-based webshops challenge (2020)
Setyautami, M.R.A., Hähnle, R., Muschevici, R., Azurat, A.: A UML profile for delta-oriented programming to support software product line engineering. In: H. Mei (ed.) Proceedings of the 20th International Systems and Software Product Line Conference, SPLC 2016, Beijing, China, September 16–23, 2016, pp. 45–49. ACM (2016)
Setyautami, M.R.A., Rubiantoro, R.R., Azurat, A.: Model-driven engineering for delta-oriented software product lines. In: 26th Asia-Pacific Software Engineering Conference, APSEC 2019, Putrajaya, Malaysia, December 2–5, 2019, pp. 371–377. IEEE (2019)
Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T.: FeatureIDE: An extensible framework for feature-oriented software development. Sci. Comput. Program. 79, 70–85 (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Setyautami, M.R.A., Fadhlillah, H.S., Adianto, D., Affan, I., Azurat, A. (2023). Re-Engineering Microservice Applications into Delta-Oriented Software Product Lines. In: Lopez-Herrejon, R.E., Martinez, J., Guez Assunção, W.K., Ziadi, T., Acher, M., Vergilio, S. (eds) Handbook of Re-Engineering Software Intensive Systems into Software Product Lines. Springer, Cham. https://doi.org/10.1007/978-3-031-11686-5_11
Download citation
DOI: https://doi.org/10.1007/978-3-031-11686-5_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-11685-8
Online ISBN: 978-3-031-11686-5
eBook Packages: Computer ScienceComputer Science (R0)