Abstract
Software architecture work should be integrated with all software development activities. In this context, the past emergence of software architecture as a discipline is discussed with emphasis on the formalization of architectural models and the reuse of reference architectures in software product line engineering. At present, various architectures are established for many domains and applications. Exemplary, we will take a closer look at recent microservice architectures with a focus on quality requirements. As a look into the future, the envisioned role of an architecture owner in agile teams, the relationship between software development and operations, achieving reliability with agile development, runtime adaptivity with architecture information in the running system, and keeping architecture knowledge up to date for long-living software systems are discussed.
Chapter PDF
Similar content being viewed by others
References
Abbott, M., Fisher, M.: The Art of Scalability, 2nd edn. Addison-Wesley, Reading (2015)
Abowd, G., Allen, R., Garlan, D.: Formalizing style to understand descriptions of software architecture. ACM Trans. Softw. Eng. Methodol. 4(4), 319–364 (1995)
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol. 6(3), 213–249 (1997)
Babar, M., Gorton, I.: Comparison of scenario-based software architecture evaluation methods. In: Proceedings of the 11th Asia-Pacific Software Engineering Conference, pp. 600–607 (2004)
Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables DevOps: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)
Bass, L., Weber, I., Zhu, L.: DevOps: A Software Architect’s Perspective. Addison-Wesley, Reading (2015)
Bencomo, N., France, R., Cheng, B.H.C., As̈mann, U. (eds.): Models@run.time. Lecture Notes in Computer Science, vol. 8378. Springer, Cham (2014)
Bennett, K.H., Rajlich, V.T.: Software maintenance and evolution: a roadmap. In: Proceedings of the Conference on The Future of Software Engineering, ICSE ’00, pp. 73–87. ACM, New York (2000)
Bernardo, M., Inverardi, P. (eds.): Formal Methods for Software Architectures. Lecture Notes in Computer Science, vol. 2804. Springer, Berlin (2003)
Bertolino, A., Corradini, F., Inverardi, P., Muccini, H.: Deriving test plans from architectural descriptions. In: Proceedings of the 22th International Conference on Software Engineering, pp. 220–229. IEEE Computer Society Press, Limerick (2000)
Bosch, J.: Design & Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Addison-Wesley, Harlow (2000)
Brunnert, A., van Hoorn, A., Willnecker, F., Danciu, A., Hasselbring, W., Heger, C., Herbst, N., Jamshidi, P., Jung, R., von Kistowski, J., Koziolek, A., Kroß, J., Spinner, S., Vögele, C., Walter, J., Wert, A.: Performance-oriented devOps: a research agenda. Technical report, Standard Performance Evaluation Corporation (SPEC) (2015)
Buschmann, F., Henney, K., Schmidt, D.C.: Pattern-Oriented Software Architecture: On Patterns and Pattern Languages, vol. 5. Wiley, Chichester (2007)
Christensen, H.B., Hansen, K.M.: An empirical investigation of architectural prototyping. J. Softw. Syst. 83(1), 133–142 (2010)
Clements, P., Shaw, M.: The golden age of software architecture revisited. IEEE Softw. 26(4), 70–72 (2009). https://doi.org/10.1109/MS.2009.83
Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley, Reading (2001)
Conway, M.E.: How do committees invent? Datamation 14(4), 28–31 (1968)
Crnkovic, I., Larsson, M., Preiss, O.: Concerning predictability in dependable component-based systems: classification of quality attributes. In: Architecting Dependable Systems II. Lecture Notes in Computer Science, vol. 3549. Springer, Berlin (2005)
Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic, London (1972)
Evans, E.: Domain-Driven Design. Addison-Wesley, Reading (2004)
Fittkau, F., Roth, S., Hasselbring, W.: ExplorViz: visual runtime behavior analysis of enterprise application landscapes. In: 23rd European Conference on Information Systems (ECIS 2015 Completed Research Papers), pp. 1–13. AIS Electronic Library (2015)
Fittkau, F., Krause, A., Hasselbring, W.: Software landscape and application visualization for system comprehension with ExplorViz. Inf. Softw. Technol. 87, 259–277 (2017)
Ford, N.: Evolutionary architecture and emergent design: environmental considerations for design, part 2 (2010). https://www.ibm.com/developerworks/java/library/j-eaed18/index.html
Frakes, W.B., Kang, K.: Software reuse research: status and future. IEEE Trans. Softw. Eng. 31(7), 529–536 (2005)
Galster, M., Weyns, D., Tofan, D., Michalik, B., Avgeriou, P.: Variability in software systems – a systematic literature review. IEEE Trans. Softw. Eng. 40(3), 282–306 (2014)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)
Goltz, U., Reussner, R., Goedicke, M., Hasselbring, W., Märtin, L., Vogel-Heuser, B.: Design for future: managed software evolution. Comput. Sci. Res. Dev. 30(3), 321–331 (2015)
Hasselbring, W.: Information system integration. Commun. ACM 43(6), 32–36 (2000)
Hasselbring, W.: Component-based software engineering. In: Handbook of Software Engineering and Knowledge Engineering, pp. 289–305. World Scientific Publishing, Singapore (2002)
Hasselbring, W.: Web data integration for E-commerce applications. IEEE Multimedia 9(1), 16–25 (2002)
Hasselbring, W.: Formalization of federated schema architectural style variability. J. Softw. Eng. Appl. 8(2), 72–92 (2015)
Hasselbring, W.: Microservices for scalability: keynote talk abstract. In: Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering (ICPE 2016), pp. 133–134. ACM, New York (2016)
Hasselbring, W., Steinacker, G.: Microservice architectures for scalability, agility and reliability in e-commerce. In: Proceedings 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), pp. 243–246. IEEE, Gothenburg (2017)
Hasselbring, W., Reussner, R., Jaekel, H., Schlegelmilch, J., Teschke, T., Krieghoff, S.: The Dublo architecture pattern for smooth migration of business information systems. In: Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), pp. 117–126. IEEE Computer Society Press, Edinburgh (2004)
Heinrich, R., Schmieders, E., Jung, R., Rostami, K., Metzger, A., Hasselbring, W., Reussner, R., Pohl, K.: Integrating run-time observations and design component models for cloud system analysis. In: Proceedings of the 9th Workshop on Models@run.time, Workshop Proceedings, vol. 1270, pp. 41–46. CEUR, Aachen (2014)
IEEE recommended practice for architectural description of software-intensive systems (2000). (also ISO/IEC DIS 25961 (2006))
Keeling, M.: Lightweight and flexible: emerging trends in software architecture from the SATURN conferences. IEEE Softw. 32(3), 7–11 (2015)
Kruchten, P., Obbink, H., Stafford, J.: The past, present, and future of software architecture. IEEE Softw. 23(2), 22–30 (2006)
Kruchten, P., Nord, R.L., Ozkaya, I.: Technical debt: from metaphor to theory and practice. IEEE Softw. 29(6), 18–21 (2012)
Lange, C.F.J., Chaudron, M.R.V., Muskens, J.: In practice: UML software architecture and design description. IEEE Softw. 23(2), 40–46 (2006)
Lewis, J., Fowler, M.: Microservices (2014). http://martinfowler.com/articles/microservices.html
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)
Meyer, M.: Continuous integration and its tools. IEEE Softw. 31(3), 14–16 (2014)
Muccini, H., Bertolino, A., Inverardi, P.: Using software architecture for code testing. IEEE Trans. Softw. Eng. 30(3), 160–171 (2004)
Müller, H., Wong, K., Tilley, S.: Dimensions of software architecture for program understanding. In: Proceedings of the International Workshop on Software Architecture (IWSA ’95), Dagstuhl (1995)
Newman, S.: Building Microservices. O’Reilly, Sebastopol (2015)
Nygard, M.T.: Release It! – Design and Deploy Production-Ready Software. The Pragmatic Bookshelf, Raleigh (2007)
Pahl, C., Giesecke, S., Hasselbring, W.: Ontology-based modelling of architectural styles. Inf. Softw. Technol. 51(12), 1739–1749 (2009)
Parnas, D.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Perry, D., Wolf, A.: Foundations for the study of software architecture. ACM SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)
Reussner, R.H., Becker, S., Happe, J., Heinrich, R., Koziolek, A., Koziolek, H., Kramer, M., Krogmann, K.: Modeling and Simulating Software Architectures: The Palladio Approach. MIT Press, Cambridge (2016)
Rodriguez, P., Haghighatkhah, A., Lwakatare, L.E., Teppola, S., Suomalainen, T., Eskeli, J., Karvonen, T., Kuvaja, P., Verner, J.M., Oivo, M.: Continuous deployment of software intensive products and services: a systematic mapping study. J. Syst. Softw. 123, 263–291 (2017)
Shaw, M.: Architectural issues in software reuse: it’s not just the functionality, it’s the packaging. Softw. Eng. Notes 20, 3–6 (1995)
Shaw, M., Clements, P.: A field guide to boxology: preliminary classification of architectural styles for software systems. In: Proceedings of the Twenty-First Annual International Computer Software and Applications Conference (COMPSAC 1997), pp. 6–13 (1997)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Upper Saddle River (1996)
Shaw, M., DeLine, R., Klein, D., Ross, T., Young, D., Zelesnik, G.: Abstractions for software architecture and tools to support them. IEEE Trans. Softw. Eng. 21(4), 314–335 (1995)
Taylor, R., Tracz, W., Coglianese, L.: Software development using domain-specific software architectures. ACM SIGSOFT Softw. Eng. Notes 20(5), 27–38 (1995)
Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice. Wiley, Hoboken (2009)
ThoughtWorks Inc.: Technology Radar (2015). http://www.thoughtworks.com/radar
Vaisman, A., Zimányi, E.: Data Warehouse Systems: Design and Implementation. Springer, Berlin (2014)
van Hoorn, A., Frey, S., Goerigk, W., Hasselbring, W., Knoche, H., Köster, S., Krause, H., Porembski, M., Stahl, T., Steinkamp, M., Wittmüss, N.: Dynamod project: dynamic analysis for model-driven software modernization. In: Proceedings of the 1st International Workshop on Model-Driven Software Migration (MDSM 2011), vol. 708, pp. 12–13. CEUR, Aachen (2011)
van Hoorn, A., Waller, J., Hasselbring, W.: Kieker: a framework for application performance monitoring and dynamic software analysis. In: Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering (ICPE 2012), pp. 247–248. ACM, New York (2012)
von Massow, R., van Hoorn, A., Hasselbring, W.: Performance simulation of runtime reconfigurable component-based software architectures. In: Crnkovic, I., Gruhn, V., Book, M. (eds.) Software Architecture (Proceedings ECSA 2011). Lecture Notes in Computer Science, vol. 6903, pp. 43–58. Springer, Heidelberg (2011)
Waller, J., Ehmke, N.C., Hasselbring, W.: Including performance benchmarks into continuous integration to enable DevOps. SIGSOFT Softw. Eng. Notes 40(2), 1–4 (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.
The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Copyright information
© 2018 The Author(s)
About this chapter
Cite this chapter
Hasselbring, W. (2018). Software Architecture: Past, Present, Future. In: Gruhn, V., Striemer, R. (eds) The Essence of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-319-73897-0_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-73897-0_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-73896-3
Online ISBN: 978-3-319-73897-0
eBook Packages: Computer ScienceComputer Science (R0)