OO Analyse und Entwurf für Anwender X. Der Kern der Objektorientierung: Der Entwurf Dr. Michael Löwe
Prof. Dr. Michael Löwe, FHDW, Hannover Inhalt der Ausbildung Kennzeichen objektorientierter Softwareentwicklung (1) Projektorganisation (2) Architektur (2) Objektorientierte Analyse (4) Objektorientierter Entwurf (5) Realisierung und Test (2) Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Lernziele Verständnis für die Wichtigkeit des Entwurfs Einsicht in die Dreifaltigkeit Material, Werkzeug, Prozeß Attribute, Operationen, Interaktion Gefühl für den Übergang Analyse / Entwurf Kennenlernen der Beschreibungsmittel Einsicht in den nötigen Detaillierungsgrad Erlernen erster Faustregeln für guten Entwurf Regeln für angemessene Benutzeroberflächen Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Inhalt Aufgaben und Ergebnisse im Entwurf (Wiederholung) Was ist der Entwurf? Übergang in den Entwurf Das Thema des Entwurfs: Innere (und äußere) Struktur der Klassen Attribute, Operationen, Schnittstellen und Interaktion Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Aufgaben im Entwurf Abbildung der Analyse-Ergebnisse (ideale Technik) auf die verfügbare Technik Abbildung der Analyseklassen auf DV-Datentypen Abbildung der Analyseobjekte auf DV-Objekte Dabei Abstraktion durch Begrenzung der Eigenschaften Festlegung der konkreten Dienste (Protokolle) Festlegung der konkreten Zusammenarbeit Dabei Festlegung der endgültigen Beziehungsstruktur Berücksichtigung der technischen Belange Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Ergebnisse des Entwurfs Vollständiges Objekt/Klassendiagramm Ergänzung der Analyse-Ergebnisse um technische Klassen Attribute und Operationen (Datentyp) Vererbungsbeziehungen Vervollständigung der Beziehungen Spezifikation der Zusammenarbeit (Interaktion) Sequenzdiagramme für komplizierte Szenarien Angabe zu verwendender Entwurfsmuster Entwurf der Benutzerinteraktion Oberflächenprototypen Dialogfolgeskizzen für Szenarien Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Rückkopplung im Entwicklungsprozeß Analyse Entwurf Analyse Entwurf Realisierung Planung Analyse Entwurf Realisierung Planung Analyse Entwurf Realisierung Planung Analyse Entwurf Realisierung Planung Planung Realisierung Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Was ist der Entwurf? Die Ergebnisse der Analyse beschreiben die Struktur einer fachlichen Lösung für eine Entwicklungsaufgabe unter der Annahme idealer Technik. Die Ergebnisse des Entwurfs beschreiben die Struktur einer fachlichen Lösung für eine Entwicklungsaufgabe unter der gegebenen Technik. Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Übergang in den Entwurf Kontextdiagramm: System und seine Akteure Anwendungsfalldiagramm: Anwendungsfälle und ihre Akteure Fachlexikon: Fachbegriffe und -strukturen Anwendungsbeschreibung: Systemfunktionen und ihre Abläufe Fachliches Klassenmodell: Klassen und Beziehungen Aktivitätsdiagramme: Aktivitäten und kausale Abhängigkeit Fachliches Klassenmodell: Attribute und Operationen Interaktionsdiagramme: Realisierung der Aktivitäten durch Interaktion von Objekten Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Von der Interaktion zu den Operationen Aktivität: Aus Angebot mit eigenen Daten Vertrag erzeugen Angebot Vertrag Kunde Vertrag erzeugen neu Daten übernehmen *Einzelnes Datum holen Kunde zuordnen Vertrag zuordnen Anschrift zuordnen Anschrift prüfen . Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Übergang in den Entwurf Einfluß der eingesetzten Technik Ober- fläche Persistenz Anwendungsfalldiagramm Anwendungsfallbeschreibung * Fachlexikon Aktivitätsdiagramm Klassenmodell (Struktur) Interaktionsdiagramm * Klassenmodell (vollständig) Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Innere Struktur von Klassen Zustände und Eigenschaften Attribute Typen Verhalten Operationen Methoden Nachrichten Schnittstellen Interaktion Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Beispiel Klassenname Kreis Attributname Attribut-Typ Initialwert radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge Attributname Attribut-Typ Initialwert Parameter Parameter-Typ Operationsname Rückgabe-Typ Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Beispiel k2 k1 k3 „instance of“ Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge k1 k2 k3 „instance of“ k1:Kreis radius = 1 mittelpunkt = (0,0) k2:Kreis radius = 2.5 mittelpunkt = (3,1.25) k3:Kreis radius = 1.5 mittelpunkt = (-1.5,-3) Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Beispiel (Fortsetzung) Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge k1 k2 k1:Kreis radius = 1 mittelpunkt = (0,0) k2:Kreis radius = 2.5 mittelpunkt = (3,1.25) k3:Kreis radius = 1.5 mittelpunkt = (-1.5,-3) k3 versteckDich zeigDich Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Attribut Definition: Ein Attribut ist ein Element, das in jedem Objekt einer Klasse gleichermaßen enthalten ist und von jedem Objekt mit einem individuellen Wert repräsentiert wird. Im Gegensatz zu Objekten haben Attribute außerhalb des Objektes, von dem sie Teil sind, keine eigene Identität. Attribute sind vollständig unter der Kontrolle der Objekte, von denen sie Teil sind. Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Attribut (Beispiele) name : String = ‚Unbekannt‘ angebot : Angebot Elementarer Typ: String, Integer, Float, Character,... name : String = ‚Unbekannt‘ angebot : Angebot rechnungsdatum : Datum farbe : {rot, blau, grün} \alter : Integer {alter = today - gebDatum} vornamen [1..5] : String Typangabe durch Klassenname Aufzählungstyp Abgeleitetes Attribut Mehrfachattribut Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Operation Definitionen: Operationen sind Dienstleistungen, die von einem Objekt angefordert werden können, sie werden beschrieben durch ihre Signatur (Operationsname, Parameter- und Rückgabespezifikation). Eine Methode implementiert eine Operation. (Sie ist eine Sequenz von Anweisungen/Interaktionen.) Eine Nachricht überbringt einem Objekt die Information darüber, welche Aktivität von ihm erwartet wird und fordert es so zur Ausführung einer Operation auf. Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Operation (Beispiele) Kein Parameter Rückgabetyp freigeben () : Vertragsstatus vergrößern (umFaktor : Real) : GeomFigur setzePosition (x : Integer, y : Integer) rufnrHinzufügen (rufnr : String, art : Rufart) Parameter, Parametertyp Typgleiche Parameter Mehrere Parameter Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Operation, Methode und Nachricht Gekapselt Daten: Attribute Gekapselte Funktionen: Methoden Schnittstelle: Operationen Kunde Dienstleister Nachricht Merke: Eine Operation kann durch diese Trennung über viele verschiedene Methoden realisiert sein!!! Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Operationen und abstrakte Klassen Person Versicherungsnehmer hat * Kommunikationsweg {abstract} = Telefonnr. Versandweg {abstract} standardwegZuordnen (v : Vertrag) 1 Vertrag Faxnr. email-Adr. Anschrift Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Schnittstellenklassen Versteckbar {abstract} zeigDich() versteckDich() „interface“ Versteckbar zeigDich() versteckDich() Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge „implements“ Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge Versteckbar Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Elementare Interaktion Gekapselt Daten: Attribute Gekapselte Funktionen: Methoden Schnittstelle: Operationen Kunde Dienstleister Nachricht Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Interaktion Aktivität: Aus Angebot mit eigenen Daten Vertrag erzeugen Klassenname Objekt Angebot Vertrag Kunde Vertrag erzeugen neu Nachricht mit Absender und Empfänger Daten übernehmen Iteration *Einzelnes Datum holen Kunde zuordnen Lebenslinie Vertrag zuordnen Anschrift zuordnen Anschrift prüfen . Reihenfolge Zeit Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
Prof. Dr. Michael Löwe, FHDW, Hannover Zusammenfassung Entwurf und Analyse haben viele Modelle gemeinsam Analyse: Ideale Technik Entwurf: Gegebene Technik {Bemerkung: Gegebene Technik bewegt stark auf ideale Technik zu!} Entwurf ergänzt die Analysergebnisse Attribute und Operationen Technische Klassen Interaktion Oberflächen Das Ergebnis im Entwurfs ist das Klassenmodell Realisierung implementiert die Methoden Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover