17.01.2014 Aufrufe

Übung 5 „Objektorientierte Analyse“ - Institut für Automatisierungs ...

Übung 5 „Objektorientierte Analyse“ - Institut für Automatisierungs ...

Übung 5 „Objektorientierte Analyse“ - Institut für Automatisierungs ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Universität Stuttgart<br />

<strong>Institut</strong> für <strong>Automatisierungs</strong>- und Softwaretechnik<br />

Prof. Dr.-Ing. Dr. h. c. P. Göhner<br />

Übung 5 „Objektorientierte Analyse“<br />

Aufgabe 5 Steuerungssoftware Fahrkartenautomat<br />

Lernziel: Akteure und Anwendungsfälle erkennen, dynamisches Modell erstellen<br />

können.<br />

Der neu gegründete Verkehrsverbund Undelayed (VVU) hat den Entschluss gefasst,<br />

dass die Steuerungssoftware für sämtliche installierten Fahrkartenautomaten<br />

objektorientiert entwickelt werden soll. In Abbildung 1 ist ein Fahrkartenautomat mit<br />

den für den Fahrkartenverkauf relevanten Bedienelementen dargestellt:<br />

Display<br />

Münzeinwurf<br />

Fahrtziel-<br />

Tastenfeld<br />

Kartenleser<br />

Fortsetzungs-/<br />

Abbruch-<br />

Tastenfeld<br />

Geldscheineinzug<br />

Drucker<br />

Fahrkarten-<br />

Tastenfeld<br />

Abbildung 1: Fahrkartenautomat<br />

- Über das Fahrziel-Tastenfeld erfolgt die Eingabe des Fahrtziels als dreistellige<br />

Zahl, z.B. 200 für Hauptbahnhof<br />

- Der Fahrgast kann die gewünschte Fahrkarte über das Fahrkarten-Tastenfeld<br />

festlegen. Es kann entweder Einfachfahrt oder Mehrfachfahrt ausgewählt werden<br />

und über eine weitere Taste kann die 1. Klasse gewählt werden.


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 2<br />

- Das Fortsetzungs-/Abbruch-Tastenfeld ermöglicht den Abbruch des Vorgangs<br />

bzw. die Auswahl mehrerer Fahrkarten innerhalb eines Verkaufsvorgangs.<br />

- Das Display zeigt alle Ausgaben des Systems an (z.B. gewähltes Fahrziel und<br />

Fahrpreis) und führt den Benutzer durch den Kaufvorgang.<br />

- Der Kartenleser akzeptiert in der jetzigen Version nur die „GeldKarte“. Für den<br />

Kauf einer Fahrkarte muss die „GeldKarte“ mindestens ein Guthaben in der Höhe<br />

des Fahrkartenpreises aufweisen.<br />

- Über den Münzeinwurf und den Geldscheineinzug kann die Bezahlung der<br />

Fahrkarte mit Bargeld erfolgen. Dabei wird der noch verbleibende Restbetrag im<br />

Display ständig aktualisiert.<br />

- Über den Drucker erfolgt die Ausgabe der Fahrkarte.<br />

Die zu realisierende Steuerungssoftware soll für die Koordination und Steuerung des<br />

Fahrkartenverkaufs zuständig sein. Zur Vereinfachung darf angenommen werden,<br />

dass der Fahrgast stets den exakten Fahrpreis entrichtet und die Rückgabe von<br />

Wechselgeld entfallen kann.<br />

Kommt es während des Betriebs zu Fehlern, so werden diese durch entsprechende<br />

Fehlermeldungen im Display angezeigt. Bei Überschreiten eines Timeouts beim<br />

Warten auf eine Benutzereingabe wird der Verkaufsvorgang abgebrochen. Die<br />

Wartung der Fahrkartenautomaten (z.B. Entnehmen des Münzgelds, Einlegen von<br />

unbedruckten Fahrkarten) übernehmen Service-Techniker in festgelegten<br />

Wartungsintervallen. Auch führen diese Reparaturmaßnahmen durch, wenn ein<br />

Fahrkartenautomat auf Grund eines Fehlers ausgefallen ist.<br />

Aufgabe 5.1<br />

Anwendungsfallmodell<br />

a) Geben Sie für o.g. Aufgabenstellung das zu betrachtende System und die<br />

externen Akteure an.<br />

b) Nennen Sie die Anwendungsfälle, die beim Einsatz des Systems vorkommen<br />

können. Unterscheiden Sie dabei zwischen abgeschlossenen und partiellen<br />

Anwendungsfällen, d.h. solchen Anwendungsfällen, die selbstständig auftreten<br />

bzw. in anderen Anwendungsfällen enthalten sind.<br />

c) Erstellen Sie genaue Spezifikationen der gefundenen Anwendungsfälle. Benutzen<br />

Sie dazu die aus der Vorlesung bekannte Anwendungsfall-<br />

Spezifikationsschablone (entsprechende Vordrucke befinden sich im Anhang<br />

dieser Übung).<br />

d) Stellen Sie die Anwendungsfälle in Form eines Anwendungsfalldiagramms<br />

grafisch dar.<br />

Aufgabe 5.2<br />

Identifikation von Klassen<br />

Identifizieren Sie ausgehend von der Systembeschreibung alle für die zu<br />

realisierende Steuerungssoftware relevanten Klassen und erstellen Sie eine CRC-<br />

Karte. Nennen Sie jeweils die Aufgaben, für die die Klasse zuständig ist.


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 3<br />

Aufgabe 5.3 Szenarios<br />

Zur Beschreibung des internen Zusammenwirkens der Objekte sollen die Abläufe der<br />

Anwendungsfälle grafisch illustriert werden. Erstellen Sie dazu ein<br />

Sequenzdiagramm für den Anwendungsfall Fahrkarte(n) kaufen, wobei von folgender<br />

Situation ausgegangen werden soll:<br />

- Der Fahrgast wählt das Fahrtziel 200 (Hauptbahnhof).<br />

- Er entscheidet sich für Mehrfachfahrt als Fahrkartenart.<br />

- Er bezahlt per GeldKarte.<br />

- Das GeldKarten-Guthaben ist ausreichend.<br />

Anmerkung: Bedienfehler müssen nicht berücksichtigt werden.<br />

Aufgabe 5.4<br />

CRC-Karten<br />

Ergänzen Sie auf den CRC-Karten von Aufgabe 5.2 die Kollaborationen der Klassen,<br />

die Sie aus dem Ablaufmodell erkennen. Müssen Sie weitere Klassen ergänzen?<br />

Aufgabe 5.5<br />

Statisches Analysemodell<br />

Erstellen Sie ein statisches Analysemodell für die Steuerungssoftware in Form eines<br />

Klassendiagramms. Berücksichtigen Sie hierbei alle benötigten Klassen mit ihren<br />

Attributen und Methoden. Die Hardwarekomponenten sollen im Klassendiagramm<br />

jeweils durch eine entsprechende Klasse repräsentiert werden, die für die<br />

Ansteuerung der zugeordneten Komponente verantwortlich ist. Zeichnen Sie in das<br />

Diagramm die Beziehungen zwischen den Klassen ein und geben Sie jeweils die<br />

Kardinalitäten an. Führen Sie Vererbungsbeziehungen ein, wo es sinnvoll ist.<br />

Aufgabe 5.6<br />

Zustandsdiagramm Klasse Fahrkartenautomat<br />

Entwickeln Sie ein Zustandsdiagramm für die Klasse Fahrkartenautomat.<br />

Zusatzaufgabe Zustandsdiagramm Klasse Münzeinwurf<br />

Entwickeln Sie ein Zustandsdiagramm für die Klasse Münzeinwurf<br />

(=Geldscheineinzug). Berücksichtigen Sie dabei sowohl die Aktualisierung des<br />

verbleibenden Restbetrags sowie einen möglichen Abbruch oder Timeout.<br />

Anhang<br />

siehe nächste Seite<br />

Anwendungsfall-Spezifikationsschablonen


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 4<br />

Anwendungsfall<br />

Ziel:<br />

Kategorie:<br />

(primär, sekundär,<br />

oder optional)<br />

Externe Akteure:<br />

Vorbedingung:<br />

Auslösendes<br />

Ereignis<br />

Nachbedingung<br />

Erfolg:<br />

Nachbedingung<br />

Fehlschlag:<br />

Beschreibung:<br />

Erweiterungen:<br />

Alternativen:


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 5<br />

Anwendungsfall<br />

Ziel:<br />

Kategorie:<br />

(primär, sekundär,<br />

oder optional)<br />

Externe Akteure:<br />

Vorbedingung:<br />

Auslösendes<br />

Ereignis<br />

Nachbedingung<br />

Erfolg:<br />

Nachbedingung<br />

Fehlschlag:<br />

Beschreibung:<br />

Erweiterungen:<br />

Alternativen:


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 6<br />

Anwendungsfall<br />

Ziel:<br />

Kategorie:<br />

(primär, sekundär,<br />

oder optional)<br />

Externe Akteure:<br />

Vorbedingung:<br />

Auslösendes<br />

Ereignis<br />

Nachbedingung<br />

Erfolg:<br />

Nachbedingung<br />

Fehlschlag:<br />

Beschreibung:<br />

Erweiterungen:<br />

Alternativen:


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 7<br />

Anwendungsfall<br />

Ziel:<br />

Kategorie:<br />

(primär, sekundär,<br />

oder optional)<br />

Externe Akteure:<br />

Vorbedingung:<br />

Auslösendes<br />

Ereignis<br />

Nachbedingung<br />

Erfolg:<br />

Nachbedingung<br />

Fehlschlag:<br />

Beschreibung:<br />

Erweiterungen:<br />

Alternativen:


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 8<br />

Anhang<br />

Lösungsschablonen CRC-Karten<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:<br />

Verantwortlichkeit:<br />

Kollaborationen:


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 9<br />

Anhang<br />

Lösungsschablone Sequenzdiagramm<br />

Kunde<br />

Fahrziel (200)<br />

Fahrkartenautomat<br />

Fahrziel-<br />

Tastenfeld<br />

Fahrkarten-<br />

Tastenfeld<br />

Display<br />

Kartenleser<br />

Bestimme Fahrziel (200) Zeige Fahrziel<br />

und Fahrpreis an<br />

Zeige Text (Fahrziel, Fahrpreis)<br />

Mehrfachfahrt<br />

Zeige Text (Fahrziel, Fahrpreis)<br />

Neue<br />

Fahrkartenart() Zeige Fahrziel<br />

und Fahrpreis an<br />

GeldKarte einführen<br />

Überprüfe Guthaben<br />

Fahrpreis abbuchen<br />

GeldKarte ausgeben<br />

Bezahlung erfolgt<br />

Fahrkarte drucken<br />

Zeige Text (Fahrkarten werden geruckt)<br />

Zeige Fahrkarten<br />

werden gedruckt an<br />

Fahrkarte ausgeben<br />

Zeige Fahrziel<br />

auswählen an<br />

Zeige Text (Fahrziel auswählen)<br />

Drucker<br />

Ermittle Guthaben<br />

Fahrpreis abziehen<br />

(Preis)


Grundlagen der Softwaretechnik Übung 5: Objektorientierte Analyse 10<br />

Anhang<br />

Lösungsschablone Zustandsdiagramm

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!