Post on 06-Feb-2018
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