Aufgaben - etwas detaillierter
Je nach der Ausgangssituation (Neusystem, Verbesserung eines bestehenden Systems, gewünschte Einbindung von Fertigteillösungen, ...) müssen Architekten in unterschiedlicher Reihenfolge und mit unterschiedlichem Tiefgang eine Reihe von Aktivitäten durchführen:

  1. Anforderungen und Einflussfaktoren klären, insbesondere die Kontextabgrenzung sowie die notwendigen Qualitätsziele.
  2. Strukturen entwerfen
  3. Technische Konzepte entwerfen
  4. Architektur kommunizieren (und dokumentieren)
  5. Umsetzung der Architektur begleiten
  6. Architektur bewerten

Details zu den Schritten finden Sie im Anschluss. Mit etwas Eigenwerbung empfehlen wir Ihnen dazu auch unser Buch "Software-Architektur kompakt".
Stacks Image 128
1. Anforderungen und Einflussfaktoren klären

1.1 Kontext abgrenzen
Das System in Zusammenhang seiner Nachbarn beschreiben:

* logischen Kontext ermitteln (bzw. aus Anforderungsspezifikation übernehmen)
* technischen Kontext ermitteln (physische Formate von Schnittstellen und Übertragungsmedien, benachbarte Rechnersysteme)

1.2 Requirements verstehen bzw. vervollständigen
Diese Tätigkeit kann entfallen, wenn gut geschriebene und qualitätsgesicherte Anforderungen vorliegen.
Ist dies nicht der Fall, so sollten Software-Architekten insbesondere die nicht-funktionalen Anforderungen nochmals genau hinterfragen, denn sie bilden wesentliche Einflussfaktoren für die Architektur.

1.3 Architekturtreiber und Randbedingungen ermitteln
Inbesondere sollten Sie:
* Ziele für die Architektur festlegen
* vorhandene Stakeholderlisten um architekturrelevante Stakeholder ergänzen, bzw. Stakeholder ermitteln
* Fachliche Aufgabenstellung (aus der Requirements- Spezifikation) abstrahieren oder neu erstellen

1.4 Qualitätsziele konkretisieren
Stellen Sie sicher, dass Sie Ihre Qualitätsanforderungen möglichst genau beschreiben! Im Template gibt es dafür die "Qualitätsziele" (Abschnitt 1.2) sowie das Kapitel "Qualitätsszenarien".

2. Strukturen entwerfen
Trennen Sie bei dieser Arbeit besonders die fachliche Architektur von technischen Aspekten, wie das anhand der Analogie von Blutgruppen in "Moderne Software- Architektur" (J.Siedersleben) besonders gut beschrieben ist. Verwenden Sie gezielt Szenarien, um beispielhaft ausgesuchte Qualitätseigenschaften kritisch zu überprüfen. Strukturen, insbesondere die statischen Bausteinstrukturen, haben Wechselwirkungen mit den technischen Konzepten (siehe unten).

3. Technische Konzepte entwerfen
Technische Konzepte beziehen sich auf bausteinübergreifende Dinge wie Persistenz, UI, Logging, Skalierbarkeit und Ähnliche. Lesen Sie zu diesem Thema das Buch "Effektive Software- Architekturen". Viele dieser Konzepte haben massiven EInfluß auf die (Baustein-)Strukturen! Gleichen Sie diese beiden Aufgaben also häufig miteinander ab!


4. Architektur kommunizieren und dokumentieren
Mit Sichten und technischen Konzepten versuchen Sie, eine möglichst verständliche, aktuelle und konkrete Dokumentation der Software- Architekt zu erstellen. Nicht jeder im Projekt will und muss das alles lesen, verstehen und kommentieren. Deshalb gehört zu den Detailaufgaben dieser Aktivität folgende, immer wieder durchzuführenden Schritte:

4.1 Wünsche und Bedürfnisse der Stakeholder identifizieren.
Prüfen Sie regelmäßig die Stakeholderliste, ob sie vollständig ist, wer davon über welche Teile der Architektur informiert werder muss und in welcher Form dies am besten geschieht.

4.2 Architektur kommunizieren
Zu jedem beliebigen Zeitpunkt sollten Sie die vorliegenden Erkenntnisse und Entscheidungen *stakeholdergerecht* zusammenfassen und präsentieren.

Extrahieren Sie aus der Gesamtheit der Architekturinformationen die Teile in der Form, wie sie für die jeweiligen Stakeholder wichtig sind in der geeigneten Form (Präsentationen, Dokumente, Übersichtslisten, ....). Achten Sie jedoch darauf, dass diese Extrakte kein Eigenleben entwickeln und aufwendig gepflegt und versioniert werden müssen. Holen Sie das Feedback der Stakeholder ein, um es entweder in die zentralen Sichten und Aspekte einbringen zu können oder die Ziele, die Randbedingungen oder den Kontext anzupassen.

5. Umsetzung der Architektur begleiten
Wenn Ihr Team von Programmierern und Architekten die Entwurfsideen, Strukturen und Konzepte mit detailliertem Leben füllt, Source Code schreibt, dann ist die Arbeit des Architekten noch lange nicht erledigt. Die Rolle von Architekten erfordert ein ständiges Miteinander, den kontinuierlichen Abgleich von Strukturen, Konzepten und Quellcode sowie die zeitgerechte Einarbeitung berechtigter Änderungswünsche - d.h. die Anpassung der Architektur an neue Randbedingungen oder Erkenntnisse im Projekt.
Zu diesen Aufgaben gehört der Austausch mit allen Stakeholdern, die Architektur mitgestalten, also hauptsächlich mit Softwareentwicklern, aber auch mit Qualitätsmanagement, Testern, und vielen anderen. Von diesen Gruppen erhalten Architekten Feedback bezüglich der "Tragfähigkeit" und "Brauchbarkeit" der Architektur. Dieses Wissen fließt in die ständige Weitergestaltung der Architektur ein, d.h. in Änderungen von Strukturen oder Konzepten (siehe oben).

Ebenso gehört die frühzeitige Abstimmung mit Migrations- und Inbetriebnahmeteams sowie Produktion und Betrieb zu den begleitenden Aufgaben.

6. Architektur bewerten
Nutzen Sie gezielt ausgewählte Szenarien und Prototypen für die Architekturbewertung - wir empfehlen Ihnen eine qualitative Bewertung, etwa nach ATAM, kombiniert mit struktureller Vermessung von Quellcode sowie Analyse von Issue- und Bugtrackern.

Die Ergebnisse dieser Tätigkeit (offene Punkte, identifizierte Risiken, ....) sagen Ihnen, was sie weiter vorgehen sollen. Oftmals sind nur lokale Änderungen und Anpassungen an den Sichten und Konzepten vorzunehmen, manchmal müssen Sie den Regelkreis jedoch größer gestalten und aufgrund der Bewertungsergebnisse auch Ihre Ausgangssituation, die Ziele, die Randbedingungen, ... korrigieren.
© 2005-2016 Dr. Gernot Starke, Dr. Peter Hruschka Kontakt