Pattern
Nach oben zu Einführende Modellierungskonzepte
Inhaltsverzeichnis
Pattern stellen Software-Entwicklern leistungsstarke Wiederverwendungsmöglichkeiten zur Verfügung. Sie müssen nicht jedes Entwurfsproblem von vorne angehen, sondern können die vordefinierten Pattern verwenden. Die Hierarchie der Pattern wird in der Pattern-Registrierung definiert. Mit Hilfe des Pattern-Organizers können Sie Pattern verwalten und logisch anordnen.
Pattern werden für folgende Zwecke eingesetzt:
- Erstellen häufig verwendeter Elemente.
- Ändern vorhandener Elemente.
- Implementieren nützlicher Quellcodekonstruktionen.
Pattern-Registrierung
Die Pattern-Registrierung speichert die Pattern. Die in der Pattern-Registrierung gespeicherten Pattern können im Pattern-Registrierungs-Viewer angezeigt werden. Im Dialogfeld Pattern-Registrierung lassen sich Pattern nach Kategorie, Metaklasse, Diagrammtyp, Sprache und Registrierungsstatus filtern und Pattern-Eigenschaften anzeigen. Der Pattern-Registrierungs-Viewer kann über die Kontextmenüs des Pattern-Organizers entweder mit dem Befehl Neue Verknüpfung (beim Erstellen einer neuen Verknüpfung) oder mit dem Befehl Pattern zuweisen (beim Zuweisen eines Pattern zu einer Verknüpfung) aktiviert werden.
Pattern-Organizer
Mit dem Pattern-Organizer können Sie Pattern logisch organisieren (mit virtuellen Hierarchien, Ordnern und Verknüpfungen) sowie die Eigenschaften von Pattern anzeigen und bearbeiten. Im Pattern-Organizer arbeiten Sie nicht mit den Pattern selbst, sondern mit Verknüpfungen zu Pattern. Verknüpfungen mit demselben Pattern können in mehreren Ordnern vorhanden sein.
Vorlagen
Die Modellierung unterstützt Vorlagen, um die Abwärtskompatibilität mit alten Projekten aus früheren Versionen bereitzustellen. Sie können Ordner mit den vorhandenen Quelltextvorlagen in den Unterordner Patterns
des Installationsverzeichnisses kopieren und danach mit diesen Vorlagen Elemente in Implementierungsprojekten erstellen.
Vorlagen sind Textdateien mit sprachspezifischen Dateinamenserweiterungen. Sie enthalten Makros, die beim Anwenden der Vorlagen durch die tatsächlichen Werte ersetzt werden. Aus diesem Grund können Vorlagen als Formulare für bestimmte Anwendungszwecke betrachtet werden, die jeweils nur mit den realen Werten "ausgefüllt" werden müssen. Eine Vorlage besteht aus einer Vorlagendatei mit Quelltext und einer Eigenschaftsdatei mit Makrobeschreibungen und Standardwerten.
Vorlagen werden im Unterverzeichnis Patterns\templates
der Installation mit folgender Struktur gespeichert:
\<language>\<category>\<template name>
Dabei steht <category>
für CLASS
, LINK
oder MEMBER
. Jeder <Vorlagenname>
-Ordner enthält die folgenden Dateien:
%Name%.<Erw>
<Vorlagenname>.properties
(optional)
Design-Pattern
Ein Design-Pattern ist eine XML-Datei, die Anweisungen oder Aktionen zum Erstellen von Modellierungselementen und Beziehungen sowie zum Festlegen ihrer Eigenschaften enthält. Mit jeder Anweisung wird entweder ein Modellelement oder eine Beziehung zwischen Modellelementen erstellt.
Sie können mit Modellierungselementen nicht nur neue Elemente erzeugen, sondern auch einem Container-Element Member hinzufügen. Die Eigenschaft Use Existent des auf ein bestimmtes Container-Element angewendeten Pattern, muss auf True
gesetzt sein. Sie können das Pattern auf das Container-Element anwenden, das geändert werden soll. Wenn Sie beispielsweise einer vorhandenen Klasse mehrere, als Pattern gespeicherte Methoden hinzufügen möchten, müssen Sie dieses Pattern auf das Diagramm anwenden, in dem sich die Klasse befindet.
Die Design-Pattern sind als XML-Dateien im Verzeichnis Patterns
der Installation gespeichert.
Pattern als First Class Citizens
Ein First Class Citizen (FCC)-Pattern ist ein spezielles Design-Pattern, das Informationen über den Pattern-Namen und die Rolle jedes Teilnehmers enthält. Wenn FCC-Pattern auf ein Diagramm angewendet werden, erzeugen sie eigene Entitäten und werden im Diagramm mit Beziehungslinien zu den erstellten Entitäten angezeigt. Diese Pattern ermöglichen weitere Änderungen durch Hinzufügen neuer Teilnehmer.
FCC-Pattern werden durch GoF-Pattern repräsentiert.
Ein Pattern wird in einem Diagramm als Oval mit dem Pattern-Namen und einer erweiterbaren Liste der Teilnehmer angezeigt. Jeder Teilnehmer ist mit dem Pattern-Oval durch eine Beziehung verbunden, die mit der Rolle des Teilnehmers beschriftet ist.
FCC-Pattern erzeugen Quellcode. Die von Pattern erzeugten Entitäten werden in den Diagrammdateien gespeichert.
Stub-Implementierungs-Pattern
Wenn Sie eine Vererbungsbeziehung zwischen einer Klasse und einer anderen abstrakten Klasse oder einer Schnittstelle erstellen, werden die Methoden und Member nicht automatisch den untergeordneten Klassen hinzugefügt. Dieses Problem lässt sich mit dem Stub-Implementierungs-Pattern lösen. Mit dem Pattern Implementation link and stub können Sie eine Implementierungsbeziehung und eine Stub-Implementierung in einem einzigen Arbeitsschritt erzeugen.
Ist das Ziel einer Beziehung eine Schnittstelle, legt das Stub-Implementierungs-Pattern die Ausgangsklasse an, die diese Schnittstelle implementiert, und erstellt in dieser Klasse die Stubs für alle Methoden der Schnittstelle und aller ihr übergeordneten Schnittstellen.
Wenn das Ziel einer Beziehung eine abstrakte Klasse ist, generiert das Stub-Implementierungs-Pattern in der Ausgangsklasse Code, der die Zielklassenelemente erweitert. Es generiert Stubs für alle in der Zielklasse deklarierten Konstruktoren. Diese Konstruktor-Stubs rufen die entsprechenden Konstruktoren der Zielklasse auf.
Das Pattern Implementation link and stub wird im Pattern-Experten bereitgestellt. Sie öffnen den Pattern-Experten mit den Schaltflächen Beziehung nach Pattern oder Knoten nach Pattern in der Tool-Palette oder mit dem Kontextmenübefehl Nach Pattern erstellen einer Klasse.
Das Pattern Implementation link and stub erzeugt die folgenden Member von Schnittstellen und abstrakten Klassen:
- Methoden
- Funktionen
- Subroutinen
- Eigenschaften
- Indizierer
- Ereignisse