Unified Modelling Language

UML für die Systemarchitektur

25.08.2011
Von Stefan  Queins

Komponenten und ihre Aufgaben

Nachdem die Komponenten identifiziert wurden, muss man sich Gedanken darüber machen, welche Rollen sie im zukünftigen System spielen werden. Daher beschäftigt sich die zweite Tätigkeit innerhalb der Systemarchitektur damit, die Aufgaben von Komponenten festzulegen. Bereits in der Systemanalyse, möglicherweise in Form von System-Use-Cases und deren Verfeinerungen, wurden die Anforderungen und gewünschten Funktionen des Systems erarbeitet. Nun geht es darum, diese Anforderungen auf die einzelnen Komponenten zu verteilen und damit auszudrücken, welche Aufgaben welche Komponenten übernehmen. Durch dieses Vorgehen ergibt sich auch ein Kriterium, wie weit Sie die Verfeinerung in der Systemanalyse treiben sollten: Eine Anforderung sollte weiter verfeinert werden, bis die sich ergebenden Anforderungen eindeutig einer Komponente des Systems zugewiesen werden kann. Bei der Entscheidung, welche Aufgabe in welcher Komponente realisiert werden soll, spielen die nichtfunktionalen Anforderungen wie Zuverlässigkeit, Zeitverhalten, Fehlertoleranz etc. eine wichtige Rolle.

Aus diesen Aufgaben werden nun die formalen Anforderungen an die Komponenten bestimmt. Diese Tätigkeit entspricht einer konventionellen Analyse der einzelnen Komponenten, ähnlich wie in der Systemanalyse die Anforderungen an das Gesamtsystem erarbeitet wurden. Aus diesem Grund lassen sich auch die bekannten Analysemethoden wie Use Case und deren Detaillierungen heranziehen. Nur eben mit dem Unterschied, dass nun nicht das gesamte System, sondern eine Komponente im Mittelpunkt der Analyse steht. Demnach werden im Use-Case-Diagramm einer Komponente als Systemgrenze die betrachtete Komponente und die Use-Cases der Komponente auftauchen. Die Akteure werden durch die Nachbarkomponenten gebildet, die an der Bearbeitung der Komponenten-Use-Cases beteiligt sind.

Als Ausgangspunkt für die Use-Case-Analyse einer Komponente werden alle zuvor zugewiesenen Aufgaben betrachtet, diese eventuell zu neuen Use Cases zusammengefasst und die Use Cases weiter detailliert. Es gibt natürlich neben der Use-Case-Analyse auch die Möglichkeit, das (gewünschte) Verhalten einer Komponente durch einen Zustandsautomaten oder einfach durch natürlichsprachliche Anforderungen zu beschreiben.