OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Gliederung Warum eine SE-Methode? OOSE: Methode Beispiel Zusammenfassung (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Warum eine SE-Methode? erstellen von korrekter und sicherer Software Software muß wartbar und erweiterbar sein Methode muß einfach zu verstehen sein schnelle Entwicklung muß möglich sein (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
OOSE: von den Kundenanforderungen zur Anwendung System Analyse Konstruktion Tests Kunde hat Anforderung Entwickler bildet diese Anforderung in Objekte ab (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Analyse was soll das System leisten? bilden einer stabilen, robusten, wartbaren, erweiterbaren systemunabhängigen Struktur wir verstehen den Problemraum besser Methode um mit User zu diskutieren Analyse ist Grundlage des gesamten Projekts (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Requirements Modell Erkennen der Funktionalität 3 Werkzeuge: Use Case Model: beschreiben der Funktionalität Interface-Objects: beschreiben der Interfaces Problem-Domain-Objects: Objekte, die ein reales Gegenüber besitzen (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Use Case Modell Grafische Form: Use Case Actors Connection Text Form: zu jedem Use Case wird die genaue Folge der Interaktionen zwischen Actor und System beschrieben Name Name (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Recycling-Machine: Use Cases Dosen Flaschen Tagesreport Kisten Güter eintauschen Kunde Güter ändern Operator (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Analyse Modell Strukturierung des Systems es werden Information, Präsentation und Verhalten modelliert Entity-Object Interface-Object Control-Object Connection Komplexität minimieren durch Bildung von Subsystemen (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Recycling-Machine: Analyse Modell Alarmgeber Alarmdevice extends Drucker Kunden- panel Güter- empfänger Güter Report- generator Operator- panel Quittungs- basis erbt Dose Kiste Flasche (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Konstruktion Basis bilden das Requirements und Analyse Modell warum nicht gleich von der Analyse-Phase zum Source-Code? Spezifizierung der Objekte Berücksichtigen der Implementationsumgebung Validierung der Analyse-Phase Konstruktion = Design + Implementation (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Design Modell: Blöcke/IA-Diagramm Block: Objekte werden als Blöcke dargestellt einführen von Blöcken aus Klassenbibliotheken einführen neuer Blöcke (z.B. DBMS-Kapselung) Interaction-Diagramm: pro Use Case ein IA-Diagramm es wird beschrieben, wie Objekte kommunizieren Operationen (Methode) der Objekte (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Recycling-Machine: Blöcke 1 Alarmgeber Alarmdevice Drucker Kunden- panel Güter- empfänger Güter Report- generator Operator- panel Quittungs- basis erbt Dose Kiste Flasche (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Recycling-Machine: Blöcke 2 e[0...M] C C GüterListe[1] LinkedList Link erbt Quittungs- basis Tauschgut[1] Tauschgut Güter (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Recycling-Machine: Interaction-Diagramm System grenze Kunden panel Güter empfänger Quittungs basis Güter Startknopf Sensoren aktiv DO neues Gut messen und check wenn neues Gut neues anlegen G.Anzahl = G.Anzahl + 1 Gesamt = Gesamt + 1 WHILE neue Güter start create activate item() neues Gut exists() neuGut(Gut) incr (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Design Modell: Block-Design State-Transition-Diagramm: für jeden Block (Objekt) ein STD Verhalten der verschiedenen Objekte wird beschrieben Start-Symbol State Send message Receive message Return from message Decision abstrakte Ebene über der Programmiersprache (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
Recycling-Machine: STD (Güterempfänger) Init G. = Güter QB. = Quittungsbasis D. = Drucker Create erwarte erstes Gut item (l,h,w) druckeQuittung G.exist (l,h,w) D.print (Date) yes existed? Quittungsbasis exist? QB.printOn (str) no no D.print(str) yes QB.create QB.received (Gut) QB.delete return (fail) return (OK) -- (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Test Modell Unit testing Integration testing System testing Tests müssen geplant werden: Analyse failure Plan testing Specify tests fail Identify tests Perform tests Finish test OK (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering
(C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering Zusammenfassung gutes Herausarbeiten der Objekte einfaches Modell viele Schritte nötig lokale Änderungen wartbar erweiterbar paralleles Arbeiten Tracebility (C) '95 Sebastian Pohl OOSE: Object Oriented Software Engineering