Ãbung 5 âObjektorientierte Analyseâ - Institut für Automatisierungs ...
Ãbung 5 âObjektorientierte Analyseâ - Institut für Automatisierungs ...
Ãbung 5 âObjektorientierte Analyseâ - Institut für Automatisierungs ...
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