Konzept: Komponentenspezifikation
Die Komponentenspezifikation enthält eine Beschreibung und eine Darstellung spezifischer Hardware- und Softwarekomponenten, aus denen sich das System zusammensetzt.
Beziehungen
Hauptbeschreibung

Einführung

Der Übergang von der Analyse- zur Designebene der Architektur erfordert die Bestimmung des Hardware- und Softwarekomponentendesigns. Diese Spezifikation auf Designebene setzt sich aus den zu implementierenden Komponenten zusammen: Hardware, Software und Mitarbeiter.

Hardwarekomponenten werden durch die Analyse der Standardorte, der abgeleiteten Merkmale und der auf ihnen ausgeführten Subsubsystemoperationen bestimmt. Mit diesen Informationen können Lokalitäten auf Deskriptorebene realisiert werden. Deskriptorknotendiagramme geben die Komponenten, Server, Workstation, Mitarbeiter usw. ohne spezifische Auswahl von Technologien an, die diese Komponenten implementieren. Die Abbildung zeigt ein beispielhaftes Deskriptorknotendiagramm, das das in Konzept: Lokalität gezeigte Lokalitätsdiagramm realisiert. Die Erfüllungslokalität setzt sich aus vier Komponenten zusammen: einem Warehouse-Gateway, einem Mail-/Postsystem und zwei Mitarbeitern.

Die Deskriptorknoten übernehmen die Merkmale ihrer Lokalitäten durch einen Reservierungs- bzw. Kalkulationsprozess.

Im Begleittext beschriebenes Diagramm

Hardware

Die Hardwarekomponenten der Implementierung, d. h. die tatsächlich implementierten Hardwarekomponenten, werden bestimmt, indem auf der Basis der Deskriptorsicht eine Abwägung zwischen Kosten, Leistung und Kapazität vorgenommen wird. In Wirklichkeit kann ein System mehr als eine Hardwarekonfiguration haben, die jeweils unterschiedlichen Preis/Leistungsaspekten entsprechen.  

Software

Komponenten werden bestimmt, indem eine von Klassen definiert wird und der Code dieser Klassen anschließend zu ausführbaren Dateien kompiliert und assembliert wird. Eine sorgfältig durchdachtes Softwarekomponentendesign muss eine Vielzahl von Aspekten berücksichtigen: 

  • Lokalität — wo die Komponenten ausgeführt werden müssen
  • Hosting — Prozessorinstruktionssatz und Hauptspeichereinschränkungen für den ausführenden Code
  • Gemeinsamer Zugriff — Aufteilung der Verarbeitung auf verschiedene Hosts und Hauptspeicherbereiche, um die Zuverlässigkeit und zugehörige Aspekte zu adressieren

Zu den zur Angabe der Komponenten erforderlichen Informationen gehören Übersichten über die Subsystemoperationen für die einzelnen Lokalitäten und die dort realisierten Hardwarekomponenten, Übersichten über ausgeführte Operationen für Prozesse zusammen mit Kollaborationen zur Realisierung der Subsystemoperationen, die die Klassen ergeben, die zu einer Komponentenstruktur geformt werden sollen.

In der ersten Annäherung nehmen Sie beispielsweise an, dass alle Klassen zu einer einzigen Komponente und eine 1:1-Beziehung zwischen Komponente und Subsystem aufweisen. Dies ist die Standardempfehlung, die in Richtlinie für Arbeitsergebnis: Designsubsystem gegeben wird. Suchen Sie als nächstes nach Gründen für eine weitere Aufteilung der Komponente. Falls zu den Klassen mehrere aktive Klassen gehören, die einen Prozess darstellen, prüfen Sie, ob eine Partitionierung einer aktiven Klasse (Prozess) pro Komponente in Frage kommt, wobei Sie die Klassen mit den stärksten Beziehungen zusammenfassen. Einige Klassen können von mehreren Komponenten verwendet werden. Wenn eine oder eine Gruppe dieser Klassen einen gemeinsamen Status darstellen, auf den verschiedene Komponenten zugreifen, liegt ein Fall vor, in dem die Klassen in jeweils eigene Komponenten aufgeteilt werden können. Wenn die gemeinsam genutzten Klassen statusunabhängig sind, können Sie diese in einer separaten Servicekomponente (einer statusunabhängigen Funktionskomponente) absondern, sofern sie funktional zusammengehören. Selbst in einem passiven Subsystem (ohne aktive Klassen) können Sie eine weitere Partitionierung vornehmen, indem Sie beispielsweise nach differenzierten Komponenten suchen, die wiederverwendbar sind. Zum Schluss partitionieren Sie die Komponenten erneut, um bestimmten Technologien (z. B. J2EE™-Plattform oder Microsoft® .NET), Speicherbeschränkungen (z. B. Entscheidung zwischen .exe und .dll), Einschränkungen durch Auslieferungsmedien usw. Rechnung zu tragen.  

Das Ergebnis dieser Aufgaben sind Gruppen mit spezifischen Hardware- und Softwarekomponenten, aus denen sich das System zusammensetzt.