Abstract
Software evolvability is an important quality attribute, yet one difficult to grasp. A certain base level of it is allegedly provided by Service- and Microservice-Based Systems, but many software professionals lack systematic understanding of the reasons and preconditions for this. We address this issue via the proxy of architectural modifiability tactics. By qualitatively mapping principles and patterns of Service-Oriented Architecture (SOA) and Microservices onto tactics and analyzing the results, we cannot only generate insights into service-oriented evolution qualities, but can also provide a modifiability comparison of the two popular service-based architectural styles. The results suggest that both SOA and Microservices possess several inherent qualities beneficial for software evolution. While both focus strongly on loose coupling and encapsulation, there are also differences in the way they strive for modifiability (e.g. governance vs. evolutionary design). To leverage the insights of this research, however, it is necessary to find practical ways to incorporate the results as guidance into the software development process.
Similar content being viewed by others
References
Alexander C, Ishikawa S, Silverstein M, i Ramió JR, Jacobson M, Fiksdahl-King I (1977) A pattern language. Gustavo Gili
Ali M, Elish MO (2013) A comparative literature survey of design patterns impact on software quality. In: 2013 international conference on information science and applications (ICISA), pp 1–7. https://doi.org/10.1109/ICISA.2013.6579460
Ameller D, Galster M, Avgeriou P, Franch X (2016) A survey on quality attributes in service-based systems. Softw. Qual. J. 24(2):271–299. https://doi.org/10.1007/s11219-015-9268-4
Bachmann F, Bass L, Nord R (2007) Modifiability tactics. Tech. Rep. CMU/SEI-2007-TR-002, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA
Baker S, Dobson S (2005) Comparing service-oriented and distributed object architectures. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics), vol. 3760 LNCS, pp 631–645. https://doi.org/10.1007/11575771_40
Bass L, Clements P, Kazman R (2003) Software architecture in practice, 2nd edn. Addison-Wesley Professional, Westford
Bass L, Clements P, Kazman R (2012) Software architecture in practice, 3rd edn. Addison-Wesley Professional, Westford
Bogner J, Fritzsch J, Wagner S, Zimmermann A (2018) Limiting technical debt with maintainability assurance - an industry survey on used techniques and differences with Service- and Microservice-Based Systems. In: Proceedings of the 1st international conference on technical debt (TechDebt’18). ACM, Gothenburg, Sweden. https://doi.org/10.1145/3194164.3194166
Bogner J, Zimmermann A, Wagner S (2018) Analyzing the relevance of SOA patterns for Microservice-Based Systems. In: Proceedings of the 10th central European workshop on services and their composition (ZEUS’18). CEUR-WS.org
Capelli S, Scandurra P (2016) A framework for early design and prototyping of service-oriented applications with design patterns. Comput Lang Syst Struct 46:140–166. https://doi.org/10.1016/j.cl.2016.07.001
Erl T (2005) Service-Oriented Architecture: concepts, technology, and design. Prentice Hall PTR, Upper Saddle River
Erl T (2009) SOA design patterns. Pearson Education, Boston
Erl T, Carlyle B, Pautasso C, Balasubramanian R (2012) SOA with REST: principles, patterns and constraints for building enterprise solutions with REST. The prentice hall service technology series from Thomas Erl. Pearson Education
Fowler M (2015) Microservices resource guide. URL http://martinfowler.com/microservices
Galster M, Avgeriou P (2012) Qualitative analysis of the impact of SOA patterns on quality attributes. In: 2012 12th international conference on quality software, pp 167–170. https://doi.org/10.1109/QSIC.2012.35
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Boston
Hegedűs P, Bán D, Ferenc R, Gyimóthy T (2012) Myth or reality? Analyzing the effect of design patterns on software maintainability. In: Kim Th, Ramos C, Kim Hk, Kiumi A, Mohammed S, Ślȩzak D (eds) communications in computer and information science, communications in computer and information science, vol 340, pp. 138–145. Springer, Berlin. https://doi.org/10.1007/978-3-642-35267-6_18
Mcheick H, Qi Y (2012) Quality attributes and design decisions in service-oriented computing. In: 2012 international conference on innovations in information technology (IIT), IEEE, pp 283–287. https://doi.org/10.1109/INNOVATIONS.2012.6207749
Me G, Procaccianti G, Lago P (2017) Challenges on the relationship between architectural patterns and quality attributes. In: 2017 IEEE international conference on software architecture (ICSA), IEEE, pp 141–144. https://doi.org/10.1109/ICSA.2017.19
Mirandola R, Potena P, Scandurra P (2014) Adaptation space exploration for service-oriented applications. Sci Comput Program 80(PART B):356–384. https://doi.org/10.1016/j.scico.2013.09.017
Newman S (2015) Building microservices: designing fine-grained systems, 1st edn. O’Reilly Media, Newton
Papazoglou MP (2003) Service-oriented computing: concepts, characteristics and directions. In: Proceedings of the 7th international conference on properties and applications of dielectric materials (Cat. No.03CH37417), IEEE Comput. Soc., pp 3–12. https://doi.org/10.1109/WISE.2003.1254461
Parvizi-Mosaed A, Moaven S, Habibi J, Beigi G, Naser-Shariat M (2015) Towards a self-adaptive service-oriented methodology based on extended SOMA. Front Inf Technol Electron Eng 16(1):43–69. https://doi.org/10.1631/FITEE.1400040
Parvizi-Mosaed A, Moaven S, Habibi J, Heydarnoori A (2014) Towards a tactic-based evaluation of self-adaptive software architecture availability. In: The 26th international conference on software engineering and knowledge engineering, hyatt regency, Vancouver, BC, Canada, July 1–3, 2013, pp 168–173
Perepletchikov M, Ryan C, Frampton K (2005) Comparing the impact of service-oriented and object-oriented paradigms on the structural properties of software. Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics) 3762 LNCS, pp 431–441. https://doi.org/10.1007/11575863_63
Riaz M, Breaux T, Williams L (2015) How have we evaluated software pattern application? A systematic mapping study of research design practices. Inf Softw Technol 65:14–38. https://doi.org/10.1016/j.infsof.2015.04.002
Richards M (2016) Microservices vs. Service-Oriented Architecture. O’Reilly Media, Sebastopol
Richardson C (2018) Microservices patterns. Manning Publications, Shelter Island
Rotem-Gal-Oz A (2012) SOA patterns. Manning, Shelter Island
Voelz D, Goeb A (2010) What is different in quality management for SOA? In: 2010 14th IEEE international enterprise distributed object computing conference, IEEE, pp 47–56. https://doi.org/10.1109/EDOC.2010.27
Yu Y, Fernandez-Ramil J, Lu J, Yuan P (2007) Comparing web services with other software components. In: Proceedings—2007 IEEE international conference on web services, ICWS 2007, Icws, IEEE, pp 388–397. https://doi.org/10.1109/ICWS.2007.64
Zimmermann O (2017) Microservices tenets. Comput Sci Res Dev 32(3–4):301–310. https://doi.org/10.1007/s00450-016-0337-0
Acknowledgements
This research was partially funded by the Ministry of Science of Baden-Württemberg, Germany, for the Doctoral Program “Services Computing”. http://www.services-computing.de/?lang=en.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bogner, J., Wagner, S. & Zimmermann, A. Using architectural modifiability tactics to examine evolution qualities of Service- and Microservice-Based Systems. SICS Softw.-Inensiv. Cyber-Phys. Syst. 34, 141–149 (2019). https://doi.org/10.1007/s00450-019-00402-z
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-019-00402-z