en ger

MagicUWE - Referenz (German)

Dies ist eine Referenz von MagicUWEs grundlegenden Funktionalitäten (v1.3). (ältere Referenz v1.2)
("Navigationsdiagramm" bezieht sich auf die Navigationsklassendiagramme. Die Zustandsdiagramme werden als Navigation States Diagramme bezeichnet.)

Basisfunktionen

Einfügen von Klassen

Anpassen von Klassen

RIA - Eigenschaften

Navigation States Diagramme

Transformationen

Verschiedenes

Basisfunktionen

Funktionalitäten von MagicUWE Entsprechende Benutzeraktionen in MagicDraw

 Ein neues UWE Projekt erstellen

Ist MagicUWE geladen, erstellt man ein neues Projekt (Datei / Neues Projekt.. / Leeres Projekt) und antwortet mit "Yes":

Question
 

Empfehlung: Standardmäßig die Methoden nicht anzeigen lassen: (Klasse in einem Diagramm) / Symboleigenschaften / Methoden unterdrücken = true / Default Wert / OK
und die UWE Modelle erstellen, wie im Folgenden beschrieben.)

Ist MagicUWE nicht geladen, dann speichert man das UWE Profil unter MagicDraw / profiles / UWE Profile.mdzip und erstellt ein neues Projekt, zu dem man das UWE Profil hinzufügt: (Optionen / Module / Nutze Teamwork Modul / ..profiles / UWE Profile.mdzip / Finish)

 UWE Modelle

MagicUWE / Create default packages
Man erstellt die in der folgenden Abbildung gezeigten Modelle und nennt sie "Content", "Navigation", "Presentation" und "Process" etc. Dann fügt man die Stereotypen «contentModel», «NavigationModel», «PresentationModel» und «ProcessModel» usw. hinzu.

default packages

 UWE Diagramme erstellen

new diagram from the UWE menu

oder:

new Diagram from containment tree

In der Konfigurationsdatei kann eingestellt werden, ob ein UWE Untermenü genutzt werden soll.

Die jeweiligen Diagrammtypen erstellen (z.B. ein Klassendiagramm).

Empfehlung:
Am übersichtlichsten ist es, die Diagramme gleich in die passenden UWE Modelle zu verschieben und ihnen eindeutige Namen zu geben.

Einfügen von Klassen

Funktionalitäten von MagicUWE Entsprechende Benutzeraktionen in MagicDraw

 Klassen, Assoziationen, Zustände, Transitionen, Anwendungsfälle oder Aktivitäten mit UWE Stereotypen versehen

Man klickt in der Toolbar auf die gewünschte Klasse - sei es in einem Klassendiagramm:

toolbar

..in einem Aktivitätsdiagramm:

toolbar

..oder in einem Anwendungsfalldiagramm:

toolbar

..und zeichnet das Element anschließend hinein:

drawing class

Das Einfügen von Assoziationen funktioniert ebenso.
(Eine normale Klasse oder Assoziation zeichnen und anschließend darauf rechtsklicken) / Stereotyp / (Den gewünschten Stereotyp aus dem UWE Profil auswählen) / Anwenden

set stereotype

 Properties mit UWE Stereotypen zeichnen

Nachdem man auf das Objekt im Diagramm geklickt hat, das die neue Property erhalten soll, wählt man den gewünschten Stereotyp aus der (Presentation-)Toolbar und zeichnet die Property in das eben selektierte Objekt.

property and class names

Eine neue Klasse (Name: newClass) wurde erstellt und als Property mit Namen "newProperty" zu der zuerst gewählten hinzugefügt.
Die Containerklasse muss zunächst angepasst werden, damit die Properties graphisch angezeigt werden:
Symboleigenschaften / Struktur unterdrücken = false.

Man erstellt eine neue Klasse, gibt ihr einen Namen und fügt den gewünschten Stereotyp hinzu. Dann zieht man sie vom Containment-Baum in eine Klasse (oder in eine bereits bestehende Property) des offenen Diagramms und benennt die resultierende Property nach belieben und setzt auch da nocheinmal den gewünschten Stereotypen.

 Navigationsdiagramm: Access Primitive (z.B. index, query, ..) einfügen

Dies und das folgende Kontextmenü erscheint je nach Konfiguration von MagicUWE. Wenn das Menü trotz richtiger Konfiguration nicht angezeigt wird, selektiert man die Assoziation und klickt anschließend neben sie, so dass MagicDraw sie durch den zweiten Klick nicht de-selektiert.

Man wählt eine oder mehrere Assoziationen um eine neue Klasse des gewählten Stereotyps zwischen einer "Kopfklasse" und allen anderen Klassen einzufügen. Notwendigerweise müssen alle Assoziationen an einem Ende zu ein und derselben Klasse führen.

insert classes between others

Multiplizitäten, Klassennamen, die Namen der Properties und die Assoziationstypen werden entsprechend zu dem gewählten Stereotypen gesetzt.
Man erstellt und zeichnet eine neue Klasse, gibt ihr einen Namen und zieht alle Assoziationsenden zu eben dieser Klasse. In Richtung der "Kopfklasse" fügt man eine neue Assoziation oder ggf. eine Komposition ein.

Anpassen von Klassen

Funktionalitäten von MagicUWE Entsprechende Benutzeraktionen in MagicDraw

 Navigationsdiagramm, Navigation States Diagram oder Anforderungsanalyse: Tagged Values (Eigenschaften) setzen

Kontextmenü des Elements:

setTags

setRequirementsTags

(Rechtsklick auf das Element) / Spezifikation / Eigenschaften / <<navigationNode>> isHome bzw. isLandmark / Wert anlegen.
Achtung, ein Boolean mit mehr als einem Wert macht wenig Sinn!

set tags manually

 Anwendungsfalldigramm: Stereotypen übertragen

Durch einen Klick auf ein Paket erscheint unter anderem eine Option den Stereotyp auf die im Paket befindlichen Anwendungsfälle zu übertragen.

setTags

Für jeden Anwendungsfall im entsprechenden Paket:
(Eine normale Klasse oder Assoziation zeichnen und anschließend darauf rechtsklicken) / Stereotyp / (Den gewünschten Stereotyp aus dem UWE Profil auswählen) / Anwenden

set stereotype

RIA - Eigenschaften

Funktionalitäten von MagicUWE Entsprechende Benutzeraktionen in MagicDraw

 Präsentationsdiagramm: RIA Patterns zu Properties oder Klassen hinzufügen

Im Kontextmenü des Elements sind die anwendbaren RIA Patterns aufgelistet.

addRIAPatternsContextMenu

Bei Klick auf hinzuzufügendes RIA Pattern öffnet sich Auswahldialog:

addRIAPatternsDialog

 Modellierung des RIA Merkmals nur durch Tag

Bei Auswahl der Option "by tag only" wird beim Element nur der jeweilige Tag gesetzt.

tagOnly

Das Hinzufügen der Tags von Hand ist über das Eigenschaftenmenü möglich.

 Modellierung durch Hinzufügen von Abhängigkeiten

Bei Auswahl der Option "adding dependencies between parts" werden zusätzlich zum Setzen des Tags Abhängigkeiten hinzugefügt, indem ein Collaboration Use zur entsprechenden Collaboration aus dem UWE Profil mit den entsprechend abhängigen Parts erstellt wird.

Bestimmen der Typen der Parts über "Select type...":
Die ausgewählten Klassen sollten vom selben Typ sein wie die (durch die Symbole angezeigten) Typen der Parts der Collaboration aus dem UWE Profil.

typesOfParts

Ist das Element eine Property, so wird der Collaboration Use im Containment Baum der Klasse der Property zugeordnet, andernfalls dem Element selbst.

dependenciesContainmentTree

Zum Hinzufügen der Abhängigkeiten per Hand muss über ein Composite Structure Diagram der Collaboration Use mit allen Parts von Hand erstellt werden. Die zugehörige Collaboration findet man im UWE Profil im Verzeichnis UWEPatterns/RIAPatterns.

 Modellierung durch Hinzufügen von Verhalten

Bei Auswahl der Option "by adding behaviour" werden zunächst wie bei "adding dependencies" Abhängigkeiten hinzugefügt, und zusätzlich wird zur Modellierung des Verhaltens des RIA Patterns eine Zustandsmaschine aus dem UWE Profil kopiert, die nach Bedarf angepasst werden kann.

behaviour

Ist das Element eine Property, so wird die Zustandsmaschine im Containment Baum der Klasse der Property zugeordnet, andernfalls dem Element selbst.

Zum Hinzufügen des Verhaltens per Hand muss zunächst der Collaboration Use mit den Abhängigkeiten von Hand erstellt werden. Die Zustandsmaschine wird aus dem UWE Profil (Verzeichnis UWEPatterns/RIAPatterns) zu dem Präsentationselement kopiert.

 Tag und ggf. Abhängigkeiten und Verhalten wieder löschen

Ist der Tag eines RIA Patterns auf dem Element bereits gesetzt, besteht zusätzlich die Option "delete tag". Hier wird der Tag wieder gelöscht und außerdem gefragt, wie mit ggf. bereits vorhandenen Abhängigkeiten bzw. Zustandsmaschinen verfahren werden soll.

deleteTag

Das Löschen der Tags ist über das Eigenschaftsmenü des Elements möglich. Bei Properties muss hier auch bei der Klasse der Tag gelöscht werden. Abhängigkeiten und/oder Verhalten kann einfach aus dem Containmentbaum gelöscht werden.

 Menü RIA Patterns: Konfigurieren der Optionen zur Modellierung der RIA Patterns

Im Dialog "RIA Patterns Options" kann für jedes RIA Pattern eingestellt werden, welche Option standardmäßig beim Setzen des Tags ausgeführt wird. Diese Optionen können auch in der Konfigurationsdatei verändert werden.

 MenuRIAPatterns

 RIAPatternsOptions

Die eingestellten Optionen werden im Kontextmenü eines Elements durch die zugehörigen Symbole angezeigt.

RIAPatternsContextMenu

Navigation States Diagramme

Funktionalitäten von MagicUWE Entsprechende Benutzeraktionen in MagicDraw

 Navigation States Diagramm: Stereotypen und Tagged Values (Eigenschaften) von Zuständen kopieren

Tags von Zuständen können über das Kontextmenü gesetzt werden.

Über das Menü "Copy UWE stereotypes.." können die gesetzten Stereotypen und Tags des Submachine-Zustands auf die zugehörige Zustandsmaschine kopiert werden, oder auch andersherum.

copyUWEstateStersAndTags

Das Kopieren der Tags von Hand ist über das Eigenschaftenmenü möglich, wobei alle gesetzten Stereotypen und Werte beachtet werden müssen.

 Navigation States Diagramm: Setze «navigationalNode» auf Unterzuständen

Über das Kontextmenü kann man den Stereotyp «navigationalNode» zu allen Unterzuständen hinzufügen, die nicht bereits mit einem UWE navigation states Stereotyp markiert sind.

Jeder Unterzustand muss per Hand bearbeitet werden.

 Navigation States Diagramm: Überprüfung auf Veränderungen von «session» {transmissionType} in Unterzuständen

Über das Kontextmenü wird ein eigener Tab geöffnet in dem die Ergebnisse dargestellt werden. Außerdem werden die betroffenen Elemente in den Diagrammen eingerahmt, sofern "Draw rectangles.." aktiviert ist

sessionTransmissionTypeContextMenu

sessionTransmissionTypeTab

Jeder Unterzustand muss durchgegangen werden um zu sehen, ob der Tag {transmissionType} einen geänderten Wert annimmt.

Transformationen

Funktionalitäten von MagicUWE Arten von Transformationen

 Verfügbare Transformationen

Man kann alle Transformationen vom Menü aus aufrufen

transformation menu

.. und außerdem aus dem Kontextmenü des Containment-Baums:

Transformation context menu

Wenn man mehr als ein Diagramm auswählt wird jedes transformiert, das den zur gestarteten Transformation passenden UWE Diagrammtyp hat.

Innerhalb eines Klassendiagramms gibt es außerdem noch zwei Möglichkeiten einen Teil der Anforderungen in dieses Diagramm und das dazugehörige Modell zu übernehmen.

Will man zu einer bereits vorhandenen Klasse weitere modellabhängige Daten generieren lassen, so gibt es dazu einen oder mehrere Einträge im Kontextmenü der Klasse.

Transformation class context

Ist eine solche Klasse noch nicht vorhanden, dann kann man diese aus dem Kontextmenu des Diagramms heraus erzeugen.

 Transformation diagram context

Dazu erscheint zu beginn ein Fenster in welchem man aus einer Liste von verfügbaren Kandidaten für die Transformation zu einer entsprechenden Klasse auswählen kann. Außerdem kann man hier ein Paket festlegen in welches die neu erstellte Klasse abgelegt wird und einige weitere modellabhängige Optionen.

Transformation class dialog

 Content zu Navigation

Erstellt für jede Klasse des Content Diagramms eine neue Klasse (im Navigationsmodell) mit demselben Namen und fügt den «navigationClass»-Stereotyp hinzu. Die neuen Klassen werden alle in ein Navigationsdiagramm gezeichnet und man kann anschließend passende Assoziationen hinzufügen.

 Navigation zu Presentation

Erstellt für jede Klasse des Navigationsdiagramms eine neue Klasse (im Presentationmodell) mit einem Präsentationsstereotyp. Jede neue Klasse ist gleich benannt wie die Ursprungsklasse, hat aber im Gegensatz zu ihr den «presentationGroup»-Stereotyp.

 Navigation zu Process-Structure

Zeichnet jede Klasse eines Navigationsdiagramms, die einen «processClass»-Stereotyp hat in ein neues Process Structure Diagramm. Neue Klassen werden dabei nicht erstellt.

 Navigation zu Process-Flow

Erstellt aus einem Navigationsdiagramm neue Prozessflussdiagramme (Process Flow, ein UWE-Aktivitätsdiagramm) für jede processClass mit einem nichtleeren Namen. Die neuen Diagramme werden "class name"+" Workflow" genannt, so dass man leicht sehen kann welche Aktivität zu welcher Klasse gehört.

 Requirements zu Content

Erstellt ein erstes Inhaltsmodell, indem es die während der Anforderungsanalyse benutzten Objektknoten der Aktivitäten zu Klassen umwandelt. Falls ein Objektknoten dabei keinem Typ zugeordnet ist, wird für den Klassennamen der Name des Objekts übernommen, anderenfalls wird die Klasse des Objekts ins Inhaltsmodell übernommen. Die mit einem Objektknoten in Verbindung gebrachten Aktionspins werden darüber hinaus zu Attributen und Assoziationen der entsprechenden Klasse transformiert.

 Requirements zu Navigation

Das initiale Navigationsmodell wird generiert, indem die Anwendungsfälle entsprechend ihrem Stereotyp zu Navigations- oder Prozessklassen umgewandelt werden. Zu den Klassen werden außerdem die Assoziationen und Menus berechnet und die Tags der Anwendungsfälle übernommen.

 Requirements zu Presentation

Für jeden Anwendungsfall wird hiermit eine Präsentationsgruppe erstellt und mit Inhalt gefüllt, sofern eine so entstandene Gruppe überhaupt über Inhalt verfügt. Der Inhalt dieser Gruppen ergibt sich aus den Aktivitätsknoten der Anwendungsfälle. Aktionen des Typs «displayAction» werden dabei entsprechend ihrem Type-Tag in eine Präsentationsgruppenart umgewandelt, während ihre Pins und «navigationAction»-Aktionen zu Elementen innerhalb dieser Gruppen werden. Darüber hinaus werden die Tags, welche RIA-Eigenschaften dieser Elemente markieren an entsprechender Stelle übernommen.

 Requirements zu Process

Erstellt für jeden Anwendungsfall der Typs «processing» eine Prozessklasse und für jede Aktivität dieses Anwendungsfalls eine Prozessaktivität. Die Struktur der ursprünglichen Aktivität wird dabei übernommen, wobei die Elemente mit den speziell für die Anforderungsanalyse erstellten Stereotypen entfernt werden.

Für einige weitere Funktionalitäten, wie z.B. der Link zur Webseite im Hilfemenü und die About-Box sind vermutlich keine weiteren Erklärungen nötig.
Bei Fragen schreiben Sie uns bitte eine E-Mail!

Verschiedenes

MagicUWE Konfiguration

Sie können das Verhalten des Plugins festlegen, indem Sie die Datei MagicDrawHome/plugins/de.lmu.ifi.pst.uwe.MagicUWE/MagicUWE.properties editieren.

Einstellbar sind:

  • Die Namen der zu verwendenden UWE-Profildatei. Zuerst sucht MagicUWE im Projektverzeichnis und erst wenn da kein spezielles UWE-Profil zu finden ist, wird das allgemeine Profil aus dem "profiles"-Ordner von MagicDraw genommen.
  • Tastenkürzel für alle UWE-Einträge der Toolbar
  • Welche Präsentationselemente als Klasse bzw. Property von der Toolbar aus eingefügt werden können
  • Ob das Menü für neue UWE-Diagramme als Untermenü angezeigt wird (standard)
  • Die RIA Optionen, die standardmäßig bei den jeweiligen RIA Patterns ausgeführt werden
  • Wenn Sie das SDE (Service Development Environment) verwenden: Den Port auf dem MagicUWE versuchen soll den lokalen SDE Server des MagicUWE wrapper plugins zu kontaktieren.

Bekannte Bugs

  • Wenn man ein neues Diagramm erstellt, während man eine Assoziation von der MagicUWE Toolbar aus zeichnet, erscheint ein Fehler und man muss auf "letzte Aktion rückgängig machen" klicken. Das ist leider ein Bug der MagicDraw-OpenAPI und keiner des Plugins im eigentlichen Sinne. Model inconsistency dialogue
  • Properties können manchmal in andere Klassen/Properties gezeichnet werden als in die, die vorher selektiert wurde. Geschieht das, so wird die neue Klasse erstellt und zum zuvor selektierten Element hinzugefügt, aber nirgendwo gezeichnet.
    Property-drawing error
  • Nach dem Einfügen von Access Primitiven über das Kontextmenü funktioniert die Rückgängig-Funktion leider nicht ordnungsgemäß, da MagicDraw zwar das Assoziationsende der ursprünglichen Assoziation auf die alte Art und weise zeichnet, es jedoch intern nicht korrekt zu verbinden scheint. Daher wird die Assoziation zusammen mit der eingefügten Klasse aus dem Diagramm entfernt. Sie existiert allerdings noch im Containment-Baum.