software engineering 1 6. Übung - tu braunschweig · software engineering 1 6. Übung sönke...
TRANSCRIPT
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