18
Marcel Schreeck, B.Sc. MagicDraw MagicDraw MagicDraw MagicDraw Diese Anleitung fußt auf MagicDraw 17.0.x des Herstellers NoMagic. Sie bezieht sich auf die Bedürfnisse der Praktikumsdurchführung und erhebt daher keinen Anspruch auf Vollständigkeit. Wenn Sie MagicDraw auf ihrem eigenen Rechner installieren wollen, um das Praktikum zuhause weiterzuentwickeln, verwenden Sie bitte unbedingt die selbe Version wie im Labor. Die Kompatibilität zwischen den Versionen ist leider nicht immer gegeben. Inhaltsverzeichnis 1.Installation....................................................................................................................................2 1.1.Download...............................................................................................................................2 1.2.Windows................................................................................................................................2 1.3.Linux......................................................................................................................................2 1.4.Initiale Einrichtung...............................................................................................................3 1.4.1.Lizenz.............................................................................................................................3 1.4.2.Projekttemplate............................................................................................................3 1.4.3.Erster Start....................................................................................................................3 1.5.Verwendung in anderen Laboren des Fachbereichs..........................................................3 2.Übersicht MagicDraw..................................................................................................................4 3.Projekt anlegen............................................................................................................................6 4.Usecasediagramme....................................................................................................................6 4.1.Use Case Scenario................................................................................................................7 5.Klassendiagramme.....................................................................................................................7 5.1.Klassen..................................................................................................................................7 5.1.1.Attribute.........................................................................................................................8 5.1.2.Operationen...................................................................................................................9 5.1.3.Automatisierte Funktionen...........................................................................................9 5.2.Assoziationen......................................................................................................................10 5.3.Allgemein.............................................................................................................................11 6.Sequenzdiagramme...................................................................................................................13 7.Codegenerierung.......................................................................................................................13 7.1.Aufsetzen der Codegenerierung........................................................................................13 7.2.Überprüfung des Modells..................................................................................................15 7.3.Erzeugen von Modellteilen.................................................................................................15 7.4.Reverse Engineering..........................................................................................................16 8.Dokumentation...........................................................................................................................16 9.Tastenkürzel...............................................................................................................................17 Anleitung MagicDraw 1 Version 17.12.12

MagicDraw - fbi.h-da.de · Marcel Schreeck, B.Sc. MagicDraw Diese Anleitung fußt auf MagicDraw 17.0.x des Herstellers NoMagic. Sie bezieht sich auf die Bedürfnisse der

Embed Size (px)

Citation preview

Marcel Schreeck, B.Sc.

MagicDrawMagicDrawMagicDrawMagicDraw

Diese Anleitung fußt auf MagicDraw 17.0.x des Herstellers NoMagic. Sie bezieht sich auf die Bedürfnisse der Praktikumsdurchführung und erhebt daher keinen Anspruch auf Vollständigkeit.Wenn Sie MagicDraw auf ihrem eigenen Rechner installieren wollen, um das Praktikum zuhause weiterzuentwickeln, verwenden Sie bitte unbedingt die selbe Version wie im Labor. Die Kompatibilität zwischen den Versionen ist leider nicht immer gegeben.

Inhaltsverzeichnis

1.Installation....................................................................................................................................21.1.Download...............................................................................................................................21.2.Windows................................................................................................................................21.3.Linux......................................................................................................................................21.4.Initiale Einrichtung...............................................................................................................3

1.4.1.Lizenz.............................................................................................................................31.4.2.Projekttemplate............................................................................................................31.4.3.Erster Start....................................................................................................................3

1.5.Verwendung in anderen Laboren des Fachbereichs..........................................................32.Übersicht MagicDraw..................................................................................................................43.Projekt anlegen............................................................................................................................64.Usecasediagramme....................................................................................................................6

4.1.Use Case Scenario................................................................................................................75.Klassendiagramme.....................................................................................................................7

5.1.Klassen..................................................................................................................................75.1.1.Attribute.........................................................................................................................85.1.2.Operationen...................................................................................................................95.1.3.Automatisierte Funktionen...........................................................................................9

5.2.Assoziationen......................................................................................................................105.3.Allgemein.............................................................................................................................11

6.Sequenzdiagramme...................................................................................................................137.Codegenerierung.......................................................................................................................13

7.1.Aufsetzen der Codegenerierung........................................................................................137.2.Überprüfung des Modells..................................................................................................157.3.Erzeugen von Modellteilen.................................................................................................157.4.Reverse Engineering..........................................................................................................16

8.Dokumentation...........................................................................................................................169.Tastenkürzel...............................................................................................................................17

Anleitung MagicDraw 1 Version 17.12.12

Marcel Schreeck, B.Sc.

1.1.1.1.InstallationInstallationInstallationInstallation

In diesem Kapitel wird die Installation von MagicDraw auf dem eigenen Rechner beschrieben. Auf den Praktikumsrechner ist das Tool bereits vollständig eingerichtet.

1.1.1.1.1.1.1.1.DownloadDownloadDownloadDownload

Um MagicDraw auf dem eigenen Rechner verwenden zu können, müssen Sie eine Demoversion vom Hersteller herunterladen: https://www.magicdraw.com/download

Dort muss dann die Version 17.0.2 und Enterprise ausgewählt werden. Ein Demolizenzkey wird Ihnen zugeschickt.

1.2.1.2.1.2.1.2.WindowsWindowsWindowsWindows

Um die Installation zu starten, muss die Installationsdatei ausgeführt werden. Nach dem Entpacken der Daten werden Sie von einem Installationsassistenten geleitet. Sollten Sie kein Java auf ihrem Rechner installiert haben, so können Sie dies mit dem Installer vollziehen. Anderenfalls sollten die automatisch ausgewählten Pfade korrekt sein.

Die Installation selbst kann bis zu einigen Minuten dauern. Danach kann das Tool sofort gestartet werden.

1.3.1.3.1.3.1.3.LinuxLinuxLinuxLinux

Sollte die Installationsdatei unter Linux nicht automatisch als ausführbares Shell Script erkannt werden, so muss dies mit dem Terminal angepasst werden. Navigieren Sie im Terminal mit cd zu dem entsprechenden Verzeichnis. Dort müssen Sie dann die Rechte der Datei ändern. Dies geschieht mit chmod 770 DATEINAME. Nun kann die Datei mit ./DATEINAME ausgeführt werden.

Die Installation selbst ist durch einen Assistenten geführt und ist mit der Windows Installation identisch.

Anleitung MagicDraw 2 Version 17.12.12

Marcel Schreeck, B.Sc.

1.4.1.4.1.4.1.4.Initiale EinrichtungInitiale EinrichtungInitiale EinrichtungInitiale Einrichtung

1.4.1.1.4.1.1.4.1.1.4.1.LizenzLizenzLizenzLizenz

Die Lizenz kann nach erfolgreicher Anmeldung mit dem ist-Account an folgender Seite heruntergeladen werden: https://www.fbi.h-da.de/labore/case/laborausstattung/magicdraw/magicdraw-zu-hause.html

Dort kann auch das Magicdraw-Template des Fachbereichs heruntergeladen werden. Dieses sollte am besten direkt in den templates Ordner der Magicdraw-Installation kopiert werden und dort das template.mdzip ersetzen. In dem Template sind einige Einstellungen und Elemente vorkonfiguriert um die Arbeit zu erleichtern.

1.4.2.1.4.2.1.4.2.1.4.2.ProjekttemplateProjekttemplateProjekttemplateProjekttemplate

Am Fachbereich Informatik setzen wir ein speziell konfiguriertes Template ein. Dieses muss aus dem Internet geladen werden und mit dem Namen template.mdzip unter <Installationsverzeichnis>/templates/ gespeichert werden. Dabei muss das alte Standardtemplate überschrieben werden.

1.4.3.1.4.3.1.4.3.1.4.3.Erster StartErster StartErster StartErster Start

Beim ersten Start wird nach importierbaren Einstellungen gefragt. Hier sollten die Standardeinstellungen gewählt werden.

Als Anwendungsperspektive wählen Sie Software Architekt da diese die Funktionen schnell zur Verfügung stellt, die wir im Praktikum verwenden. Des Weiteren sollte die Experten Ansicht eingestellt werden um sofort alle Einstellungen sehen zu können. Dies geschieht unter Options > Enivroment … > Experience und dort dann mit einem Häkchen für „Main Menu Expert Mode“ und „Context Menu Expert Mode“.

1.5.1.5.1.5.1.5.Verwendung in anderen Laboren des FachbereichsVerwendung in anderen Laboren des FachbereichsVerwendung in anderen Laboren des FachbereichsVerwendung in anderen Laboren des Fachbereichs

Auch in anderen Laboren des Fachbereichs kann MagicDraw für die Modellierung von Softwaresystemen verwendet werden. In einem Linux Labor müssen Sie folgende Befehlszeile in der Konsole ausführen:

./home/groups/LabDisk/CASE/bin/mDraw

In den Windows Laboren kann das Programm mit einem Doppelklick auf das Symbol unter Y:\CASE\MagicDraw_UML_Win\bin\MagicDraw_Start.bat

Anleitung MagicDraw 3 Version 17.12.12

Marcel Schreeck, B.Sc.

gestartet werden.

2.2.2.2.Übersicht MagicDrawÜbersicht MagicDrawÜbersicht MagicDrawÜbersicht MagicDraw

Abb1: Abb1: Abb1: Abb1: Übersicht MagicDraw

MagicDraw ist ein kommerzielles CASE-Tool der Firma No Magic. Nachfolgend sind einige grundlegende Informationen zu MagicDraw dargestellt. Weitere Erläuterungen finden Sie auf den Web-Seiten des CASE-Labors.

Start des ProgrammsStart des ProgrammsStart des ProgrammsStart des Programms

Im CASE-Labor sind die Rechner so eingerichtet, das MagicDraw direkt über das Startmenü unter Development gestartet werden kann.

Auf Ihrem eigenen Rechner müssen Sie den Pfad wählen, unter dem Sie MagicDraw installiert haben. Unter Windows sollte ein Eintrag im Startmenü angelegt worden sein.

Anleitung MagicDraw 4 Version 17.12.12

Marcel Schreeck, B.Sc.

ContainmentbaumContainmentbaumContainmentbaumContainmentbaum

Der Modell-Browser stellt alle Elemente des Modells dar. Er zeigt die Pakete des Modells und die Elemente, die den Paketen zugeordnet sind. Er stellt also das Inhaltsverzeichnis des Modells dar.

Der Modellbaum zeigt die Struktur des Modells. Der Modellinhalt ist in weitere Modelle zerlegt um die Übersicht zu erhöhen. Diese Teilbäume können auf- und zugeklappt werden.

DetailansichtDetailansichtDetailansichtDetailansicht

Hier werden die Diagramm und die modellierten Elemente dargestellt. Die Elemente können dabei frei angeordnet und erweitert werden.

Eigenschaften/Dokumentation/ZoomEigenschaften/Dokumentation/ZoomEigenschaften/Dokumentation/ZoomEigenschaften/Dokumentation/Zoom

Diese Fenstergruppe beschleunigt die Arbeit ungemein. Hier können nach Auswahl eines Objektes in der Detailansicht weitere Eigenschaften manipuliert, eine Dokumentation für das Objekt verfasst, oder sich Überblick über das gesamte Diagramm verschafft werden.

ErgebnisbereichErgebnisbereichErgebnisbereichErgebnisbereich

Hier sind Meldungen des System zu finden. Gerade bei der Codegenerierung und beim Reverse Engineering werden hier wichtige Informationen aufgezeigt.

FensterleisteFensterleisteFensterleisteFensterleiste

MagicDraw kann mehrere Diagramme gleichzeitig geöffnet halten. Sie werden oberhalb der Detailansicht aufgelistet. Sie können per einfachen Klick auf den Diagrammnamen geöffnet werden.

SpezifikationenSpezifikationenSpezifikationenSpezifikationen

Die Spezifikationen eines Objektes können im Diagramm nach dessen Auswahl per Eingabe-Taste, oder via Rechtsklick Spezifikation geöffnet werden.

Mehrere ProjekteMehrere ProjekteMehrere ProjekteMehrere Projekte

MagicDraw kann mehrere Projekte gleichzeitig geöffnet halten. Zum wechseln zwischen diesen Projekten muss das Projekt aus der Dropdownbox oben(siehe 1) gewählt werden. Zum Schließen einzelner Projekte muss das x oben rechts(siehe 2) unter dem x zum Schließen des Fensters gewählt werden. Wenn neue Projekte geöffnet werden, werden die alten dabei nicht automatisch geschlossen, sodass zwischen ihnen gewechselt werden kann.

Anleitung MagicDraw 5 Version 17.12.12

Marcel Schreeck, B.Sc.

3.3.3.3.Projekt anlegenProjekt anlegenProjekt anlegenProjekt anlegen

Nach dem Start des Programms erscheint der Willkommens-Bildschirm. Hier kann nun mit STRGSTRGSTRGSTRG+NNNN oder durch Klick oben Links auf das leere Blatt ein neues Projekt angelegt werden.

Nach dem das Standardtemplate von MagicDraw durch das Fachbereichstemplate ersetzt wurde(siehe Punkt 1.4.2Projekttemplate), kann ein normales UML Project erstellt werden. Dem Projekt müssen Sie einen selbst sprechenden Namen geben und einen Speicherpfad wählen. Wenn Sie als Speicherpfad im Labor ihr Homeverzeichnis (Windows: Eigene Dateien) angeben, so wird das Projekt automatisch auf dem Userv gespeichert. Eine lokale Speicherung auf den Laborrechnern ist nicht ratsam, da diese Daten regelmäßig gelöscht werden.

4.4.4.4.UsecasediagrammeUsecasediagrammeUsecasediagrammeUsecasediagramme

Ein neues Usecasediagramm kann einfach mit dem Klick auf den Button oben erzeugt werden. Im Dialog sollte dann ein selbst sprechender Name angegeben und der Besitzer des Diagrammes festgelegt werden.

Als erstes müssen die Systemgrenzen definiert werden. Dazu muss rechts neben Package auf den Pfeil geklickt werden um die weiteren Objekte anzuzeigen. Hier muss nun System Boundary gewählt werden. Ziehen Sie das Element groß in der Detailansicht auf. Fügen Sie nun die Akteure, Anwendungsfälle und Verbindungen hinzu die sie benötigen. Zur Eingabe der Bezeichnung doppelklicken Sie auf das Objekt. Alternativ kann nach Markierung des Objekts nach Rechsklick „Specification“ ausgewählt werden. Hier können dann neben dem Namen auch weitere Eigenschaften des markierten Objekts eingestellt werden.

Anleitung MagicDraw 6 Version 17.12.12

Marcel Schreeck, B.Sc.

4.1.Use Case Scenario

In MagicDraw können auch textuelle Beschreibungen von Use Cases hinterlegt werden. Dazu müssen die Spezifikationen des im Diagramm erstellte Use Case geöffnet werden. Hier kann nun links unter Use Case ScenarioUse Case ScenarioUse Case ScenarioUse Case Scenario der Basic Flow erzeugt werden. Mit dem Plus-Symbol oben können die einzelnen Schritte angelegt werden. Zum verschieben dienen die Pfeile nach oben bzw nach unten. Zum Anlegen von Alternative oder Exceptional Flow muss in den entsprechenden unteren Reitern neue Conditions/Execption Type angelegt werden. Hier können auch mehrere Alternative bzw Exceptional Flow angelegt werden, welche untereinander angezeigt werden.

Hieraus könne auch direkt Aktivitätsdiagramme erzeugt werden. Diese sind allerdings Fehleranfällig. Bei Änderungen des Aktivitätsdiagramms muss teilweise mit Programmabstürzen gerechnet werden.

5.5.5.5.KlassendiagrammeKlassendiagrammeKlassendiagrammeKlassendiagramme

Zur Erstellung eines neuen Klassendiagramms klicken Sie entweder auf das Symbol für Klassendiagramme , oder führen Sie einen Rechtsklick auf das entsprechende Packet im Modellbrowser aus und wählen unter New DiagramNew DiagramNew DiagramNew Diagram das Class DiagramClass DiagramClass DiagramClass Diagram. Zum Anzeigen bereits vorhandener Klassendiagramme drücken Sie STRG + 1.

5.1.5.1.5.1.5.1.KlassenKlassenKlassenKlassen

Klassen können per Drag and Drop dem Klassendiagramm hinzugefügt werden. Hier ziehen Sie das Symbol der Klasse an die Position des Diagramms. Durch den Pfeil an der linken Seite des Symbols können weitere Klassentypen ausgewählt werden.

Einen Namen kann per Selektion der obersten Zeile oder in den Spezifikationen gesetzt werden.

Eine leere benannte Klasse

Die Klassen sind Modell gespeichert und sind in allen Diagrammen verfügbar. Dies hat zur Folge, das die Namensgebung eindeutig sein muss.

Bereits vorhandene Klassen können direkt aus dem Modellbaum in das Klassendiagramm hineingezogen werden.

Sollten Sie mit Entity, Controll und Boundary arbeiten, so können dies mit einem Rechtsklick auf die Klasse unter Stereotype einstellen. MagicDraw blendet dabei automatisch die

Anleitung MagicDraw 7 Version 17.12.12

Marcel Schreeck, B.Sc.

Methoden und Attribute aus. Diese können mit einem klick auf das + wieder angezeigt werden. Alternativ dazu können auch die Optionen geändert werden. Hierzu muss man unter

→Options Project Options Project Options Project Options Project den Pfad Symbols>Default>Stereotypes Symbols>Default>Stereotypes Symbols>Default>Stereotypes Symbols>Default>Stereotypes die gewünschten Stereotypen per Rechtsklick „Add/Remove StereotypeAdd/Remove StereotypeAdd/Remove StereotypeAdd/Remove Stereotype“ hinzugefügt werden. Für diese Stereotypen kann man nun einzeln die Optionen ändern. Zum Anzeigen der Methoden und Attribute muss der Hacken bei „Show Attributes visibilityShow Attributes visibilityShow Attributes visibilityShow Attributes visibility“ bzw. „Show Operations visibilityShow Operations visibilityShow Operations visibilityShow Operations visibility“ gesetzt werden.

5.1.1.5.1.1.5.1.1.5.1.1.AttributeAttributeAttributeAttribute

Ein Attribut kann entweder über den orangen Punkt rechts in der zweiten Zeile der Klasse, oder in den Spezifikationen der Klasse unter AttributesAttributesAttributesAttributes angelegt werden. Bei Verwendung des orangen Punktes muss darauf geachtet werden, dass mit der Eingabetaste das nächste Attribut eingefügt wird. Dies kann mit Strg+D endgültig gelöscht werden. Alle anderen Funktionen blenden das Attribut nur aus.

Die Typ-Zuweisung geschieht in der Detailansicht des Klassendiagramms nach Rechtsklick auf das Attribut unter TypeTypeTypeType. Hier kann nun der Datentyp ausgewählt werden. Alternativ kann der Typ auch direkt bei der Namensgebung in der richtigen Syntax eingegeben werden. Bitte beachten Sie bei der Eingabe von Datentypen, die nicht zum Sprachkern gehören (z.B. string, vector, list) darauf, den Namespace voranzustellen (z.B. std::). In den Spezifikationen des Attributs kann die Zuweisung des Typs mit Hilfe des gleichnamigen Feldes erfolgen.

Ein Attribut kann auf staticstaticstaticstatic gesetzt werden, indem man es mit der rechten Maustaste selektiert und „is Staticis Staticis Staticis Static“ anwählt.

Darstellung von Arrays und Listen/STL-ContainernDarstellung von Arrays und Listen/STL-ContainernDarstellung von Arrays und Listen/STL-ContainernDarstellung von Arrays und Listen/STL-Containern

Ein weiterer wichtiger Punkt für die Attribute ist die Darstellung als STL-Container, wie List oder vector, oder Array. Diese werden in MagicDraw auf besondere Art und Weise erzeugt. Hierzu müssen die Spezifikationen der Attribute aufgerufen werden. In der Ansicht „Alle“ gibt es nun unter dem Punkt Type ModifierType ModifierType ModifierType Modifier beziehungsweise ContainerContainerContainerContainer die Möglichkeit die spezielle Syntax der Zielsprache anzugeben. Das Feld ContainerContainerContainerContainer sollte dabei immer den STL Container enthalten. Dies wird sonst durch das Reverseengineering geändert. Leider werden die Container-Informationen nicht im Klassendiagramm angezeigt. Das $ ist jeweils ein Platzhalter für den Type. Dadurch wird „vector<$*>“ nach der Codegenerierung beispielsweise zu „vector <string*>“, oder „$[3]“ zu „int[3]“.

Beispiele

Wunsch (in C++)Wunsch (in C++)Wunsch (in C++)Wunsch (in C++) EingabefelderEingabefelderEingabefelderEingabefelder Ausgabe

Type Type Type Type Type Type Type Type ContainerContainerContainerContainer ArrayArrayArrayArray Anzeige im Anzeige im Anzeige im Anzeige im

Anleitung MagicDraw 8 Version 17.12.12

Marcel Schreeck, B.Sc.

ModifierModifierModifierModifier (C++ Lang. Prop.)(C++ Lang. Prop.)(C++ Lang. Prop.)(C++ Lang. Prop.) (C++ Lang. (C++ Lang. (C++ Lang. (C++ Lang. Prop.)Prop.)Prop.)Prop.)

DiagrammDiagrammDiagrammDiagramm

string sstring sstring sstring s string [std] (Class) s : string

int* a[7]int* a[7]int* a[7]int* a[7] int $* [7] a:int"$*"[0..*]

list<string> sllist<string> sllist<string> sllist<string> sl string [std] (Class) std::list<$> sl:string [0..*]

vector<int*> vivector<int*> vivector<int*> vivector<int*> vi int std::vector<$*> vi:int[0..*]

5.1.2.5.1.2.5.1.2.5.1.2.OperationenOperationenOperationenOperationen

Ähnlich wie die Attribute können auch die Operationen erzeugt werden. In der Detailansicht ist hierbei nur der grüne Punkt in der 3. Zeile zu verwenden. Parameter können direkt in der unten stehenden Syntax eingegeben werden, oder in den Spezifikationen des Operators unter Parameter angelegt werden. Hier können auch weitere Einstellungen wie Standardwerte oder Parameter eingestellt werden.

Klassenobjekt

Die Eigenschaft „abstractabstractabstractabstract“ wird für Methoden über die rechte Maustaste mit „is Abstract“ aktiviert. Das Tool fordert dann, dass die Klasse ebenfalls abstract sein muss. Dies muss in den Eigenschaften der Klasse aktiviert werden. Klassenmethoden werden analog durch „is Static“ bestimmt.

Die Eigenschaft „virtualvirtualvirtualvirtual“ wird in den Eigenschaften der Methoden unter „C++ Language Properties“ im Feld virtual aktiviert. Allerdings wird sie nicht im Klassendiagramm angezeigt.

5.1.3.5.1.3.5.1.3.5.1.3.Automatisierte FunktionenAutomatisierte FunktionenAutomatisierte FunktionenAutomatisierte Funktionen

Erstellung von KonstruktorenErstellung von KonstruktorenErstellung von KonstruktorenErstellung von Konstruktoren

Um einen Konstruktor in einer Klasse zu erstellen öffnen Sie deren Spezifikationen und wählen den Pfad OperationsOperationsOperationsOperations. Hier muss nun eine neue Operation angelegt werden.

Da MagicDraw standardmäßig nicht alle Eigenschaften anzeigt, muss oben unter

Anleitung MagicDraw 9 Version 17.12.12

Marcel Schreeck, B.Sc.

Eigenschaften von „Standard“„Standard“„Standard“„Standard“ auf „All“„All“„All“„All“ gewechselt werden. Dadurch wird eine Vielzahl weiterer Eigenschaften angezeigt. Hier muss nun unter Applied StereotypeApplied StereotypeApplied StereotypeApplied Stereotype „C++ Constructor„C++ Constructor„C++ Constructor„C++ Constructor [Operation] [C++ ANSI profile]“[Operation] [C++ ANSI profile]“[Operation] [C++ ANSI profile]“[Operation] [C++ ANSI profile]“ ausgewählt werden. Dabei sollte natürlich der Name mit dem Namen der Klasse übereinstimmen.

Erstellung von Getter/SetterErstellung von Getter/SetterErstellung von Getter/SetterErstellung von Getter/Setter

Da es von Vorteil ist die Attribute zu kapseln kann mit MagicDraw automatisch für ausgewählte Attribute Getter bzw Setter Funktionen erzeugt werden. Dies geschieht am Einfachsten mit einem Rechtsklick auf die Klasse und dort unter →Tools Create Tools Create Tools Create Tools Create Getters/SettersGetters/SettersGetters/SettersGetters/Setters. Hier können nun die gewünschten Attribute ausgewählt werden. Im unteren Bereich des Dialoges können weitere Einstellungen vorgenommen werden. Mit einem Klick auf OK werden die entsprechenden Methoden erzeugt.

Einfügen von PatternEinfügen von PatternEinfügen von PatternEinfügen von Pattern

Auch einige Pattern können automatisch mit Hilfe eines Assistenten eingefügt werden. Unterstützt werden von MagicDraw unter anderem folgende Standardmuster:

• Adapter

• Bridge

• Singleton

• Observer (Beobachter)

Daneben gibt es noch einige spezielle Muster für einzelne Sprachen.

Die Erzeugung eines Muster geschieht nach Selektion einer neuen Klasse mit einem Rechtsklick auf die Klasse →Tools Apply PatternTools Apply PatternTools Apply PatternTools Apply Pattern anwenden. Im erscheinenden Dialog kann links das Muster ausgewählt werden und rechts weitere Einstellungen und Klassennamen ausgewählt werden.

5.2.5.2.5.2.5.2.AssoziationenAssoziationenAssoziationenAssoziationen

Am einfachsten erzeugt man Beziehungen, indem man eine Klasse, von der eine Beziehung ausgeht selektiert. Rechts von der Klasse werden alle Beziehungstypen, die von der Klasse ausgehen können, eingeblendet. Man wählt einen Beziehungstyp aus und klickt in das Diagramm. Die Beziehung und die Zielklasse werden erzeugt. Bereits bestehende Klassen müssen einfach verbunden werden.

Für die Assoziationen müssen die Multiplizitäten angegeben werden. Diese können in den Spezifikationen der Assoziationsenden eingestellt werden. Der Wert der MultiplicityMultiplicityMultiplicityMultiplicity kann dabei frei eingetragen oder aus der Liste ausgewählt werden. Leider erzeugt MagicDraw

Anleitung MagicDraw 10 Version 17.12.12

Marcel Schreeck, B.Sc.

unabhängig von der Multiplizität immer einen einfachen Pointer. Damit Multiplizitäten größer eins verwaltet werden können, muss der Type ModifierType ModifierType ModifierType Modifier angepasst werden. Hier kann die Syntax frei gestaltet und auch STL Strukturen verwendet werden. Das „$“ gilt dabei als Platzhalter für den Typ. Beispielhaft hier die Syntax für einen Vector von Pointern: vector<$*>

Sollte eine Assoziation ausgeblendet sein, so kann sie automatisch mit einem Rechtsklick auf einer der beteiligten Klassen über →Related Elements Display PathsRelated Elements Display PathsRelated Elements Display PathsRelated Elements Display Paths wieder angezeigt werden. Alternativ können von einer Klasse aus auch alle verbundenen Klassen dem Diagramm hinzugefügt werden. Dazu muss wieder ein Rechtsklick auf die Klasse ausgeführt werden und dann →Related Elements Display Related ElementsRelated Elements Display Related ElementsRelated Elements Display Related ElementsRelated Elements Display Related Elements anzeigen gewählt werden. Hier kann unten links die Tiefe gewählt werden, bis zu welcher tiefe die Elemente hinzugefügt werden sollen.

Standardmäßig werden Beziehungen als senkrechte und waagerechte Linien dargestellt. Wenn direkte Verbindungen gewünscht werden, kann dies nach Selektierung der Verbindung mit diesem Button erfolgen.

Die Assoziationsattribute werden in den Klassendiagrammen standardmäßig ausgeblendet. Damit die Attribute auch im Klassendiagramm angezeigt werden müssen sie unter Options Options Options Options → Project Project Project Project den Pfad Symbols>Default>Shapes >Class Symbols>Default>Shapes >Class Symbols>Default>Shapes >Class Symbols>Default>Shapes >Class auswählen und „Show Association EndsShow Association EndsShow Association EndsShow Association Ends as Attributesas Attributesas Attributesas Attributes“ auf All setzen.

Aus einer SpezialisierungSpezialisierungSpezialisierungSpezialisierung ("VererbungVererbungVererbungVererbung") von A nach B erzeugt MagicDraw den C++-Code "class B: A". D.h. es fehlt das Schlüsselwort "public" (class B: public A"). Das ist zwar in C++ erlaubt, (und bedeutet, dass die Vererbung als private implementiert wird) aber in der Regel meint man eher public.

Lösung: Bei den Eigenschaften der Beziehung kann man unter den "C++ Language C++ Language C++ Language C++ Language PropertiesPropertiesPropertiesProperties" den Wert von "Inheritance VisibilityInheritance VisibilityInheritance VisibilityInheritance Visibility" auf public stellen.

5.3.5.3.5.3.5.3.AllgemeinAllgemeinAllgemeinAllgemein

Löschen von ObjektenLöschen von ObjektenLöschen von ObjektenLöschen von Objekten

Wird z. B. eine Klasse in einem Klassendiagramm mit der Taste Entf(ernen) gelöscht, so wird die Klasse nur aus dem Diagramm entfernt. Sie existiert im Modell weiter. Alle Beziehungen, die sie in dem Klassendiagramm zu anderen Klassen hatte, bleiben erhalten.

Um eine aus einem Diagramm entfernte Klasse wieder einzufügen, selektiert man die Klasse zu der Beziehungen existieren und wählt →Related Elements Display Parts Related Elements Display Parts Related Elements Display Parts Related Elements Display Parts anzeigen. Über die Checkbox unten links, „Alway Create new Symbols“, wird festgelegt ob für die

Anleitung MagicDraw 11 Version 17.12.12

Marcel Schreeck, B.Sc.

eingefügten Klassen neue Klassensymbole angelegt werden, oder eventuell vorhandenen Klassen verwendet werden.

Soll ein Element aus dem Modell komplett gelöscht werden, so erreicht man dies im Diagramm mit Strg + D oder der Menüfunktion Bearbeiten/Löschen.

Einbindung anderer ElementeEinbindung anderer ElementeEinbindung anderer ElementeEinbindung anderer Elemente

Elemente die nicht (mehr) im Diagramm angezeigt werden, können ganz einfach via Drag and Drop aus dem Modell-Browser hinzugefügt werden.

DokumentationDokumentationDokumentationDokumentation

MagicDraw kann automatisch eine komplette Dokumentation erstellen. In der Spezifikation eines jeden Objektes kann Dokumentation hinterlegt werden. Hierzu muss einfach links der Zweig DocumentationDocumentationDocumentationDocumentation gewählt und der entsprechende Text eingegeben werden. Dokumentation zu Klassen, Methoden und Attributen wird im Quellcode als Kommentar eingefügt.

ConstraintsConstraintsConstraintsConstraints

Um ein Constraint für eine Assoziation hinzuzufügen müssen die Spezifikation der Verbindung geöffnet werden und dort unter ConstraintsConstraintsConstraintsConstraints ein neuer Constraint angelegt werden. Dort kann dann in den Spezifikationen der Constrainttext angegeben werden.

LeserichtungLeserichtungLeserichtungLeserichtung

Die Leserichtung kann mit der rechten Maustaste im Contextmenü unter „Show Direction Show Direction Show Direction Show Direction ArrowArrowArrowArrow“ eingeblendet werden. Im selben Menü gibt es auch die Funktion „Reverse Arrow Reverse Arrow Reverse Arrow Reverse Arrow DirectionDirectionDirectionDirection“. Der Text für die Leserichtung kann nun entweder direkt hinter dem Pfeil eingegeben werden, oder in den Spezifikationen der Assoziation unter Name.

Anleitung MagicDraw 12 Version 17.12.12

Marcel Schreeck, B.Sc.

6.6.6.6.SequenzdiagrammeSequenzdiagrammeSequenzdiagrammeSequenzdiagramme

Die gewünschten Klassen können einfach per Drag and Drop aus dem Containment-Baum in das Sequenzdiagramm gezogen werden. Nach dem Erzeugen einer CallCallCallCall MessageMessageMessageMessage gibt man im Spezifikationseditor der Nachricht einen Namen und wählt unter Signature (operation)Signature (operation)Signature (operation)Signature (operation) eine Methode, die diese Nachricht aufruft. Existiert die aufgerufene Methode in der Klasse nicht, so legt man die Nachricht im Diagramm an, gibt ihr einen Namen und drückt dann den grünen Punkt hinter dem Nachrichtennamen. Dadurch wird die entsprechende Methode in der Klasse erzeugt.

Neue Instanzen können mit erzeugt werden. Die Instanzen können mit wieder gelöscht werden.

7.7.7.7.CodegenerierungCodegenerierungCodegenerierungCodegenerierung

MagicDraw kann aus den UML Modellen Coderahmen generieren. Unterstützt werden die Programmiersprachen C++, Java und C#.

7.1.7.1.7.1.7.1.Aufsetzen der CodegenerierungAufsetzen der CodegenerierungAufsetzen der CodegenerierungAufsetzen der Codegenerierung

Bevor man Code generieren kann, muss man MagicDraw mitteilen, welche Klassen in welche Dateien in welchem Verzeichnis erzeugt werden sollen. Diese Aufgabe erfüllt bei MagicDraw ein „Code-Engineering-Set“. Um eine Codegenerierung einzurichten, führen Sie einen Rechtsklick auf den Zweig „Code-Engineering-Sets“ im Modellbaum aus, wählen New und dann die gewünschte Sprache. Für C++ wählen Sie bitte ANSI C++, da wir oft unter Linux entwickeln. Geben Sie dem Set einen entsprechenden Namen. Nun muss das Set Editiert werden (Rechtsklick Edit). Hier werden nun die gewünschten Objekte aus dem Modell

Anleitung MagicDraw 13 Version 17.12.12

Marcel Schreeck, B.Sc.

gewählt. Gehen Sie hierzu in den Reiter „Add Data from ModelAdd Data from ModelAdd Data from ModelAdd Data from Model“ und wählen die entsprechenden Klassen. Oben kann unter Working DirectoryWorking DirectoryWorking DirectoryWorking Directory noch der Pfad gewählt werden, wo die Dateien erzeugt werden sollen.

Einstellungen des Code-Engineering-Set

Bevor der erste Code generiert wird, sollte man den Stil für die Generierung von Code setzen. Ansonsten kommt es beim Reverse Engineering zu hässlichen Verdopplungseffekten.

Unter Options->Project->Code Engineering->C++ Language Options kann man verschiedene Stile auswählen. Geschickt sind folgende Einstellungen:

Während der Generierung legt MagicDraw für den existierenden Code automatisch ein Backup in einer .bak Datei an. Auch veränderter Code in den Dateien wird nicht gelöscht

Anleitung MagicDraw 14 Version 17.12.12

Marcel Schreeck, B.Sc.

oder überschrieben. Wählen Sie aber trotzdem zur Sicherheit „Code kommentieren“ um bei Problemen noch auf den alten Code zurückgreifen zu können.

Mit einem Rechtsklick auf das entsprechende Engineering Set und „GGGGenerate“enerate“enerate“enerate“ kann der Code erstellt werden. Vorher sollten Sie Ihr Modell aber jedenfalls auf Konsistenz prüfen.

7.2.7.2.7.2.7.2.Überprüfung des ModellsÜberprüfung des ModellsÜberprüfung des ModellsÜberprüfung des Modells

Damit die Codegenerierung das erwünschte Ergebnis liefert, muss das Modell konsistent sein. Häufig kommt es zu Fehlern, weil Assoziationen nicht benannt sind oder die Multiplizitäten fehlen. Schwerwiegende Probleme entstehen, wenn Ihre Klassen zyklisch voneinander abhängen und trotzdem Code generiert wird.

Fehler werden im Nachrichtenfenster angezeigt und sollten unbedingt bereinigt werden.

Um zyklische Abhängigkeiten zwischen Klassen schnell sehen zu können, ist es geschickt eine Abhängigkeitsmatrix zu erstellen. →Unter Analyze Dependency

→Matrix Matrix Tempates wählt man Class_Association und selektiert "Make column same as row" und "Take all Model as default scope". Dann klickt man auf "Rebuild" und sieht eine Matrix mit den Abhängigkeiten. Ein Kreuz bedeutet, dass es eine beidseitige Abhängigkeit gibt.

Im normalen Praktikumsumfang gibt es keinen Grund für zyklische Abhängigkeiten. Deshalb sind sie einfach ein Zeichen für einen ungeschickten Entwurf mit unnötigen Abhängigkeiten und müssen entfernt werden.

7.3.7.3.7.3.7.3.Erzeugen von ModellteilenErzeugen von ModellteilenErzeugen von ModellteilenErzeugen von Modellteilen

Häufig soll bei der Code-Generierung nur ein bestimmter Teil des Modells erzeugt werden (z.B. wegen iterativer Entwicklung). Dabei entstehen oft Probleme, weil es Abhängigkeiten zu dem Modellteil gibt, der nicht generiert werden soll. Im Code tauchen Klassen auf, für die es noch keine Header gibt usw. Das Ergebnis sind Compilerfehler, die in der Regel durch auskommentieren gelöst werden. Importiert man dann den lauffähigen Code in das Modell werden oft die auskommentierten Attribute und Assoziationen gelöscht.

Anleitung MagicDraw 15 Version 17.12.12

Marcel Schreeck, B.Sc.

In der Abbildung sollen die Klassen A und C (ohne B und D) generiert werden. Ein bequemer Trick zur Lösung des Problems ist die Einführung von temporären Dummyklassen. Zur Klasse A wird die Klasse A_Dummy angelegt. Anschließend werden alle Assoziationspfeile von A an die Dummyklasse umgehängt (analog für C). Dadurch sind A und C nun vom Rest des Modells entkoppelt und können einzeln generiert werden. Wenn der Code von A und C implementiert und importiert wurde, werden die Assoziationen wieder zurückgehängt (da jede Klasse eine eigene Dummyklasse hat, weiß man genau wohin) und die Dummyklassen gelöscht.

7.4.7.4.7.4.7.4.Reverse Reverse Reverse Reverse EngineeringEngineeringEngineeringEngineering

Auch hier müssen wieder die Eigenschaften des Code Engineering Sets geändert werden. Nach dem die Klassen und Dateien von MagicDraw erstellt worden sind, oder weitere noch nicht modellierte Softwareteile, können diese in MagicDraw aktualisiert werden. Hierzu gehen Sie in die Eigenschaften Ihres Code Engineering Sets bleiben diesmal aber auf dem Reiter „Add Files“„Add Files“„Add Files“„Add Files“. Hier müssen Sie nun die gewünschten Dateien auswählen. Auch ist es wichtig, dass das korrekte „Working Package“„Working Package“„Working Package“„Working Package“ ausgewählt wird.

Mit einem Rechtsklick auf das Code Engineering Set kann nun der Punkt ReverseReverseReverseReverse gewählt werden.

Wenn während der Entwicklung neue Klassen hinzugefügt worden sind, müssen die Dateien in den Spezifikationen des Code Engineering Set inkludiert werden. Dadurch werden sie vom System erfasst. Wenn diese neuen Klassen in MagicDraw verändert werden, müssen sie natürlich auch dem Forward-Engineering hinzugefügt werden (siehe oben).

8.8.8.8.DokumentationDokumentationDokumentationDokumentation

Da MagicDraw leider nur sehr spezialisierte Reports anbietet haben wir als Fachbereich ein eigenes Template für die Gesamtdokumentation Ihres Entwurfs erstellt. Dieses muss unter https://www.fbi.h-da.de/fileadmin/Labor/case/MagicDraw/template.rtf heruntergeladen werden.

Anleitung MagicDraw 16 Version 17.12.12

Marcel Schreeck, B.Sc.

Zur Installation des Reporttemplates muss unter Tools der Report Wizard aufgerufen werden.

Dort muss unter NewNewNewNew ein Name für das Template gewählt werden. Unter Template File muss man die heruntergeladene rtf-Datei auswählen. Die weiteren Felder sind obsolet und das Template kann einfach angelegt werden. Zur Verwendung des Reporttemplates muss dieses ausgewählt werden. Im nächsten Bildschirm muss Default gewählt werden. Der folgende Bildschirm beinhaltet den zu dokumentierenden Scope. Hier sollte der gesamte Data Zweig hinzugefügt werden, soweit sie nicht konkrete Bereiche Ihres Entwurfes auswählen wollen. Nach der Spezifizierung des Namens (mit Endung .rtf) kann der Bericht nun generiert werden. Die Erstellung kann einige Sekunden in Anspruch nehmen. Zum öffnen des Berichtes muss er mit Libre Office, oder vergleichbar, geöffnet werden.

9.9.9.9.TastenkürzelTastenkürzelTastenkürzelTastenkürzel

TastenTastenTastenTasten BedeutungBedeutungBedeutungBedeutung

STRG + D Objekt endgültig löschen

Entf Objekt ausblenden ODER löschen(je nach Diagramm/Objekt)

STRG + 1 Klassendiagramme anzeigen

STRG + Umschalt + 1 Neues Klassendiagramm erzeugen

STRG + 2 Use-Case-Diagramme anzeigen

STRG + Umschalt + 2 Neues Use-Case-Diagramm erzeugen

STRG + 3 Kommunikationsdiagramme anzeigen

STRG + Umschalt + 3 Neues Kommunikationsdiagramm erzeugen

STRG + 4 Sequenzdiagramme anzeigen

Anleitung MagicDraw 17 Version 17.12.12

Marcel Schreeck, B.Sc.

STRG + Umschalt + 4 Neues Sequenzdiagramm erzeugen

STRG + 5 Zustandsautomatendiagramme anzeigen

STRG + Umschalt + 5 Neues Zustandsautomatendiagramm erzeugen

STRG + 6 Protokoll-Zustandsautomatendiagramme anzeigen

STRG + Umschalt + 6 Neues Protokoll-Zustandsautomatendiagramm erzeugen

STRG + 7 Aktivitätsdiagramme anzeigen

STRG + Umschalt + 7 Neues Aktivitätsdiagramm erzeugen

STRG + 8 Implementierungsdiagramme anzeigen

STRG + Umschalt + 8 Neues Implementierungsdiagramm erzeugen

STRG + 9 Kompositionsstrukturdiagramme anzeigen

STRG + Umschalt + 9 Neues Kompositionsstrukturdiagramm erzeugen

Anleitung MagicDraw 18 Version 17.12.12