Wie Templates erstellt und verwendet werden

In diesem Kapitel wird gezeigt, wie Sie Templateparameter erstellen, einschränken und zur Typisierung verwenden.

Definition von Templates

Die UML bietet eine Notation für Templateparameter an. Dabei werden die Templateparameter in einem gestrichelten Rechteck überlappend an der rechten oberen Ecke der Klasse eingetragen. Innovator nutzt im Unterschied dazu einen speziellen Abschnitt, wie er auch für Attribute und Operationen verwendet wird.

Erstellen eines formalen Templateparameters zu einer Klasse

Voraussetzungen

Die Konfiguration muss das Hinzufügen von formalen Templateparametern für das Stereotyp der Klasse oder der Schnittstelle zulassen.

Zusammenhang

Mit Klassentemplates können Sie ähnliche Verhaltensweisen in einer Klasse zusammenfassen. Die ähnlichen Verhaltensweisen werden im Template über Templateparameter festgelegt.

Beispielsweise wird die Verwaltung einer Liste immer gleich ablaufen, unabhängig davon, ob die Liste Adressen oder Zahlen enthalten soll. Die Liste wird immer ein Attribut zum Speichern der Daten sowie Operationen zum Erweitern und Auslesen der Liste benötigen. Die wesentliche Unterscheidung der Liste besteht nur in den Daten, die verwaltet werden sollen.

So gehen Sie vor

  1. Selektieren Sie die Klasse oder die Schnittstelle, für welche Sie formale Templateparameter erstellen möchten.

  2. Wählen Sie Entwurf>Diagramminhalte erzeugen>Merkmal>Templateparameter.

    Der Klasse bzw. der Schnittstelle wird im Abschnitt Templateparameter ein neuer Templateparameter hinzugefügt.

  3. Vergeben Sie für den Templateparameter einen Namen, der innerhalb des Templates eindeutig ist.

Einschränken eines formalen Templateparameters

Voraussetzungen

Dem Stereotyp des formalen Templateparameters müssen in der Konfiguration Stereotype für Classifier als einschränkende Classifier zugeordnet sein.

Zusammenhang

Sie können einem formalen Templateparameter einschränkende Classifier zuweisen.

So gehen Sie vor

  1. Selektieren Sie den Templateparameter, den Sie einschränken möchten.

  2. Klicken Sie im Toolfenster Eigenschaften in der Zeile des Merkmals Einschränkende Classifier auf die Auswahlschaltfläche .

    Der Dialog zur Auswahl der einschränkenden Classifier erscheint.

  3. Klicken Sie auf Hinzufügen.

    Der Dialog zur Auswahl eines Classifiers erscheint.

  4. Selektieren Sie den gewünschten Classifier.

  5. Bestätigen Sie mit OK.

  6. Für die Zuweisung weiterer einschränkender Classifier zu diesem formalen Templateparameter wiederholen Sie die Schritte 3 bis 5.

  7. Bestätigen Sie mit OK.

Verwenden von Templateparameterklassen zur Typisierung von Attributen und Operationsparametern

Voraussetzungen

Im Modell befindet sich ein Template, in welchem ein Attribut angelegt wurde.

Zusammenhang

Für jeden formalen Templateparameter wird automatisch eine Templateparameterklasse erstellt, deren Besitzer der Templateparameter ist. Diese Templateparameterklasse kann für die Typisierung von Attributen und Operationsparametern dieses Templates verwendet werden. Die Templateparameterklasse hat immer den Namen des entsprechenden formalen Templateparameters.

Um einem Attribut eines Templates eine Templateparameterklasse als Typ zuzuweisen gehen Sie wie folgt vor. Bei der Typauswahl für die Typisierung von Operationsparametern verfahren Sie analog.

So gehen Sie vor

  1. Selektieren Sie das Attribut im Template, welches Sie mit der Templateparameterklasse typisieren möchten.

  2. Klicken Sie im Toolfenster Eigenschaften in der Zeile des Merkmals Typ auf die Auswahlschaltfläche .

    Der Dialog Typ bestimmen für Attribut erscheint.

  3. Navigieren Sie in der Baumansicht zum Template und klappen Sie den Knoten des Templates auf.

    Unterhalb des Templates werden die formalen Templateparameter aufgelistet.

  4. Selektieren Sie den formalen Templateparameter, welcher der gewünschten Templateparameterklasse entspricht.

    In der rechten Listenansicht wird die Templateparameterklasse aufgelistet.

  5. Selektieren Sie die Templateparameterklasse.

  6. Bestätigen Sie mit OK.

Verwenden von Templates bei der Typisierung von Attributen und Operationsparametern

Voraussetzungen

Im Modell wurde ein Attribut erstellt.

Weiterhin ist im Modell ein Template vorhanden, welches dem Attribut als Typ zugewiesen werden kann.

Zusammenhang

Sie können erstellte Templates bei der Typisierung von Attributen und Operationsparametern verwenden.

Dabei weisen Sie im Dialog Templateparameter wählen den formalen Templateparameter des Templates tatsächliche Templateparameter zu. Der Dialog zur Auswahl der tatsächlichen Templateparameter wird über die Schaltfläche Templateparameter… des Dialogs Typ bestimmen für Attribut zur Typauswahl aufgerufen, wenn es sich beim selektierten Typ um ein Template handelt.

In der Kopfzeile des Dialogs Templateparameter wählen ist das Template mit seinen formalen Templateparametern dargestellt. Der erste formale Templateparameter ist selektiert. In der darunterliegenden Liste kann ein Classifier als tatsächlicher Parameter des selektierten formalen Templateparameters ausgewählt werden.

Abbildung: Dialog Templateparameter wählen

Die Verwendung von Templates bei der Typisierung von Attributen und Operationsparametern in Innovator entspricht der Deklaration von Variablen mit parametrisierten Typen in Java oder C#.

Gehen Sie analog vor, wenn Sie Templates bei der Typisierung von Operationsparametern verwenden möchten.

Hinweis

Werden den formalen Templateparametern eines Templates während der Typisierung eines Attributs oder eines Operationsparameters tatsächliche Templateparameter zugewiesen, so erstellt Innovator im Hintergrund automatisch einen gebundenen Classifier mit dem Typ und dem Stereotyp des Templates.

Besitzer des gebundenen Classifiers ist das Template. Der gebundene Classifier ist mit einer gerichteten Beziehungskante vom Typ Templatebindung mit dem Template verbunden. Die Templatebindung enthält die Informationen über die Zuordnung der tatsächlichen Templateparameter zu den formalen Templateparametern.

Die automatisch erstellten gebundenen Classifier sind im Modell nicht sichtbar. Im Dialog zur Auswahl eines Typs stehen sie jedoch zur Verfügung und können für die Typisierung weiterer Attribute verwendet werden. Wird die letzte Verwendung eines gebundenen Classifiers als Typ eines Attributs oder Operationsparameters entfernt, so wird der gebundene Classifier automatisch von Innovator gelöscht.

So gehen Sie vor

  1. Selektieren Sie ein Attribut in einem Diagramm oder im Toolfenster Details.

    Die Eigenschaften des Attributs werden im Toolfenster Eigenschaften angezeigt.

  2. Klicken Sie im Register Merkmale in der Zeile des Merkmals Typ auf die Auswahlschaltfläche .

    Der Dialog Typ bestimmen für Attribut erscheint.

  3. Navigieren Sie ggf. in der linken Baumansicht des Dialogs zum Besitzer des Templates, das Sie selektieren wollen.

  4. Selektieren Sie in der rechten Liste der Typen einen Typ, welcher ein Template ist, also formale Templateparameter besitzt.

    Die Schaltfläche Templateparameter… wird angezeigt.

  5. Klicken Sie auf Templateparameter…

    Der Dialog Templateparameter wählen erscheint.

  6. Um die Liste der angebotenen Classifier einzuschränken, geben Sie im Suchfeld einen Namensbestandteil des gewünschten Classifiers ein und klicken Sie auf .

  7. Selektieren Sie den Classifier, den Sie dem ersten formalen Templateparameter als tatsächlichen Templateparameter zuweisen möchten.

  8. Klicken Sie auf Übernehmen.

    Wenn der ausgewählte Classifier für den tatsächlichen Templateparameter selbst kein Template ist, dann wird in der Kopfzeile des Dialogs der zweite formale Templateparameter selektiert.

    Wenn der ausgewählte Classifier für den tatsächlichen Templateparameter wiederum ein Template ist, dann wird in der Kopfzeile des Dialogs der erste formale Templateparameter des ausgewählten tatsächlichen Templateparameters selektiert.

    Der ausgewählte Classifier wird als tatsächlicher Templateparameter für den ersten formalen Templateparameter übernommen.

  9. Um weitere formale Templateparameter zu übernehmen, wiederholen Sie die Schritte im Dialog Templateparameter wählen.

  10. Klicken Sie nach der Auswahl des letzten tatsächlichen Templateparameters auf Übernehmen.

    In der Kopfzeile des Dialogs ist kein formaler Templateparameter mehr selektiert.

    Die Schaltfläche Übernehmen wird deaktiviert dargestellt.

  11. Bestätigen Sie mit OK.

Verwenden vorhandener gebundener Classifier zur Typisierung von Attributen und Operationsparametern

Voraussetzungen

Im Modell befindet sich ein Template.

Das Template wurde bereits für die Typisierung eines Attributs verwendet. Dabei wurden den formalen Templateparametern des Templates tatsächliche Templateparameter zugeordnet.

Im Modell befindet sich ein Attribut, welches typisiert werden kann.

Zusammenhang

Sie können bereits vorhandene gebundene Classifier für die Typisierung weiterer Attribute und Operationsparameter verwenden. Dabei wählen Sie den bereits vorhandenen gebundenen Classifier aus und weisen ihn als Typ zu.

So gehen Sie vor

  1. Selektieren Sie ein Attribut in einem Diagramm oder im Toolfenster Details.

    Die Eigenschaften des Attributs werden im Toolfenster Eigenschaften angezeigt.

  2. Klicken Sie im Register Merkmale in der Zeile des Merkmals Typ auf die Auswahlschaltfläche .

    Der Dialog Typ bestimmen für Attribut erscheint.

  3. Selektieren Sie in der linken Baumansicht das Template, welches Sie bereits für die Typisierung eines Attributs verwendet haben.

    In der rechten Liste der Typen werden die gebundenen Classifier des selektierten Templates dargestellt.

  4. Selektieren Sie den gebundenen Classifier in der rechten Liste der Typen.

  5. Bestätigen Sie mit OK.

Zugriff auf Templates über die Server-API

Um die Informationen der Templates auszulesen oder zu manipulieren, können Sie folgende Typen aus dem Paket de.mid.innovator.srv2api.icw2class verwenden:

  • CLTemplateAbleElement

  • CLTemplateBinding

  • CLTemplateParameter

  • CLTemplateParameterAbleClass

  • CLTemplateParameterAbleElement

  • CLTemplateParameterSubstitution

  • CLTemplateAbleElementHelper

  • CLTemplateBindingHelper