Kontakt
Mail: stefan.bente@th-koeln.de
Tel.: +49 2261 8196 6367
Skype: stefan.bente
Discord Server
Adresse:
Steinmüllerallee 4
51643 Gummersbach
Gebäude LC4
Raum 1708
Sprechstunde nach Vereinbarung
Terminanfrage: calendly.com Wenn Sie dieses Tool nicht nutzen wollen, schicken Sie eine Mail und ich weise Ihnen einen Termin zu.

Ü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) zu der Übung

Inhalt

Worum geht es?

Nachfolgend sehen Sie einen Ausschnitt aus einem hypothetischen “Campus Management System” (CAMS).

CAMS-Domain-Modell

  • 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.

  1. I tritt immer zusammen mit R auf. Es gibt keine Query nach I, außer zusammen mit einer Query nach R.
  2. Alle Zugriffe auf I erfolgen via R.
  3. Wenn R gelöscht wird, wird auch I gelöscht.
  4. 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.