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

teaching:lectures:se:2015: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/2015/tipps.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019