Aufgabe 1: Sequenzdiagramm Gegeben ist das in Abbildung 1 dargestellte (vereinfachte) Sequenzdiagramm mit sechs Ereignissen (a-f ).

Ähnliche Dokumente
OO-Design. Klausur FHF * WI1 / WI2 * SS Name:.../ Semester:...

c) Wann erfolgt eine Transition (von einem Zustand in einen anderen)?

Anleitung Währungsrechner

Grundlagen der Informatik

Grundlagen der Technischen Informatik

Automat: Getränkeautomat

Benutzerhandbuch Koala Editor

VASCO Leser DP835A. Bedienungsanleitung und Funktionsweise

Informatik IIa: Modellierung

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

OOA-Dynamische Konzepte

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Übungsaufgaben Softwaretechnologie

Unified Modelling Language

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

VORDIPLOMSPRÜFUNG FÜR ELEKTROINGENIEURE. Einführung in die Informatik III

Verwenden der Druck- und Zurückhaltefunktion

Variablen und Datentypen

PRÜFUNG. Grundlagen der Softwaretechnik

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Funktionen in JavaScript

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Energie innerhalb weniger Minuten

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

2. Übung zu Software Engineering

Kapitel. Platzhalter. Was sind Platzhalter?

Sommersemester Analyse II: Verhalten (Zustandsautomaten)

Informatik IIa: Modellierung

VASCO TAN-GENERATOR DIGIPASS 840 CV

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Nr. 1 L-Aufgabe

Objektorientiertes Programmieren (Java)

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301

Grundlagen der Informatik

######################### Zeichenkette auswerten ###################################

Programmiertechnik 1 FOR-SCHLEIFEN

Name: Aufgaben. Arbeitsanweisung

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Informatik IIa: Modellierung

Drucken und Löschen von angehaltenen Druckaufträgen Erkennen von Formatierungsfehlern Bestätigen von Druckaufträgen Reservieren von Druckaufträgen

Technische Informatik für Ingenieure WS 2010/2011 Übungsblatt Nr. 3

Internet-Banking Anleitung zum Ersteinstieg

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Objektorientierte Analyse (OOA) OOA-Pattern

Handelt es sich um ein taktzustands- oder taktflankengesteuertes D-Flipflop?

Aufgabe 1 (Anwendungsfalldiagramm)

Technische Hinweise. Funk Zeitschaltuhr 5-Kanal Art.Nr

UML - SequenzDiagramme

Funktionen in JavaScript

OO-Design. Klausur FHF * WI1 / WI2 * SS 2000 MUSTERLÖSUNG

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

KURZAnleiTUng. Optimum T42-Familie

Quick-Start Informatik Programmieren in Python Teil 1

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Anleitung zur Selbstaktivierung des neuen Rechtsanwaltsausweises

Informatik IIa: Modellierung

Variablen und Datentypen

F-SECURE KEY PREMIUM. Schritt für Schritt erklärt

Objektorientiertes RPG 2-1. Objektorientiertes RPG

LOGISCHE FUNKTIONEN...

Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.

DVD Controller. Anleitung

Javakurs für Anfänger

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

Aufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Eine kleine Befehlssammlung für Java Teil1

Informatik II Modellierung Übung 5 Petrinetze/Klassendiagramme

Rückgabewerte von Methoden

Strukturierte Programmentwicklung

Fortgeschrittene JSF- Techniken. Ralf Gitzel

Gran Turismo Cars - WS 11/12

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

für Eine Handy-Kurzanleitung mit bis zu 13 Kapiteln auf 9 Seiten. einschalten und O2

Wenn dieses Zeichen im Display ist, wird das Ergebnis entsprechend aufgerundet.

Technische Universität Berlin Institut für Softwaretechnik und Theoretische Informatik FG Softwaretechnik Franklinstr. 28/ Berlin

Sage 50. Inventur. Impressum. Sage GmbH Emil-von-Behring-Str Frankfurt am Main

Programmiertechnik 1 FOR-SCHLEIFEN

Formale Modellierung Vorlesung vom : Beyond JML

Operator Guide. Operator-Guide 1 / 5 V0.92 / 16.jan.08

Ein ROM soll aus mehreren ROMs (vgl. Abbildung rechts: Enable-Leitung EN, Adressleitungen ADDR, Datenleitungen DATA) aufgebaut werden.

Vertrauliches Drucken auf Multifunktionsgerät (MFG) ohne Kartenleser

2 Eine einfache Programmiersprache

Online-Banking Anleitung zum Ersteinstieg

Informationen zu ESN (ECLIPSE Security Network)

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Datenbank und Tabelle mit SQL erstellen

Institut für Informatik und Angewandte Kognitionswissenschaften

für Samsung B2100 Eine Handy-Kurzanleitung mit bis zu 15 Kapiteln auf 11 Seiten.

Access 2010 Programmierung Schleifen

Wichtige Sicherheitsempfehlungen. So einfach geht es zur Erstanmeldung

Transkript:

VU Objektorientierte Modellierung Übung 4 188.391, SS2007 Tutorenstunden: Di. 8.5.2007 bis Fr. 11.5.2007 Übungsgruppen: Mo. 14.5.2007 bis Fr. 18.5.2007 Aufgabe 1: Sequenzdiagramm Gegeben ist das in Abbildung 1 dargestellte (vereinfachte) Sequenzdiagramm mit sechs Ereignissen (a-f ). sd bsp : A : B : C : D : E a b c d e f Abbildung 1: Sequenzdiagramm a) Geben Sie alle möglichen Sequenzen von Ereignissen an. Trace 1: a b c e d f Trace 2: d a b c e f Trace 3: a d b c e f Trace 4: a b d c e f Trace 5: a b c d e f

b) Ändern Sie das ursprüngliche Sequenzdiagramm so ab, dass die Ereigniseintritte in jedem Fall in alphabetischer Reihenfolge stattfinden. Lösung UE 4_1.3 sd bsp : A : B : C : D : E strict a b c d e f Abbildung 2: Sequenzdiagramm Lösung 1b c) Ändern Sie das ursprüngliche Sequenzdiagramm so ab, dass das Ereignis d in jedem Fall direkt nach Ereignis c folgen muss. Geben Sie weiter alle nun möglichen Sequenzen von Ereignissen an. Lösung UE 4_1.4 sd bsp : A : B : C : D : E a strict b c d e f Abbildung 3: Sequenzdiagramm Lösung 1c

d) Ändern Sie das ursprüngliche Sequenzdiagramm so ab, dass folgende Sachverhalte zusätzlich modelliert sind: Führen Sie ein lokales Attribut x (Integer) ein. a und b werden ausgeführt, falls x=1, ansonsten werden c und d ausgeführt c und d werden 14 mal ausgeführt Lösung UE 4_1.5 sd bsp x:int : A : B : C : D : E alt [x=1] a Loop (14) d b c e f Abbildung 4: Sequenzdiagramm Lösung 1d

Aufgabe 2: Verhaltensmodellierung mittels Sequenzdiagramm Gegeben ist das Klassendiagramm der Komponenten eines Taschenrechners (siehe Abb. 5). Die Aufgaben der einzelnen Komponenten sind wie folgt: Keyboard wartet auf Tastatureingaben und liefert das eingegebene Zeichen zurück (Operation getkey()). Mögliche gelieferte Zeichen sind 0 bis 9 sowie +, -, *, / und =. Display zeigt eine Zahl an (Operation show). ALU berechnet einen ganzzahligen Ausdruck (Operation compute); der Ausdruck ist bestimmt durch zwei Zahlen (op1, op2) und einen Rechenoperator (o). Buffer speichert eine Zahl (Operation set bzw. get); außerdem kann eine Ziffer zur bereits gespeicherten Zahl angehängt werden (Operation append). Bspw., nach set(1) und append(2) gilt value=12. Controller steuert den Taschenrechner (Operation main). Ein Controller c benutzt dazu ein Keyboard k, ein Display d, eine ALU a, und zwei Buffer b1 und b2. b1 wird benutzt, um das Zwischenergebnis nach Eingabe eines Operators zu speichern, b2 speichert die jeweils aktuelle Eingabe, welche nach jeder Zifferneingabe per append erweitert wird. Alle Operationen sind synchron, d.h., blockierend. Display value:int show(n:int) Keyboard getkey():char ALU compute(o:char, op1:int, op2:int):int Controller operator:char main() Buffer value:int set(value:int) get():int append(digit:char) Abbildung 5: Klassendiagramm Taschenrechner Der Taschenrechner verhält sich wie in folgendem Szenario dargestellt (wie der Standard Taschenrechner von Windows): Eingabe Anzeige 1 1 2 12 + 12 3 3 * 15 4 4 = 60 Gesucht ist ein Sequenzdiagramm, welches die Interaktionen zwischen den Komponenten des Taschenrechners beim gegebenen Szenario 1 2 + 3 * 4 = darstellt. Gehen Sie dabei davon aus, dass 1 2 + bereits geschehen ist, d.h., das Sequenzdiagramm soll den weiteren Ablauf mit den Eingaben 3 * 4 = darstellen. Geben Sie außerdem den Zustand der Komponenten nach 1 2 + explizit an.

:Keyboard :Display :Controller :ALU b1:buffer b2:buffer getkey getkey:3 getkey getkey:* value=12 operator=+ value=12 set(3) set show(3) show get get:12 get get:3 show(15) show compute(+,12,3) compute:15 set(15) set getkey getkey:4 getkey getkey:= show(4) show set(4) set get get:15 get get:4 show(60) show compute(*,15,4) compute:60 set(60) set

Aufgabe 3: Verhaltensmodellierung mittels Zustandsdiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Zustandsdiagramm beschäftigt. Erklären Sie die Konzepte Ereignis und Aktivität. Welche Art von Aktivitäten gibt es innerhalb eines Zustands? Wann erfolgt eine Transition (von einem Zustand in einen anderen)? Welche Arten von Ereignissen gibt es? Nennen Sie jeweils zwei Beispiele (die nicht in den Folien stehen). Erklären Sie die Konzepte von UND- sowie ODER-Verfeinerung. Geben Sie jeweils ein kleines Beispiel (das nicht in den Folien steht). Aufgabe 4: Zustandsdiagramm Kassenautomat Ein Kassenautomat eines Parkhauses funktioniert wie folgt: Wenn der Automat nicht ausgeschalten ist, befindet er sich in einem Grundzustand und wartet auf eine Eingabe. Der Automat besitzt ein Lesegerät für das Ticket, welches bezahlt werden soll. Zunächst wird dieses Ticket in die Maschine gezogen. Ist es ungültig, wird es wieder ausgegeben, eine Fehlermeldung wird angezeigt und der Zahlvorgang wird abgebrochen. Bei einem gültigen Ticket wird der offene Betrag angezeigt. Nun kann zwischen Bezahlung per Bankomatkarte und Barzahlung gewählt werden (die Auswahl erfolgt über einen Knopf). Wird Bankomatkarte ausgewählt, wartet der Automat solange, bis eine Karte in den dafür vorgesehenen Einschub gesteckt wird. Der Zahlungsvorgang wird abgebrochen, wenn innerhalb von zwei Minuten keine Bankomatkarte eingeschoben wurde oder der Code vom Inhaber der Karte drei Mal falsch eingegeben wurde. Ticket und Karte werden dann wieder ausgegeben. Ansonsten muss der Zahlungsvorgang noch mit dem OK-Knopf bestätigt werden. Ist dieses geschehen, wird ein Ticket, das für die Ausfahrt verwendet werden kann, ausgegeben. Wurde die Variante der Barzahlung gewählt, muss der Parkhausbenutzer solange Geld in den Automaten werfen, bis der zu begleichende Betrag erreicht oder überschritten ist. Dann wird das Ausfahrtsticket und gegebenenfalls das Retourgeld ausgegeben. Wiederum wird nach zwei Minuten der Vorgang abgebrochen und Ticket und Geld werden zurückgegeben. Erstellen Sie ein Zustandsdiagramm zur Steuerung eines Kassenautomaten eines Parkauses.

Grundzustand Ticketeingabe Ticketprüfung do/ Gültigkeit überprüfen Abbruch do/ Ticket auswerfen; Fehlermeldung ausgeben [gültig] Display Betrag do/ Betrag anzeigen Zahlungsartauswahl [Bankomatkarte] [Barzahlung] after(2 min) Bereit Geldeinwurf after(2 min)/ Geld zurückgeben [i=3]/ BK ausgeben Karte einstecken/i=0 PIN-Eingabe entry/i++ do/ PIN einlesen exit/ PIN prüfen [OffenerBetrag>Einwurf] Geldeinwurf Einwurf prüfen /Retourgeld ausgeben [PIN korrekt & OK gedrückt]/ Bankomatkarte ausgeben Drucken exit/ Ausfahrtsticket ausgeben Abbildung 7: Zustandsdiagramm Lösung Bsp4

Aufgabe 5: Mensch-Ärgere-Dich-Nicht Geben Sie für eine Spielfigur des Spiels Mensch-Ärgere-Dich-Nicht ein Zustandsdiagramm an. Hinweise: Überlegen Sie, welche Zustände die Spielfigur haben kann. Achten Sie darauf, welche Ereignisse Transitionen auslösen. Im Starthaus Ausrücken Im Freien Vorrücken Hinauswurf durch Mitspieler [Zielhaus wird erreicht] Im Zielhaus Abbildung 8: Sequenzdiagramm Lösung Bsp5