Erste Schritte UML Klassendiagramm einen Prüfungsplan erstellen

Hallo (Java)Welt !

Als Vorbereitung bzw. Grundlage für die spätere Programmierung mit Java muss ich ein Klassenmodell (UML) erstellen.

Es geht um eine Prüfungsplanung, bei der ein möglichst kurzer Belegungsplan erstellt werden soll. Studierende können Prüfungen für ihre Kurse buchen (gibt 2 Prüfungsblöcke). Ein Block besteht aus mehreren Tagen. Maximal sollen 3 Kurse an einem Tag geschrieben werden können.

Jetzt soll ein Programm entwickelt werden, das bereit gestellte Eingabelisten (Studenten mit Attributen Matrikelnummer, Wohnort, Studienort (gibt 2 Orte), Präferenz viele Prüfungen an einen Tag oder wenig an einem Tag), (Kurse mit Attribut Kursbezeichnung, Kursnr, erreichte Punktzahl), (Buchungen mit Kursnr, Matrikelnummer, Punkte in Studienbegleietete Zusatzleistung) einlesen kann.

Am Ende soll wie gesagt der "optimale" Prüfungsplan rauskomen (Tag 1 : Klausur BWL, Controlling, Tag 2:...) und es sollen noch Listen erstellt werden können zur Anwesenheit (je Uni, je Prüfungstag), Noten (nach Kurs) und die Zufriedenheit der Studierenden soll im Nachhinein erhoben werden können (ob ihre Präferenz möglichst viel an einem Tag oder möglcihst wenig an einem Tag erfüllt wurde).

Ich habe ein UML Diagramm erstellt.
Das Programm geht über die PrüfungsverwaltungstoolMain los, welches dann auf die GUI und die Prüfungsverwaltungstool zugreift. Das Prüfungsverwaltungstool ist quasi der Dreh- und Angelpunkt, der quasi alles steuert und notwendige Informationen weiterleitet z.B. die eingelesenen Daten bereitstellt für den Prüfungsplanberechnung in der Klasse Prüfungsverwaltung.
Zuerst werden wie gesagt die Listen über die Klasse Datei eingelesen.
Zuerst fehlten die Klassen Studentenverwaltung, Buchungsverwaltung, Kursverwaltung, aber mir wurde gesagt, dass man solche Verwaltungsklassen benötigt...ich kann allerdings nicht genau nachvollziehen warum (mir ist eh nicht so ganz klar, was an den Klassen für spezielle Methoden hängen oder warum man sie unbedingt trennt von der Datenklasse Studenten (- Verwaltungsklasse Studentenverwaltung).
Jedenfalls erstellen die Studentenverwaltung, Kursverwaltung, Buchungsverwaltung dann die einzelnen Klassen für Studenten (mit denen dann Studentenobjekte erzeugt werden....), Kurse, Buchungen....

Nach dem die Daten bereit stehen, wird die Prüfungsplanberechnung angestoßen von Prüfungsverwaltungstool und es wird der optimale Prüfungsplan berechnet. Die Klasse Prüfungstag enthält dann das Produkt die Prüfungstage.
Die Listenverwaltung erzeugt letztlich den Output, das geht wieder über die "Zentrale", über die die Listenverwaltung auch die notwendigen Daten erhält z.B. über Studenten und den Prüfungstag.

Achja Assoziationsbeziehungen z.B. von Buchungen zu Kurs und Student konnten mit dem Programm (BlueJ) nicht dargestellt werden, daher habe ich sie erstmal aussen vor gelassen.

Ich würde mich über Kritik sehr freuen (und wenn Fragen sind zum Verständnis auch gerne stellen!!). Bin für jede konstruktive Antwort dankbar!
 

Anhänge

  • UMLPrüfungsverwaltung.jpg
    UMLPrüfungsverwaltung.jpg
    106,6 KB · Aufrufe: 147
Zuletzt bearbeitet:
Hallo,

die Aufgabe ist mir gerade etwas zu umfangreich, um mich da reinzudenken, aber ein paar Kleinigkeiten fallen mir trotzdem auf:

* Klassennamen verwenden manchmal Umlaute, manchmal nicht (PruefungsTag, PrüfungsVerwaltungsToolMail)

* Methoden- und Attribute fehlen

* Vererbungs- und Implementierungspfeile fehlen (Vererbung benutzt man selten, aber Interfaces normalerweise schon)

* einige Abhängigkeiten sind mir unklar: Ist aus einer Anwesenheitsliste z.B. nicht ersichtlich, welcher Student anwesend war, ohne dass man über das Hauptprogramm geht, was eigentlich nur die Steuerung übernehmen soll? So sieht das unnötig komplex aus.

Insgesamt sieht das für mich eher wie eine grobe Planung aus, ein Klassendiagramm ist das eher nicht, finde ich.
 
Vielen Dank schon mal für eine brauchbare erste Rückmeldung.

ja sorry die Bezeichnungen hatte ich gerade verändert- Ü soll natürlich UE sein.


Ich habe die Methoden und Attribute in Excel hinterlegt, da ich sie mit der Entwicklungsumgebung nicht darstellen konnte in dem Klassendiagramm (die werden aber nachher in den Klassen hinterlegt) - das muss auch noch schön gemacht werden Attribute alle kleinbezeichnet usw. - mir ging es erstmal um den Inhalt.


Wie gesagt, die Beziehungen Assoziation konnte ich jetzt auch nicht darstellen. Das sind nur die Beziehung z.B. Studentenverwaltung greift auf Methoden von Datei zu und z.B. Prüfungsverwaltungstool greift auf Studentenverwaltung zu.
 

Anhänge

Ah, mit der PDF-Datei ergibt das ein bisschen mehr Sinn 🙂 Die Verwaltungsklassen sollen also die Sammlungen der Objekte sein, also die Studentenverwaltung speichert vermutlich alle Studenten usw.

Warum werden die Stunden über Strings verwaltet? Also sowohl die Verwaltung als auch die Notenliste benutzt einen Parameter Teilnehmer vom Typ String - warum nicht vom Typ Student? Wenn es ein String ist, muss ja erst wieder die Studentenverwaltung von der Notenliste befragt werden, welcher Student gemeint ist. Und man handelt sich diverse Probleme ein, wenn ein Student seinen Namen ändert (bei uns haben einige während des Studiums geheiratet) oder Namen doppelt vorhanden sind (ich habe mal eine Übung geleitet, in der zwei Studenten den identischen Namen Li Zhang hatten).

Bei einer Datenbank hätte man sowas wie einen Primärschlüssel. In Java kann man doch einfach die Objekte nehmen, oder nicht?
 

Neue Themen


Zurück
Oben