OOAD in UMLOOAD in UML
Seminar Software-EntwurfB. Sc. Sascha Tönnies
2Sascha Tönnies: OOAD in UML
AgendaAgenda
1. Einordnung des Themas im Seminar2. UML „kompakt“3. UML „detailliert“4. Werkzeugunterstützung
3Sascha Tönnies: OOAD in UML
Einordnung des ThemasEinordnung des Themas
Software-Entwurf
OOP
UML
betrachtete ProgrammiertechnikOO Analyse und Design
wichtiger Bestandteil innerhalb vom Software-Entwurf
Hilfsmittel
4Sascha Tönnies: OOAD in UML
Geschichte und ZukunftGeschichte und Zukunft
UML 0.9Booch, Rumbaugh, Jacobsen; 1996
UML 1.0UML Partners; 1/1997
UML 1.1UML Partners; 9/1997
UML 1.2UML Partners; 1998
UML 1.3UML Partners; 1999
UML 1.4UML Partners; 2001
UML 1.5UML Partners; 2003
UML 2UML 2 Partners ~10/2004
Einsatzerfahrungen der „Los amigos“
Integration derObject Constraint Language
XML Metadata Interchange
Erfahrungen der Anwender &semantische Präzisierung des Metamodells
5Sascha Tönnies: OOAD in UML
UML kompaktUML kompakt
• Was ist UML?– Familie grafischer Notationen– ein einziges Metamodell– Hilft bei Beschreibung und Entwicklung von Softwaresystemen
• Notation– Syntax der Modellierungssprache
• Metamodell– „Ein Modell, welches festlegt,
wie ein anderes Modell gebaut wird.“
6Sascha Tönnies: OOAD in UML
UML kompakt: 13 DiagrammtypenUML kompakt: 13 Diagrammtypen
Neu in UML 2.0
Neu in UML 2.0
Früher:Kollaborationsdiagramm
7Sascha Tönnies: OOAD in UML
UML kompakt: EntwicklungsprozesseUML kompakt: Entwicklungsprozesse
• Es gibt viele Prozesse– UML für viele Bereiche der Prozesse nützlich
• Einsatzmöglichkeiten– Skizze– Blaupause– Programmiersprache
• Perspektiven– Softwareperspektive– Konzeptionelle Perspektive
8Sascha Tönnies: OOAD in UML
AgendaAgenda
1. Einordnung des Themas im Seminar2. UML „kompakt“3. UML „detailliert“4. Werkzeugunterstützung
9Sascha Tönnies: OOAD in UML
UML detailliert am VUML detailliert am V--ModellModell
Anforderungs-definition
Grobentwurf
Feinentwurf
Modulimple-mentierung
Abnahmetests
Systemtests
Integrations-tests
Modultests
Anwendungszenarien
Testfälle
Testfälle
Testfälle
• Anforderungsanalyse– Klassendiagramm (Class)– Anwendungsfälle (Use Cases)– Aktivitätsdiagramm (Activity)– Zustandsdiagramm (Statechart)
10Sascha Tönnies: OOAD in UML
UML detailliert: KlassendiagrammUML detailliert: KlassendiagrammClass Drache {private boolean sleepy;private boolean hungry;private boolean firing;
public void feed(Animal a) {…
}public boolean sleep() {
return sleepy;}
public boolean makefire() {return true;
}}
Class Pinguin {private boolean sleepy;private boolean hungry;private boolean firing;
public void feed(Animal a) {…
}public boolean sleep() {
return sleepy;}
public boolean dive() {return true;
}}
11Sascha Tönnies: OOAD in UML
UML detailliert: UML detailliert: UseUse CaseCase
Evolutionssimulator
AkteurSystemgrenze
Systemname
Anwendungsfall
12Sascha Tönnies: OOAD in UML
UML detailliert: UML detailliert: StatechartStatechart
Auslöser(Trigger)
Bedingung(Guard)
Aktion
Start-zustand
Timetrigger
13Sascha Tönnies: OOAD in UML
UML detailliert am VUML detailliert am V--ModellModell
• Entwurf– Klassendiagramm– Objektdiagramm– Paketdiagramm– Zustandsdiagramm– Verteilungsdiagramm
14Sascha Tönnies: OOAD in UML
UML detailliert: KlassendiagrammUML detailliert: Klassendiagramm
Class Drache extends Animal {private boolean firing;
public boolean makefire() {return firing;
}}
Class Pinguin extends Animal {private boolean diving;
public boolean dive() {return diving;
}}
Class Animal {private boolean sleepy;private boolean hungry;
public void feed(Animal a) {…
}public boolean sleep() {
return sleepy;}
}
15Sascha Tönnies: OOAD in UML
UML detailliert: KlassendiagrammUML detailliert: KlassendiagrammClass Animal {private boolean sleepy;private boolean hungry;
public int feed(Eatable a) {hasEaten++;return a.getCaloriens();
}public boolean sleep() {
return sleepy;}
}
Interface Eatable {public int getCaloriens();
}
Class Fisch implements Eatable {public int getCaloriens() {
return 100;}
}
16Sascha Tönnies: OOAD in UML
UML detailliert: KlassendiagrammUML detailliert: Klassendiagramm
…….
17Sascha Tönnies: OOAD in UML
UML detailliert: ObjektdiagrammUML detailliert: Objektdiagramm
18Sascha Tönnies: OOAD in UML
AgendaAgenda
1. Einordnung des Themas im Seminar2. UML „kompakt“3. UML „detailliert“4. Werkzeugunterstützung
19Sascha Tönnies: OOAD in UML
WerkzeugunterstWerkzeugunterstüützungtzung
• Noch sehr wenige Werkzeuge für UML 2– MagicDraw (in Anfängen)– Together (in Anfängen)
• Viele für UML 1.4– Rational XDE– ArgoUML (free)– Poseidon– ….
• Unterschiede in der Mächtigkeit der Tools– einige für Skizzen (z.B. Poseidon Comunity Edition)– einige für Blaupausen (z.B. Poseidon, MagicDraw)– CASE Modelling (Together)
20Sascha Tönnies: OOAD in UML
EndeEnde
Danke für die Aufmerksamkeit!