Tipps und Tricks mit UML

Verantwortlichkeiten der Komponenten festlegen

Nachdem Sie die Komponenten identifiziert haben, müssen Sie sich Gedanken darüber machen, welche Rollen die gefundenen Komponenten in Ihrem zukünftigen System spielen werden. Daher beschäftigt sich die zweite Tätigkeit innerhalb der Systemarchitektur damit, die Aufgaben von Komponenten festzulegen.

Wie finde ich die Aufgaben der Komponenten?

In der Systemanalyse haben Sie, möglicherweise in Form von System-Use-Cases und deren Verfeinerungen, die Anforderungen und gewünschten Funktionalitäten Ihres Systems erarbeitet.

Nun geht es darum, diese Anforderungen auf die einzelnen Komponenten zu verteilen und damit auszudrücken, welche Aufgaben von welchen Komponenten übernommen werden, um die Anforderungen an das System zu realisieren.

Die Zuweisung der Aufgaben können Sie in Form eines Sequenzdiagramms dokumentieren und auf ihre Plausibilität prüfen. Komponenten erscheinen in den Sequenzdiagrammen als Kommunikationspartner (Lebenslinien). Die Nachrichten in dem Sequenzdiagramm bilden dann die Aufgaben der Komponenten ab. Eine Nachricht kann entweder der Aufruf einer Operation sein (synchrone Nachricht) oder das Senden eines Signals/Events (asynchrone Nachricht). In beiden Fällen ist die sendende Komponente dafür verantwortlich, die Nachricht zu erzeugen. Ebenso muss die empfangende Komponente in irgendeiner Weise auf die Nachricht reagieren. Im Falle einer synchronen Nachricht muss der Sender zusätzlich auf die Antwort warten und diese verarbeiten.

Kommen wir wieder zu unseren System-Use-Cases oder allgemein auf die von unserem System erwarteten Funktionen zurück.

Im einfachsten Fall wird eine solche Funktion (d.h. ein Use Case) durch eine einzige Komponente realisiert. Dieses Glück werden Sie jedoch nur selten haben. Meist müssen die Verfeinerungen der Use Cases herangezogen werden, z.B. einzelne Aktionen aus Aktivitäten. Was aber, wenn diese Verfeinerungen noch immer nicht fein genug sind, um eine eindeutige Zuordnung zu ermöglichen? In diesem Fall muss der Systemarchitekt die Tätigkeiten nochmals aufteilen, bevor er sie an Komponenten zuweisen kann.

Wie spezifiziere ich die Anforderungen an die Komponenten?

Diese Tätigkeit entspricht einer konventionellen Analyse der einzelnen Komponenten, ähnlich wie Sie in der Systemanalyse die Anforderungen an Ihr Gesamtsystem erarbeitet haben. Aus diesem Grund können Sie auch die bekannten Analysemethoden wie Use Cases und deren Detaillierungen heranziehen. Nur eben mit dem Unterschied, dass nun nicht das gesamte System, sondern nur eine Komponente im Mittelpunkt Ihrer Analyse steht.

Bei der Use-Case-Analyse einer Komponente werden Sie alle der Komponente zugewiesenen Aufgaben betrachten, diese evtl. zu neuen Use Cases zusammenfassen und die Use-Cases weiter detaillieren (entsprechend dem Vorgehen in der Systemanalyse). Abbildung 3 zeigt mögliche Komponenten-Use-Cases der in Kapitel 2.1, Abbildung 2 gefundenen Softwarekomponente Zentrale Steuerung.

Abb. 3: Die Use-Cases der Komponente Lokale Türsteuerung
Kommentare

Schreibe einen Kommentar

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