Hinweise zum SE2-Meilenstein 'Transformation des Analysemodells'
0 Abgabe
Normalfall der Abgabe - Bei einer schriftlichen Abgabe (bitte keine Zip-Dateien schicken, sondern nur eine einzige, zoombare PDF-Datei):
1. Klassendiagramm vorher (das letzte Fachklassendiagramm aus SE1)
2. Textuelles "Changelog", in dem steht, welche Anpassungen (siehe unten) Sie im Diagramm vorgenommen haben, und warum dies geschah. Hinweis: Im Changelog bitte einzelne grafische Ausschnitte aus dem Klassendiagramm darstellen, auf die sich Ihre Beschreibungen beziehen.
3. Klassendiagramm nachher (das im Rahmen dieses Meilensteins bearbeitete Klassendiagramm)
Sonderfall der Abgabe - Bei einer Präsentation:
Orientieren Sie sich an dem, was für die schriftliche Abgabe verlangt wird. Präsentieren Sie die Schwerpunkte Ihrer Anpassungen in zehn bis zwölf Minuten mittels Beamer.
1 Allgemein
Anpassung aller Bezeichner an die gewählte Programmiersprache (betrachten Sie bitte "Java" als die von Ihnen gewählte Programmiersprache)
Anpassung aller Datentypen an die gewählte Programmiersprache und Aufgabe (die UML-Typen Numberund Textgibt es in Java beispielsweise nicht)
2 Operationen (Methoden)
Ergänzung der vollständigen Signatur im Klassendiagramm (inkl. Rückgabetyp - auch "void") gemäß Operationsschablonen aus der Analysephase (SE1)
Hinzufügen der Getters und Setters (nach Abstimmung mit dem Dozenten nur auszugsweise, für gewöhnlich einGetter/Setter-Paar pro Klasse)
Anpassung der Sichtbarkeit
3 Attribute
Hinzufügen der Attribute für Objektbeziehungen (Referenzattribute), evtl. Array-Typ bei ToMany-Assoziationen
Anpassung der Sichtbarkeit (möglichst private, nur bei Bedarf protected oder public)
Hinterfragen fachlich sinnvoll abgeleiteter Attribute ("abgeleitet" hat in diesem Zusammenhang nichts mit Vererbung zu tun, siehe SE1)
4 Assoziationen
Hinzufügen der Navigation (möglichst unidirektional, nur bei Bedarf bidirektional)
Bei bidirektionalen Assoziationen möglichst zwei Pfeile in der Darstellung des UML-Werkzeugs einstellen, und nicht kein Pfeil (obwohl in UML beides valide ist)
Hinterfragen der fachlich sinnvoll abgeleiteten Assoziationen ("abgeleitet" hat auch hier nichts mit Vererbung zu tun, siehe wieder SE1)
5 Klassen
Hinzufügen derjenigen Konstruktoren, die über das "Normalverhalten" hinausgehen. Das wären die Konstruktoren, die z.B. Muss-Attribute beim Instanziieren setzen, Berechnungen oder Initialisierungen durchführen usw.
Ergänzung von Containerklassen ( support classes) zur Verwaltung von Objektmengen gleichen Typs (haben häufig Methoden für das Erstellen, Suchen, Bearbeiten, Löschen von Objekten der Objektmenge)
Eliminierung assoziativer Klassen (Assoziationsklassen) durch Auflösen in "normale" Klassen
6 Pakete
Einbau einer fachlichenPaketierung (sofern nicht bereits in SE1 geschehen), Klassen in gleichem fachinhaltlichen Kontext gehören zusammen
Einbau einer schichtenorientierten Paketierung ( Ui, Lg, Db), nur die Fachlogikschicht wird mit dem Fachklassendiagramm aus SE1 gefüllt
7 Java-Code
Generierung des Java-Quelltextes mit dem UML-Softwarewerkzeug "StarUML" (oder einem Ersatztool, falls im üblichen Werkzeug keine Code-Generierung möglich sein sollte)
Modifizieren der "hässlichen" Stellen (generische Attributbezeichner, merkwürdige Daten-, Rückgabetypen und Signaturen etc.) im Modell (nicht im Quelltext)
Hinweis: Bitte schicken Sie keinen Java-Quelltext per Mail (auch nicht in einer Zip-Datei). Er wird vom Mail-Filter geschluckt. Beschränken Sie sich in der PDF-Datei auf Screenshots und Texte im Changelog.