Konzeptionelle Modellierung - Exam
Aufgabe 1)
Du arbeitest als Datenbankdesigner für ein mittelständisches Unternehmen, das eine neue Datenbank für seine Betriebsabläufe benötigt. Das Unternehmen umfasst verschiedene Abteilungen wie Personal, Verkauf, Einkauf und Lager. Jede Abteilung möchte ihre spezifischen Daten effizient und strukturiert verwalten. Dein Vorgesetzter hat Dich beauftragt, ein konzeptionelles Datenmodell mithilfe eines ER-Diagramms zu erstellen. Der Fokus liegt darauf, die verschiedenen Entitäten, ihre Attribute und die Beziehungen zwischen ihnen korrekt zu identifizieren und darzustellen.
a)
Identifiziere mindestens fünf relevante Entitäten für die neue Datenbank des Unternehmens. Beschreibe für jede Entität mindestens drei Attribute.
Lösung:
- 1. Mitarbeiter
- Mitarbeiter_ID: Eindeutige Kennung für jeden Mitarbeiter.
- Name: Der volle Name des Mitarbeiters.
- Abteilung: Die Abteilung, in der der Mitarbeiter arbeitet (z.B. Personal, Verkauf, Einkauf, Lager).
- 2. Abteilung
- Abteilungs_ID: Eindeutige Kennung der Abteilung.
- Abteilungsname: Der Name der Abteilung.
- Standort: Der Standort der Abteilung, im Unternehmen.
- 3. Produkt
- Produkt_ID: Eindeutige Kennung des Produkts.
- Produktname: Der Name des Produkts.
- Preis: Der Preis des Produkts.
- Lagermenge: Die in Lager verfügbare Menge des Produkts.
- 4. Bestellung
- Bestellnummer: Eindeutige Kennung der Bestellung.
- Bestelldatum: Das Datum der Bestellung.
- Kunden_ID: Die eindeutige Kennung des Kunden, der die Bestellung aufgegeben hat.
- 5. Kunde
- Kunden_ID: Eindeutige Kennung des Kunden.
- Name: Der volle Name des Kunden.
- Adresse: Die Wohnadresse des Kunden.
- 6. Lieferant
- Lieferanten_ID: Eindeutige Kennung des Lieferanten.
- Firmenname: Der Unternehmensname des Lieferanten.
- Kontaktinformationen: Kontaktinformationen des Lieferanten (z.B. Telefonnummer, E-Mail-Adresse).
b)
Erstelle ein ER-Diagramm, das die Entitäten und die Beziehungen zwischen ihnen zeigt. Beschreibe, welche Art von Beziehungen (1:1, 1:n, n:m) zwischen den Entitäten besteht. Nutze dabei die Standardnotation des ERM.
Lösung:
ER-Diagramm Beschreibung
Im Folgenden wird beschrieben, wie die Entitäten und die Beziehungen zwischen ihnen in einem ER-Diagramm dargestellt werden können.Wir nutzen dafür die Standardnotation des Entity-Relationship Modells (ERM). Die Beziehungen werden als Linien dargestellt und die Kardinalitäten werden an den Enden der Linien angezeigt.
- Entitäten:
- Mitarbeiter
- Mitarbeiter_ID
- Name
- Abteilung
- Abteilung
- Abteilungs_ID
- Abteilungsname
- Standort
- Produkt
- Produkt_ID
- Produktname
- Preis
- Lagermenge
- Bestellung
- Bestellnummer
- Bestelldatum
- Kunden_ID
- Kunde
- Lieferant
- Lieferanten_ID
- Firmenname
- Kontaktinformationen
- Beziehungen und Kardinalitäten:
- Mitarbeiter - Abteilung (1:n):Jeder Mitarbeiter gehört zu einer Abteilung, aber eine Abteilung kann mehrere Mitarbeiter haben.
- Produkt - Bestellung (n:m):Ein Produkt kann in vielen Bestellungen vorkommen, und eine Bestellung kann mehrere Produkte enthalten. Diese Beziehung erfordert eine Zwischenentität, z.B. Bestellposten, um die n:m-Beziehung aufzulösen.
- Bestellung - Kunde (1:n):Eine Bestellung wird von einem Kunden aufgegeben, aber ein Kunde kann mehrere Bestellungen aufgeben.
- Produkt - Lieferant (n:m):Ein Produkt kann von mehreren Lieferanten geliefert werden, und ein Lieferant kann mehrere Produkte liefern. Auch diese Beziehung erfordert eine Zwischenentität, z.B. Lieferant_Produkt.
Aufgabe 2)
Normalisierung und Reduktion von Redundanzen in Datenbanken
Du hast eine Datenbank für ein kleines Buchgeschäft entworfen, die folgende Relationsschema enthält:
Buch (ISBN, Titel, Autor, Verlag, Preis, Verkäufer, Lagerstandort)
- Normalisierung: Verfahren zur Strukturierung von Datenbanken zur Vermeidung von Datenredundanzen und Anomalien.
- Reduktion von Redundanzen: Minimierung mehrfacher Datenspeicherung.
- Normalformen: 1NF, 2NF, 3NF, Boyce-Codd-NF
- Ziele der Normalisierung: Reduzierung von Redundanzen, Vermeidung von Anomalien
- Formale Definitionen: Abhängigkeiten und Schlüssel nutzen
- 1NF: Keine wiederholten Gruppen oder Mehrfachwerte
- 2NF: 1NF + keine partiellen Abhängigkeiten
- 3NF: 2NF + keine transitive Abhängigkeiten
- Boyce-Codd-NF: Jede funktionale Abhängigkeit der Form X -> Y, wobei X Superschlüssel ist
- Ergebnisse: Effiziente Datenverwaltung, Konsistenz
a)
Teilaufgabe A: Bestimme, ob das gegebene Relationsschema sich in der 1. Normalform (1NF) befindet. Falls nicht, mache die notwendigen Anpassungen und erläutere Schritt für Schritt, wie Du diese Änderungen vorgenommen hast, um die 1NF zu erreichen.
Lösung:
Um zu bestimmen, ob das gegebene Relationsschema Buch (ISBN, Titel, Autor, Verlag, Preis, Verkäufer, Lagerstandort) sich in der 1. Normalform (1NF) befindet, müssen wir prüfen, ob alle Attribute atomar sind. Das bedeutet, dass jedes Attribut nur einen einzigen Wert pro Datensatz enthalten darf.
Schritte zur Bestimmung und Anpassung auf 1NF:
- Prüfung der Atomizität:Wir überprüfen jedes Attribut der Relation:
- ISBN: Atomar, da jede ISBN nur einen einzigartigen Wert hat.
- Titel: Atomar, da jeder Titel nur einen einzigartigen Wert hat.
- Autor: Hier könnte ein Problem entstehen, wenn ein Buch mehrere Autoren hat. In so einem Fall würde dieses Attribut Mehrfachwerte enthalten.
- Verlag: Atomar, da jeder Verlag nur einen einzigartigen Wert hat.
- Preis: Atomar, da jeder Preis nur einen einzigartigen Wert hat.
- Verkäufer: Hier könnte auch ein Problem bestehen, wenn ein Buch von mehreren Verkäufern angeboten wird.
- Lagerstandort: Atomar, da jeder Lagerstandort nur einen einzigartigen Wert hat.
Wie wir sehen, könnten die Attribute Autor und Verkäufer Mehrfachwerte enthalten, somit befindet sich das Relationsschema nicht in der 1NF.
Um die 1NF zu erreichen, müssen wir die Relation so anpassen, dass jedes Attribut atomar wird. Ein möglicher Ansatz ist die Aufspaltung der Relation.
Schritte zur Anpassung:
- Neue Relationen erstellen:Wir können zwei neue Relationen erstellen, um die Mehrfachwerte zu eliminieren:
- Erstens:
Buch (ISBN, Titel, Verlag, Preis, Lagerstandort)
- Zweitens:
Buch_Autor (ISBN, Autor)
- Drittens:
Buch_Verkaeufer (ISBN, Verkaeufer)
Diese Anpassung sorgt dafür, dass die ursprüngliche Relation keine Mehrfachwerte mehr enthält, somit die 1NF erfüllt:
- Neue Relation Buch:
- Alle Attribute sind atomar.
- Neue Relation Buch_Autor:
- Jeder Eintrag besteht aus einem einzelnen ISBN und einem einzelnen Autor, also atomar.
- Neue Relation Buch_Verkaeufer:
- Jeder Eintrag besteht aus einem einzelnen ISBN und einem einzelnen Verkäufer, also atomar.
Durch diese Anpassungen haben wir das Relationsschema erfolgreich in die 1NF überführt.
b)
Teilaufgabe B: Gehe vom Schema in 1NF aus, das Du zuvor erstellt hast, und bringe es in die 2. Normalform (2NF). Identifiziere alle partiellen Abhängigkeiten und eliminiere diese. Zeige den neuen Schema-Entwurf und erkläre Deine Schritte.
Lösung:
Um das Relationsschema aus der 1. Normalform (1NF) in die 2. Normalform (2NF) zu überführen, müssen alle partiellen Abhängigkeiten eliminiert werden. Eine partielle Abhängigkeit liegt vor, wenn ein Nicht-Schlüsselattribut nur von einem Teil eines zusammengesetzten Primärschlüssels abhängig ist.
Der erste Schritt besteht darin, das Schema in 1NF zu betrachten, das wir bereits erstellt haben:
Buch (ISBN, Titel, Verlag, Preis, Lagerstandort)
Buch_Autor (ISBN, Autor)
Buch_Verkaeufer (ISBN, Verkaeufer)
Wir identifizieren die Primärschlüssel für jede der neuen Relationen:
- Für Buch ist der Primärschlüssel ISBN.
- Für Buch_Autor ist der zusammengesetzte Primärschlüssel (ISBN, Autor).
- Für Buch_Verkaeufer ist der zusammengesetzte Primärschlüssel (ISBN, Verkaeufer).
Nun überprüfen wir, ob partielle Abhängigkeiten bestehen:
- Buch: Keine partiellen Abhängigkeiten, da alle Attribute vollständig vom Primärschlüssel (ISBN) abhängen.
- Buch_Autor: Keine partiellen Abhängigkeiten, da die Kombination (ISBN, Autor) alle entsprechenden Attribute vollständig bestimmt.
- Buch_Verkaeufer: Keine partiellen Abhängigkeiten, da die Kombination (ISBN, Verkaeufer) alle entsprechenden Attribute vollständig bestimmt.
Da unser Schema aus der 1NF keine partiellen Abhängigkeiten aufweist, lässt sich dieses Schema direkt als 2NF betrachten ohne zusätzliche Modifikationen.
Somit ist das Relationsschema bereits in der 2. Normalform (2NF), und es sind keine weiteren Anpassungen notwendig.
Noch einmal zusammengefasst:
Buch (ISBN, Titel, Verlag, Preis, Lagerstandort)
Buch_Autor (ISBN, Autor)
Buch_Verkaeufer (ISBN, Verkaeufer)
Da keine partiellen Abhängigkeiten existieren, erfüllt dieses Schema bereits die Anforderungen der 2NF.
c)
Teilaufgabe C: Geh vom Schema in 2NF aus und bringe es in die 3. Normalform (3NF). Identifiziere alle transitiven Abhängigkeiten und eliminiere diese. Zeige den neuen Schema-Entwurf und erläutere Deine Schritte. Diskutiere abschließend, ob es notwendig ist, das Schema weiter zur Boyce-Codd-NF zu normalisieren, und begründe Deine Entscheidung.
Lösung:
Um das Schema aus der 2. Normalform (2NF) in die 3. Normalform (3NF) zu überführen, müssen wir prüfen, ob transitive Abhängigkeiten bestehen und diese eliminieren. Eine transitive Abhängigkeit liegt vor, wenn ein Nicht-Schlüsselattribut von einem anderen Nicht-Schlüsselattribut abhängt.
Schauen wir uns das Schema an, das wir in der 2NF haben:
Buch (ISBN, Titel, Verlag, Preis, Lagerstandort)
Buch_Autor (ISBN, Autor)
Buch_Verkaeufer (ISBN, Verkaeufer)
Wir überprüfen nun die Relationen auf transitive Abhängigkeiten:
- Buch:
- Primärschlüssel: ISBN.
- Abhängigkeiten: Titel, Verlag, Preis und Lagerstandort hängen direkt von ISBN ab.
- Es gibt eine mögliche Abhängigkeit zwischen Verlag und Lagerstandort, da ein Verlag bestimmte Lagerstandorte haben könnte. Dies stellt eine transitive Abhängigkeit dar.
- Buch_Autor: Keine transitiven Abhängigkeiten, da die Attribute vollständig vom Schlüssel (ISBN, Autor) abhängen.
- Buch_Verkaeufer: Keine transitiven Abhängigkeiten, da die Attribute vollständig vom Schlüssel (ISBN, Verkaeufer) abhängen.
Um die transitive Abhängigkeit im „Buch“-Schema zu eliminieren, müssen wir die Abhängigkeit zwischen Verlag und Lagerstandort trennen:
- Erstellen einer neuen Relation zur Darstellung von Verlag und Lagerstandort:
- Anpassung der ursprünglichen „Buch“-Relation:
Das neue Schema in der 3NF sieht folgendermaßen aus:
Buch (ISBN, Titel, Verlag, Preis)
Buch_Autor (ISBN, Autor)
Buch_Verkaeufer (ISBN, Verkaeufer)
Verlag_Lagerstandort (Verlag, Lagerstandort)
Nun diskutieren wir, ob es notwendig ist, das Schema weiter zur Boyce-Codd-NF (BCNF) zu normalisieren:
- BCNF verlangt, dass jede funktionale Abhängigkeit der Form X → Y auftritt, wobei X ein Superschlüssel ist.
- Im gegebenen Schema ist schon 3NF erfüllt und es gibt keinen Verstoß gegen BCNF, da die funktionalen Abhängigkeiten durch Superschlüssel bestimmt werden.
- Da keine weitere Normalisierung zur Erreichung von BCNF notwendig ist, erfüllt das Schema bereits die Anforderungen von BCNF.
Zusammengefasst:
- Endgültiges Schema in 3NF (und auch BCNF):
Buch (ISBN, Titel, Verlag, Preis)
Buch_Autor (ISBN, Autor)
Buch_Verkaeufer (ISBN, Verkaeufer)
Verlag_Lagerstandort (Verlag, Lagerstandort)
Die Normalisierung zur 3NF hat alle transitiven Abhängigkeiten eliminiert, und es gibt keinen Bedarf zur weiteren Normalisierung zu BCNF, da das Schema bereits diese Norm erfüllt.
Aufgabe 3)
Du sollst ein Klassendiagramm für ein Bibliotheksverwaltungssystem entwerfen. Im System gibt es die Klassen 'Buch', 'Mitglied' und 'Bibliothek'. Jedes Buch hat Attribute wie Titel, Autor und ISBN. Mitglieder der Bibliothek haben Namen, Mitgliedsnummer und eine Liste von ausgeliehenen Büchern. Die Bibliothek hat eine Sammlung von Büchern und Mitgliedern. Verwende UML-Notationen für Klassen, Attribute, Methoden und Assoziationen.
a)
Erstelle ein Klassendiagramm, das die Klassen 'Buch', 'Mitglied' und 'Bibliothek' sowie deren Beziehungen zueinander darstellt. Verwende die korrekten UML-Notationen für Klassen, Attribute und Methoden.
Lösung:
Um ein Klassendiagramm für ein Bibliotheksverwaltungssystem zu entwerfen, müssen die Klassen 'Buch', 'Mitglied' und 'Bibliothek' sowie deren Beziehungen untereinander detailliert dargestellt werden. Hier ist eine Schritt-für-Schritt-Anleitung zur Erstellung des Klassendiagramms in UML:
- Attribute:
- Methoden:
- keine speziellen Methoden in dieser exemplarischen Darstellung
- Klasse 'Mitglied':
- Attribute:
- Name
- Mitgliedsnummer
- Liste von ausgeliehenen Büchern
- Methoden:
- keine speziellen Methoden in dieser exemplarischen Darstellung
- Klasse 'Bibliothek':
- Attribute:
- Sammlung von Büchern
- Sammlung von Mitgliedern
- Methoden:
- keine speziellen Methoden in dieser exemplarischen Darstellung
- Beziehungen zwischen den Klassen:
- Ein 'Mitglied' kann mehrere 'Bücher' ausleihen. (1:n Verhältnis)
- Die 'Bibliothek' hat eine Sammlung von 'Büchern'. (1:n Verhältnis)
- Die 'Bibliothek' hat eine Sammlung von 'Mitgliedern'. (1:n Verhältnis)
Hier ist das UML-Diagramm für das Bibliotheksverwaltungssystem:
[Diagram]+---------------------------------+| Bibliothek |+---------------------------------+| - Sammlung von Büchern || - Sammlung von Mitgliedern |+---------------------------------+||||||||||||||+---------------------------------+| Buch |+---------------------------------+| - Titel || - Autor || - ISBN |+---------------------------------+|||+---------------------------------+| Mitglied |+---------------------------------+| - Name || - Mitgliedsnummer || - Liste von ausgeliehenen Büchern|+---------------------------------+
Dieses Diagramm stellt die grundlegenden Klassen und deren Beziehungen dar, die für ein einfaches Bibliotheksverwaltungssystem notwendig sind. Falls Du weitere Details oder spezielle Methoden hinzufügen möchtest, kannst Du diese entsprechend anpassen und ergänzen.
b)
Definiere die Assoziationen zwischen den Klassen und beschreibe jede Assoziation. Stelle sicher, dass Du auf Aggregation und Komposition eingehst, wo immer es angebracht ist.
Lösung:
In einem Klassendiagramm eines Bibliotheksverwaltungssystems sind die Assoziationen zwischen den Klassen entscheidend für das Verständnis der Beziehungen und der Struktur des Systems. Hier sind die Assoziationen zwischen den Klassen 'Buch', 'Mitglied' und 'Bibliothek' beschrieben, einschließlich der Erklärung von Aggregation und Komposition.
- Assoziationen zwischen den Klassen:
- 'Bibliothek' und 'Buch':
- Typ: Aggregation
- Beschreibung: Eine Bibliothek besitzt eine Sammlung von Büchern. Dies stellt eine Aggregation dar, da die Bücher existieren können, unabhängig davon, ob sie Teil der Bibliothek sind.
- Kardinalität: Die Bibliothek hat eine 1:n Beziehung mit Büchern, was bedeutet, dass eine Bibliothek viele Bücher haben kann, aber ein Buch gehört zu einer Bibliothek.
- Notation: Eine offene Raute an der Bibliothek und eine gerade Linie zu den Büchern.
- 'Bibliothek' und 'Mitglied':
- Typ: Aggregation
- Beschreibung: Eine Bibliothek hat eine Sammlung von Mitgliedern. Dies ist ebenfalls eine Aggregation, da Mitglieder unabhängig von der Bibliothek existieren können.
- Kardinalität: Die Bibliothek hat eine 1:n Beziehung mit Mitgliedern, was bedeutet, dass eine Bibliothek viele Mitglieder haben kann, aber ein Mitglied gehört zu einer Bibliothek.
- Notation: Eine offene Raute an der Bibliothek und eine gerade Linie zu den Mitgliedern.
- 'Mitglied' und 'Buch':
- Typ: Komposition
- Beschreibung: Ein Mitglied kann mehrere Bücher ausleihen. Dies ist eine Komposition, da die ausgeliehenen Bücher direkt von der Existenz des Mitglieds abhängen. Wenn das Mitglied gelöscht wird, dann sind die geliehenen Beziehungen ebenfalls gelöscht.
- Kardinalität: Ein Mitglied hat eine 1:n Beziehung zu Büchern, was bedeutet, dass ein Mitglied viele Bücher ausleihen kann. Ein Buch kann gleichzeitig von mehreren Mitgliedern ausgeliehen sein, weshalb eine m:n Beziehung zwischen 'Mitglied' und 'Buch' relevant sein könnte.
- Notation: Eine ausgefüllte Raute an dem Mitglied und eine gerade Linie zu den Büchern.
Hier ist eine detaillierte Beschreibung der Assoziationen:
Klassen | Typ der Assoziation | Beschreibung | Kardinalität | Notation |
---|
Bibliothek - Buch | Aggregation | Eine Bibliothek hat viele Bücher | 1:n | Offene Raute an der Bibliothek |
Bibliothek - Mitglied | Aggregation | Eine Bibliothek hat viele Mitglieder | 1:n | Offene Raute an der Bibliothek |
Mitglied - Buch | Komposition | Ein Mitglied kann viele Bücher ausleihen | 1:n (oder m:n je nach Kontext) | Ausgefüllte Raute am Mitglied |
Dieses detaillierte Verständnis der Assoziationen hilft dabei, die Beziehungen und die Struktur des Bibliotheksverwaltungssystems klar zu definieren und zu visualisieren. Die UML-Notation unterstützt dabei, diese Beziehungen präzise darzustellen.
c)
Erkläre, wie Vererbung in Deinem Klassendiagramm eine Rolle spielen könnte. Entwirf eine zusätzliche Klasse 'Sachbuch', die von der Klasse 'Buch' erbt, und füge mindestens ein spezifisches Attribut zu 'Sachbuch' hinzu. Passe das Klassendiagramm entsprechend an.
Lösung:
Vererbung ist ein grundlegendes Konzept in der objektorientierten Programmierung und ermöglicht es, gemeinsame Eigenschaften und Verhaltensweisen von übergeordneten Klassen zu untergeordneten Klassen zu erben. In unserem Bibliotheksverwaltungssystem kann Vererbung verwendet werden, um spezifischere Buchtypen zu definieren, die zusätzliche Attribute oder Methoden besitzen.
- Vererbung im Klassendiagramm:
- Die Klasse 'Buch' dient als übergeordnete Klasse.
- Die Klasse 'Sachbuch' wird als spezifische Unterklasse von 'Buch' eingeführt.
- Die Klasse 'Sachbuch' erbt alle Attribute der Klasse 'Buch', fügt jedoch ein spezifisches Attribut hinzu, z.B. 'Fachgebiet'.
- Neue Klasse 'Sachbuch':
Das Klassendiagramm wird nun um die Klasse 'Sachbuch' erweitert, die von 'Buch' erbt:
[Diagram]+---------------------------------+| Bibliothek |+---------------------------------+| - Sammlung von Büchern || - Sammlung von Mitgliedern |+---------------------------------+|/\+---------------------------------+| Buch |+---------------------------------+| - Titel || - Autor || - ISBN |+---------------------------------+|||+---------------------------------+| Mitglied |+---------------------------------+| - Name || - Mitgliedsnummer || - Liste von ausgeliehenen Büchern|+---------------------------------+|||||||\+---------------------------------+| Sachbuch |+---------------------------------+| - Fachgebiet |+---------------------------------+
In diesem erweiterten Diagramm:
- Die Assoziationen zwischen 'Bibliothek' und 'Buch' sowie zwischen 'Mitglied' und 'Buch' bleiben weiterhin bestehen.
- 'Sachbuch' erbt durch eine Vererbungshierarchie (abgebildet durch einen offenen Pfeil) von der Klasse 'Buch'.
- Das spezifische Attribut 'Fachgebiet' ist in der Klasse 'Sachbuch' hinzugefügt.
- Durch die Vererbung hat 'Sachbuch' automatisch auch die Attribute 'Titel', 'Autor' und 'ISBN' von 'Buch'.
Dieses verbesserte Klassendiagramm zeigt, wie durch Vererbung spezifischere Klassen erstellt werden können, die spezialisierte Attribute oder Methoden besitzen, während die allgemeine Struktur und Beziehungen des Systems beibehalten werden.
Aufgabe 4)
Du bist ein Softwareentwickler, der ein System modellieren muss, das eine Online-Bestellung abwickelt. Zu den Hauptkomponenten des Systems gehören der Kunde (Customer), der Onlineshop (OnlineShop), das Lager (Warehouse) und das Bezahlsystem (PaymentSystem). Der Kunde gibt eine Bestellung auf, die vom Onlineshop an das Lager weitergeleitet wird. Das Lager prüft den Lagerbestand und informiert den Onlineshop. Der Onlineshop veranlasst dann die Zahlung über das Bezahlsystem. Zeichne sowohl ein Sequenzdiagramm als auch ein Kommunikationsdiagramm, um den Nachrichtenaustausch zwischen diesen Komponenten darzustellen.
a)
(a) Sequenzdiagramm
- Erstelle ein Sequenzdiagramm, das den Nachrichtenaustausch und die zeitliche Abfolge der Nachrichten im oben beschriebenen Szenario zeigt. Stelle sicher, dass Du alle wichtigen Nachrichten und deren Abfolge darstellst. Verwende dabei die folgenden Objekte: Customer, OnlineShop, Warehouse und PaymentSystem.
Lösung:
- Das Sequenzdiagramm stellt den zeitlichen Ablauf zwischen den Objekten Customer, OnlineShop, Warehouse und PaymentSystem dar.
### Detaillierter Ablauf ###
- Customer: Der Kunde initiiert die Bestellung, indem er seine Bestellung aufgibt.
- OnlineShop: Der Onlineshop empfängt die Bestellung und leitet die Anfrage an das Lager weiter.
- Warehouse: Das Lager prüft den Lagerbestand und sendet die Bestandsinformation zurück an den Onlineshop.
- OnlineShop: Der Onlineshop leitet daraufhin die Zahlungsanforderung an das Bezahlsystem weiter.
- PaymentSystem: Das Bezahlsystem verarbeitet die Zahlung und sendet eine Bestätigung zurück an den Onlineshop.
- OnlineShop: Der Onlineshop gibt dann dem Kunden die Rückmeldung über den Bestellstatus.
Diagram sequence:
Customer -> OnlineShop: Bestellung aufgeben OnlineShop -> Warehouse: Lagerbestandsprüfung anfordern Warehouse -> OnlineShop: Bestandsinformation OnlineShop -> PaymentSystem: Zahlungsanforderung PaymentSystem -> OnlineShop: Zahlungsbestätigung OnlineShop -> Customer: Bestellbestätigung
b)
(b) Lifelines und Nachrichten
- Beschreibe die Rolle der Lifelines in Deinem erstellten Sequenzdiagramm. Welche Informationen geben sie preis und warum sind sie wichtig für das Verständnis des Diagramms?
- Erläutere die Bedeutung der horizontalen Pfeile (Nachrichten) und wie sie die Interaktion zwischen den Objekten widerspiegeln. Gib Beispiele aus Deinem Diagramm an.
Lösung:
- Lifelines und Nachrichten
- Definition: Lifelines in einem Sequenzdiagramm repräsentieren die verschiedenen Objekte oder Komponenten, die an der Interaktion beteiligt sind. In diesem Szenario sind die Lifelines: Customer, OnlineShop, Warehouse und PaymentSystem.
- Informationen: Lifelines geben Informationen darüber, welche Objekte an einem bestimmten Punkt in der Interaktion beteiligt sind und wie lange sie an dieser Interaktion teilnehmen. Jede Lifeline hat eine gestrichelte Linie, die die zeitliche Existenz des Objekts im Diagramm darstellt.
- Bedeutung: Lifelines sind entscheidend für das Verständnis des Diagramms, da sie visualisieren, wie die verschiedenen Objekte miteinander interagieren und wie lange diese Interaktionen andauern. Sie helfen dabei, die Reihenfolge und den zeitlichen Verlauf der Nachrichten zu verfolgen.
- Beispiele: Im erstellten Sequenzdiagramm gibt es Lifelines für Customer, OnlineShop, Warehouse und PaymentSystem. Diese Lifelines zeigen, dass der Kunde eine Bestellung aufgibt, der Onlineshop die Bestellung an das Lager weiterleitet, das Lager den Bestand prüft und zurückmeldet, und schließlich der Onlineshop die Zahlung über das Bezahlsystem veranlasst.
- Bedeutung der horizontalen Pfeile (Nachrichten)
- Definition: Horizontale Pfeile in einem Sequenzdiagramm repräsentieren Nachrichten, die zwischen den verschiedenen Lifelines (Objekten) gesendet werden. Diese Nachrichten können Anfragen, Antworten oder andere Arten von Kommunikationen sein.
- Bedeutung: Diese Pfeile sind entscheidend, um die Interaktion und Kommunikation zwischen den Objekten zu verstehen. Sie zeigen, wer was wann an wen sendet und wie die verschiedenen Komponenten aufeinander reagieren.
- Beispiele: Im erstellten Sequenzdiagramm gibt es mehrere horizontale Pfeile:
- Customer -> OnlineShop: Bestellung aufgeben (Der Kunde gibt eine Bestellung beim Onlineshop auf.)
- OnlineShop -> Warehouse: Lagerbestandsprüfung anfordern (Der Onlineshop sendet die Anfrage an das Lager.)
- Warehouse -> OnlineShop: Bestandsinformation (Das Lager sendet den aktuellen Lagerbestand zurück.)
- OnlineShop -> PaymentSystem: Zahlungsanforderung (Der Onlineshop initiiert die Zahlung beim Bezahlsystem.)
- PaymentSystem -> OnlineShop: Zahlungsbestätigung (Das Bezahlsystem bestätigt die Zahlung.)
- OnlineShop -> Customer: Bestellbestätigung (Der Onlineshop informiert den Kunden über den Status der Bestellung.)
c)
(c) Kommunikationsdiagramm
- Erstelle ein Kommunikationsdiagramm für das gleiche Szenario. Identifiziere die Objekte und ihre Nachrichten. Zeige, wie die Struktur und Beziehungen zwischen den Objekten dargestellt werden können.
Lösung:
- Ein Kommunikationsdiagramm (auch Kollaborationsdiagramm genannt) zeigt die Interaktionen zwischen den Objekten durch die Struktur von Nachrichten und wie diese miteinander verbunden sind. Dieses Diagramm fokussiert sich weniger auf die zeitliche Abfolge und mehr auf die Struktur der Zusammenarbeit zwischen den Objekten.
- Objekte und ihre Nachrichten:
- Customer: Der Kunde initiiert die Bestellung.
- OnlineShop: Der Onlineshop verarbeitet die Bestellung und koordiniert die Lagerbestandsprüfung und die Zahlung.
- Warehouse: Das Lager prüft den Lagerbestand und gibt die Information zurück an den Onlineshop.
- PaymentSystem: Das Bezahlsystem verarbeitet die Zahlungsanforderung und gibt eine Rückmeldung an den Onlineshop.
- Struktur und Beziehungen:
- Das Kommunikationsdiagramm zeigt, wie die Objekte miteinander verbunden sind und welche Nachrichten zwischen diesen ausgetauscht werden.
- Nachrichten werden nummeriert, um die Interaktionsreihenfolge anzugeben, obwohl das Hauptaugenmerk auf der strukturellen Beziehung liegt.
Kommunikationsdiagramm:
1. Customer -> OnlineShop: Bestellung aufgeben 2. OnlineShop -> Warehouse: Lagerbestandsprüfung anfordern 3. Warehouse -> OnlineShop: Bestandsinformation zurücksenden 4. OnlineShop -> PaymentSystem: Zahlungsanforderung 5. PaymentSystem -> OnlineShop: Zahlungsbestätigung 6. OnlineShop -> Customer: Bestellbestätigung
- Im Kommunikationsdiagramm können die nummerierten Nachrichten wie folgt dargestellt werden:
Customer -> OnlineShop: 1. Bestellung aufgeben OnlineShop -> Warehouse: 2. Lagerbestandsprüfung anfordern Warehouse -> OnlineShop: 3. Bestandsinformation zurücksenden OnlineShop -> PaymentSystem: 4. Zahlungsanforderung PaymentSystem -> OnlineShop: 5. Zahlungsbestätigung OnlineShop -> Customer: 6. Bestellbestätigung
- Ein Kommunikationsdiagramm hilft dabei, die Struktur der Beziehungen zwischen den verschiedenen Komponenten zu visualisieren und wie diese Komponenten durch Nachrichten miteinander interagieren.
d)
(d) Vergleich und Analyse
- Vergleiche das erstellte Sequenzdiagramm mit dem Kommunikationsdiagramm. Welche Vor- und Nachteile siehst Du in der Verwendung des einen Diagrammtyps gegenüber dem anderen in Bezug auf die Modellierung des beschriebenen Systems?
- Erläutere in welchen Szenarien Du Sequenzdiagramme bzw. Kommunikationsdiagramme bevorzugen würdest und warum.
Lösung:
- Vor- und Nachteile des Sequenzdiagramms
- Vorteile:
- Zeigt die zeitliche Abfolge von Nachrichten, was das Verständnis der Reihenfolge von Ereignissen erleichtert.
- Visualisiert deutlich, welche Objekte zu bestimmten Zeiten aktiv sind.
- Eignet sich gut zur Darstellung von Abläufen und Prozessen.
- Nachteile:
- Weniger Fokus auf die strukturelle Beziehung zwischen den Objekten.
- Kann bei komplexen Interaktionen schnell unübersichtlich werden.
- Vor- und Nachteile des Kommunikationsdiagramms
- Vorteile:
- Hebt die strukturellen Beziehungen zwischen den Objekten hervor.
- Gut geeignet für die Darstellung der allgemeinen Interaktion und der Zusammenarbeit zwischen Komponenten.
- Kann komplexe Beziehungen übersichtlicher darstellen.
- Nachteile:
- Zeigt die zeitliche Abfolge von Nachrichten nicht so klar wie das Sequenzdiagramm.
- Kann bei der Darstellung von zeitkritischen Abläufen weniger nützlich sein.
- Szenarien für die Verwendung von Sequenzdiagrammen
- Wenn die zeitliche Abfolge von Nachrichten und die Lebenszyklen der Objekte wichtig sind.
- Zur Darstellung von Prozessen und Abläufen, bei denen die Reihenfolge der Schritte entscheidend ist.
- Beispiel: Modellierung eines Workflows oder eines Geschäftsprozesses, bei dem die zeitliche Abfolge wichtig ist.
- Szenarien für die Verwendung von Kommunikationsdiagrammen
- Wenn die strukturellen Beziehungen und die Interaktion zwischen den Objekten im Vordergrund stehen.
- Zur Darstellung von Systemarchitekturen und der allgemeinen Kommunikationsstruktur.
- Beispiel: Modellierung der internen Kommunikation eines verteilten Systems, bei dem die Botschaftswege und Zuständigkeiten wichtiger sind als die genaue zeitliche Abfolge.
- Sequenzdiagramme sind besonders nützlich bei der Darstellung der zeitlichen Abfolge von Nachrichten und bei Prozessen, bei denen die Reihenfolge kritisch ist.
- Kommunikationsdiagramme sind besser geeignet, die strukturellen Beziehungen und Interaktionen zwischen verschiedenen Objekten zu visualisieren.
- Die Wahl des Diagrammtyps sollte sich nach den spezifischen Anforderungen und dem Fokus der Modellierung richten.