ArchitekturentwicklungDie Architekturentwicklung beschreibt den Prozess zur Erstellung einer Softwarearchitektur. Wesentliche Teilaufgaben stellen die Identifikation von Architekturanforderungen, die Definition der Softwarearchitektur sowie deren Validierung dar. DefinitionDer Begriff Architekturentwicklung bezeichnet die Tätigkeit im Rahmen des Softwareentwurfs, in deren Rahmen die Softwarearchitektur erstellt wird [Gorton 2006, S. 91f.]. Zu den wesentlichen Teilaufgaben der Architekturentwicklung gehören
Das Ergebnis der Architekturentwicklung ist die (in Bezug auf den jeweils durchzuführenden Entwicklungsabschnitt) vollständig definierte und hinsichtlich ihrer Qualitätsmerkmale validierte Softwarearchitektur. ProzessDer Prozess der Architekturentwicklung verläuft in der Regel iterativ (vgl. Abbildung 1). Zu Beginn sind alle für die Definition der Architektur ausschlaggebenden Anforderungen aus der Anforderungsdefinition zu identifizieren und in einem Modell zusammenzufassen [Gorton 2006, S. 92].
Abb. 1: Iterativer Prozess der Architekturentwicklung [Gorton 2006, S. 92] Die Definition der Softwarearchitektur beginnt mit der Auswahl eines für das zu entwickelnde Softwaresystem geeigneten Strukturierungsparadigmas. Zu den verbreiteten Paradigmen gehören dabei insbesondere das strukturierte, objektorientierte, komponentenorientierte und das serviceorientierte Paradigma. In Abhängigkeit vom gewählten Strukturierungsparadigma sind dann die relevanten Systemteile zu identifizieren und miteinander in Beziehung zu setzen [Shaw und Garlan, S. 197]. Sog. Architekturstile und Architekturmuster liefern dabei bewährte Vorgehensweisen zur Verbindung von Systemteilen [Reussner und Hasselbring, S. 91, 319ff.]. Die definierten Strukturen sind anschließend unter Verwendung geeigneter Architektursichten und Beschreibungssprachen zu dokumentieren [Clements et al. 2003, S. 13]. Die dokumentierte Architektur ist schließlich hinsichtlich ihrer Qualitätsmerkmale zu überprüfen. Hierzu können verschiedene Evaluationsverfahren eingesetzt werden, die unter anderem das Abschätzen der Performanz, Zuverlässigkeit oder der Entwicklungskosten erlauben [Clements et al. 2001, S. 30 ff.]. Ergibt die Überprüfung, dass eine bestehende Softwarearchitektur vorhandene Anforderungen verletzt, ist diese im Rahmen einer weiteren Iteration zu modifizieren. LiteraturClements, Paul; Bachmann, Felix; Bass, Len; Garlan, David; Ivers, James; Little, Reed; Nord, Robert; Stafford, J.: Documenting Software Architectures. Addison-Wesley: Upper Saddle River 2003. Clements, Paul; Kazman, Rick; Klein, Mark: Evaluating Software Architectures – Methods and Case Studies. Addison-Wesley: Upper Saddle River 2001. Gorton, Ian: Essential Software Architecture. Springer: Heidelberg 2006. Reussner, Ralf; Hasselbring, Willi (Hrsg.): Handbuch der Software-Architektur. dpunkt: Heidelberg 2006. Shaw, Mary; Garlan, David: Software Architecture – Perspectives on an Emerging Discipline. Prentice Hall: Upper Saddle River 1996. Autoren
Dr. Sven Overhage, Universität Augsburg, Lehrstuhl für Wirtschaftsinformatik und Systems Engineering, Universitätsstr. 16, 86159 Augsburg
Prof. Dr. Klaus Turowski, Otto-von-Guericke-Universität Magdeburg, Wirtschaftsinformatik I, Very Large Business Applications Lab, UCC - SAP University Competence Center, Universitätsplatz 2, 39016 Magdeburg |
