Einführung in Analysemechanismen
Ein Analysemechanismus ist ein Muster, das eine allgemeine Lösung für ein häufig auftretendes Problem darstellt.
Analysemechanismen können Strukturmuster, Verhaltensmuster usw. aufzeigen. Sie werden während der Analyse verwendet, um
die Komplexität der Analyse zu verringern und um die Konsistenz zu verbessern, indem sie den Entwicklern eine
Kurzdarstellung eines komplexen Verhaltens liefern. Die Mechanismen bieten die Möglichkeit, den Analyse auf die
Übersetzung der funktionalen Anforderungen in Softwarekonzepte zu konzentrieren, ohne sich in der Spezifikation eines
relativ komplexen Verhaltens zu verlieren, das zwar für die Unterstützung der Funktionalität erforderlich ist, aber
nicht im Mittelpunkt steht. Analysemechanismen ergeben sich häufig aus der Instanzierung von Architekturmustern oder Analysemustern.
Analysemechanismen werden hauptsächlich stellvertretend für komplexe Technologien in den mittleren und unteren
Schichten der Architektur verwendet. Durch die Verwendung der Mechanismen als "Platzhalter" in der Architektur ist das
Risiko geringer, dass der Architekturaufwand von den Details des Mechanismusverhaltens belastet wird. Beispielsweise
bestimmt die Voraussetzung von Anwendungsfällen für die Lebensdauer von Objekten, Prozesslaufzeiten sowie
Systemabschluss- und -startprozeduren die Erfordernis von Objektpersistenz. Persistenz ist ein besonders komplexer
Mechanismus, und während der Analyse ist es nicht empfehlenswert, sich darüber Gedanken machen zu müssen, wie diese
Persistenz im Einzelnen gewährleistet wird. Damit ist ein Analysemechanismus für 'Persistenz' geboren, der es uns
erlaubt, von persistenten Objekten zu sprechen und die Anforderungen für den Persistenzmechanismus zu erfassen, ohne
sich darüber Gedanken machen zu müssen, welche Funktionen der Persistenzmechanismus genau ausführt oder wie er
funktioniert.
Analysemechanismen stehen in der Regel, aber nicht zwingenderweise mit dem Problemgebiet in Verbindung. Vielmehr sind
sie Konzepte der "Computerwissenschaft". Deshalb sind sie typischerweise in den mittleren und unteren Schichten der
Architektur angesiedelt. Sie stellen spezifische Verhaltensweisen für eine gebietsbezogene Klasse oder ein
gebietsbezogenes Subsystem dar oder entsprechen der Kooperationsimplementierung zwischen Klassen und/oder Subsystemen.
Sie können als Framework
implementiert werden. Beispiele hierfür sind Mechanismen für die Verarbeitung der Persistenz, für die Kommunikation
zwischen Prozessen, für die Verarbeitung von Fehlern und Funktionsstörungen, für die Benachrichtigung und für das
Messaging, um nur einige wenige zu nennen.
Wenn jedoch weitere Analysemuster in verschiedenen Gebieten eingerichtet werden, führt die
teilweise oder vollständige Instanzierung dieser Muster in Analysemechanismen dazu, dass diese Mechanismen in den
oberen Schichten der Architektur erscheinen.
-
Persistenz
Für alle Klassen, deren Instanzen persistent werden können, muss Folgendes angegeben werden:
-
Granularität: Größenbereich für Objekte, die persistent festgeschrieben werden sollen
-
Menge: Anzahl der Objekte, die persistent festgeschrieben werden soll
-
Dauer: Wie lange muss das Objekt in der Regel aufbewahrt werden?
-
Abrufmechanismus: Wie wird ein bestimmtes Objekt eindeutig identifiziert und abgerufen?
-
Aktualisierungsfrequenz: Sind die Objekte mehr oder weniger konstant, werden Sie permanent
aktualisiert?
-
Zuverlässigkeit: Sollen die Objekte einen Absturz des Prozesses, des Prozessors oder des gesamten
Systems überleben?
-
-
Kommunikation zwischen Prozessen
Für alle Modellelemente, die mit Komponenten oder Services kommunizieren müssen, die in anderen Prozessen oder
Threads ausgeführt werden, muss Folgendes angegeben werden:
-
Latenzzeit: Wie schnell müssen Prozesse mit anderen kommunizieren?
-
Synchronität: Asynchrone Übertragung
-
Größe der Nachricht: Ein Bereich eignet sich möglicherweise besser als ein Einzelwert.
-
Protokoll, Ablaufsteuerung, Pufferung usw.
Weitere typische Mechanismen:
-
Nachrichtenweiterleitung
-
Prozessteuerung und Synchronisation
-
Transaktionsverwaltung
-
Informationsaustausch
-
Sicherheit
-
Redundanz
-
Fehlerberichte
-
Formatkonvertierung
Analysemechanismen werden wie folgt beschrieben:
-
Alle Analysemechanismen in einer Liste erfassen
Dieselben Analysemechanismen können in jeweils anderen Realisierungen von Anwendungsfällen oder bei
unterschiedlichen Entwicklern unter verschiedenen Namen vorkommen. Beispielsweise können Speicher,
Persistenz, Datenbank und Repository auf einen Persistenzmechanismus und Kommunikation
zwischen Prozessen, Nachrichtenübergabe und ferner Aufruf auf einen Mechanismus für die
Kommunikation zwischen Prozessen verweisen.
-
-
Abbildung der Zuordnungen von Clientklassen zu Analysemechanismen erstellen
-
Die angegebenen Klassen und Subsysteme müssen den angegebenen Analysemechanismen zugeordnet werden. Die Pfeile
zeigen an, dass die Klasse den Mechanismus verwendet. Es ist nicht ungewöhnlich, dass eine Clientklasse die
Services mehrerer Mechanismen benötigt.
-
Merkmale der Analysemechanismen angeben
Zur Unterscheidung potenzieller Entwürfe müssen Sie die Hauptmerkmale für die Qualifizierung jedes
Analysemechanismus angeben. Diese Merkmale betreffen zum Teil die Funktionalität und zum Teil Größe und
Leistung.
-
-
Modell mit Kollaborationen
Nach der Angabe und Benennung der Analysemechanismen müssen diese durch Kollaboration eines 'Verbunds von
Klassen' (siehe [BOO98])
modelliert werden, von denen einige nicht direkt Anwendungsfunktionen liefern, sondern nur für die
Unterstützung der Anwendungsfunktionen vorhanden sind. Sehr häufig befinden sich diese 'Unterstützungsklassen'
in den mittleren und unteren Schichten einer geschichteten Architektur und stellen damit einen allgemeinen
Unterstützungsservice für alle Klassen auf Anwendungsebene dar.
Wenn der angegebene Mechanismus allgemein genug ist, können unter Umständen Muster vorhanden sein, aus denen der Mechanismus instanziert werden
kann, indem die vorhandenen Klassen gebunden und neue Klassen, die das Muster erfordert, implementiert werden.
Ein so erzeugter Analysemechanismus ist abstrakt und muss durch Design und Implementierung optimiert werden.
Analysemechanismen werden im Softwarearchitekturdokument beschrieben. Mit zunehmender Reife der
Softwarearchitektur enthält das Softwarearchitekturdokument eine Beziehung (oder Zuordnung) zwischen
Analysemechanismen und Designmechanismen und Implementierungsmechanismen sowie die zugehörige Begründung für die
ausgewählten Optionen.
|