Object Oriented Analysis and Design … · OOAD 12/15. logo Weitere Detaillierungsm¨oglichkeiten I...

Post on 06-Feb-2018

213 views 0 download

transcript

logo

Object Oriented Analysis and DesignSoftware Engineering in der Praxis

Dipl.-Inf. Martin Jung

Lehrstuhl fur Software Engineering

5.12.2005

5.12.2005OOAD 1/15

logo

Wiederholung: Analyse

I Use-case ModellierungI Bestimmung welche Leistungen des Systems auf welche Art

und Weise erbracht werden.I Hauptsachlich aktionsorientiert.

I Klassen ModellierungI Bestimmung der Klassen und Attribute und der Beziehungen

zwischen den Klassen.I Rein datenorientiert.

I Dynamische ModellierungI Bestimme alle Aktionen, die eine Klasse ausfuhrt, oder die an

einer Klasse ausgefuhrt werden.I Rein aktionsorientiert.

5.12.2005OOAD 2/15

logo

Wiederholung: Analyse

I Use-case ModellierungI Bestimmung welche Leistungen des Systems auf welche Art

und Weise erbracht werden.I Hauptsachlich aktionsorientiert.

I Klassen ModellierungI Bestimmung der Klassen und Attribute und der Beziehungen

zwischen den Klassen.I Rein datenorientiert.

I Dynamische ModellierungI Bestimme alle Aktionen, die eine Klasse ausfuhrt, oder die an

einer Klasse ausgefuhrt werden.I Rein aktionsorientiert.

5.12.2005OOAD 2/15

logo

Wiederholung: Analyse

I Use-case ModellierungI Bestimmung welche Leistungen des Systems auf welche Art

und Weise erbracht werden.I Hauptsachlich aktionsorientiert.

I Klassen ModellierungI Bestimmung der Klassen und Attribute und der Beziehungen

zwischen den Klassen.I Rein datenorientiert.

I Dynamische ModellierungI Bestimme alle Aktionen, die eine Klasse ausfuhrt, oder die an

einer Klasse ausgefuhrt werden.I Rein aktionsorientiert.

5.12.2005OOAD 2/15

logo

Design

I Interaktionsdiagramme fur jedes Szenario aufstellenI Interne SzenarienI Sequenzdiagramme bzw. Kollaborationsdiagramme

I Klassendiagramm verfeinernI Methoden zuordnen, Kapselung beachtenI Vererbungshierarchien einbauen

I System als ”Clients of Objects”I Abhangigkeiten einzeichnenI Initialisierungssequenzen aufstellen

I Detailliertes DesignI ObjektlebenszyklenI Aktivitatsdiagramme fur MethodenI Einschrankungen im ModellI Stereotypisierung

5.12.2005OOAD 3/15

logo

Design

I Interaktionsdiagramme fur jedes Szenario aufstellenI Interne SzenarienI Sequenzdiagramme bzw. Kollaborationsdiagramme

I Klassendiagramm verfeinernI Methoden zuordnen, Kapselung beachtenI Vererbungshierarchien einbauen

I System als ”Clients of Objects”I Abhangigkeiten einzeichnenI Initialisierungssequenzen aufstellen

I Detailliertes DesignI ObjektlebenszyklenI Aktivitatsdiagramme fur MethodenI Einschrankungen im ModellI Stereotypisierung

5.12.2005OOAD 3/15

logo

Design

I Interaktionsdiagramme fur jedes Szenario aufstellenI Interne SzenarienI Sequenzdiagramme bzw. Kollaborationsdiagramme

I Klassendiagramm verfeinernI Methoden zuordnen, Kapselung beachtenI Vererbungshierarchien einbauen

I System als ”Clients of Objects”I Abhangigkeiten einzeichnenI Initialisierungssequenzen aufstellen

I Detailliertes DesignI ObjektlebenszyklenI Aktivitatsdiagramme fur MethodenI Einschrankungen im ModellI Stereotypisierung

5.12.2005OOAD 3/15

logo

Design

I Interaktionsdiagramme fur jedes Szenario aufstellenI Interne SzenarienI Sequenzdiagramme bzw. Kollaborationsdiagramme

I Klassendiagramm verfeinernI Methoden zuordnen, Kapselung beachtenI Vererbungshierarchien einbauen

I System als ”Clients of Objects”I Abhangigkeiten einzeichnenI Initialisierungssequenzen aufstellen

I Detailliertes DesignI ObjektlebenszyklenI Aktivitatsdiagramme fur MethodenI Einschrankungen im ModellI Stereotypisierung

5.12.2005OOAD 3/15

logo

Anwendungsfalldiagramme

5.12.2005OOAD 4/15

logo

Anwendungsfalldiagramme

I AktorenI Abgrenzung der systeminternen und -externen ElementeI z.B.: Benutzer, Drucker, Datenbank, Buchungssystem...

I Gen/Spez BeziehungenI Zusammenfassen mehrerer ahnlicher AnwendungsfalleI Abstraktion hier lediglich zur Gliederung und Ubersicht

I Include-BeziehungenI Dekomposition in mehrere AnwendungsfalleI Vorsicht vor Vorwegnehmen von Designdetails

I Extend-BeziehungenI Verzweigungen im KontrollflussI Extension point angeben

5.12.2005OOAD 5/15

logo

Anwendungsfalldiagramme

I AktorenI Abgrenzung der systeminternen und -externen ElementeI z.B.: Benutzer, Drucker, Datenbank, Buchungssystem...

I Gen/Spez BeziehungenI Zusammenfassen mehrerer ahnlicher AnwendungsfalleI Abstraktion hier lediglich zur Gliederung und Ubersicht

I Include-BeziehungenI Dekomposition in mehrere AnwendungsfalleI Vorsicht vor Vorwegnehmen von Designdetails

I Extend-BeziehungenI Verzweigungen im KontrollflussI Extension point angeben

5.12.2005OOAD 5/15

logo

Anwendungsfalldiagramme

I AktorenI Abgrenzung der systeminternen und -externen ElementeI z.B.: Benutzer, Drucker, Datenbank, Buchungssystem...

I Gen/Spez BeziehungenI Zusammenfassen mehrerer ahnlicher AnwendungsfalleI Abstraktion hier lediglich zur Gliederung und Ubersicht

I Include-BeziehungenI Dekomposition in mehrere AnwendungsfalleI Vorsicht vor Vorwegnehmen von Designdetails

I Extend-BeziehungenI Verzweigungen im KontrollflussI Extension point angeben

5.12.2005OOAD 5/15

logo

Anwendungsfalldiagramme

I AktorenI Abgrenzung der systeminternen und -externen ElementeI z.B.: Benutzer, Drucker, Datenbank, Buchungssystem...

I Gen/Spez BeziehungenI Zusammenfassen mehrerer ahnlicher AnwendungsfalleI Abstraktion hier lediglich zur Gliederung und Ubersicht

I Include-BeziehungenI Dekomposition in mehrere AnwendungsfalleI Vorsicht vor Vorwegnehmen von Designdetails

I Extend-BeziehungenI Verzweigungen im KontrollflussI Extension point angeben

5.12.2005OOAD 5/15

logo

Klassendiagramme

5.12.2005OOAD 6/15

logo

Klassendiagramme

I Pakete packageI Grobe Gliederung in SubsystemeI Hierarchisierung zur Ubersicht

I Klassen & Schnittstellen class, interface

I Schnittstellen zurAbstraktion

I Vererbung

I Assoziationen,Kompositionen

I Abhangigkeiten

I Attribute attributeI Kapselung beachten: ZugriffsoperationenI Typisierung von Aufzahlungsattributen

I Operationen operationI Zunachst nur SignaturinformationI Spater: Vor/Nachbedingungen, Invarianten

5.12.2005OOAD 7/15

logo

Klassendiagramme

I Pakete packageI Grobe Gliederung in SubsystemeI Hierarchisierung zur Ubersicht

I Klassen & Schnittstellen class, interface

I Schnittstellen zurAbstraktion

I Vererbung

I Assoziationen,Kompositionen

I Abhangigkeiten

I Attribute attributeI Kapselung beachten: ZugriffsoperationenI Typisierung von Aufzahlungsattributen

I Operationen operationI Zunachst nur SignaturinformationI Spater: Vor/Nachbedingungen, Invarianten

5.12.2005OOAD 7/15

logo

Klassendiagramme

I Pakete packageI Grobe Gliederung in SubsystemeI Hierarchisierung zur Ubersicht

I Klassen & Schnittstellen class, interface

I Schnittstellen zurAbstraktion

I Vererbung

I Assoziationen,Kompositionen

I Abhangigkeiten

I Attribute attributeI Kapselung beachten: ZugriffsoperationenI Typisierung von Aufzahlungsattributen

I Operationen operationI Zunachst nur SignaturinformationI Spater: Vor/Nachbedingungen, Invarianten

5.12.2005OOAD 7/15

logo

Klassendiagramme

I Pakete packageI Grobe Gliederung in SubsystemeI Hierarchisierung zur Ubersicht

I Klassen & Schnittstellen class, interface

I Schnittstellen zurAbstraktion

I Vererbung

I Assoziationen,Kompositionen

I Abhangigkeiten

I Attribute attributeI Kapselung beachten: ZugriffsoperationenI Typisierung von Aufzahlungsattributen

I Operationen operationI Zunachst nur SignaturinformationI Spater: Vor/Nachbedingungen, Invarianten

5.12.2005OOAD 7/15

logo

Sequenzdiagramme

5.12.2005OOAD 8/15

logo

Sequenzdiagramme

I ObjekteI Verbindung zum Klassenmodell herstellenI Aktive vs. Passive Objekte

I AufrufeI Verbindung zum KlassenmodellI Normale Nachrichten, Erzeugung, Vernichtung

I AufrufsemantikI SynchronisationsmechanismenI Ruckgabewerte

I ErweiterungenI Blocke und KontrollstrukturmechanismenI Einschrankungen

5.12.2005OOAD 9/15

logo

Sequenzdiagramme

I ObjekteI Verbindung zum Klassenmodell herstellenI Aktive vs. Passive Objekte

I AufrufeI Verbindung zum KlassenmodellI Normale Nachrichten, Erzeugung, Vernichtung

I AufrufsemantikI SynchronisationsmechanismenI Ruckgabewerte

I ErweiterungenI Blocke und KontrollstrukturmechanismenI Einschrankungen

5.12.2005OOAD 9/15

logo

Sequenzdiagramme

I ObjekteI Verbindung zum Klassenmodell herstellenI Aktive vs. Passive Objekte

I AufrufeI Verbindung zum KlassenmodellI Normale Nachrichten, Erzeugung, Vernichtung

I AufrufsemantikI SynchronisationsmechanismenI Ruckgabewerte

I ErweiterungenI Blocke und KontrollstrukturmechanismenI Einschrankungen

5.12.2005OOAD 9/15

logo

Sequenzdiagramme

I ObjekteI Verbindung zum Klassenmodell herstellenI Aktive vs. Passive Objekte

I AufrufeI Verbindung zum KlassenmodellI Normale Nachrichten, Erzeugung, Vernichtung

I AufrufsemantikI SynchronisationsmechanismenI Ruckgabewerte

I ErweiterungenI Blocke und KontrollstrukturmechanismenI Einschrankungen

5.12.2005OOAD 9/15

logo

Zustandsdiagramme

5.12.2005OOAD 10/15

logo

Zustandsdiagramme

I ZustandeI Zuordnung zu KlasseI Lebenszyklus der Objekte dieser Klasse

I UnterzustandeI Simple States oftmals genugI Composite States zur Gliederung

I Entry & Exit in UnterzustandenI Expliziter Ein- und AusstiegspunktI Auch implizit moglich, aber unschon

I BedingungenI Guard Conditions an den TransitionenI Action Names an den Transitionen

5.12.2005OOAD 11/15

logo

Zustandsdiagramme

I ZustandeI Zuordnung zu KlasseI Lebenszyklus der Objekte dieser Klasse

I UnterzustandeI Simple States oftmals genugI Composite States zur Gliederung

I Entry & Exit in UnterzustandenI Expliziter Ein- und AusstiegspunktI Auch implizit moglich, aber unschon

I BedingungenI Guard Conditions an den TransitionenI Action Names an den Transitionen

5.12.2005OOAD 11/15

logo

Zustandsdiagramme

I ZustandeI Zuordnung zu KlasseI Lebenszyklus der Objekte dieser Klasse

I UnterzustandeI Simple States oftmals genugI Composite States zur Gliederung

I Entry & Exit in UnterzustandenI Expliziter Ein- und AusstiegspunktI Auch implizit moglich, aber unschon

I BedingungenI Guard Conditions an den TransitionenI Action Names an den Transitionen

5.12.2005OOAD 11/15

logo

Zustandsdiagramme

I ZustandeI Zuordnung zu KlasseI Lebenszyklus der Objekte dieser Klasse

I UnterzustandeI Simple States oftmals genugI Composite States zur Gliederung

I Entry & Exit in UnterzustandenI Expliziter Ein- und AusstiegspunktI Auch implizit moglich, aber unschon

I BedingungenI Guard Conditions an den TransitionenI Action Names an den Transitionen

5.12.2005OOAD 11/15

logo

Weitere Detaillierungsmoglichkeiten

I StereotypenI Verwendung von EntwurfsmusternI Erstellung fachspezifischer ModellklassenI Festlegung einer einheitlichen Semantik der Modellelemente

I EinschrankungenI OCL als wesentlicher Bestandteil der UMLI Navigation uber MetamodellI Logische Pradikate, die im Modell gelten mussenI Vorlagen fur spatere Uberprufungen im Programm

I UML 2.0 KonstrukteI Verknupfung der einzelnen dynamischen ModelleI Ausfuhrbare UML SpezifikationenI MDA-Ansatze

5.12.2005OOAD 12/15

logo

Weitere Detaillierungsmoglichkeiten

I StereotypenI Verwendung von EntwurfsmusternI Erstellung fachspezifischer ModellklassenI Festlegung einer einheitlichen Semantik der Modellelemente

I EinschrankungenI OCL als wesentlicher Bestandteil der UMLI Navigation uber MetamodellI Logische Pradikate, die im Modell gelten mussenI Vorlagen fur spatere Uberprufungen im Programm

I UML 2.0 KonstrukteI Verknupfung der einzelnen dynamischen ModelleI Ausfuhrbare UML SpezifikationenI MDA-Ansatze

5.12.2005OOAD 12/15

logo

Weitere Detaillierungsmoglichkeiten

I StereotypenI Verwendung von EntwurfsmusternI Erstellung fachspezifischer ModellklassenI Festlegung einer einheitlichen Semantik der Modellelemente

I EinschrankungenI OCL als wesentlicher Bestandteil der UMLI Navigation uber MetamodellI Logische Pradikate, die im Modell gelten mussenI Vorlagen fur spatere Uberprufungen im Programm

I UML 2.0 KonstrukteI Verknupfung der einzelnen dynamischen ModelleI Ausfuhrbare UML SpezifikationenI MDA-Ansatze

5.12.2005OOAD 12/15

logo

Grundsatzliches

I UbersichtI Weniger ist mehr!I Modellieren was relevant ist (das und nur das)

I GruppierungI Verschiedene Diagramme anlegenI Pakete anlegen

I ShortcutsI Nicht im default-Diagramm arbeitenI Loschen von Shortcuts

I Weitere MoglichkeitenI Stereotypen und Tagged ValuesI Quellcodegenerierung

5.12.2005OOAD 13/15

logo

Grundsatzliches

I UbersichtI Weniger ist mehr!I Modellieren was relevant ist (das und nur das)

I GruppierungI Verschiedene Diagramme anlegenI Pakete anlegen

I ShortcutsI Nicht im default-Diagramm arbeitenI Loschen von Shortcuts

I Weitere MoglichkeitenI Stereotypen und Tagged ValuesI Quellcodegenerierung

5.12.2005OOAD 13/15

logo

Grundsatzliches

I UbersichtI Weniger ist mehr!I Modellieren was relevant ist (das und nur das)

I GruppierungI Verschiedene Diagramme anlegenI Pakete anlegen

I ShortcutsI Nicht im default-Diagramm arbeitenI Loschen von Shortcuts

I Weitere MoglichkeitenI Stereotypen und Tagged ValuesI Quellcodegenerierung

5.12.2005OOAD 13/15

logo

Grundsatzliches

I UbersichtI Weniger ist mehr!I Modellieren was relevant ist (das und nur das)

I GruppierungI Verschiedene Diagramme anlegenI Pakete anlegen

I ShortcutsI Nicht im default-Diagramm arbeitenI Loschen von Shortcuts

I Weitere MoglichkeitenI Stereotypen und Tagged ValuesI Quellcodegenerierung

5.12.2005OOAD 13/15

logo

Das Tool

5.12.2005OOAD 14/15

logo

Das Tool

I Together Control CenterI In Java implementiert, also auf jeder Plattform verfugbarI Download unter:

http://www.togethersoft.com/download/login.jspRegistrierung erforderlich.

I Rational Rose

I Rational XDEI Gentleware Poseidon CE

I Ebenfalls großtenteils in Java implementiertI Download unter http://www.gentleware.com

5.12.2005OOAD 15/15