http://www.net-tex.de

Objekt Orientierte Entwicklung


Objekt Orientiert Entwicklung ist eine Art der Problemlösung

Definitionen:
Objekt - Abstraktion eines Gegenstandes und dessen Implementierung
- speichert Eigenschaften des Gegenstandes in Attributen
- ist eine Instanz einer Klasse
Klasse - eine Menge von nahezu gleichen Objekten
- konkrete Klasse : besitzt Objekte
- abstrakte Klasse : besitzt keine Objekte
Attribute - beinhalten die Daten (Zustände) einer Klasse (Variable)
Methoden - Funktionen bzw. Prozeduren
- legen Reaktion der Objekte auf Nachrichten fest
Nachrichten - Mitteilung an Objekte um Funktionen/Prozeduren zu starten
- unterschiedliche Reaktionen möglich (sog. Polymorphing)
Vererbung - Unterklasse übernimmt Attribute von Überklasse(n)
- eine Überklasse : einfache Vererbung
- mehrerer Überklassen : mehrfache Vererbung
z.B. abstrakte Klasse:"Auto" - konkrete UK'en: "LKW"; "Limousine"; "Cabrio" ...
OO Analyse Was ist zu tun???
OO Design Wie ist es zu tun??
OO Programmierung Umsetzung in Algorithmen und Quelltext
Nach der Begriffsklärung wenden wir uns nun dem Entwicklungsfluß zu.
Darstellung des Problems in verschiedenen Zyklen:
Realität OOA OOD OOP
Kunde
sucht Auto aus
und bezahlt
Kunde
Auto
Rechnung
Kunde - Datenbank
Auto - Liste
Rechnung
Klasse "Kunde" mit Klassenbehandlung
Klasse "Autoliste" mit Objekten "Auto-X"
Klasse "Rechnung"

Entwurfsmehoden:
Wasserfall
- OOA
- OOD
- OOP
alles sequentiell (der Reihe nach)
- uralte Methode
Inkrementell
- ein bißchen OOA
- ein bißchen OOD
- ein bißchen OOP
und von vorn
Aufsplittung des Gesamtproblems
für kleine Projekte
schwer zu managen bei Großprojekten

Spirale

- OOA, Prototyping, Risikobeurteilung
- OOD, Prototyping, Risikobeurteilung
- OOP, Prototyping, Risikobeurteilung
sequentiell dann Test mit Fehlersuche und -erkennung mit Prototyping
Stand der Entwicklung abschätzbar
Fehler frühzeitig ausbesserbar

Modellschichten
Sie wurden entworfen, um die Übersichtlichkeit der Pläne zu fördern und fassen
mehrere Daten zusammen.
Klasse-Objekt - enthält Klassen und Objekte
Subjekt - unterteilt komplexe Modelle in Teilaspekte
Struktur - "Generalisierung/Spezialisierung" bzw. "Whole/parts"
- Klassen und Objekte hierarchisch gegliedert
Attribut - Attribute der Klassen/Objekte
Service - Methoden ("Services") die in vorhandenen Klassen definiert sind
Reihenfolge der OOE nach Coad und Yourdon

1.) Klassen und Objekte finden
- auch als "zentraler Punkt" bekannt, da sehr wichtig - genaues Studium des Anwendungsgebiet und der Verfahren (Heuristiken) notwendig
Bsp. Notation am "Autohaus"

2.) Strukturen identifizieren
- In der Strukturschicht existieren 2 Strukturen:
-- Gen / Spec (Generalisierung / Spezialisierung, Darstellung der Vererbung)
-- Whole / Part (Gesamtheit und Teile, Verhältnisse der K/O zueinander)
Bsp. Gen / Spec

3.) Subjekte finden
Zusammenfassung von Klassen und Objekte in Teilbereiche ("Subjekte") Darstellung:
minimiert verkleinert voll

4.) Attribute bestimmen
- Einfügen der Attribute in den mittleren Klassenabschnitt
- Enthält Instanzverbindungen (Beziehungen zwischen Objekten) die ungebunden sind
und obere/untere Grenze haben können.

5.) Services bestimmen
- Services sind Methoden
- Verhalten des Objekts beim Eintreffen einer Nachricht
- Angabe in unterster Schicht
- erzeuge; verbinde; ändere; lösche müssen nicht extra angegeben werden
- Nachrichtenverbindungen können auch angegeben werden (heller Pfeil)



Object Modeling Technique
Die Object Modeling Technique(OMT) nach Rumbaugh, Eddy, Premerlani, Korensen und
Blaha erweitertert bereits erfolgreiche System um modernere OO Teile.

Die OMT verwendet 3 Modelle:
- Objektmodell : WAS wird implementiert
- Dynamikmodell : WANN geschieht etwas
- Funktionsmodell : WIE geschieht etwas

Diese Modelle werden für Analyse, Design und Implementierung gebraucht, daher
exisitieren die Modelldiagramme in 2 Dimensionen: in der x-Achse wird das Modell
des gesamten Systems dargestellt und in der y-Achse die Phase der Entwicklung
(Analyse, Design und Implementierung)

Objektmodell
Das Objektmodell besteht aus Klassen und Instanzendiagrammen.
Klassen werden in einem dreigeteilten Rechtecke dargestellt. Oben wird zentriert
und fett der Name der Klasse angegeben, in der Mitte die Attribute, wobei bei
Bedarf ein Datentyp oder Start/Init Wert mit angegeben werden kann. Im unteren
Drittel schließlich, werden die Methoden und evtl. Parameter und Returnwerte
angegeben.
Symbole

Klassen werden in Rechtecken darerden die Methoden und evtl. Parameter und Returnwerte
angegeben.
Symbole

Klassen werden in Rechtecken dargestellten, Instanzen in abgerundeten Rechtecken.
Vererbung
Vererbungen werden durch eine Linie mit Dreieck in Richtung Elternklasse dargestellt.

Verbundene Attribute
Es gibt auch Fälle, in denen ein Attribut nicht nur zu einer Klasse gehört. Diese
Attribute heißen "Link-Attribu-Attribut" (Verbundene Attribute). Beispielsweise läßt
sich "Rechnungsbetrag" an "Kunde" und "Lieferer" linken. Dargestellt wird dies
mittels einer halben Ellipse, an der das Attribut und die selber an der Verbindung
zwischen den Klassen hängt.

Dreifachbeziehung
Dreifachbeziehungen lassen sich darstellen, in dem sich die Beziehungen in einer
Raute treffen und verbinden. Die Beziehung kann auch benannt werden, indem einfach
der Name über die Raute geschrieben wird.

Whole / Parts
Die Whole / Parts Struktur wird per Linie dargestellt, an deren Ende eine Raute
gen Whole zeigt.
Mehrfachbeziehungen werden wieder per Bereichsangabe am Part gekennzeichnet.


Zustandsdiagramm
in einem ZD werden, ähnlich dem Programmablauf Plan (PAP), die Zustände einer
Klasse und die Ereignisse dargestellt. Man erhält so die Übersicht, was mit
dieser Klasse passieren kann und kann so zum Beispiel Fehler oder Endlosschleifen
frühzeitig erkennen. im folgenden,sehr kleinen, Dia wird in der Klasse "Rechnung"
eine Kunden ID gesucht. Diese kann gefunden oder nicht gefunden werden, oder
einen Fehler auslösen (z.B. falsches Format).


Dynamikmodell
Im Dynamikmodell wird der zeitliche Zusammenhang dargestellt, also wann sich
etwas ereignet.
Modellhaft geschieht dies im Ereignisdiagramm, welches als punktierte, vertikale
Linie K&Os enthält, und als Pfeile die Ereignisse.


Funktionsmodell
Im Funktionsmodell wird anhand der Veränderung der Daten dargestellt wie etwas geschieht.
gezeichnet werde sie folgendermaßen:
Algorithmen, verändern Daten passive Os, speichern Daten Methoden
Die Übergabe von Daten wird als Pfeil, das Ergebnis des Datenflusses wird als
Pfeil mit größerer weißer Spitze dargestellt.

Datei mit Bildern
downloaden


$Id: ooe.html,v 1.5 2006/04/30 21:30:26 stefan Exp $