Software Engineering 1 6. Übung - TU Braunschweig · Software Engineering 1 6. Übung Sönke...

20
Software Engineering 1 6. Übung Sönke Holthusen, Matthias Kowal, Joachim Steinmetz Institut für Softwaretechnik und Fahrzeuginformatik

Transcript of Software Engineering 1 6. Übung - TU Braunschweig · Software Engineering 1 6. Übung Sönke...

Software Engineering 1 6. Übung

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz Institut für Softwaretechnik und Fahrzeuginformatik

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 2

Aufgabe 2a - Statecharts

a)  Modellieren sie eine Lichtschaltung als Zustandsdiagramm. Im Startzustand ist die Lampe aus. Schaltet man das Licht an, geht die Lampe im gedimmten Zustand an. Dimmt man die Lampe heller, wird der Zustand Hell erreicht. Dimmt man die Lampe schwacher, wird der Zustand Gedimmt erreicht. Das Licht kann, egal ob gedimmt oder hell, ausgeschaltet werden.

Lampe_An

Gedimmt

Hell

Lampe_ausLicht_an Licht_aus

schwacher_dimmen

heller_dimmen

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 3

Aufgabe 2b.1 - Statecharts

b)  Modellieren Sie das folgende Verhalten des Anrufbeantworters: „Der Anrufbeantworter wartet auf Anrufe. Wenn ein Anruf ankommt, wird der Anruf angenommen. Danach wird entweder Ansage 1 oder Ansage 2 abgespielt: Wenn noch nicht die maximale Anzahl an Nachrichten gespeichert ist, wird Ansage 1 abgespielt. Wenn die maximale Anzahl an Nachrichten gespeichert ist, wird Ansage 2 abgespielt. Nach dem Ende von Ansage 1 wird die Aufnahme gestartet. Wenn danach der Anrufer auflegt, wird die Verbindung getrennt. Nach dem Ende von Ansage 2 wird die Verbindung ohne Aufnahme getrennt.“

wartetAnruf

angenommen

Ansage 1

abgespielt

Ansage 2

abgespielt

Aufnahme gestartet

AK/AA [<max]/A1

/VT

AL/VT

[=max]/A2 /AS

Anrufbeantworter a

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 4

Aufgabe 2b.2 - Statecharts

b)  Modellieren Sie möglichst elegant, dass der Anrufer jederzeit, nachdem der Anrufbeantworter den Anruf angenommen hat, auflegen kann und die Verbindung getrennt wird.

wartetAnruf

angenommen

Ansage 1

abgespielt

Ansage 2

abgespielt

Aufnahme gestartet

AK/AA [<max]/A1

/VT

AL/VT [=max]/A2 /AS

Anrufbeantworter b

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 5

Aufgabe 2b.3 - Statecharts

b)  Modellieren Sie zusätzlich das folgende Verhalten: „Wenn am Anrufbeantworter der Knopf zur Wiedergabegedrückt wird und mindestens eine Nachricht gespeichert ist, werden die gespeicherten Nachrichten abgespielt. Wenn der Knopf gedrückt wird und keine Nachricht gespeichert ist, führt der Anrufbeantworter keine Aktion aus. Während der Wiedergabe der gespeicherten Nachrichten kann der Stopp-Knopf gedrückt werden und die Wiedergabe wird gestoppt. Wenn alle Nachrichten abgespielt worden sind, wird die Wiedergabe die Wiedergabe ebenfalls gestoppt.“

wartetAnruf

angenommen

Ansage 1

abgespielt

Ansage 2

abgespielt Aufnahme gestartet

AK/AA [<max]/A1

/VT

AL/VT [=max]/A2 /AS

Anrufbeantworter c

Wiedergabe

WD[EN]/NASD/WS[AN]/WS

WD[KN]/

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 6

Informationen zur Klausur

•  Termin: •  Freitag, 22.02.2013, 16:30-18:00 Uhr

•  SN19.1: A-F •  Audimax: G-P •  PK15.1: Q-Z

•  Wiederholungsklausur •  Dienstag, 26.03.2013, 08:15-9:45 Uhr

•  Keine Hilfsmittel und keine Wörterbücher •  Aufgabenstellung: Deutsch •  Antworten sind in DE oder EN möglich

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 7

Klausurrelevante Themen

•  Vorgehensmodelle •  Anwendungsfalldiagramme (Use Cases) •  Klassendiagramme •  Sequenzdiagramme •  Aktivitätsdiagramme •  Komponentendiagramme •  Zustandsdiagramme (Statecharts) •  Entwurfsmuster •  White- und Black Box – Testen •  Vorlesungsfolien

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 8

Vorgehensmodelle

•  Wasserfall (+Rückkopplung) •  V-Modell •  Iterative-Verfahren

•  Spiralmodell

•  Agile-Methoden •  XP

Prototypen

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 9

Anwendungsfalldiagramme

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 10

Klassendiagramme

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 11

Sequenzdiagramme

:Benutzer :M.I.R. :Redakteur

exisitiert("Ahpla Cnertuai")

erstelle("Ahpla Cnertuai")

nein

anzeigen("Ahpla Cnertuai")

"Ahpla Cnertuai"

exisitiert("Ahpla Cnertuai")

ja

kommentiere("Ahpla Cnertuai")

erfolgreich kommentiert

erfolgreich erstellt

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 12

Aktivitätsdiagramme

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 13

Komponentendiagramme Client(Anzeige)

GUI

Server(Control)

M.I.R. Anwendung

DB

Parser

Planet kommentierenPlanet suchen

Nutzereingabe

provide Planet get Planet

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 14

Statecharts

Lampe_An

Gedimmt

Hell

Lampe_ausLicht_an Licht_aus

schwacher_dimmen

heller_dimmen

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 15

Entwurfsmuster

•  Adapter •  Decorator •  Composite •  Factory •  Singleton •  Observer

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 16

Architektur-, Verteilungs- und Steuerungsmuster

•  Schichten •  Chain •  Interpreter •  Model-View-Controller

•  Zentrales System •  Client/Server: Two-Tier, Three-Tier •  Föderation •  Cloud Computing

•  Zentrale Steuerung: Call-Return, Master-Slave •  Ereignis-Steuerung: Selective Broadcast, Interrupt

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 17

Black Box - Testen

•  Äquivalenzklassen finden •  Grenzwerte

•  Beispiele aus ÄK

•  Minimale Java-Programmierung (gilt für alle Aufgaben)

•  Einfacher Junit Tests (siehe Übung)

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 18

White Box - Testen

a)  Kontrollflussgraph zeichnen

b)  Anweisungsüberdeckung (C0-Test) •  Eingaben mit denen jede Anweisung ausgeführt wird

c)  Zweigüberdeckung (C1-Test)

•  Eingaben für die jeder Zweig des Graphen ausgeführt wird, inklusive leeren Alternativen

d)  Pfadüberdeckung (C2-Test) •  Eingaben für alle möglichen Pfade

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 19

X<Y (3,1) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 3, 5, 6, 7, 4, 3, 13}

Sönke Holthusen, Matthias Kowal, Joachim Steinmetz | Software Engineering 1 6. Übung | Seite 20

•  Die erste Regel des Clubs der SE1-Besteher: •  Aufgabenstellung genau lesen!

•  Die zweite Regel des Clubs der SE1-Besteher: •  Aufgabenstellung genau lesen!

*man denke sich eine Fightclub Referenz als Hintergrund