Zum Inhalt springen

Kostenlose Lerninhalte

/160104

Frei zugängliche, geprüfte Lerninhalte zum Verstehen, Wiederholen und selbstständigen Üben.

Aufgabengruppe

/informatik/160104/aufgabengruppe

/informatik/160104/aufgabengruppe

Aufgabengruppe

Ein neuer Streaminganbieter für Musik wird entwickelt. Er brüstet sich damit, am allerbesten auf die Anfragen der Nutzer antworten zu können. Damit er dieses Versprechen halten kann, hat er zuvor Test-Nutzeranfragen gesammelt.

Daraus haben sich für das Pflichtenheft folgende Anforderungen ergeben:

  • Nutzer wollen wissen, von wem ein bestimmtes Lied ist.
  • Nutzer wollen sich alle Lieder und alle Alben eines Interpreten anschauen.
  • Nutzer wollen sich alle Lieder eines Albums ausgeben lassen.
  • Nutzer wollen wissen, wie lang ein Lied ist.
  • Nutzer wollen Lieder, die zu einer bestimmten Stimmung (z.B. traurig) passen.
  • Nutzer wollen Lieder eines bestimmten Genres hören.
  • Nutzer wollen wissen, was die Hauptgenre eines Interpreten ist.
  • Nutzer wollen wissen, wie lang ein Musiker bereits aktiv ist.
Aufgabe 1

Erstelle ein objektorientiertes Datenmodell mit Klassendiagramm zum Pflichtenheft.

Lösung anzeigen
Lösung
Voraussetzung
objektorientiertes Datenmodell
Strategie

Bevor du mit dem Zeichnen startest, lies den Text durch und identifiziere:

  • die Objekte (in der Informatik können auch Menschen Objekte sein!), die bei den Abfragen relevant sind
  • die Klassen, zu denen die Objekte gehören
  • die nötigen Attribute dieser Klassen
  • die Beziehungen zwischen den Klassen

Denke daran, dass ein Modell eine vereinfachte, nicht vollständige Darstellung der Wirklichkeit ist. Mache also nur das Nötigste!

Schritte

Objekte

In der Angabe sind folgende Objekte:

  • einzelne Lieder
  • bestimmte Interpreten
  • bestimmte Alben

{
  "plugin": "separator"
}

Klassen

In dieser Aufgabe sind die Klassen sehr einfach zu sehen. Das einzelne Lied ist zum Beispiel "Happy Birthday", ein Objekt der Klasse LIED.

Deshalb sind die Klassen:

  • LIED
  • INTERPRET
  • ALBUM

{
  "plugin": "separator"
}

Attribute

Jetzt sind alle Informationen aus der Angabe zu lesen, die sagen WIE ein bestimmtes Objekt der Klassen LIED, INTERPRET und ALBUM ist.

Attribute der Klasse LIED:

  • Titel
  • Länge
  • Stimmung
  • Genre

Attribute der Klasse INTERPRET:

  • Name
  • Hauptgenre
  • Gründungsjahr

Attribute der Klasse ALBUM:

  • Name

Du hast mehr?

Hast du vielleicht Beziehungen als Attribute eingetragen? Dann überlege nochmal, warum zum Beispiel INTERPRET eine eigene Klasse ist und nicht nur ein Attribut in der Klasse LIED.

Alles andere sind zusätzliche Informationen, die man zur Beantwortung der Anfragen nicht braucht. Merke sie dir für Teilaufgabe b)!

{
  "plugin": "separator"
}

Beziehungen

Überlege dir abschließend, wie die Klassen und ihre Objekte miteinander zusammenhängen.

Ein LIED ist von einem oder mehreren bestimmten INTERPRETen

(und ein INTERPRET hat ein oder mehrere LIEDer)

Ein ALBUM ist von einem oder mehreren INTERPRETen

(und ein INTERPRET hat ein oder mehrere ALBUM (Alben))

Ein ALBUM enthält ein oder mehrere LIEDer

(und ein LIED ist auf einem ALBUM)

Mit den vorgegebenen Kriterien aus der Angabe sind alle diese Beziehungen nötig!

{
  "plugin": "separator"
}

Objektorientiertes Datenmodell und Klassendiagramm

Es ergibt sich:

LIED(Titel, Länge, Stimmung, Genre)

INTERPRET(Name, Hauptgenre, Gründungsjahr)

ALBUM(Name)

Beispiel Modellierung Musikdatenbank

Für Fortgeschrittene:

  • Zur Übersetzung in ein relationales Datenbankschema fehlen natürlich noch Schlüssel und die Tabellen für die m:n-Beziehungen. Wenn du dich damit auskennst, ergänze es gerne hier in der Lösung!
Aufgabe 2

Fühlst du dich von den Nutzern gut vertreten? Welche Informationen interessien dich zu Liedern oder Interpreten? Wie verändern sie das Diagramm? Schreib es in die Kommentare oder noch besser direkt in die Lösung!

Aufgabe 3

Was könnte der Streaminganbieter in Bezug auf die Nutzerdaten ins Pflichtenheft schreiben? Wie verändert das das Klassendiagramm?