Softwarearchitektur-Management umfasst die Planung, Gestaltung, Steuerung und Kontrolle der betrieblichen Softwarearchitektur im Kontext der Unternehmensarchitektur. Es beschreibt die Verfahrensweise zur engen Verzahnung der Softwarearchitektur mit der Geschäfts- und IT-Architektur. Als verbindendes Gestaltungs- und Kontrollobjekt steht dabei der Geschäftsprozess im Zentrum der Managementtätigkeit.
Softwarearchitektur und Unternehmensarchitektur
Die betriebliche Unterstützerrolle der Informationstechnologie (IT) wird im Rahmen von Unternehmensarchitekturen aus gesamtheitlicher Perspektive betrachtet. Die Unternehmensarchitektur umfasst alle Aspekte, die notwendig sind, um mit Hilfe der IT die betrieblichen Ziele zu erreichen. Architektur wird dabei als modellhafte Beschreibung der grundlegenden Bestandteile eines Systems sowie der strukturellen Beziehungen und Zusammenhänge zwischen den einzelnen Elementen verstanden. Der Begriff der IT-Governance subsumiert in diesem Kontext alle Prozesse, Rollen und Organisationsstrukturen, die die Ausrichtung der IT an den Unternehmenszielen zur Aufgabe haben. Dabei stehen vor allem betriebswirtschaftliche Zielsetzungen wie Nutzenoptimierung und Risikominimierung im Mittelpunkt.
Innerhalb der Unternehmensarchitektur können verschiedene Abstraktionsebenen unterschieden werden (vgl. Abbildung 1).
Abb. 1: Softwarearchitektur-Management im Kontext von Unternehmenssoftwarearchitektur.
Die Strategie beschreibt die langfristigen Ziele einer Organisation und das grundsätzliche Geschäftsmodell. Diese müssen in einer Geschäftsarchitektur umgesetzt werden, die Geschäftsprozesse, Daten (Datenarchitektur), Funktionen und Organisationsstruktur des Unternehmens beschreibt. Basierend auf den Beschreibungen in der Geschäftsarchitektur wird die Prozessarchitektur abgeleitet. Diese baut auf der IT-Architektur auf, welche in Software- und Hardwarearchitektur unterteilt werden kann. Die IT-Architektur überträgt die fachlichen Anforderungen und Konzepte der Geschäfts- und Prozessarchitektur in eine verhaltens- und strukturorientierte Architektur der Informationstechnik. Die Softwarearchitektur stellt dabei den Teilbereich dar, der sich speziell mit den Softwarekomponenten beschäftigt. Sie dient als Bauplan zu Konstruktion und Wartung komplexer Softwaresysteme im Unternehmen [Dunkel, Holitschke 2003, S. 1]. Im Architekturkontext umfasst sie alle im Unternehmen zum Einsatz kommenden Softwaresysteme und deren Zusammenwirken. Sie überbrückt die Fachdomäne und die Umsetzung in Software [Starke 2015, S. 17] und betrachtet insbesondere Anwendungssoftware.
Unter Softwarearchitektur-Management versteht man die kontinuierliche Planung, Gestaltung, Steuerung und Überwachung der Anwendungssoftware sowie deren Geschäftsprozessunterstützung [Dern 2009, S.12]. Die Planungsphase leitet betriebliche Anforderungen aus den Geschäftsprozessdefinitionen ab und ergänzt sie um nicht-funktionale und ökonomische Rahmenbedingungen. Neben der eigentlichen Softwareentwicklung und ‑auswahl müssen in der Gestaltungsphase architektonische Entscheidungen für das reibungslose Zusammenspiel der Softwarekomponenten getroffen werden [Balzert 2008, S. 445-688]. Während der Ausführung (Run-Time) ist anhand technischer und betriebswirtschaftlicher Metriken die Software-Leistung zu überwachen und zu kontrollieren. Identifizierte Schwächen der Softwarekomponenten können durch systematisches Konfigurations- und Änderungsmanagement behoben werden [Balzert 2008, S. 493].
Methoden und Werkzeuge
Architektonische Rahmenwerke (Enterprise Architecture Frameworks) wie das Zachman Framework [Zachmann 1987] sowie das daraus abgeleitete Rahmenwerke TOGAF (The Open Group Architecture Framework) [The Open Group 2018] helfen bei der Abstimmung von Unternehmens- und IT-Strategie. Den Rahmenwerken ist die strukturierte, modellbasierte Beschreibung der Geschäftsstruktur und des Geschäftsverhaltens inklusive der unterstützenden IT-Architektur gemein. Hierfür werden Methoden der Informationsmodellierung wie beispielsweise ARIS oder UML angewandt. Daneben spielen insbesondere bei der Softwareauswahl Wirtschaftlichkeitsanalysen eine herausragende Rolle [Durst 2006, S. 107-163].
Aufgrund zunehmender Komplexität wächst die Bedeutung von softwaregestützten Werkzeugen zum Architekturmanagement. Gängige Modellierungssuiten wie die ARIS-Plattform basieren auf datenbankgestützten Repositorien, die das verteilte Arbeiten in Projektteams unterstützen. Darüber hinaus spielt auch die webbasierte Modellierung eine immer größere Rolle und Modellierungssoftware wird zunehmend als eine Software-as-a-Service (SaaS) zur Verfügung gestellt, z.B. von Signavio.
Modellierungswerkzeuge sollten in diesem Kontext die Richtlinien der IT-Governance unterstützen (Governance Engine). Standards wie COBIT (Control Objectives for Information and Related Technology) strukturieren die Aufgaben der IT-Governance in Prozessen und Steuerungsvorgaben, das Referenzmodell ITIL (IT Infrastructure Library) und die Norm ISO/IEC 20000 stellen Standards für das operative IT-Service-Management dar.
Neben den architektonischen Fragen im Rahmen der Software-Entwicklung hat sich das Softwarearchitektur-Management weiteren Herausforderungen zu stellen:
-
Integration heterogener Softwaresysteme, z.B. Altsysteme (Legacy Software),
-
Software-Portfolio-Management und Outsourcing-Entscheidungen bezüglich Software-Erstellung und -Betrieb,
-
Auswirkung von Mergers & Acquisitions auf die Softwaresysteme und
-
die zunehmende Nutzung betrieblicher Software-Anwendungen auf mobilen Endgeräten im Kontext der zunehmenden Flexibilisierung von Geschäftsprozessen.
In den vergangenen Jahren wurden verstärkt neuere Konzept für Softwarearchitekturen in der Wissenschaft diskutiert und in der Unternehmenspraxis umgesetzt und angewendet. Dazu zählen unter anderem Fachkomponenten, Web Services, Serviceorientierte Architekturen (SOA) und In-Memory-Datenbanken [Starke 2015, S. 335ff.]. In jüngster Zeit gewinnen darüber hinaus – vor allem vor dem Hintergrund gesteigerter Anforderungen an Flexibilität und Skalierbarkeit von Softwaresystemen – Konzepte wie Cloud Computing [Hayes 2008] mit Diensten aus den Bereichen Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS) oder Infrastructure-as-a-Service (IaaS) zunehmend an Bedeutung und üben einen erheblichen Einfluss auf die Potentiale der Softwarearchitektur-Gestaltung aber auch auf die Komplexität des Softwarearchitektur-Managements aus.
Literatur
Balzert, Helmut: Lehrbuch der Software-Technik: Softwaremanagement. 3. Auflage. Heidelberg, Berlin : Spektrum Akademischer Verlag, 2008.
Dern, Gernot: Management von IT-Architekturen: Leitlinien für die Ausrichtung, Planung und Gestaltung von Informationssystemen. 3. Auflage. Wiesbaden : Vieweg+Teubner, 2009.
Dunkel, Jürgen; Holitschke, Andreas: Softwarearchitektur für die Praxis. Berlin : Springer, 2003.
Durst, Michael: Wertorientiertes Management von IT-Architekturen. Wiesbaden : Deutscher Universitäts-Verlag, 2007.
Hayes, Brian: Cloud Computing. In: Communications of the ACM 51 (2008) 7, S. 9-11.
Niemann, Klaus: Von der Unternehmensarchitektur zur IT-Governance. Wiesbaden : Vieweg+Teubner, 2005.
Starke, Gernot: Effektive Software-Architekturen. Ein praktischer Leitfaden. 7. überarbeitete Auflage. München : Hanser, 2015.
The Open Group: TOGAF (R) 9.2. 2018. http://pubs.opengroup.org/architecture/togaf9-doc/arch/, abgerufen am 04.01.2019.
Zachman, John: A Framework for Information Systems Architecture. In: IBM Systems Journal 26 (1987), Nr. 3, S. 276-292