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 Number und Text gibt 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 ein Getter/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
Ergänzung des Klassennamens um ein Schichtenpräfix Ui, Lg oder Db (wird heutzutage nur noch selten gemacht, also bitte nicht machen)
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 fachlichen Paketierung (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.