Übung »Aggregates bestimmen (am Beispiel eines Campus-Management-Systems CAMS)«
In dieser Übung geht es darum, Aggregates zu identifizieren. Dazu nutzen Sie die aus Videos bekannte Checkliste.
- Dauer
- Ca. 30 min
- Video(s) hierzu
-
Worum geht es?
Nachfolgend sehen Sie einen Ausschnitt aus einem hypothetischen “Campus Management System” (CAMS).

Student
und Address
sollten klar sein.
Resume
ist ein Kurz-Lebenslauf, den jede:r Student:in im System hinterlegt, falls er/sie sich für einen Studiengang
bewirbt.
StudyProgram
ist ein Studiengang. Er besteht aus Modulen (Course
). Module können Teil von mehreren Studiengängen
sein (in den Gummersbacher Informatik-Studiengängen werden einige Grundvorlesungen gemeinsam für Informatik,
Wirtschaftsinformatik und Medieninformatik angeboten). Teil des CAMS ist ein Modulverzeichnis.
- Jedes Modul wird von mindestens einem:r Professor:in angeboten.
- Teil des CAMS soll auch eine Börse für Lerngruppen (
StudyGroup
) sein. Eine Lerngruppe hat Treffen
PlannedMeeting
, die immer ein eindeutiges Thema haben müssen. Ein solches Treffen wird von einem:r Student:in
organisiert.
Ihre Aufgabe
Zeichnen Sie die Aggregates im obigen Domain Model ein. Gehen Sie dabei nach der folgenden Checkliste vor
(I = inneres Entity, R = Root) - nur wenn alle Bedingungen erfüllt sind, gehören R und I zum selben Aggregate.
- I tritt immer zusammen mit R auf. Es gibt keine Query nach I, außer zusammen mit einer Query nach R.
- Alle Zugriffe auf I erfolgen via R.
- Wenn R gelöscht wird, wird auch I gelöscht.
- Es kann Invarianten (immer gültige Bedingungen) in der Beziehung zwischen R und I (und ggfs. weiteren Klassen) geben. (Optionale Bedingung)
Diskutieren Sie das in Ihrer Kleingruppe.
Lösung
Es ergeben sich folgende Aggregates:

- A1 scheint relativ klar zu sein.
- Ebenso A2.
- A3 (StudyProgram) - warum nicht zusammen mit Course? Course (Fach) wird zwischen verschiedenen StudyPrograms
geshared. Ein Fach kann in mehreren Studiengängen angeboten werden. Aus diesem Grund gibt es ein Modulverzeichnis,
das unabhängig vom Studiengang das Editieren eines Fachs erlaubt. Damit ist die Bedingung
“I tritt immer zusammen mit R auf. Es gibt keine Query nach I, außer zusammen mit einer Query nach R.” verletzt.
Auch würde man ein Fach nicht notwendig löschen, wenn der Studiengang nicht mehr angeboten wird.
Also sind bei jeweils eigenständige Aggregates.
- Bei A5 (Professor) ist das ebenfalls naheliegend.