2 Folien/Seite

Werbung
3. Objektorientierte Analyse
3.1 Systemanalyse
3.2 Statische Modellierung mit UML
3.3 Weitere UML-Diagramme in der Analyse
3.4 Realisierung von UML-Klassen mit Java
3.5 Dynamische Modellierung mit UML
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Methodik der Objektorientierten Analyse
Klassen finden
Iteration
Ziel:
Von den
Anforderungen
zu einem
Modell
der fachlichen
Aufgabe
Assoziationen und
Aggregationen finden
Attribute finden
Operationen finden
Szenarien finden und prüfen
Vererbungsstrukturen finden
Zustandsdiagramme erstellen
Operationen spezifizieren
Strukturen überprüfen
Subsysteme finden
Variante:
Datenorientierte
Vorgehensweise
Technische Universität Dresden
Prof. Hußmann
Seite 1
Softwaretechnologie
Operation
• Definition Eine Operation einer Klasse K ist die Beschreibung
einer Aufgabe, die jede Instanz der Klasse K ausführen kann.
In der Beschreibung der Klasse wird der Name der Operation
angegeben.
• Notation:
Klasse
Attribut_1
...
Attribut_n
Operation_1
...
Operation_m
• Beispiel:
Teambesprechung
titel
beginn
dauer
raumFestlegen()
einladen()
absagen()
Zur besseren Unterscheidung von Attributnamen werden meist
Klammern hinter Operationsnamen gesetzt, auch wenn über die
Parameterliste noch keine Aussagen gemacht werden sollen.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Parameter und Datentypen für Operationen
• Detaillierungsgrad:
– Analysephase: meist Operationsname ausreichend
– Parameternamen und Datentypen können angegeben werden
(manchmal auch Parametername ohne Datentyp)
– Später (Entwurfsphase) sind vollständige Angaben nötig.
• Notation:
Operation (Art Parameter:ParamTyp=DefWert, ...): ResTyp
– Art (des Parameters): in, out, oder inout (weglassen heißt in)
– DefWert legt einen Default-Parameterwert fest, der bei Weglassen
des Parameters im Aufruf gilt.
• Beispiele (Klasse Teambesprechung):
raumFestlegen (wunschRaum: Besprechungsraum): Boolean
absagen (grund: String);
Technische Universität Dresden
Prof. Hußmann
Seite 2
Softwaretechnologie
Klassenoperation
• Definition Eine Klassenoperation A einer Klasse K ist die
Beschreibung einer Aufgabe, die nur unter Kenntnis der aktuellen
Gesamtheit der Instanzen der Klasse ausgeführt werden kann.
Gewöhnliche Operationen heißen auch Instanzoperationen.
• Notation:
Unterstreichung analog zu Klassenattributen.
• Beispiel:
Besprechungsraum
raumNr
kapazität
reservieren()
freigeben()
freienRaumSuchen()
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Konstruktoroperation
• Definition Eine Konstruktoroperation C einer Klasse K ist eine
spezielle Klassenoperation, die eine neue Instanz der Klasse, d.h.
ein neues Objekt, erzeugt und initialisiert.
Ergebnistyp von C ist immer implizit die Klasse K.
Eine Konstruktoroperationen ohne Parameter wird implizit für jede
Klasse angenommen. Explizite Konstruktoroperationen werden mit
"<<constructor>>" markiert.
• Beispiel:
Besprechungsraum
raumNr
kapazität
reservieren()
freigeben()
freienRaumSuchen()
neuerBesprechungsraum
(raumNr, kapazität) <<constructor>>
Technische Universität Dresden
Prof. Hußmann
Seite 3
Softwaretechnologie
Beispiel: Operationen
Besprechungsraum
raumNr
kapazität
reservieren()
freigeben()
freienRaumSuchen()
0..1 Ort
Termin
*
Teambesprechung
titel
beginn
dauer
anzahl
raumFestlegen()
einladen()
absagen()
verschieben()
Privater
Termin
beschreibg
beginn
dauer
ort
wegzeit
genehmigen()
verschieben()
Team
name
1
0..1
1..*
*
leitet
1
Teilnahme
*
*
2..*
1 Leiter
Teammitglied
name
abteilung
terminBestätigen()
1
für
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Datenkapselung (1) - Beispiel
Besprechungsraum-Objekt
Ort
Teilnahme
ar12: Teambesprechung
diverse
TeammitgliedObjekte
titel = "12.Abteilungsrunde"
beginn = 10.10.00 09:00
dauer = 60
leitet
verschieben(17.10.00 09:00)
Es steht nur lokale Information
zur Verfügung:
Attributwerte, assoziierte Objekte
Technische Universität Dresden
1. Alle Teammitglieder nach Konflikten
mit neuem Datum fragen
2. Besprechungsraum zum neuen Termin
reservieren
3. Alte Reservierung (Raum) freigeben
4. Datum ändern
Prof. Hußmann
Seite 4
Softwaretechnologie
Datenkapselung (2) - Beispiel im Detail
r18: Besprechungsraum
2. reservieren(neu)
Ort
3. freigeben(alt)
tm1: Teammitglied
Teilnahme
1.1 terminBestätigen(neu)
ar12: Teambesprechung
titel = "12.Abteilungsrunde"
beginn = 10.10.00 09:00
dauer = 60
= alt
tm2: Teammitglied
1.2 terminBestätigen(neu)
1.3 terminBestätigen(neu)
leitet tm3: Teammitglied
verschieben(17.10.00 09:00)
= neu
Anmerkung:
Darstellung= UML"Kollaborationsdiagramm"
Technische Universität Dresden
1. Alle Teammitglieder nach Konflikten
mit neuem Datum fragen
2. Besprechungsraum zum neuen Termin
reservieren
3. Alte Reservierung (Raum) freigeben
4. Datum ändern
Prof. Hußmann
Softwaretechnologie
Datenkapselung (3) - Weiteres Beispiel
Beispiel:
raumFestlegen() in Klasse Teambesprechung
Teambesprechung
titel
beginn
dauer
raumFestlegen()
einladen()
absagen()
1. Wieviele Teilnehmer?
2. Welcher Raum?
3. Reservieren.
Teilnahme
tb: Teambesprechung
freienRaumSuchen()
R15
Besprechungsraum
n=5
(diverse
TeammitgliedObjekte)
reservieren(tb)
R15: Besprechungsraum
Technische Universität Dresden
Prof. Hußmann
Seite 5
Softwaretechnologie
Zuordnung von Operationen
• Zweifelsfälle:
– freienRaumSuchen():
» Operation von "Besprechungsraum" oder von
"Teambesprechung"?
– genehmigen():
» Operation von "Privater Termin" oder von "Teammitglied"?
• Prinzipien:
– Möglichst intensive Ausnutzung der Datenkapselung:
» da zuordnen, wo am besten von lokaler Information Gebrauch
gemacht werden kann
– Notwendigkeit zur Objektinteraktion möglichst minimieren
– Möglichst Gebrauch von vorhandenen Operationen machen bzw.
Operationen mehrfach nutzen.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Methodik der Objektorientierten Analyse
Klassen finden
Iteration
Ziel:
Von den
Anforderungen
zu einem
Modell
der fachlichen
Aufgabe
Assoziationen und
Aggregationen finden
Attribute finden
Operationen finden
Szenarien finden und prüfen
Vererbungsstrukturen finden
Zustandsdiagramme erstellen
Operationen spezifizieren
Strukturen überprüfen
Subsysteme finden
Variante:
Datenorientierte
Vorgehensweise
Technische Universität Dresden
Prof. Hußmann
Seite 6
Softwaretechnologie
Vererbung
• Definition Eine Vererbungsbeziehung von einer Klasse K1 zu
einer Klasse K2 ist eine Beschreibung der Tatsache, daß alle
Objekte der Klasse K2 zusätzlich zu den in der Klasse K2
beschriebenen Eigenschaften auch alle Eigenschaften der Klasse
K1 haben.
'Eigenschaften' sind hier
– die Liste der Attribute
– die Teilnahme an Assoziationen, Aggregationen und Kompositionen
– die Liste der Operationen.
• Notation:
Klasse_1
• Umgangssprachlich:
Klasse_2
Jedes Klasse_2 ist ein Klasse_1.
Klasse_2 ist Spezialfall von Klasse_1.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Vererbung und Instanzen
Termin
titel
beginn
dauer
verschieben()
allgTermin:Termin
titel = "Noch unklar"
beginn = 01.01.00 00:00
dauer = 0
spezTermin:Teambesprechung
Teilnahme
titel = "12. Abteilungsrunde"
beginn = 10.05.98 10:00
dauer = 120
leitung = m1
teilnahme [0] = m1
teilnahme [1] = m3
...
Teambesprechung
anzahl
leitet
Veranst
Ort
raumFestlegen()
einladen()
absagen()
Technische Universität Dresden
Prof. Hußmann
Seite 7
Softwaretechnologie
Polymorphie
Termin
...
verschieben
(neu: Date):Boolean
Privater Termin
Teambesprechung
verschieben()
verschieben()
:Privater Termin
:Teambesprechung
verschieben (neu=20.07.98 17:00)
• Die gleiche Nachricht führt zu unterschiedlichen Rechenvorschriften,
abhängig vom Empfänger (dynamische Bindung).
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Abstrakte und konkrete Klassen
• Definition Eine Klasse kann als abstrakt deklariert werden. In
diesem Fall ist es nicht zulässig, Instanzen der Klasse zu bilden.
Abstrakte Klassen dienen nur als "Schema" in der Vererbung.
Eine Klasse, von der Instanzen gebildet werden können, heißt
konkret .
• Notation:
Klasse
{abstract}
...
...
oder:
Kursivschreibung
des Klassennamens
• Beispiel:
Termin
{abstract}
...
...
Technische Universität Dresden
Prof. Hußmann
Seite 8
Termin
...
...
Softwaretechnologie
Überdefinieren von Operationen
K
K
K
f
f
f
K1
K2
K1
K2
f
Das in K definierte
Verhalten gilt für
alle Objekte der
Klassen K, K1 und
K2.
Technische Universität Dresden
Das in K definierte
Verhalten gilt nur
für die Objekte der
Klassen K und K2.
K1 definiert ein
anderes Verhalten
(Überdefinition,
override).
K1
K2
f
f
Das in K definierte
Verhalten gilt nur
für die Objekte der
Klasse K
(und ist deshalb
nutzlos, wenn K
abstrakt ist).
Prof. Hußmann
Softwaretechnologie
Abstrakte und konkrete Operationen
• Definition Eine Operation OP kann als abstrakt deklariert werden,
wenn sie in einer abstrakten Oberklasse K definiert ist. In diesem
Fall legt K kein Verhalten für OP fest.
Das Verhalten von OP wird in den Unterklassen von K definiert.
Eine Operation einer Klasse, die ein eigenständiges Verhalten
aufweist, heißt konkret.
• Notation:
Klasse
{abstract}
...
Operation {abstract}
• Beispiel:
Termin {abstract}
...
verschieben() {abstract}
veröffentlichen()
Technische Universität Dresden
Prof. Hußmann
Seite 9
Termin
...
verschieben ()
veröffentlichen()
Softwaretechnologie
Zugriff auf Attributwerte
• Attributwerte sind „Privatangelegenheit“ eines Objekts.
• Implizite Operationen zum Lesen und Schreiben von Attributwerten
– Lesen („get-Methode“)
– Setzen („set-Methode“)
• Beispiel:
– Attribut:
– Leseoperation:
– Schreiboperation:
beginn: Date
getBeginn(): Date
setBeginn(d: Date)
• In den meisten objektorientierten Programmiersprachen (auch
Java) werden Attribute syntaktisch wie Variablen eines
Pascal/Modula-Records angesprochen:
Für Objekt x : Teambesprechung :
– Attribut:
x.beginn
(Typ ist Date)
– Leseoperation:
… x.beginn …
– Schreiboperation:
x.beginn = …
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Datenkapselung und Sichtbarkeit
• Definition Für eine Operation OP einer Klasse K wird eine
Sichtbarkeit definiert, z.B. privat (Regelfall) oder öffentlich.
•
•
•
•
Die Sichtbarkeit eines Attributes ist gleichbedeutend mit der
Sichtbarkeit seiner impliziten Operationen.
Private Operation OP einer Klasse K: Die Ausführung von OP für
ein Objekt der Klasse K ist nur durch ein Objekt der selben Klasse
K möglich.
Öffentliche (public) Operation: Ein beliebiges Objekt darf OP
ausführen.
Geschützte (protected) Operation: Ein Objekt O darf OP genau
dann ausführen, wenn die Klasse von O eine Unterklasse von K
ist.
Notation:;
– Minuszeichen (privat)
– Pluszeichen (öffentlich)
– Kreuzzeichen (geschützt)
Technische Universität Dresden
– Operation
+ Operation
# Operation
Prof. Hußmann
Seite 10
– Attribut
+ Attribut
# Attribut
Softwaretechnologie
Vererbung und Sichtbarkeit
K1
– a1
# a2
– op1()
+ op2()
# op3()
K3
op2 kann verwenden:
a1, a2, op1, op3
op5()
op5 kann verwenden:
op2
op4 kann verwenden:
a2, op2, op3
K2
Sichtbarkeitssymbole:
–
private
+
public
#
protected
op4()
• Alle Attribute und Operationen werden als Bestandteil der
Objektstruktur vererbt.
• In der Unterklasse sichtbar sind nur öffentliche und geschützte
Attribute und Operationen.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Klassendiagramm
Terminverwaltung
1
*
Termin
{abstract}
titel
beginn
dauer
verschieben() {abstract}
Team
name
1
*
Privater
Termin
ort
wegzeit
Teambesprechung
verschieben()
*
Besprechungsraum
raumNr
kapazität
reservieren()
freigeben()
freienRaumSuchen()
0..1 VeranstOrt
für
Technische Universität Dresden
anzahl
raumFestlegen()
einladen()
absagen()
verschieben()
Prof. Hußmann
Seite 11
1..*
*
leitet
1
Teilnahme
*
2..*
0..1
1 Leiter
Teammitglied
name
abteilung
terminBestätigen()
1
Softwaretechnologie
Methodik der Objektorientierten Analyse
Klassen finden
Iteration
Ziel:
Von den
Anforderungen
zu einem
Modell
der fachlichen
Aufgabe
Assoziationen und
Aggregationen finden
Attribute finden
Operationen finden
Szenarien finden und prüfen
Vererbungsstrukturen finden
Variante:
Datenorientierte
Vorgehensweise
Technische Universität Dresden
Zustandsdiagramme erstellen
Operationen spezifizieren
Strukturen überprüfen
Subsysteme finden
Prof. Hußmann
Softwaretechnologie
3. Objektorientierte Analyse
3.3 Weitere UML-Diagramme in der Analyse
Klassendiagramme
Technische Universität Dresden
Prof. Hußmann
Seite 12
Softwaretechnologie
Anwendungsfälle
• Definition Ein Akteur ist die Beschreibung einer Rolle,
die ein Benutzer (oder ein anderes System) spielt, wenn
er/es mit dem System interagiert.
• Definition Eine Interaktion ist der Austausch von
Nachrichten unter Objekten zur Erreichung eines
bestimmten Ziels.
• Definition Eine Nachricht ist die Beschreibung einer
op(x, y)
Operation eines Objekts mit den notwendigen
Parameterwerten, so daß die Operation durch das Objekt
ausführbar ist.
• Definition Ein Anwendungsfall (synonym Use-Case,
engl. use case) ist die Beschreibung einer Klasse von
Aktionsfolgen (einschließlich Varianten), die ein System
ausführen kann, wenn es mit Akteuren interagiert.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Use-Case-Diagramm
Terminverwaltung
Teambesprechung organisieren
Organisator
Teambesprechung verschieben
Persönlichen
Termin einplanen
Ungenutzte
Raumkapazität
ermitteln
Raumverwalter
Teammitglied
Technische Universität Dresden
Prof. Hußmann
Seite 13
Softwaretechnologie
Szenarien
• Definition Ein Szenario ist eine Beschreibung einer beispielhaften
Folge von Interaktionen von Akteuren mit dem System zur
Beschreibung eines Anwendungsfalls.
• Es gibt Szenarien für Normalfälle ('gut-Fälle') und Ausnahmefälle.
• Beispiel:
Eines der Normalfall-Szenarien für
'Teambesprechung organisieren'
–
–
–
–
Organisator erfährt Thema, Termin, TeilnehmerInnen
einer neu geplanten Teambesprechung.
Zeitpunkt wird mit TeilnehmerInnen abgestimmt.
Raum wird reserviert (falls gewünscht).
Einladungen werden an die TeilnehmerInnen
versandt.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie
Sequenzdiagramm
Organisator
erzeugen tb1:Teambesprechung
m3:Teammitglied
m5:Teammitglied
terminBestätigen()
OK
terminBestätigen
OK
bestätigt
...
•
•
•
•
Senkrechte Linien: 'Leben' einer Objektinstanz
Waagrechte Pfeile: (Synchrone) Nachrichten
Gestrichelte Pfeile (optional): Antworten (Ergebnisrückgaben)
Blöcke auf den senkrechten Linien: Steuerfokus (Aktivierung)
Technische Universität Dresden
Prof. Hußmann
Seite 14
Softwaretechnologie
Herunterladen