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
- Klassen (oder Assoziationen) mit UWE Stereotypen einfügen
- Properties mit UWE Stereotypen zeichnen
- Navigationsdiagramm: Access Primitive (z.B. index, query, ..) einfügen
Anpassen von Klassen
RIA - Eigenschaften
- Präsentationsdiagramm: RIA Patterns zu Properties oder Klassen hinzufügen
- Modellierung eines RIA Merkmals nur durch Tag
- Modellierung durch Hinzufügen von Abhängigkeiten
- Modellierung durch Hinzufügen von Verhalten
- Tag und ggf. Abhängigkeiten und Verhalten wieder löschen
- Menü RIA Patterns: Konfigurieren der Optionen zur Modellierung der RIA Patterns
Navigation States Diagramme
- Navigation States Diagramm: Stereotypen und Tagged Values (Eigenschaften) kopieren
- Navigation States Diagramm: Setze «navigationalNode» auf Unterzuständen
- Navigation States Diagramm: Überprüfung auf Veränderungen von «session» {transmissionType} in Unterzuständen
Transformationen
- Content zu Navigation Transformation
- Navigation zu Presentation Transformation
- Navigation zu Process-Structure Transformation
- Navigation zu Process-Flow Transformation
- Requirements zu Content Transformation
- Requirements zu Navigation Transformation
- Requirements zu Presentation Transformation
- Requirements zu Process Transformation
Verschiedenes
Basisfunktionen
Funktionalitäten von MagicUWE | Entsprechende Benutzeraktionen in MagicDraw |
---|---|
Ein neues UWE Projekt erstellenIst MagicUWE geladen, erstellt man ein neues Projekt (Datei / Neues Projekt.. / Leeres Projekt ) und antwortet mit "Yes":
Empfehlung: Standardmäßig die Methoden nicht anzeigen lassen: |
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 |
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. |
UWE Diagramme erstellenoder:
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 versehenMan klickt in der Toolbar auf die gewünschte Klasse - sei es in einem Klassendiagramm:
..in einem Aktivitätsdiagramm:
..oder in einem Anwendungsfalldiagramm:
..und zeichnet das Element anschließend hinein: 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 |
Properties mit UWE Stereotypen zeichnenNachdem 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. 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ügenDies 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. 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) setzenKontextmenü des Elements:
|
(Rechtsklick auf das Element) / Spezifikation / Eigenschaften / <<navigationNode>> isHome bzw. isLandmark / Wert anlegen . Achtung, ein Boolean mit mehr als einem Wert macht wenig Sinn! |
Anwendungsfalldigramm: Stereotypen übertragenDurch einen Klick auf ein Paket erscheint unter anderem eine Option den Stereotyp auf die im Paket befindlichen Anwendungsfälle zu übertragen.
|
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 |
RIA - Eigenschaften
Funktionalitäten von MagicUWE | Entsprechende Benutzeraktionen in MagicDraw |
---|---|
Präsentationsdiagramm: RIA Patterns zu Properties oder Klassen hinzufügenIm Kontextmenü des Elements sind die anwendbaren RIA Patterns aufgelistet.
Bei Klick auf hinzuzufügendes RIA Pattern öffnet sich Auswahldialog:
|
|
Modellierung des RIA Merkmals nur durch TagBei Auswahl der Option "by tag only" wird beim Element nur der jeweilige Tag gesetzt.
|
Das Hinzufügen der Tags von Hand ist über das Eigenschaftenmenü möglich. |
Modellierung durch Hinzufügen von AbhängigkeitenBei 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...": Ist das Element eine Property, so wird der Collaboration Use im Containment Baum der Klasse der Property zugeordnet, andernfalls dem Element selbst.
|
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 VerhaltenBei 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.
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öschenIst 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. |
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 PatternsIm 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.
Die eingestellten Optionen werden im Kontextmenü eines Elements durch die zugehörigen Symbole angezeigt. |
Navigation States Diagramme
Funktionalitäten von MagicUWE | Entsprechende Benutzeraktionen in MagicDraw |
---|---|
Navigation States Diagramm: Stereotypen und Tagged Values (Eigenschaften) von Zuständen kopierenTags 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.
|
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
|
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 TransformationenMan kann alle Transformationen vom Menü aus aufrufen
.. und außerdem aus dem Kontextmenü des Containment-Baums:
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.
Ist eine solche Klasse noch nicht vorhanden, dann kann man diese aus dem Kontextmenu des Diagramms heraus erzeugen.
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. |
Content zu NavigationErstellt 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 PresentationErstellt 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-StructureZeichnet jede Klasse eines Navigationsdiagramms, die einen «processClass»-Stereotyp hat in ein neues Process Structure Diagramm. Neue Klassen werden dabei nicht erstellt. |
|
Navigation zu Process-FlowErstellt 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 ContentErstellt 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 NavigationDas 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 PresentationFü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 ProcessErstellt 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.
- 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.
- 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.