1 / 71

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung. Klaus Becker 2003. Softwareentwicklung als Prozess. Entwurf. Analyse. Wartung. Implementierung. Teil 1. Auftrag und Pflichtenheft. Das Problem. Schon wieder keine 6! 10mal gewürfelt und es ist keine einzige 6 gefallen. Stimmt hier etwas nicht?.

muriel
Download Presentation

Objektorientierte Softwareentwicklung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektorientierte Softwareentwicklung Klaus Becker 2003

  2. Softwareentwicklung als Prozess Entwurf Analyse Wartung Implementierung

  3. Teil 1 Auftrag und Pflichtenheft

  4. Das Problem Schon wieder keine 6! 10mal gewürfelt und es ist keine einzige 6 gefallen. Stimmt hier etwas nicht? Problem: Wie wahrscheinlich ist es, dass man bei 10maligem Würfeln - keine 6 - genau einmal eine 6 - genau zweimal eine 6 - ... - mindestens zweimal und höchstens viermal eine 6 erhält?

  5. Eine Lösungsmethode 0 3 ... Empirische Abschätzung: Wir führen das Zufallsexperiment „10mal Würfeln“ sehr oft durch (z. B. 1000 mal) und ermitteln, wie oft dabei das Ereignis „keine 6“ eintritt. 0 1 2 3 4 5 6 7 8 9 10 195 310 287 143 50 13 2 0 0 0 0

  6. Begriffe Zufallsexperiment: Experiment, bei dem mehrere Ergebnisse möglich sind, der Ausgang aber nicht genau vorhergesagt werden kann Ereignis: Teilmenge der Ergebnismenge eines Zufallsexperiments Bernoulli-Experiment: Zufallsexperiment mit genau zwei Ergebnissen (1: Treffer; 0: Niete) Bernoulli-Kette der Länge n: n-malige Durchführung eines Bernoulli-Experiments

  7. Verallgemeinertes Problem Problem: Wie groß ist die Wahrscheinlichkeit, dass man bei einer Bernoulli-Kette der Länge n und der Trefferwahrscheinlichkeit p eine bestimmte Anzahl von Treffern erhält? Empirische Abschätzung: Wir führen die Bernoulli-Kette sehr oft aus und ermitteln, wie oft dabei eine bestimmte Anzahl von Treffern eingetreten ist.

  8. Es soll ein Softwaresystem entwickelt werden, mit dem der Benutzer die wiederholte Ausführung von Bernoulli-Ketten simulieren und die Simulationsergebnisse auswerten kann. Der Auftrag

  9. Ein Prototyp zum Softwaresystem Ein Prototyp dient dazu, bestimmte Aspekte eines zu entwickelnden Software-Systems vor der Realisierung zu überprüfen. Häufig wird ein Prototyp der Benutzungsoberfläche erstellt. Anhand dieses Prototyps können die Entwickler mit dem Auftraggeber diskutieren, inwieweit dessen Wünsche beachtet und umgesetzt wurden.

  10. Aufgabe Auftraggeber und Entwickler sollen gemeinsam einen Prototyp erstellen und dokumentieren.

  11. Prototyp zum Simulationssystem Eingabefelder f. d. Simulationsparam. Darstellung der Häufigkeitsverteilung Auswertung 0: 1951: 3102: 287... 0: 0.1951: 0.3102: 0.287... min = 0 max = 0 h = 0.195 p = 0,1666 n = 10 a = 1000 absolute Häufigkeit relative Häufigkeit neue Simulation und Auswertung neue Auswertung Button Grafische Darst. d. Häufigkeitsverteilung Button

  12. Pflichtenheft • Ein Pflichtenheft ist eine textuelle Beschreibung dessen, was das zu realisierende System leisten soll. Es soll dabei zwei Zielsetzungen erfüllen: Zum einen ist es das „Einstiegsdokument“ in das Projekt für alle, die das System später pflegen und warten sollen, zum anderen soll es den Systemanalytiker in die Lage versetzen, eine objektorientierte Analyse vorzunehmen. • Zielformulierungen (Muss-Kriterien, Kann-Kriterien, Abgrenzungskriterien) • Einsatzbereiche (Anwendungsbereich, Zielgruppe, ...) • Umgebung (Hardware, Software, ...) • Funktionalitäten • Datenhaltung • Benutzungsoberfläche • ...

  13. Aufgabe Ergänzen Sie das folgende, bereits angefangene Pflichtenheft.

  14. Pflichtenheft zum Simulationssystem /0/ Der Benutzer kann folgende Simulationsparameter vorgeben: Trefferwahrscheinlichkeit p; Länge der Bernoulli-Kette n; Anzahl der Wiederholungen: a. /1/ Der Benutzer kann folgende Auswertungsparameter vorgeben: Minimum und Maximum des Ereignisbereichs. Diese Parameter müssen aber nicht gesetzt sein. /2/ Das System bestimmt (auf Buttondruck) zu den vorgegebenen Simulationsparametern eine absolute und relative Häufigkeitsverteilung und zeigt diese in Tabellenform an. /3/ (evtl.) Die relativen Häufigkeiten werden auch grafisch in Form eines Histogramms angezeigt. /4/ Das Simulationssystem soll im Stochstikunterricht eingesetzt werden können. ...

  15. Pflichtenheft zum Simulationssystem

  16. Pflichtenheft zum Simulationssystem

  17. Teil 2 Objektorientierte Analyse

  18. Zielsetzung der OOA Aufgabe der objektorientierten Analyse (kurz: OOA): Modellierung des Problembereichs („Miniwelt“), der vom zu entwickelnden Informatiksystem erfasst werden soll. - Unabhängig von der späteren Implementierung wird die Miniwelt mit Hilfe von Objekten, Klassen sowie deren Beziehungen beschrieben. - Die Miniwelt wird dabei soweit abstrahiert, dass alle für den Auftraggeber relevanten Bestandteile des Problembereichs abgebildet sind. - Das Ergebnis einer OOA ist also eine präzise, abstrahierende Beschreibung der Miniwelt.

  19. Identifikation der Objekte Vorgehensweise: - Zunächst wird die Miniwelt beschrieben (verbal und/oder mit Bildern etc.). - Anschließend wird analysiert, welche (konkreten oder abstrakten) „Gegenstände“ in der Miniwelt vorkommen. - Abschließend wird entschieden, welche „Gegenstände“ der Miniwelt im Modell repräsentiert werden sollen und was ihre jeweilige Zuständigkeit ist. Beschreiben Analysieren Auswählen Aufgabe: Führen Sie die oben beschriebenen Schritte zur Identifikation der Objekte durch.

  20. Beschreibung der Miniwelt

  21. Beschreibung der Miniwelt Zufallsgerät: Münze, Würfel, ... (0-1-Gerät) Zufallsexperiment: Bernoulli-Kette (n mal 0-1-Gerät aktivieren) Treffer Niete Simulation: 100 mal (a mal) das Zufallsexperiment ausführen 0 1 2 3 4 5 Anzahl der Treffer 2 14 27 30 20 7 absolute Häufigkeit Verteilung: 0 1 2 3 4 5 2..4 Ereignis 0,02 0,14 0,27 0,30 0,20 0,07 0,77 rel. Häufigk. relative Häufigkeit

  22. Beschreibung der Miniwelt Das Zufallsexperiment benutzt ein 0/1-Zufallsgerät (d. h. ein Gerät, mit dem man zufallsbasiert zwei Ergebnisse erzielen kann: 1 bzw. „Treffer“ und 0 bzw. „Niete“). Ein (Bernoulli-) Zufallsexperiment besteht darin, das Zufallsgerät n mal zu aktivieren und eine bestimmte Beobachtungsgröße (hier Anzahl der Treffer) zu ermitteln. Bei einer Simulation wird das Zufallsexperiment a mal durchgeführt. Das Ergebnis einer Simulation ist eine Tabelle mit den jeweiligen absoluten Häufigkeiten. Zur Auswertung der Simulationsergebnisse wird die Verteilung der Beobachtungsgröße (relative Häufigkeiten der Ergebnisse) bestimmt und evtl. eine relative Häufigkeit für eine konkrete Fragestellung (das interessierende Ereignis) bestimmt.

  23. Objekte und ihre Zuständigkeiten zufallsgeraet:erzeugt Treffer (1) bzw. Nieten (0) mit einer Wahrscheinlichkeit p zufallsexperiment: führt das eigentliche Experiment (wiederholte Aktivierung des Zufallsgeräts) durch und ermittelt die Beobachtungsgröße (Anzahl der Treffer) simulation:führt das Zufallsexperiment eine bestimmte Anzahl mal durch und ermittelt die absolute Häufigkeit der möglichen Ergebnisse der Beobachtungsgröße verteilung:verwaltet die relative Häufigkeit aller möglichen Ergebnisse der Beobachtungsgröße und ggf. die relative Häufigkeit eines interessierenden Ereignisses

  24. Modellierung der Objekte Ziel: Festlegung der Objektattribute Aufgabe: Erstellen Sie (mit Hilfe von Violet) ein Objektdiagramm zur Miniwelt „Simulation von Bernoulli-Ketten“. Legen Sie insbesondere die Attribute der Objekte fest und weisen Sie diesen Attributen typische Attributwerte zu.

  25. Ein erstes Objektdiagramm

  26. Modellierung der Klassen Ziel: Informelle Festlegung der Attribute und Methoden der Klassen Aufgabe: Erstellen Sie (mit Hilfe von Violet) ein erstes vorläufiges Klassendiagramm zur Miniwelt „Simulation von Bernoulli-Ketten“. Legen Sie hierzu die Attribute und Methoden der Klassen fest.

  27. Ein erstes Klassendiagramm

  28. Identifikation von Beziehungen Aufgabe: Überlegen Sie sich, welches Objekt welches andere Objekt kennen (besitzen) muss, um seine Aufgaben zu erfüllen.

  29. Wer kennt wen? Version 1 Version 2 zufallsexperiment: benutzt das Zufallsgerät  kennt zufallsgeraet zufallsexperiment: benutzt das Zufallsgerät  kennt zufallsgeraet simulation: führt das Zufallsexperiment wiederholt durch  kennt zufallsexperiment simulation: führt das Zufallsexperiment wiederholt durch  kennt zufallsexperiment erstellt aus dem Simulationsergebnis eine Verteilung kennt verteilung verteilung: wertet die Ergebnisse der Simulation aus  kennt simulation

  30. Verfeinerung der Diagramme Aufgabe: Führen Sie zunächst in Ihrem Objektdiagramm geeignete Referenzparameter ein und stellen Sie die Beziehungen zwischen den Objekten mit Referenzen dar. Ergänzen Sie anschließend in Ihrem Klassendiagramm die Beziehungen.

  31. Verfeinertes Objektdiagramm

  32. Klassendiagramm mit Beziehungen

  33. Teil 3 Objektorientierter Design

  34. Zielsetzung des OOD Aufgabe des objektorientierten Designs (kurz: OOD): Anpassung des OOA-Modells an die Rahmenbedingungen des zu erstellenden Systems - Genaue Spezifikation der Attribute (Datentypen) und Methoden (Parameter und ihre Datentypen) - Modellierung der Benutzungsoberfläche

  35. Spezifikation der Attribute und Methoden Aufgabe: Erstellen Sie (mit Hilfe von UMLed) ein dokumentiertes Klassendiagramm. Legen Sie insbesondere folgende Punkte fest: - die Zugriffsrechte und Datentypen der Attribute- die Konstruktoren- die get/set-Operationen- die Parameter der Operationen

  36. Verfeinertes Klassendiagramm (Violet) Dynamischer Array Dynamischer Array

  37. Verfeinertes Klassendiagramm (UMLed) Dynamischer Array Dynamischer Array

  38. Exkurs: Dynamische Arrays Statischer Array: var s: array [1..10] of integer Bem.: Ein (statischer) Array hat eine feste Größe (Indexbereich 1..10), die in der Deklaration festgelegt wird. Dynamischer Array: var d: array of integer Bem.: Ein dynamischer Array hat zunächst keine feste Größe. Der genaue Indexbereich wird erst zur Laufzeit dynamisch mit Hilfe der Methode „SetLength“ festgelegt. setLength(d, 3) // Indexbereich 0..2

  39. Klassen-Dokumentation Zielsetzung: Damit die entwickelten Klassen gut benutzt werden können (z. B. von anderen Personen / zu einem späteren Zeitpunkt), sollten die Klassenbeschreibungen hinreichend kommentiert werden. Integrierte Dokumentation: Die Dokumentation erfolgt während der Entwicklung. Viele CASE-Tools (wie UMLed) unterstützen die Dokumentationstätigkeit. Aufgabe: Erstellen Sie Klassen-Dokumentationen zu den entwickelten Klassen.

  40. Klassen-Dokumentation (mit UMLed) Dokumentation der Klasse "TZufallsgeraet" Beschreibung der Klasse:modelliert ein Zufallsgerät, mit dem Bernoulli-Experimente (d.h.: 0/1-Experimente) ausgeführt werden können. Attribute e : integer // Ergebnis (1: Treffer; 0: Niete) p : real // Trefferwahrscheinlichkeit Protokoll der Dienste / Methoden Konstruktor create Auftrag aktivieren// veranlasst das Zufallsgerät, zufallsbasiert eine 0/1-Entscheidung zu treffen Auftrag setP ( p: integer ) Anfrage getE : integer

  41. Benutzungsoberfläche Aufgabe: Entwerfen Sie eine Benutzungsoberfläche. Der Entwurf soll die GUI-Objekte und die Ereignisbehandlung festlegen.

  42. Entwurf einer Benutzungsoberfläche Simulations-parameter Auswertungs-parameter Auswertungs-ergebnis Simulations-ergebnis Auswertungs-ergebnis:Verteilung

  43. Ereignisbehandlung Benutzeraktion Programmreaktionen Mausklick auf den „neue Simulation und Auswertung“-Button Zuerst werden die Simulationsparameter (p, n, a) und Auswertungsparameter (min, max) übernommen und gesetzt. Anschließend wird die Simulation ausgeführt sowie die Verteilung erstellt und ausgewertet. Abschließend werden die Simulations- und Auswertungsergebnisse angezeigt. Mausklick auf den „neue Auswertung“-Button Zuerst werden die Auswertungsparameter (min, max) übernommen und gesetzt. Anschließend wird die Verteilung ausgewertet. Abschließend werden die Auswertungsergebnisse angezeigt.

  44. Modellierung der GUI-Klasse

  45. Sequenzdiagramm

  46. Sequenzdiagramm

  47. Teil 4 Implementierung und Testen

  48. Implementierung Zielsetzung: Erstellung eines lauffähigen Programms zum entwickelten Modell Aufgabe: Implementieren Sie die entwickelten Klassen. Arbeitsaufteilung:- Fachkonzeptklassen (TZufallsgeraet, ..., TVerteilung)- GUI-Klasse (Benutzungsoberfläche, Ereignisverarbeitung, ...)

  49. Testen Zielsetzung: Auffinden von Fehlern / Nachweis der Fehlerfreiheit Naive Vorgehensweise: Wir überlegen uns (möglichst alle) Testfälle und schauen, wie das entwickelte System die Testfälle bearbeitet. Die Ergebnisse werden kurz dokumentiert. Aufgabe: Untersuchen Sie möglichst viele Testfälle und dokumentieren Sie die Ergebnisse. Achtung: Vor dem Testen alle Programmteile abspeichern! Absturzgefahr!

  50. Dokumentation der Testfälle /1/ alle Simulationsparameter sind sinnvoll eingegeben; min, max ist nicht eingegeben; Button „neue Simulation und Auswertung“ gedrückt ok /2/ Simulationsparameter nicht eingegeben; Button „neue Simulation und Auswertung“ gedrückt Fehlermeldung

More Related