Konzept: 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.
Beziehungen
Hauptbeschreibung

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.

Beispiele für Analysemechanismen

  • 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 beschreiben

Analysemechanismen werden wie folgt beschrieben:

  1. 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.

  2. Abbildung der Zuordnungen von Clientklassen zu Analysemechanismen erstellen
  3. Im Begleittext beschriebene Abbildung

    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.

  4. 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.

  5. 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.