Vorgehen

Aus Software-Engineering

Wechseln zu: Navigation, Suche

Natürlich hängt das Vorgehen zur Entwicklung einer Architektur, zum Teil sogar sehr stark, von den Anforderungen an das System und der Umgebung in die das System später eingebettet sein soll ab. Trotzdem ist grundsätzlich folgendes Vorgehen zu empfehlen. Dabei kann im speziellen Fall ein Punkt hinzukommen oder wegfallen. Auch die Reihenfolge kann abweichen.

Ich versuche im folgenden das Vorgehen den Phasen einer Softwareentwicklung zuzuordnen. Damit wähle ich eine eher an Softwareentwicklungsphasen orientierte Softwareengineering zentrierte Sichtweise als eine Architektur zentrierte Sichtweise.

Inhaltsverzeichnis

Spezifikationsphase

In der Spezifikationsphase (Spezifikation) sind vorallem die USE CASES und die nicht-funktionalen Anforderungen (NFRs) für Architekten von Interesse.

Entwurfsphase

In meinen Augen ist dies die zentrale Phase für die Erstellung einer Architektur. In dieser Phase wird ein Domänenmodell erstellt. Es werden verschiedene Szenarien entwickelt die z.B. in Form von UML Sequenz-, Interaktions-, Aktivitätsdiagrammen dokumentiert werden. Außerdem werden die Grenzen des Systems festgelegt, es werden die Schnittstellen definiert, die Anbindung externer Systeme beschrieben und die Verantwortlichkeiten festgelegt. Letzteres nur falls nicht bereits in der Spezifikationsphase erfolgt. Auf Grundlage der entstandenen Beschreibungen wird ein Komponentendiagramm (nicht-formal/semi-formal/...) des Gesamtsystems erstellt und die Kommunikation zwischen den einzelnen Komponenten festgelegt. Dabei ist häufig die Anwendung bzw. Verwendung bewährter Architektur-Stile und Architektur-Patterns hilfreich. Damit steht der Grobentwurf des Systems fest.

Feinentwurf

Hier wird festgelegt welche Muster (oft als Design-Patterns bezeichnet) verwendet werden und wie die einzelnen Komponenten intern stukturiert sind. In dieser Phase könnte man bereits vom Erstellen eines Designs für die einzelnen Komponenten reden. Allerdings ist der Übergang zwischen Architektur und Design sowieso fließend und in meinen Augen weniger relevant. Es geht sowohl bei der Architektur als auch beim Design vorallem um Strukturierung und die Beziehungen zwischen den einzelnen Strukturen. Während man sich bei einer Architektur mehr auf Ebene des Gesamtsystems und seiner Komponenten befindet, ist beim Design eher die innere Struktur einer einzelnen Komponenten gemeint. Oft werden in dieser Phase, also bereits vor der Implementierungsphase, Prototypen bzw. Teile des Systems implementiert um zu prüfen ob zum z.B. bestimmte NFRs mit der entwickelten Architektur gewährleistet werden können. In dieser Phase werden oft auch Leitlinien für die Implementierung und das weitere Design festgelegt.

Deployment

Vor dem Deployment muss festgelegt werden wie die einzelnen Komponenten des Systems in die Laufzeitumgebung gebracht werden können und welche Hardwaresystem dafür verwendet werden.

Persönliche Werkzeuge