SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster Aufgabe 1 analytische Aufgabe Die Eigenschaften und Einsatzbereiche von Assoziationen, Aggregationen und Kompositionen einschließlich ihrer Sonderfälle erklären können. Passen die abgebildeten Objekt-Diagramme zum dargestellten Klassen- Diagrammen? Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 1 / 8
Aufgabe 2 analytische Aufgabe Lernziel Die Eigenschaften und Einsatzbereiche von Assoziationen, Aggregationen und Kompositionen einschließlich ihrer Sonderfälle erklären können. Sind die jeweiligen Assoziationsarten (einfache Assoziation, Komposition und Aggregation) in den Klassendiagrammen sinnvoll gewählt? Begründen Sie jeweils Ihre Entscheidung. Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 2 / 8
Aufgabe 3 Analytische Aufgabe Ein OOA-Modell erstellen und überprüfen können. In einer Schule soll der Lehrbetrieb folgendermaßen rechnergestützt verwaltet werden: 1. Jeder Lehrer kann bis zu vier Fächer unterrichten. 2. Eine Klasse wird von verschiedenen Lehrern in unterschiedlichen Fächern unterrichtet. 3. Jeder Klasse ist ein bestimmter Lehrer als Klassenlehrer zugeordnet. 4. Der Klassenlehrer soll die Schüler seiner Klasse bei Problemen unterstützen. Deshalb darf jeder Lehrer nur für eine Klasse Klassenlehrer sein. 5. Jede Unterrichtsstunde finden in einem bestimmten Raum zu einer bestimmten Zeit statt und wird von einem Lehrer vor einer Klasse abgehalten. 6. Jede Klasse hat zwischen 30 und 35 Unterrichtsstunden. Betrachten Sie das zu diesem Problem erstellte OOA-Modell in unten stehender Abbildung. a. Prüfen Sie, ob das Modell hinsichtlich der gefundenen Klassen und Beziehungen korrekt ist. b. Untersuchen Sie auch, ob die Attribute sinnvoll benannt sind und ob überall das richtige Abstraktionsniveau gefunden wurde. Abbildung: Fehlerhaftes OOA-Modell zur Verwaltung des Lehrbetriebs einer Schule Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 3 / 8
Aufgabe 4 Analytische Aufgabe Ein OOA-Modell systematisch erstellen und überprüfen können. Die in der Vorlesung vorgestellten OOA-Muster erklären und in OOA-Modellen identifizieren können. Im Rahmen eines Praktikums wurde ein vereinfachtes OOA-Modell einer Seminarorganisation erstellt. Betrachten Sie dieses Modell in untenstehender Abbildung. a. Prüfen Sie, ob das Modell hinsichtlich der gefundenen Klassen und Beziehungen korrekt ist. b. Untersuchen Sie auch, ob die Attribute sinnvoll benannt sind und ob überall das richtige Abstraktionsniveau gefunden wurde. c. Schlagen Sie ein verbessertes Modell vor. d. Falls Sie sich mit OOA-Mustern auskennen: sind diese richtig verwendet? Abbildung: Fehlerhaftes OOA-Modell zur Seminarorganisation Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 4 / 8
Aufgabe 5 konstruktive Aufgabe Lernziel Die aufgeführten OOA-Muster erklären und in OOA-Modellen identifizieren können. Modellieren Sie folgende Problemstellungen als Klassendiagramme. Denken Sie sich für die Klassen geeignete Attribute aus. Prüfen Sie, welches der in der Vorlesung beschriebenen Muster vorliegt. a. Die Qualitätssicherung einer Großbäckerei prüft die Gewichtsabweichungen der Brotlaibe ihrer unterschiedlichen Brotsorten. Hierzu werden die Brote mit Gewicht erfasst und mit dem Sollgewicht verglichen. b. In einem Warenwirtschaftssystem können mehrere Artikel zu einer Warengruppe zusammengefasst werden. c. In einem Terminplaner werden Termine und Adressen verwaltet. d. In einer Prozessverarbeitung gibt es unterschiedliche Prozessschritte wie z.b. Berechnung, Dateneineingabe usw. Prozessschritte können eine Gruppe bilden. Diese Gruppe kann wiederum als Prozessschritt Teil einer anderen Gruppe sein. e. Ein Kind hat zwei Elternteile: Vater und Mutter. Von den Elternteilen sind Name, Adresse und Geschlecht interessant, beim Kind ist das Geburtsdatum von Bedeutung. Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 5 / 8
Aufgabe 6 konstruktive Aufgabe Klassen- und Objektdiagramm ableiten und zeichnen können. Sinnvolle Attribute spezifizieren können. Es soll ein Software-System für eine Autovermietung erstellt werden, mit folgenden Anforderungen: Von jedem PKW werden das Kennzeichen und das Baujahr gespeichert. Die einzelnen PKWs werden Typen zugeordnet. Jeder Typ hat eine Bezeichnung und einen Tagesmietpreis. Typen werden auch gespeichert, wenn keine entsprechenden PKWs vorhanden sind. PKWs können nur erfasst werden, wenn der entsprechende Typ auch existiert. Zu jedem Auto, das vermietet wird, gibt es einen Entleiher, der gleichzeitig Fahrer ist. Darüber hinaus können bis zu drei Zusatzfahrer eingetragen werden. Von den Fahrern (Entleiher und Zusatzfahrer) werden die Namen, Adressen und das Geburtsdatum gespeichert. Eine Person darf maximal 5 Autos gleichzeitig (als Entleiher) mieten. PKW und Fahrer sollen in dem System gespeichert bleiben, sobald sie einmal erfasst wurden, auch wenn sie aktuell an keiner Vermietung beteiligt sind. a. Erstellen Sie ein Klassendiagramm, das den angegebenen Anforderungen entspricht. b. Erstellen Sie ein exemplarisches Objekt-Diagramm zu einer Vermietung. Denken Sie sich hierzu sinnvolle Attributwerte aus! Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 6 / 8
Aufgabe 7 Konstruktive Aufgabe Klassen- und Objektdiagramm ableiten und zeichnen können. Sinnvolle Attribute spezifizieren können. In dieser Aufgabe ist ein Klassendiagramm mit Attributen zu entwickeln. Lesen Sie die ganze Aufgabe, bevor Sie mit dem Zeichnen des Diagramms anfangen. a) Zeichnen Sie ein Klassendiagramm eines Fahrzeugs, das folgender Beschreibung entspricht: Ein Fahrzeug besteht aus einer Karosserie, einem Bremssystem, zwei bis vier Sitzen und vier Rädern an den unterschiedlichen Positionen (vornelinks, vornerechts, hintenlinks, hintenrechts). Jedes Rad besteht aus einer Felge, einem Reifen, einer Scheibenbremse und fünf Schrauben. b) Tragen Sie folgende Aussagen in das Diagramm ein (wählen Sie ggf. geeignete Bezeichnungen für Attribute oder Assoziationen): (1) Räder haben Durchmesser, Breite und Soll-Reifendruck. (2) Das Bremssystem ist mit allen Scheibenbremsen verbunden. (3) Fahrzeuge haben eine Typenbezeichnung, ein Datum der Erstzulassung und einen Besitzer. (4) Reifen haben eine Profiltiefe. Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 7 / 8
Aufgabe 8 Konstruktive Aufgabe Klassendiagramm ableiten und zeichnen können. Sinnvolle Attribute spezifizieren können. Mit Assoziationen und Vererbungen sinnvoll umgehen können. Entwerfen Sie ein möglichst vollständiges Klassendiagramm aufgrund folgender Beschreibung. Achten Sie auch darauf, dass das Klassendiagramm nicht mehr aussagt, als der Text hergibt. Der gefährliche Trollwald besitzt viele Höhlen. Jede Höhle hat einen eindeutigen Namen und eine bestimmte Anzahl von Eingängen. Jede dieser Höhlen ist eine Behausung für einen oder mehrere Trolle. Es gibt im Trollwald zwei verschiedene Arten von Trollen: Steintrolle und Bergtrolle. Alle Trolle wohnen in Höhlen und sind durch ihren Namen und ihre Größe unterscheidbar. Steintrolle bestehen aus einer bestimmten Gesteinsart. Bergtrolle bestehen zwar nicht aus Stein, jedoch haben sie Schuppen in unterschiedlicher Farbe. Jeder Troll hat natürlich eine Keule, mit der er hauen kann und die sein Eigentum ist. Tolle Trolle haben sogar mehrere solcher Keulen. Die Keulen haben alle eine Holzart und kommen von einem Hersteller, entweder Globetroller oder Mac Keule. Quelle (teilweise): H. Balzert, Lehrbuch der Softwaretechnik, Band 1, LE 13 Seite 8 / 8