Microservices stellen eine moderne Art von skalierbarem Softwaresystem für die Cloud dar. Dabei handelt es sich um einen architektonischen und organisatorischen Ansatz der Softwareentwicklung, bei dem Software aus kleinen, unabhängigen Diensten zusammengesetzt ist, die über APIs miteinander kommunizieren.
Ein Softwaresystem ist eine Verbindung von miteinander kommunizierenden Komponenten (Bausteinen) auf Softwarebasis, die das Zusammenwirken von Teilen eines Computersystems (eine Kombination aus Hardware und Software) ermöglichen. Der Fokus liegt dabei auf dem Zusammenwirken von Softwareelementen. Die Hardware-Software-Schnittstelle (HSI) ist zwar wichtig, aber nicht unmittelbar Gegenstand eines Softwaresystems.
Ein Softwaresystem besteht aus einer Reihe von separaten Elementen wie Hauptprogrammen, Unterprogrammen (Module), Programmbibliotheken und Konfigurationsdateien. Diese dienen der Einrichtung von Programmen, die die Struktur des Systems ermöglichen. Außerdem gehören eine technische und eine Anwender-Dokumentation dazu, die erklären, wie das System aufgebaut ist und benutzt werden kann.
Der Begriff „Softwaresystem“ darf mit den gängigen Begriffen „Computerprogramm“ und „Software“ nicht gleichgesetzt werden. Der Begriff Computerprogramm bezieht sich allgemein auf einen Satz von Instruktionen, die eine bestimmte Aufgabe ausführen. Der Begriff Softwaresystem hingegen bezeichnet ein umfassenderes Konzept mit vielen weiteren Komponenten oder ein aus Software bestehendes Produkt.
Der Software Engineering Body of Knowledge (SWEBOK) geht im Kapitel 2 Software Architecture näher auf Softwaresysteme ein und definiert die Architektur (von Software) als „die Kunst und Wissenschaft des Konstruierens – in diesem Fall von softwareintensiven Systemen.“
Betrachtungsweisen
Aus Sicht des programmiertechnischen Aspektes besteht ein Softwaresystem aus dem Zusammenwirken von Hauptprogrammen und Unterprogrammen, aus deren Gemeinsamkeit sich ein Lösungsansatz für bestehende Probleme ergibt.
Betrachtet man jedoch das Softwaresystem aus dem Blickwinkel eines Entwurfes (Konzept), besteht dieses aus mehreren Modulen, die bei einer Teilung nach dem Trennungsprinzip entstehen.
Organisationen
Das Max Planck Institute for Software Systems (SWS) beschäftigt sich mit dem Thema der Softwaresysteme.
↑Thakshila Imiya Mohottige, Artem Polyvyanyy, Colin Fidge, Rajkumar Buyya, Alistair Barros:Reengineering software systems into microservices: State-of-the-art and future directions. In: Information and Software Technology. Band183, Juli 2025, S.107732, doi:10.1016/j.infsof.2025.107732 (englisch, elsevier.com[abgerufen am 14.Oktober 2026]).
↑Vincent Bushong, Amr S. Abdelfattah, Abdullah A. Maruf, Dipta Das, Austin Lehman, Eric Jaroszewski, Michael Coffey, Tomas Cerny, Karel Frajtak, Pavel Tisnovsky, Miroslav Bures:On Microservice Analysis and Architecture Evolution: A Systematic Mapping Study. In: Applied Sciences. Band11, Nr.17, 26.August 2021, ISSN2076-3417, S.7856, doi:10.3390/app11177856 (englisch, mdpi.com[abgerufen am 14.Oktober 2026]).
↑Yamina Romani, Okba Tibermacine, Chouki Tibermacine:Towards Migrating Legacy Software Systems to Microservice-based Architectures: a Data-Centric Process for Microservice Identification. In: 2022 IEEE 19th International Conference on Software Architecture Companion (ICSA-C). März 2022, ISSN2768-4288, S.15–19, doi:10.1109/ICSA-C54293.2022.00010 (englisch, ieee.org[abgerufen am 15.Oktober 2026]).
↑Clive Rosen:Guide to Software Systems Development: Connecting Novel Theory and Current Practice. Springer International Publishing, Cham 2020, ISBN 978-3-030-39729-6, doi:10.1007/978-3-030-39730-2 (englisch, springer.com[abgerufen am 14.Oktober 2026]).
↑Gabriele Taentzer, Michael Goedicke, Barbara Paech, Kurt Schneider, Andy Schürr, Birgit Vogel-Heuser:The Nature of Software Evolution. In: Managed Software Evolution. Springer International Publishing, Cham 2019, ISBN 978-3-030-13498-3, S.9–20, doi:10.1007/978-3-030-13499-0_2 (englisch, springer.com[abgerufen am 14.Oktober 2026]).
↑Miryung Kim, Na Meng, Tianyi Zhang:Software Evolution. In: Handbook of Software Engineering. Springer International Publishing, Cham 2019, ISBN 978-3-030-00261-9, S.223–284, doi:10.1007/978-3-030-00262-6_6 (englisch, springer.com[abgerufen am 14.Oktober 2026]).