19
Prof. Dr. Burkhardt Renz FH Gießen-Friedberg Softwaretechnik III Übungen Übungen zu Softwaretechnik III A Unified Modeling Language (Wiederholung) 1. Klassendiagramm — Gültige Ausprägungen Vorgegeben ist das Klassendiagramm aus Abb. 1. Geben Sie zu den Objektdiagrammen in Abb. 2 an, ob sie gültige Ausprägungen des Klassendiagramms sind oder nicht; begründen Sie Ihre Aussagen. Abbildung 1: Klassendiagramm Abbildung 2: Gültige Objektdiagramme? 2. Klassendiagramm — Beziehungen In der Modellierung treten insbesondere drei Arten von Beziehungen auf: Generalisie- rung/Spezialisierung, Assoziation und Aggregation. Teilen Sie die folgenden Beziehun- gen in diese Kategorien ein. Bedenken Sie, dass es auch ternäre (dreiwertige) Assozia- tionen geben kann. Begründen Sie Ihre Antwort. Wintersemester 2006/07 1

Softwaretechnik III Übungen Wintersemester 2006/07files.homepagemodules.de/b579696/f4t29p170n4.pdf · Kennzeichen „D-5402“ vom Typ Airbus A-330 und dem Zielflughafen FRA. Die

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Übungen zu Softwaretechnik III

A Unified Modeling Language (Wiederholung)

1. Klassendiagramm — Gültige Ausprägungen

Vorgegeben ist das Klassendiagramm aus Abb. 1.

Geben Sie zu den Objektdiagrammen in Abb. 2 an, ob sie gültige Ausprägungen desKlassendiagramms sind oder nicht; begründen Sie Ihre Aussagen.

Abbildung 1: Klassendiagramm

Abbildung 2: Gültige Objektdiagramme?

2. Klassendiagramm — Beziehungen

In der Modellierung treten insbesondere drei Arten von Beziehungen auf: Generalisie-rung/Spezialisierung, Assoziation und Aggregation. Teilen Sie die folgenden Beziehun-gen in diese Kategorien ein. Bedenken Sie, dass es auch ternäre (dreiwertige) Assozia-tionen geben kann. Begründen Sie Ihre Antwort.

Wintersemester 2006/07 1

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

(a) Ein Land hat eine Hauptstadt.

(b) Eine Datei kann eine normale Datei sein oder ein Dateiverzeichnis.

(c) Eine Rechnung enthält Rechnungspositionen.

(d) Ein Student besucht eine Vorlesung, die von einem Professor gehalten wird.

(e) Tastatur, Maus und Graphiktablett sind Eingabegeräte.

(f) Eine Strasse verbindet zwei Städte.

Zeichnen Sie für alle Fälle ein Klassendiagramm, aus dem die Art der Beziehung(en)hervorgeht.

3. Beispiele von Klassendiagrammen

Gegeben sind folgende Objekte und Beziehungen:

(a) Eine Person kann ein Mann oder eine Frau sein. Personen können verheiratet sein.

(b) Ein Küken hat einen biologischen Vater (Hahn) und eine biologische Mutter (Hen-ne).

(c) Zur Zubereitung eines Cocktails sind verschiedene Zutaten nötig.

(d) Ein Student nimmt an einer Vorlesung teil.

(e) Ein Computer besteht aus verschiedenen Bauteilen, z.B. Motherboard, Netzteil,DVD-Laufwerk, Lüfter usw.

Zeichnen Sie für diese Beispiele ein Klassendiagramm. Dabei sollten für jede Beziehungihre Art, ein sinnvoller Name und die Multiplizitäten angegeben sein.

4. Klassendiagramm — Multiplizitäten

Gegeben sind folgende binäre Assoziationen:

(a) gelesen, Buch und Leser verbindend

(b) verheiratet, Personen verbindend

(c) unterrichtet, Lehrer und Schüler verbindend

(d) enthalten, Datei und Ordner verbindend

(e) gesetzt, Tennisspieler und Turnier verbindend

(f) besetzt, Feld des Schachbretts und Figur verbindend

Geben Sie jeweils die Multiplizität dieser Assoziationen an, (1) wenn Sie einen bestimm-ten Zeitpunkt betrachten (Schnappschuss) und (2) wenn Sie einen längeren Zeitraummodellieren wollen (Historie).

Überlegen Sie auch, ob es in der Wirklichkeit Konstellationen geben kann, bei denendie gefundene Multiplizität doch nicht zutrifft?

Wintersemester 2006/07 2

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

5. Klassendiagramm — Assoziationen

Abbildung 3: Unvollständiges Klassendiagramm

An einem Projekt arbeiten viele Personen, eine Person kann an mehreren Projektenbeteiligt sein. Jedes Projekt hat einen Projektleiter. Eine Person kann als Gruppenleiterfür andere Personen zuständig sein. Ergänzen Sie das Diagramm in Abb. 3.

6. Objekte — Beispiel einer graphischen Oberfläche

Bekanntlich sind graphische Benutzeroberflächen Musterbeispiele für die sinnvolle An-wendung objektorientierter Prinzipien.

Finden Sie im folgendem Beispiel eines Dialogs (siehe Abb. 4) einer bekannten Oberflä-che Objekte, Klassen, Beziehungen, Attribute und Methoden. (Ihre Darstellung brauchtnicht vollständig zu sein.)

Abbildung 4: Beispiel eines Dialogs

7. Klassendiagramm für Graphen

In Abbildung 5 werden zwei verschiedene Klassendiagramme für Graphen dargestellt.Erläutern Sie den Unterschied zwischen den beiden Modellen: für welche Art von Gra-phen ist (a) und für welche (b) gedacht? Zeichnen Sie jeweils ein Beispiel eines Graphenmitsamt einem Objektmodell.

Wintersemester 2006/07 3

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

2 0..*

verbindetEcke Kante

(a)

(b)1 0..*

spitzeEcke Kante

1 0..* ende

Abbildung 5: Zwei Klassendiagramme für Graphen

8. Architektur der UML — Metamodell

Erläutern Sie, wie das Metamodell der UML die UML selbst beschreibt: Zeigen Sie fürein Objekt hans:Person mit den Attributen name="Maier" und vorname="Hans", wiees durch seine Klasse und wie diese Klasse durch das Metamodell beschrieben werdenkann.

B Fachmodell & Analysemuster

9. Fachmodell — Fragwürdige Entwürfe

In folgenden Ausschnitten aus Klassendiagrammen sind Fehler oder fragwürdige Ent-scheidungen enthalten. Finden Sie die Fehler und nennen Sie sie.

• In Modell in Abb. 6 werden Bankkunden und Konten dargestellt. Vorgegeben ist,dass ein Kunde mehrere Konten haben kann, eventuell aber auch keines. Ein Kontogehört immer einem Kunden, es kann aber auch sein, dass mehrere Kunden einKonto gemeinsam haben.

Was würden Sie ändern?

Abbildung 6: Fragwürdiges Modell 1

• Folgende Skizze 7 ist Ausschnitt des Modells einer Landkarte. Die Landkarte hatPlanquadrate mit einer Bezeichnung, wie etwa A1, A2. Die Landkarte zeigt u.a.Straßen, die den Planquadraten zugeordnet sind.

Wintersemester 2006/07 4

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Dargestellt werden soll: Eine Straße kann vollständig in einem Planquadrat ent-halten sein; es kann aber auch sein, dass eine Straße durch mehrere Planquadrateverläuft.

Was halten Sie von dieser Lösung?

Abbildung 7: Fragwürdiges Modell 2

• Städte haben einen Namen, sind in einem Land und unterhalten Städtepartner-schaften mit anderen Städten. Der Wert PartnerSeit gibt an, seit wann die Part-nerschaft zweier Städte besteht. Dies ist modelliert in Abb. 8.

Würden Sie diesen Sachverhalt auch so darstellen?

Abbildung 8: Fragwürdiges Modell 3

10. Fachmodell — Lern & Spaß

In einer Seminarverwaltung der Firma „Lern und Spaß“ sollen Seminar, Termine undOrte für die Seminare, Dozenten und Teilnehmer verzeichnet werden.

Die Seminarverwaltung soll folgende Informationen beinhalten:

• Welche Dozenten können welche Seminare halten?

• Welche Dozenten haben welche Seminare gehalten – oder werden sie halten?

• Welche Teilnehmer waren bei welchen Veranstaltungen und wie haben sie sie be-wertet?

Entwerfen Sie ein Klassendiagramm mit den benötigten Klassen, Attributen und Multi-plizitäten. Räumen Sie eventuelle Unklarheiten durch Anmerkungen aus.

11. Bank — Objektdiagramm

Zeichnen Sie ein Objektdiagramm für folgende Situation für die Kontenführung einerBank:

Wintersemester 2006/07 5

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

• Die Bank namens „Neue Internet Bank“ und der Bankleitzahl 500 633 99 hatPetra Schneider und Hans Ahlers als Kunden.

• Petra Schneider hat die Kundennummer 1003 bei der Bank. Sie hat ein Giro-konto mit der Kontonummer 134 und einem Kontostand von 135,45 €, sowie einSparkonto Nummer 222 mit einem Guthaben von 3245,23 €.

• Herr Ahlers hat die Kundennummer 2034. Er hat ein Girokonto mit der Konto-nummer 812 und einem Saldo von -345,67 €, sowie ein zweites Girokonto mit derNummer 987 und einem Guthaben von 457,00 €.

12. Bank — Klassendiagramm

Verwenden Sie die Situation aus der vorherigen Aufgabe und erstellen Sie ein Klassen-diagramm für die Kontenführung einer Bank.

Berücksichtigen Sie außerdem:

• Ein Kunde kann Konten bei mehreren Banken haben.

• Ein Kunde kann mehrere Konten bei einer Bank haben.

• Es kann Kunden einer Bank geben, die kein Konto haben.

• Für Guthaben auf Sparkonten erhalten die Kunden Zinsen, die einmal pro Jahrzugebucht werden. Maßgeblich ist das Guthaben auf dem Konto im Laufe desJahres, sowie der Zinssatz, der sich im Laufe des Jahres auch verändern kann.

• Für die Kontenführung der Girokonten verlangt die Bank Gebühren, die monatlicherhoben werden und abhängig sind von der Zahl der Buchungen auf dem Konto.

Geben Sie an: Klassen, Attribute, Multiplizitäten, Methoden. Ergänzen Sie das Dia-gramm mit Anmerkungen, falls ein Sachverhalt nicht eindeutig aus dem Diagrammhervorgeht.

13. Musikagentur BlueNote — Fachmodell

Die Musikagentur BlueNote (spezialisiert auf Jazz und Rock) bittet Sie, für die Verwal-tung ihrer Musikalben und Tourneen ein Fachmodell zu erstellen. Zum Lohn werden Sieauf Lebenszeit alle CDs der Agentur kostenlos erhalten. Aus den Gesprächen mit denMitarbeitern der Agentur erfahren Sie folgende Sachverhalte:

• Alben werden von einem Interpreten produziert. Der Interpret kann ein einzelnerMusiker sein oder eine Gruppe. Ein Musiker hat einen Namen, Vornamen undein Geburtsdatum; eine Gruppe hat einen Namen, besteht seit einem bestimmtenDatum und ist für einen bestimmten Zeitraum zusammen aktiv.

• Eine Gruppe besteht aus mehreren Musikern, mindestens 2. Musiker spielen manch-mal in einer Gruppe, manchmal aber auch Solo.

• Ein Album hat einen Titel, eine RecordNummer und erscheint zu einem bestimtenDatum. Es enthält Stücke, die einen Titel und eine Spieldauer haben. Es wirdverzeichnet, welche Musiker die Stücke spielen.

• Eine Tournee wird mit eventuell mehreren Musikern und Gruppen durchgeführt.Sie hat einen Namen und besteht aus Konzerten, die an einem Ort und in einemSaal zu einem bestimmten Termin durchgeführt werden.

Wintersemester 2006/07 6

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Erstellen Sie ein Fachmodell: Klassen, Attribute, Assoziationen und Multiplizitäten.

Geben Sie an, welche Analysemuster in Ihrer Lösung vorkommen.

14. Zahnarzt — Fachmodell

Modellieren Sie ein System, das Behandlungen eines Zahnarztes verwaltet. Wir gehenvon folgender Situation aus:

• Ein Zahnarzt hat Patienten, die er behandelt. Das System speichert Name undAdresse der Patienten. Wenn der Patient ein Kassenpatient ist, benötigt der Zahn-arzt zur Abrechnung den Namen der Krankenkasse und die Versicherungsnummer;bei Privatpatienten genügt die Bankverbindung und die Einzugsermächtigung.

• Behandlungen werden an einem bestimmten Tag durchgeführt. Manchmal gehörtzur Behandlung die Erstellung eines Zahnschemas, in dem der Zahnarzt alle Zähnedurchgeht: er trägt die Nummer des Zahnes und den Befund über den Zustandein.

• Stets gehören zu einer Behandlung verschiedene Leistungen, die der Zahnarzt nachder GOZ (Gebührenordnung für Zahnärzte) ausweist und mit einem Berechnungs-faktor abrechnet.

Erstellen Sie ein Klassendiagramm. Geben Sie die Klassen (mit den wesentlichen Attri-buten) und ihre Beziehungen an.

Geben Sie an, welche Analysemuster in Ihrer Lösung vorkommen.

15. Flugüberwachung — Fachmodell

Gegeben sei folgende Situation: Das Flugüberwachungszentrum (kurz: FÜZentrum)Rhein-Main mit Sitz in Offenbach ist eines der Zentren, die den deutschen Luftraumüberwachen. Das FÜZentrum ist für die Flugzone mit der Bezeichnung „DE-SW1“ zu-ständig.

Die Flugzone ist unterteilt in Sektoren, die jeweils durch die geographische Positionvon zwei Ecken des rechteckigen Sektors beschrieben werden. So enthalt die Flugzone„DE-SW1“ einen Sektor, dessen linke obere Ecke durch die Koordinaten „46°07’00"N-10°40’50"E“ und die rechte untere Ecke durch die Koordinaten „45°07’00"N-11°40’50"E“definiert sind.

Fluglotse Roland Mayer mit der Personalnummer 10023 ist beim FÜZentrum Rhein-Main beschäftigt. Er überwacht immer zusammen mit einem zweiten Kollegen einenSektor. In seinem Sektor befinden sich Flugzeuge, zum Beispiel das Flugzeug mit demKennzeichen „D-5402“ vom Typ Airbus A-330 und dem Zielflughafen FRA.

Die Sektoren, die am Rand der Flugzone des FÜZentrums liegen, werden Randsektorengenannnt. Sie werden von zwei Fluglotsen des zuständigen FÜZentrums überwacht undzusätzlich von einem Fluglotsen des benachbarten FÜZentrums beobachtet.

• Erstellen Sie ein Klassendiagramm, das die dargestellte Situation möglichst präzisewiedergibt. Geben Sie Klassen, Attribute, Assoziationen und Multiplizitäten an.

Für Sachverhalte, die Sie nicht direkt im Diagramm ausdrücken können, verwendenSie Anmerkungen. Für die Darstellung von Koordinaten steht die Klasse GeoPos(Geographische Position) zur Verfügung.

Wintersemester 2006/07 7

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

• Nennen Sie zwei Fragen, die Ihnen beim Modellieren als Unklarheiten aufgefallensind. Was müssen Sie über das Vorgehen bei der Flugüberwachung herausfinden,wenn Sie das Modell weiterentwickeln wollen?

Geben Sie an, welche Analysemuster in Ihrer Lösung vorkommen.

16. Einfache Analysemuster

1

1..*

0..* 1

Bestellpositiom

menge: Integer

Artikel

nummer: Stringbezeichnung: Stringpreis: Money

Bestellung

nummer: Integerdatum: Datelieferdatum: Datekunde: Stringadresse: Address

Abbildung 9: Klassendiagramm einer Bestellung

(a) Im Diagramm in Abb. 9 werden Analysemuster verwendet. Welche Muster könnenSie erkennen?

(b) Erläutern Sie die Charakteristika des Analysemusters „Gruppe“ und nennen Siedrei verschiedene Beispiele.

(c) Zeichnen Sie ein beispielhaftes Klassendiagramm für das Analysemuster „Baugrup-pe“.

17. Organisation eines Open-Source-Projektes

Für ein Open-Source-Projekt wird ein Koordinator, mindestens ein Programmierer undmindestens ein Tester benötigt. Dabei kann eine Person an einem Open-Source-Projektzur gleichen Zeit auf verschiedenen Art und Weise beteiligt sein, also beispielsweisegleichzeitig koordinieren und programmieren. Im Extremfall genügt eine Person, diegleichzeitig Koordinator, Programmierer und Tester ist.

Das Klassendiagramm in Abb. 10 ist ein Versuch, diese Konstellation auszudrücken. SindSie einverstanden? Wenn nein, verbessern Sie das Modell mit Hilfe von Analysemustern.

18. Analysemuster Hierarchie

Modellieren Sie eine Hierarchie mit folgenden zusätzlichen Vorgaben

• Hierarchische Organisationseinheiten, wobei jede Einheit über spezielle Attributeverfügen kann. Z.B. eine Organisation von Konzern, der Firmen hat, die Abteilun-gen haben, die Gruppen haben.

Wintersemester 2006/07 8

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

1..*1..*1

OpenSourceProjekt

TesterProgrammiererKoordinator

Abbildung 10: Klassendiagramm zur Organisation eines Open-Source-Projekts

• Hierarchie von Elementen, bei denen die Blätter der Hierarchie durch eine spezielleKlasse modelliert sind, z.B. ein Verzeichnisbaum in einem Dateisystem, in demDateien und Verzeichnisse verschiedene Attribute haben können.

• Hierarchie mit variabler Tiefe, z.B. die politische Gliederung der BundesrepublikDeutschland mit Bund, Ländern, Regierungsbezirken, Kreisen, Verbandsgemein-den und Gemeinden. Dabei kann es sein, dass eine Gemeinde direkt einem Kreiszugeordnet ist, oder dass sie Teil einer Verbandsgemeinde ist.

Geben Sie zusätzliche Informationen, die Sie nicht im Diagramm ausdrücken können inAnmerkungen an.

C Anwendungsfälle

19. Anwendungsfall: Warenkorb

Ein Kunde kauft bei einem Online-Händler (z.B. amazon.de oder bol.de) einen Artikel(z.B. ein Buch oder eine CD).

Variante A Diese Variante besteht aus dem denkbar einfachsten Standardfall, bei demalles glatt geht: Der Kunde hat vor Beginn des Vorgangs bereits ein Benutzerkontoeingerichtet. Der Kunde beginnt mit einem leeren Warenkorb. Der Kunde kauft genaueinen Artikel. Der gewünschte Artikel ist verfügbar. Es gibt keine Fehleingaben. Es tretenkeine Probleme auf.

Variante B Der Kunde kauft einen Artikel, möchte ihn aber nicht an seine übliche Lie-feradresse, sondern als Geschenk an eine andere Adresse versenden. Außerdem möchteer eine Grußkarte mit einem kurzen Text beilegen.

Machen Sie eine Beschreibung des Anwendungsfalles mit dem Standardablauf (VarianteA) und dem Alternativablauf (Variante B). Legen Sie als Gliederung die in der Vorlesungvorgestellte Vorlage zugrunde.

20. Anwendungsfälle: Versteigerungsportal

(a) Sie möchten sich eine neuwertige Digitalkamera zu einem günstigen Preis zulegenund begeben sich dazu auf die Seiten eines bekannten Versteigerungsportals.

Beschreiben Sie den Anwendungsfall, bei dem ein abgebotener Artikel ausgesuchtund ein Gebot abgegeben wird.

Wintersemester 2006/07 9

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

(b) Sie haben sich einen neuen Laptop zugelegt, möchten Ihren alten Laptop aberweder verschenken noch verschrotten.

Beschreiben Sie den Anwendungsfall in einem Versteigerungsportal, bei dem einArtikel zur Versteigerung angeboten wird.

In beiden Fällen können Sie sich natürlich an den Abläufen existenter Versteigerungs-portale orientieren.

21. Anwendungsfalldiagramm Check-in

In folgendem Ausschnitt (Abb. 11) aus dem Anwendungsfalldiagramm für ein Systemzum Einchecken von Flugpassagieren fehlen die Beziehungen.

Ergänzen Sie das Diagramm und begründen Sie jede Beziehung, die Sie einzeichnen.

Abbildung 11: Anwendungsfalldiagramm Check-in

22. Anwendungsfalldiagramm Auftrag

Das Diagramm in Abb. 12 ist ein Auszug aus dem Analysemodell eines Warenwirt-schaftssystems. Es zeigt Anwendungsfälle im Zusammenhang mit der Auftragsbear-beitung. In diesem Diagramm wurden die Beziehungen der verschiedenen Elemente„vergessen“.

Über die Abläufe in der Warenwirtschaft ist bekannt:

• Es werden Angebote erstellt, dies geschieht häufig mit Neukunden, so dass derKunde, der das Angebot erhalten soll, erst im System angelegt werden muss.

• Kunden wenden sich (oft telefonisch) an die Auftragsbearbeitung, um einen Auf-trag zu erteilen. Wurde dem Kunden zuvor ein Angebot gemacht, so kann es sein,dass der Auftrag einfach dadurch angenommen wird, dass das Angebot in einenAuftrag umgewandelt wird.

• Ehe die Auftragsannahme abgeschlossen werden kann, wird überprüft, ob die be-stellten Waren auch lieferbar sind.

Wintersemester 2006/07 10

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Abbildung 12: Auftragsbearbeitung

Ergänzen Sie das Diagramm und geben Sie jeweils eine kurze Begründung für IhreEntscheidung.

D Zustandsdiagramme

23. Ein Rätsel und ein Zustandsdiagramm

Sie werden das Rätsel kennen: Ein Bauer befindet sich links des Flusses, bei ihm Fuchs,Gans und Hafer. Der Fuchs frisst die Gans, die Gans frisst den Hafer – wenn der Bauernicht dabei ist. Sein Boot zum Übersetzen fasst nur Fuchs, Gans oder Hafer. Was tun?

Der Informatiker ist systematisch: Er denkt sich ein System von Zuständen und Ereig-nissen aus, macht daraus ein Zustandsdiagramm und kann so das Rätsel lösen.

Helfen Sie dem Bauern!

[Das Beispiel stammt von John E. Hopcroft und Jeffrey D. Ullman.]

24. Äquivalenz von Zustandsdiagrammen

Man sagt, dass zwei Zustandsautomaten äquivalent sind, wenn jede Folge von Ereig-nissen, die bei dem einen Zustandsautomaten erlaubt und möglich ist auch von demanderen akzeptiert wird und außerdem jede Folge von Ereignissen in beiden Automatendieselbe Folge von Zuständen ergibt.

Analysieren Sie die beiden Zustandsdiagramme in Abb. 13. Sind sie äquivalent? Wennnein, dann geben Sie eine Serie von Ereignissen an, die von Automat (A), nicht jedochvon Automat (B) akzeptiert wird. Warum ist das so?

25. Zustandsdiagramm einer Digitaluhr

Eine Digitaluhr hat eine Anzeige und zwei Schaltknöpfe, A und B. Die Uhr hat zweiModi: sie kann die Uhrzeit anzeigen oder man kann die Uhrzeit einstellen. Im Anzeige-

Wintersemester 2006/07 11

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Abbildung 13: Äquivalente Automaten?

modus zeigt die Digitaluhr die Zeit, im Einstellmodus hat sie zwei Zustände, man kanndie Stunden einstellen und man kann die Minuten einstellen.

Wenn man den Schaltknopf A drückt, wechselt die Uhr in den Einstellmodus und mankann die Stunde einstellen, ein weiteres Drücken von A gestattet die Eingabe der Mi-nuten. Der Einstellmodus wird dann durch erneutes Drücken von A beendet.

Ist man im Einstellmodus, dann kann man mit dem Schaltknopf B die Zeit, also Stundenoder Minuten (je nach Modus) einstellen. Durch das Drücken des Schaltknopfes wirdeinfach die Anzeige um 1 erhöht.

Zeichnen Sie ein Zustandsdiagramm dieser Digitaluhr.

26. Zustandsdiagramm — Zapfsäule

Modellieren Sie eine Zapfsäule an einer Tankstelle mit Hilfe eines Zustandsdiagramms.Das Modell soll folgende Situation abbilden:

Der Autofahrer kommt an die Zapfsäule, die noch den alten Betrag anzeigt. Er hängtden Zapfhahn aus, wodurch die Zähler für Menge und Betrag auf 0 gestellt werden,jetzt ist Tanken möglich.

Der Autofahrer tankt durch Betätigen des Zapfhahns.

Schließlich hängt er den Zapfhahn wieder ein. Die Zapfsäule ist gesperrt; der Tankwartgibt sie erst nach dem Zahlen für den nächsten Kunden wieder frei.

Geben Sie die Zustände der Zapfsäule, die Ereignisse und Aktionen an.

27. Zustandsdiagramm — Druckdialog

Untersuchen Sie den Druckdialog eines Programms Ihrer Wahl, ein geeigneter Kandidatist z.B. Microsoft Word oder Open Office.

Wir betrachten als Ereignisse alle Buttons, die sich auf dem Druckdialog befinden, soetwa „Optionen“ oder „Eigenschaften“. Zeichnen Sie ein Zustandsdiagramm, das dasVerhalten des Druckdialogs bei diesen Ereignissen darstellt.

Verfeinern Sie die Klasse der Ereignisse im Modell, in dem Sie auch die Taste TAB alsEreignis einbeziehen.

Wintersemester 2006/07 12

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Was geschieht, wenn Sie auch noch Mausklicks einbeziehen?

28. Zustandsdiagramm — Mietwagen

Im „Leben“ eines Mietwagens gibt es folgende Ereignisse:

• er wird vermietet

• er wird zurückgegeben

• er wird zur Vermietung bereitgestellt

• er wird zur Reparatur gegeben

• er wird nach Vermietung überprüft

• er wird ausgemustert

Stellen Sie den Lebenszyklus der Klasse Mietwagen als Zustandsdiagramm dar. ErgänzenSie dabei die obigen Angaben, wenn Sie beim Erstellen des Diagramms Lücken in derBeschreibung entdecken.

29. Zustandsdiagramm — Telefon

Fast gibt es sie nicht mehr, die einfachen Telefone. Sie hatten folgende Eigenschaften:

Wenn man den Hörer abnimmt, ertönt das Freizeichen. Man kann dann mit dem Wäh-len beginnen, indem man eine Ziffer drückt. Das Wählen geschieht durch das weitereDrücken von Ziffern, bis man die gewünschte Nummer vollständig eingegeben hat. Dannwird die Verbindung zum anderen Telefon hergestellt. Es kann gerade besetzt sein, dannertönt das Besetztzeichen, oder es klingelt. Wenn der Angerufene abhebt, können wirmit ihm sprechen. Das Gespräch wird beendet, wenn einer der beiden Teilnehmer auflegt.

Stellen Sie das dynamische Verhalten des Telefons in einem Zustandsdiagramm dar,zeichnen Sie die Zustände und die Ereignisse ein, die einen Zustandsübergang verursa-chen. Denken Sie auch an Bedingungen, die Transitionen überwachen.

30. Zustandsdiagramm — Alarmanlage

Eine Alarmanlage im Auto reagiert auf das Öffnen einer Tür:

10 Sekunden, nachdem eine Tür geöffnet wurde, beginnt das Auto zu hupen.

Der Alarm kann nur abgeschaltet indem man auf einen verborgenen Knopf im Innenraumdrückt.

Das Schließen der Tür oder Öffnen weiterer Türen spielt keine Rolle.

Jedoch hört das Hupen nach 20 Sekunden von selbst wieder auf — so ist es gesetzlichvorgeschrieben.

Damit die Fahrzeugbenutzer nicht vergessen, auf den Knopf zu drücken (bevor es hupt),beginnt unmittelbar nach dem Öffnen einer Tür eine Diode am Armaturenbrett rot zublinken. Zusätzlich ertönt nach 5 Sekunden ein Summton. Beides wird durch Drückendes verborgenen Knopfs abgeschaltet.

Wintersemester 2006/07 13

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

31. Zentralverriegelung eines Autos

Gegeben sei die Klasse ZVR, die die Zentralverriegelung (ZVR) eines Autos steuert(siehe Abb. 14. Die Methode lock() verriegelt die Türen, unlock() entriegelt sie. DasFlag autoLockFlag steuert, ob beim Anfahren ab einer Geschwindigkeit von 10 km/hdie Türen automatisch verriegelt werden.

ZVR

+autoLockFlag:Boolean

+lock():void+unlock():void

Abbildung 14: Klasse ZVR Zentralverriegelung

Zeichnen Sie ein Zustandsdiagramm, das das Verhalten der Zentralverriegelung spezifi-ziert. Verwenden Sie dabei die Methoden aus dem Klassendiagramm.

32. Scheibenwischeranlage

(a) Ein Auto hat eine Scheibenwischeranlage, die so funktioniert:

• Die Scheibenwischer der Frontscheibe können ausgeschaltet sein, langsam lau-fen oder schnell. Am Lenkrad befindet sich ein Hebel, der entsprechend 3Stellungen hat: A für aus , B für langsam und C für schnell. Man kann dieStellungen durch Drücken des Hebels wechseln: nach unten: A → B → C,nach oben: C → B → A.

• Ein Drehschalter an demselben Hebel dient zur Steuerung des Wischers ander Heckscheibe. Der Drehschalter hat die Stellungen 0 für aus und 1 für ein.Eine Drehung nach rechts wechselt die Stellung von 0 auf 1, eine Drehungnach links zurück.

Zeichnen Sie ein Zustandsdiagramm, das das dynamische Verhalten der Scheiben-wischeranlage des Fahrzeugs beschreibt.

(b) Die Anlage hat noch eine zusätzliche Eigenschaft:

• Ist der Schweibenwischer der Frontscheibe eingeschaltet und man legt denRückwärtsgang ein, dann wird der hintere Wischer zugeschaltet — auch wennder Drehschalter auf der Stellung 0 steht.

• Nimmt man den Rückwärtsgang wieder heraus, dann richtet sich der hintereScheibenwischer wieder nach der Stellung des Drehschalters.

Erweitern Sie das Zustandsdiagramm aus (a), um auch diesen Sachverhalt darstel-len zu können.

33. Geschachtelte Zustände

In dem Zustandsdiagramm in Abb. 15 werden geschachtelte Zustände verwendet.

Wintersemester 2006/07 14

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Zeichnen Sie ein Zustandsdiagramm, das dasselbe Verhalten beschreibt, das aber keinegeschachtelten Zustände hat.

S

T

U

V

c

e fd

a

b

Abbildung 15: Geschachtelte Zustände

34. Übergangsmatrix

In Abb. 16 wird ein Zustandsdiagramm dargestellt.

Stellen Sie zu diesem Zustandsdiagramm die Übergangsmatrix auf.

S

TV

U

c e f

fc

b

b

a

d

Abbildung 16: Zustandsdiagramm

E Architekturmuster

35. Muster des Datenzugriffs

Gegeben sei eine relationale Datenbank, die Informationen über Personen in der TabellePerson enthält, also zum Beispiel Name, Vorname, Gehalt u.ä. Die Tabelle hat einenPrimärschlüssel PId vom Typ Integer.

Geben Sie für die Architekturmuster

(a) Table Data Gateway

Wintersemester 2006/07 15

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

(b) Row Data Gateway

(c) Active Record

jeweils drei typische Methoden an, mit denen Daten einer Person in einer Anwendungverwendet werden können.

36. Vererbung und Relationen

Gegeben sei eine objektorientierte Klassenstruktur wie in Abb. 17.

PixelGraphikDatei

groesse:Size

VektorGraphikDatei

format: String

BildDatei

motiv: String

AudioDatei

format: Stringinterpret: String

VideoDatei

studio: String

MedienDatei

name: String

Abbildung 17: Klassenstruktur von Mediendateien

Die Informationen in diesem Modell sollen in einer relationalen Datenbank gespeichertwerden. Überlegen Sie Möglichkeiten, wie man diese Struktur in das relationale Daten-modell abbilden kann.

Stellen Sie die Möglichkeiten in einem Diagramm der Datenbankstruktur dar (z.B. alsEntity-Relationship-Diagramm).

Man kann drei grundlegende Möglichkeiten finden. Nennen Sie Vor- und Nachteile dieserMöglichkeiten.

37. Webbasierte E-Mail-Anwendung

In Abb. 18 wird der Ablauf in einer E-Mail-Anwendung dargestellt.

Ihre Aufgabe besteht darin, die Architekturmuster Page Controller und Template Viewanzuwenden, indem Sie mit Java Server Pages (JSP) die Anwendung implementieren.

Als ersten Schritt konzipieren Sie, welche JSPs sie benötigen und wie Sie die Navigationin der Anwendung organisieren.

Sie können voraussetzen, dass alle Methoden zum Empfangen, Speichern und Verschi-cken von E-Mails zur Verfügung stehen. Ferner haben Sie die Möglichkeit, Informationeninnerhalb der JSP im sogenannten Sessionkontext zu speichern, die in einer Session desAnwenders auch in anderen JSPs zur Verfügung stehen.

Wintersemester 2006/07 16

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

EMail Client UI

Welcome

Confirm Logout

Logged In

View Messages

MessageList

SingleMessage

Edit Message

GoodBye

Logout

Cancel

Send

Reply(msg)

Forward(msg)

New Message

Close Read(msg)

No

Yes

Login[okay]Login[failed]

H*

H

Abbildung 18: Zustände einer E-Mail-Anwendung

38. Verbesserung der E-Mail-Anwendung

Diskutieren Sie die Lösung der vorherigen Aufgabe unter dem Gesichtspunkt der Soft-warearchitektur. Insbesondere:

• Wie kann man die Aufgaben der Anwendung von der Oberfläche und der Interak-tion mit dem Anwender abtrennen?

• Wie kann man die Navigation in der Anwendung übersichtlicher machen?

Welche Architekturmuster haben wir in der Vorlesung zu diesen Aspekten besprochen?Was sind ihre wichtigsten Eigenschaften?

F Entwurfsmuster

39. Abhängigkeit im Code

Gegeben seien folgende Klassendefinitionen:

public class A {public int test( B b ) {

return b.test();}

}

public class B {private A a;public int test() {

Wintersemester 2006/07 17

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

return 42;}

}

public class C extends B {public int test() {

return 2 * super.test();}

}

public class D {public void test() {

C c = new C();A a = new A();a.test(c);

}}

Welche der folgenden Aussagen trifft zu?

(a) A benutzt B

(b) D benutzt B

(c) C benutzt B

(d) B benutzt A

[Diese Übung stammt von Max Gensthaler.]

40. Politische Gliederung der BRD

Im Klassendiagramm in Abb. 19 wird der politische Aufbau der Bundesrepublik Deutsch-land modelliert.

0..*

0..1

PolitischeEinheit

+name:String

Gemeinde

+einwohnerZahl:int

Land Regierungsbezirk KreisBund

PolitischerVerband

-unterEinheiten:vector<PolitischeEinheit>

Abbildung 19: Klassendiagramm Politische Gliederung der BRD

Wintersemester 2006/07 18

Prof. Dr. Burkhardt RenzFH Gießen-Friedberg

Softwaretechnik IIIÜbungen

Es soll nun eine Methode getEinwohnerzahl ins Modell eingebaut werden, mit der dieEinwohnerzahl auf jeder Ebene ermittelt werden kann. Wendet man die Methode aufein Objekt der Klasse Kreis an, dann erhält man die Zahl der Einwohner des Kreises;auf ein Objekt der Klasse Land angewandt, liefert die Methode die Zahl der Einwohnerdes Landes.

(a) Ergänzen Sie das Klassendiagramm entsprechend

(b) Skizzieren Sie die Implementierung der modellierten Methoden (Pseudocode)

41. Implementierung von Singleton

Konzipieren Sie eine Implementierung des Entwurfsmusters Singleton für die KlasseCounter mit der Methode get():int, die bei jedem Aufruf den Wert des Zählerszurückgibt und dann den Zähler inkrementiert. Verwenden Sie die ProgrammierspracheC# oder Java.

Im Einzelnen ist zu tun:

(a) Konzeption des Codes für das klassische Singleton, bei dem genau ein Objekt derKlasse erzeugt werden kann.

(b) Erweitern Sie den Code so, dass eine im Code vorgegebene Zahl n von Objektenerzeugt werden kann.

Rev 1.19 – 27. Juli 2006

Wintersemester 2006/07 19