Aktivität: Designkomponenten
Diese Aktivität präzisiert das Design des Systems.
BeschreibungProjektstrukturplanTeamzuordnungVerwendung der Arbeitsergebnisse
Beziehungen
Übergeordnete Aktivitäten
Beschreibung

Diese Aktivität hat die folgenden Ziele:

  • Definitionen der Designelemente präzisieren, indem die Details herausgearbeitet werden, wie die Designelemente das von ihnen geforderte Verhalten realisieren.
  • Anwendungsfallrealisierungen basierend auf neuen identifizierten Designelementen präzisieren und aktualisieren (d. h. Anwendungsfallrealisierungen auf dem neuesten Stand halten).
  • Design überprüfen
Eigenschaften
Ereignisgesteuert
Mehrere Vorkommen
Fortlaufend
Optional
Geplant
Wiederholt anwendbar
Mitarbeiterauswahl

In der Regel ist eine Person oder ein kleines Team für eine Gruppe von Designelementen verantwortlich, normalerweise ein oder mehrere Pakete oder Subsysteme, die andere Designelemente enthalten. Diese Person bzw. dieses Team muss die Designdetails für die im Paket bzw. Subsystem enthaltenen Elemente ausarbeiten. Die Aufgabe: Kapseldesign konzentriert sich auf die rekursive Dekomposition der Funktionalität im System anhand von Kapseln und (passiven oder Daten-) Klassen. Die Aufgabe: Klassendesign beschäftigt sich im Wesentlichen mit der Präzisierung des Designs passiver Klassendesignelemente, wohingegen die Aufgabe: Subsystemdesign sich auf die Zuordnung des Verhaltens des Subsystems selbst zu den enthaltenen Designelementen (entweder enthaltene Kapseln und Klassen oder Subsysteme) konzentriert. In der Regel werden Subsysteme primär als grobe Modellorganisationsstrukturen verwendet, während Kapseln für die Masse der Arbeiten verwendet werden und "herkömmliche" Klassen größtenteils zu passiven Informationsspeichern degradiert werden.

Die Einzelpersonen bzw. Teams, die für das Design von Kapseln verantwortlich sind, müssen Kenntnisse in der Implementierungssprache sowie Erfahrung mit Parallelitätsproblemen im Allgemeinen besitzen. Einzelpersonen, die für das Design passiver Klassen verantwortlich sind, müssen außerdem mit der Implementierungssprache sowie den Algorithmen und Technologien vertraut sein, die von der Klasse verwendet werden. Die für Subsysteme verantwortlichen Einzelpersonen oder Teams sollten eher Generalisten und in der Lage sein, Entscheidungen darüber zu treffen, wie die Funktionalität am besten auf die Designelemente verteilt wird, und abschätzen zu können, welche Auswirkungen die Kompromisse der verschiedenen Designalternativen auf das System haben.

Während die einzelnen Designelemente präzisiert werden, müssen die Anwendungsfallrealisierungen ebenfalls präzisiert werden, damit sie die Zuständigkeiten für die Designelemente widerspiegeln. Normalerweise ist eine Person oder ein kleines Team dafür verantwortlich, eine oder mehrere zugehörige Anwendungsfallrealisierungen zu präzisieren. Wenn Designelemente hinzugefügt oder präzisiert werden, müssen die Anwendungsfallrealisierungen überdacht und weiterentwickelt werden, wenn sich nicht mehr aktuell sind oder wenn am Designmodell vorgenommene Verbesserung eine Vereinfachung der Anwendungsfallrealisierungen erlauben. Die Einzelpersonen bzw. Teams, die für Anwendungsfallrealisierungen verantwortlich sind, müssen eingehender mit dem von den Anwendungsfällen erwarteten Verhalten und den Entscheidungen in den verschiedenen Ansätzen bezüglich der Verteilung dieses Verhaltens auf die Designelemente vertraut sein. Da sie für die Auswahl der Elemente verantwortlich sind, die die Anwendungsfälle ausführen, müssen sie außerdem fundierte Kenntnisse des externen (öffentlichen) Verhaltens der Designelemente selbst besitzen.

Verwendung
Anleitung zur Verwendung

Diese Arbeit wird gewöhnlich von Einzelpersonen oder kleinen Teams mit informellen gruppenübergreifenden Interaktionen ausgeführt, um die Änderungen zwischen den Teams zu kommunizieren. Wenn die Designelemente präzisiert werden, verlagern sich die Zuständigkeiten häufig und erfordern gleichzeitige Änderungen an verschiedenen Designelementen und Anwendungsfallrealisierungen. Aufgrund des Zusammenspiels der Zuständigkeiten ist für ein einzelnes Mitglied des Designteams nahezu unmöglich, vollständig isoliert zu arbeiten. Damit die Designarbeit sich vollständig auf das erforderliche Verhalten des Systems (dargestellt in Anwendungsfallrealisierungen) konzentrieren kann, kommt das folgende typische Interaktionsmuster zur Anwendung:

  • Designelemente werden von den zuständigen Personen oder Teams präzisiert.
  • Eine kleine Gruppe (ca. 2-5 Personen) arbeitet informell die Auswirkungen der neuen Designelemente auf eine Reihe vorhandener Anwendungsfallrealisierungen aus.
  • Änderungen an der Anwendungsfallrealisierung und den beteiligten Designelementen werden identifiziert.
  • Dieser Zyklus wiederholt sich, bis das gesamte erforderliche Verhalten für die Iteration entworfen ist.

Das der Prozess selbst iterativ ist, richten sich die Kriterien für das 'gesamte erforderliche Verhalten für die Iteration' nach der Position im Lebenszyklus.

  • Konzentrieren Sie sich in der Ausarbeitungsphase auf die architektonisch relevanten Verhalten. Ignorieren Sie alle anderen 'Details'.
  • In der Konstruktionsphase verlagert sich der Schwerpunkt auf die Vollständigkeit und Konsistenz des Designs, so dass am Ende der Konstruktionsphase keine ungelösten Designprobleme mehr vorhanden sind.

Das Design für eine Iteration muss vor Beginn der Implementierungs- und Testaktivitäten nicht vollständig sein. Das teilweise Implementieren und Testen eines Designs während seiner Entwicklung kann ein effektives Mittel für die Validierung und Präzisierung des Designs sein, selbst in einer Iteration.