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.