SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
teaching:lectures:se:2014:tipps [2014/03/26 11:13]
127.0.0.1 external edit
teaching:lectures:se:2014:tipps [2018/05/09 01:59] (current)
Line 1: Line 1:
 +====== Hilfreiche Tipps für die Arbeit mit UML-Diagrammen ======
 +
 +<​note>​ Im Folgenden finden sich Tipps zu bestimmten UML-Diagrammtypen,​ zu UML im Allgemeinen,​ oder auch zur Arbeit mit den CASE-Tools.
 +</​note> ​
 +
 +
 +
 +==== Wo finde ich die aktuelle UML Spezifikation?​ ====
 +
 +Gerade bei kniffligen Fragen zu UML Diagrammen empfiehlt sich oft ein Blick in die aktuelle UML Spezifikation.
 +Ihr findet sie unter:
 +
 +http://​www.omg.org/​spec/​UML/​
 +
 +Ganz oben auf die aktuelle Version klicken (z.B. Version 2.4.1, August 2011).
 +Auf der nächsten Seite dann "​Superstructure specification,​ PDF" auswählen.
 +
 +
 +
 +==== Sichtbarkeiten in Klassendiagrammen auf den ersten Übungsblättern ====
 +
 +Im frühen Stadium der Softwareentwicklung sind die Sichtbarkeiten von Funktionen und Attributen der Klassen noch nicht relevant. Es handelt sich um Implementierungsdetails,​ die erst in einem späteren Stadium wichtig werden. In der Musterlösung finden sich trotzdem als zum Beispiel "//​private//",​ "//​protected//"​ oder "//​public//"​ deklarierte Attribute und/oder Funktionen.
 +
 +Leider lässt Visual Paradigm den Benutzer diese Details im Gegensatz zu andern nicht ausblenden, sodass sie trotz ihrer Irrelevanz Einzug in die Musterlösungen gefunden haben.
 +
 +
 +
 +==== Self- und Recursive-Messages in Sequenzdiagrammen ====
 +
 +Laut der UML-Spezifikation existiert in Modellierungssicht kein Unterschied zwischen einer Self-Message (also einer Nachricht von einer Instanz einer Klasse an sich selbst z.B. ein Methodenaufruf) und einer Rekursiven-Message (eine Methode führt sich während ihrer Abarbeitung erneut selbst auf).
 +
 +Visual Paradigm, die Vorlesung sowie das in der Vorlesung empfohlene Buch "//​UML@WORK//"​ unterscheiden jedoch bei der Modellierung zwischen Self- und Recursive-Messages.
 +
 +Die rekusive Nachricht resultiert in einem, zu dem Lebensbalken der aufrufenden Instanz, parallelen Lebensbalken. Dieser endet, wenn auch die Rekursion endet. In "//​UML@Work//"​ wird hier ausserdem noch zwischen "//​synchron//"​ und "//​asynchron//"​ unterschieden. Im asynchronen Fall ändert sich an der Notation nichts, da die aufrufende Instanz nicht auf den Return-Wert der rekusiv aufgerufenen Funktion wartet. Im synchronen Fall wird ein gestrichelter Pfeil (wie bei einem "​normalen"​ Return) wieder zurück auf den ursprünglichen Lebensbalken gezeichnet. Das ist jedoch mit Visual Paradigm nicht möglich.
 +
 +Die Self-Message wird in Visual Paradigm durch einen "​einfachen"​ Pfeil dargestellt dessen Ursprung und Ziel dieselbe Instanz ist. In der Vorlesung wird die Self-Message als asynchrone Rekusive Nachricht dargestellt.
 +
 +
 +
 +==== Wieviele Controlflow-Pfeile dürfen auf einen ForkNode (Parallelisierung) zeigen, oder muss vorher eine Raute vorgeschaltet sein um quasi die Controlflows zu joinen? (Aktivitätsdiagramm) ====
 +
 +Beides ist möglich, bedeutet aber etwas anderes:
 +
 +1.) Auf einen Fork Node darf im Prinzip erst mal nur ein Pfeil Zeigen, du kannst also vorher eine Raute setzen um Controlflows zusammenzuführen.
 +
 +2.) Wenn du ein einen Fork Node mehrere Pfeile reinführst,​ machst du daraus einen Fork Node und Join Node gleichzeitig. In der Spezifikation der OMG heißt es wörtlich "Join node and fork node used together, sharing the same symbol"​
 +
 +Siehe folgende URL: http://​www.omg.org/​cgi-bin/​doc?​ptc/​2003-08-02
 +
 +Im pdf Document auf Seite 334 ganz unten ist das passende Beispiel.
 +
 +
 +
 +/*
 +==== Ein- Auschecken mit Eclipse und Visual Paradigm ====
 +
 +Beim Auschecken von Visual Paradigm Diagrammen sollte man möglichst immer
 +den Ordner nehmen, der genau eine Ebene über dem Ordner vpproject liegt.
 +Schon wenn man eine Ebene darüber auscheckt kann es passieren, dass man
 +den Fehler "​Diagram Bla does not exist, do you want to create it?"
 +bekommt.
 +
 +Wenn man jetzt, in dem Glauben dass das Diagramm wirklich weg sei, das
 +Diagramm neu erstellt und wieder eincheckt überschreibt man gerne mal ein
 +existierendes Diagramm eines Kommilitonen.
 +
 +Am besten also für ein VP-Projekt einen Ordner im SVN erstellen, zum
 +Beispiel "Blatt 02", darin alle Diagramme zu diesem Projekt ablegen und
 +dann alle Teilnehmer der Gruppe möglichst diesen einen Ordner aus- und
 +einchecken.
 +
 +
 +Dann befindet sich also in dem Ordner Blatt02 der Ordner vpproject und in
 +diesem dann der Ordner diagrams und die Datei Blatt02.vpp
 +
 +Im Ordner diagrams liegen nicht etwa die Diagramme selbst, was man
 +zunächst vermuten würde, sondern Links zu den Diagrammen, die alle in der
 +Binärdatei Blatt02.vpp gespeichert sind.
 +
 +Beim auschecken also immer auch darauf achten, das diese Datei mit
 +ausgecheckt wird.
 +
 +
 +Nun wird auch klar, warum man folgendes möglichst vermeiden sollte:
 +
 +  * Projektorder nachträglich umbenennen -> keine gute Idee
 +
 +  * Diagramme einfach mal in einen anderen Ordner verschieben -> ganz schlechte Idee
 +
 +
 +Wer also beim Ein- und Auschecken mit Visual Paradigm bis jetzt
 +verzweifelt ist, und es Aufgrund dessen schon verflucht hat, der sollte
 +das ganze mit diesem Wissen nochmal versuchen und dem Programm eine zweite
 +Chance geben! ;-)
 +*/
 +
 +
 +
 +/*
 +==== Constraints in Loop- und Break-Fragmenten in Sequenzdiagrammen mit Visual Paradigm ====
 +
 +Wer schon versucht hat in Sequenzdiagrammen Constraints für Loop- und Break-Fragmente anzugeben, und sich dabei durch diverse Menüs geklickt hat, der weiss, das diese Option in Visual Paradigm recht gut versteckt ist.
 +
 +Allen anderen sei gesagt: Auf das Loop-Fragment rechtsklicken,​ im Kontextmenü dann Operand - > Manage Operands
 +
 +Dann kann man im folgenden Fenster den Constraint eingeben, zum Beispiel "​korrektes Passwort"​ und er erscheint automatisch im Diagramm.
 +*/
 +
 +
 +
 +/*
 +==== Wo macht man einen Richtungspfeil an eine Assoziation in Visual Paradigm? ====
 +
 +Wenn du die Leserichtung der Assoziation meinst: Namen an die Assoziation setzen, auf die Linie klicken, dann kann man in Paradigm links unten Properties angeben. Unter View -> Show direction ein Häkchen setzten. Bezieht sich dann auf die Richtung in der du die Linie beim Erstellen von Klasse zu Klasse gezogen hast.
 +*/
  
teaching/lectures/se/2014/tipps.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019