Tipps und Tricks mit UML

Die Arbeit des Systemarchitekten mit der UML

Zu Beginn dieses Abschnitts wollen wir eine oft falsch verstandene Definition von Architektur klarstellen. Die Strukturierung eines Systems ist nur eine unter mehreren Tätigkeiten, die ein Architekt durchzuführen hat. Die Beschreibung der Komponenten innerhalb dieser Struktur, insbesondere das Beschreiben der Aufgaben der einzelnen Komponenten, ist die zweite Aufgabe in der Architektur. Die Definition der Schnittstellen zwischen den Komponenten bildet die dritte wichtige Tätigkeit der Architektur. Ziel der Architektur (sowohl in der Software- als auch in der Hardwareentwicklung) ist das Identifizieren einzelner Komponenten, die losgelöst von Ihrer Umgebung realisiert werden können. Und erst, wenn Sie die genannten Tätigkeiten (Identifizieren der Komponenten, Festlegen der Komponentenverantwortlichkeiten, Spezifizieren der Schnittstellen) durchgeführt haben, besitzen Sie alle Informationen, die für die getrennte Realisierung Ihrer Komponenten notwendig sind.

Die drei Tätigkeiten sind in ihrer Ausführung stark verbunden. Sie beeinflussen sich gegenseitig und liefern Input für die jeweils anderen Tätigkeiten. Beispielsweise beeinflusst das Finden der Komponenten logischerweise die Verteilung der Verantwortlichkeiten. Umgekehrt kann aber das Verteilen der Verantwortlichkeiten aufzeigen, dass die Komponenten an der einen oder anderen Stelle anders geschnitten werden müssen als ursprünglich geplant. Aus diesem Grund werden die Tätigkeiten in der Systemarchitektur nicht wasserfallartig ausgeführt, sondern iterativ und eng miteinander verzahnt. Als Input für die Architektur spielen neben den funktionalen Anforderungen natürlich auch nichtfunktionale Anforderungen wie Zuverlässigkeit, Zeitverhalten, Fehlertoleranz etc. eine wichtige Rolle. Auf den Einfluss der nichtfunktionalen Anforderungen auf die Architekturentscheidungen werden wir jedoch in diesem Artikel nicht weiter eingehen.

Komponenten identifizieren

Zunächst machen wir uns daran, unser großes, komplexes System zu zerlegen. Schließlich werden Sie in den seltensten Fällen einen Monolithen entwickeln, sondern ein aus einzelnen Bauteilen bestehendes System. Und genau diese kleinen, unabhängig voneinander realisierbaren Einheiten bzw. Komponenten müssen wir nun finden. Um dies zu erreichen, wird das System nach und nach vollständig zerlegt und ein hierarchischer Baum von Komponenten erzeugt. Abbildung 1 zeigt einen Ausschnitt aus einer solchen Komponentenhierarchie eines Zugtürsystems.

Abb. 1: Die Komponenten eines Zugtürsystems, hierarchisch angeordnet.

Wir werden nun die bei dieser Tätigkeit wichtigsten Gesichtspunkte anhand von verschiedenen Fragen vorstellen.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.