OO Analyse und Entwurf für Anwender
X. Der Kern der Objektorientierung: Der Entwurf
Dr. Michael Löwe
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
2
Objektorientierte Analyse und Entwurf
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
3
Objektorientierte Analyse und Entwurf
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
4
Objektorientierte Analyse und Entwurf
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
5
Objektorientierte Analyse und Entwurf
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
6
Objektorientierte Analyse und Entwurf
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
7
Objektorientierte Analyse und Entwurf
AnalyseAnalyse
EntwurfEntwurf
RealisierungRealisierung
Planung
AnalyseAnalyse
EntwurfEntwurf
RealisierungRealisierung
Planung
AnalyseAnalyse
EntwurfEntwurf
RealisierungRealisierung
Planung
AnalyseAnalyse
EntwurfEntwurf
RealisierungRealisierung
Planung
Rückkopplung im Entwicklungsprozeß
AnalyseAnalyse
EntwurfEntwurf
RealisierungRealisierung
Planung
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
8
Objektorientierte Analyse und Entwurf
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
9
Objektorientierte Analyse und Entwurf
Übergang in den Entwurf
Kontextdiagramm:System und seine Akteure
Kontextdiagramm:System und seine Akteure
Anwendungsfalldiagramm:Anwendungsfälle und ihre Akteure
Anwendungsfalldiagramm:Anwendungsfälle und ihre Akteure
Anwendungsbeschreibung:Systemfunktionen und ihre Abläufe
Anwendungsbeschreibung:Systemfunktionen und ihre Abläufe
Fachlexikon:Fachbegriffe und -strukturen
Fachlexikon:Fachbegriffe und -strukturen
Fachliches Klassenmodell:Klassen und Beziehungen
Fachliches Klassenmodell:Klassen und Beziehungen
Aktivitätsdiagramme:Aktivitäten und kausale Abhängigkeit
Aktivitätsdiagramme:Aktivitäten und kausale Abhängigkeit
Fachliches Klassenmodell:Attribute und Operationen
Fachliches Klassenmodell:Attribute und Operationen
Interaktionsdiagramme:Realisierung der Aktivitäten durch Interaktion von Objekten
Interaktionsdiagramme:Realisierung der Aktivitäten durch Interaktion von Objekten
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
10
Objektorientierte Analyse und Entwurf
Von der Interaktion zu den OperationenAktivität: Aus Angebot mit eigenen Daten Vertrag erzeugen
Angebot Vertrag Kunde
Vertrag erzeugenneu
Daten übernehmen
Kunde zuordnenVertrag zuordnen
Anschrift zuordnenAnschrift prüfen...
*Einzelnes Datum holen
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
11
Objektorientierte Analyse und Entwurf
Einfluß der eingesetzten Technik
Ober-fläche
Persistenz
Übergang in den Entwurf
Anwendungsfalldiagramm
Anwendungsfallbeschreibung*
Aktivitätsdiagramm
Fachlexikon
Klassenmodell (Struktur)
Interaktionsdiagramm*
Klassenmodell (vollständig)
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
12
Objektorientierte Analyse und Entwurf
Innere Struktur von Klassen
• Zustände und Eigenschaften– Attribute– Typen
• Verhalten– Operationen– Methoden– Nachrichten– Schnittstellen
• Interaktion
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
13
Objektorientierte Analyse und Entwurf
Beispiel
Kreis
radius: Längemittelpunkt: Punkt = (10,10)
zeigDich ()versteckDich ()
setzeMittelpunkt(pos:Punkt)setzeRadius(rad:Länge)liefereRadius():Länge
Klassenname
Attributname Attribut-Typ
Initialwert
Operationsname
Parameter
Parameter-Typ
Rückgabe-Typ
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
14
Objektorientierte Analyse und Entwurf
BeispielKreis
radius: Längemittelpunkt: Punkt = (10,10)
zeigDich ()versteckDich ()
setzeMittelpunkt(pos:Punkt)setzeRadius(rad:Länge)liefereRadius():Länge
k1
k2
k3
k1:Kreisradius = 1
mittelpunkt = (0,0)
k2:Kreisradius = 2.5
mittelpunkt = (3,1.25)
k3:Kreisradius = 1.5
mittelpunkt = (-1.5,-3)
„instance of“
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
15
Objektorientierte Analyse und Entwurf
Beispiel (Fortsetzung)Kreis
radius: Längemittelpunkt: Punkt = (10,10)
zeigDich ()versteckDich ()
setzeMittelpunkt(pos:Punkt)setzeRadius(rad:Länge)liefereRadius():Länge
k1
k2
k3
k1:Kreisradius = 1
mittelpunkt = (0,0)
k2:Kreisradius = 2.5
mittelpunkt = (3,1.25)
k3:Kreisradius = 1.5
mittelpunkt = (-1.5,-3)
versteckDich
zeigDich
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
16
Objektorientierte Analyse und Entwurf
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
17
Objektorientierte Analyse und Entwurf
Attribut (Beispiele)
name : String = ‚Unbekannt‘
angebot : Angebot
rechnungsdatum : Datum
farbe : {rot, blau, grün}
\alter : Integer {alter = today - gebDatum}
vornamen [1..5] : String
Elementarer Typ:String, Integer,
Float, Character,...
Typangabe durchKlassenname
Aufzählungstyp
Mehrfachattribut
Abgeleitetes Attribut
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
18
Objektorientierte Analyse und Entwurf
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
19
Objektorientierte Analyse und Entwurf
Operation (Beispiele)
freigeben () : Vertragsstatus
vergrößern (umFaktor : Real) : GeomFigur
setzePosition (x : Integer, y : Integer)
rufnrHinzufügen (rufnr : String, art : Rufart)
RückgabetypKein Parameter
Parameter, Parametertyp
Typgleiche Parameter
Mehrere Parameter
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
20
Objektorientierte Analyse und Entwurf
Operation, Methode und Nachricht
Gekapselt Daten:
Attribute
Gekapselte Funktionen:
Methoden
Schnittstelle:Operationen
Kunde
Gekapselt Daten:
Attribute
Gekapselte Funktionen:
Methoden
Schnittstelle:Operationen
Dienstleister
Nachricht
Merke: Eine Operation kann durch diese Trennung über viele verschiedene Methoden realisiert sein!!!
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
21
Objektorientierte Analyse und Entwurf
Versandweg{abstract}
standardwegZuordnen (v : Vertrag)
Operationen und abstrakte Klassen
Person
Telefonnr.
Faxnr.
email-Adr.
Anschrift
Kommunikationsweg{abstract}
*hat
Vertrag1
Versicherungsnehmer
=
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
22
Objektorientierte Analyse und Entwurf
SchnittstellenklassenVersteckbar
{abstract}zeigDich()
versteckDich()
Kreis
radius: Längemittelpunkt: Punkt = (10,10)
zeigDich ()versteckDich ()
setzeMittelpunkt(pos:Punkt)setzeRadius(rad:Länge)liefereRadius():Länge
„interface“VersteckbarzeigDich()
versteckDich()
Kreis
radius: Längemittelpunkt: Punkt = (10,10)
zeigDich ()versteckDich ()
setzeMittelpunkt(pos:Punkt)setzeRadius(rad:Länge)liefereRadius():Länge
„implements“ Kreis
radius: Längemittelpunkt: Punkt = (10,10)
zeigDich ()versteckDich ()
setzeMittelpunkt(pos:Punkt)setzeRadius(rad:Länge)liefereRadius():Länge
Versteckbar
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
23
Objektorientierte Analyse und Entwurf
Elementare Interaktion
Gekapselt Daten:
Attribute
Gekapselte Funktionen:
Methoden
Schnittstelle:Operationen
Kunde
Gekapselt Daten:
Attribute
Gekapselte Funktionen:
Methoden
Schnittstelle:Operationen
Dienstleister
Nachricht
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
24
Objektorientierte Analyse und Entwurf
InteraktionAktivität: Aus Angebot mit eigenen Daten Vertrag erzeugen
Angebot Vertrag Kunde
Vertrag erzeugenneu
Daten übernehmen
Kunde zuordnenVertrag zuordnen
Anschrift zuordnenAnschrift prüfen...
*Einzelnes Datum holen
ObjektKlassenname
Nachricht mit Absender und
Empfänger
ReihenfolgeZeit
Iteration
Lebenslinie
Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover
25
Objektorientierte Analyse und Entwurf
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