Title: Objektorientierte Softwareentwicklung
1Objektorientierte Softwareentwicklung
Xinxin Li Haibin Hu 28.11.03
2Einführung
- Die Historie der Objektorientierung
- UML (Unified Modeling Language)
3Objekt
Ein Objekt ist eine zur Ausführungszeit
vorhandene und für ihre Instanzvariablen Speicher
allokierende Instanz, die sich entsprechend dem
Protokoll ihrer Klasse verhält. Eine Klasse
beschreibt die Struktur und das Verhalten einer
Menge gleichartiger Objekte.
4Realität
besitzt
liest
Fahrrad
Mensch
Buch
Modell
5- Klassen Objekte Instanzen
- Klassen
- Eine Klasse ist die Definition der Attribute,
Operationen und der Semantik für eine Menge von
Objekten. - Objekte
- Ein Objekt ist eine konkret vorhandene und
agierende Einheit mit eigener Identität und
definierten Grenzen das Zustand und Verhalten
kapselt. - Instanzen
- Für den Hausgebrauch können Instanz, Objekt
und Exemplar synonym berachtet werden.
6Objekt-Klassen-Beziehung
Instance of
Klasse
Objekt
z.B
Xinxin
Instance of
Studenten
Haibin
Instance of
7- Attribute Methode
- Attribute
- die Struktur der Objekte ihre Bestandteile
und die in ihnen enthaltenen Informationen
bzw. Daten. - Methode (Operation)
- In der UML wird eine Methode als
Implementierung einer Operation definiert. Für
die Praxis ist es unkritisch, Methode und
Operation synonym zu verwenden.
8Klassenname
Kreis radius Mittelpunkt Point
(10,10) anzeigen() entfernen() setPosition(posPio
nt) setRadius(neuerRadius)
Attributname
Attribut-Typ
Methoden
Objektname
einKreisKreis radius 25 mittelpunkt (10,10)
Klassenname
Attributname
Attributwerte
9 Vererbung
Oberklasse
GeomFigur
Dreieck
Rechteck
Kreis
Unterklassen
10Die Geschichte der Programmiersprache ist eine
kontinuierliche Steigerung der Abstaktionen
- Machinensprache (Bitmuster,Machinenabhaengig)
- Assemblersprache (Zeichen statt Bitfolge)
Low-level Sprache
1. Formula (Fortran) Die erste
high-level Sprache Fortran, geeignet fuer
nummerische und wesenschaftliche Anwendungen 2.
Kontrolle (Cobol) fuer einfach Berechnung von
grossen menge Daten in Bereich Business 3.
Procedure (Pascal) 4. Objekteorientierung
(C,Java)
High-level Sprache
11LISP
Fortran
Algo
Cobol
1960
PL/1
Simula
Smalltalk-72
1970
Prolog
Smalltalk-74
Pascal
Smalltalk-76
C
Smalltalk-78
Loops
Smalltalk-80
1980
Ada
Objective C
C
CLOS
ObjectPascal
Eiffel
1990
Ada 95
ObjectCobol
Java
Nicht oo.
Objektorient.
12Eingenschaft der objektorientireten
Programmiersprache
- Strukturierung der Objekten
- Everything ist Objekt
- durch Vererbung strukturiert
- Nachrichtenaustauch
- Programm ist eine Menge von Objekten
- die durch Nachrichten untereinander
kommunizieren - Methode in einem Objekt kann von anderen
Objekten - durch Nachrichten aufgerufen werden
131. OOSE isr mehr als Programieren in einer
objektorientierten Sprache!
2. Objektorientierung wird als die Wichtigste
Konzepte durch die ganze Softwareentwicklung
- Verwenden der objektorietierten
modellierungskongzepte
- Abstrahierung von der realen Welt
- abgeschlossene,autonome Einheiten mit Strukturen
und Verhalten - -gtKlassen bzw. Objekte
- objektorientiert entwickelte Software ist
einfach zu aendern u. erweitern - -gtAbstrahierung u. Kapslung von Daten
14OOA Objektorientierte Analyse OOD
Objektorientierter Entwurf(Design) OOP
Objektorientierte Programmierung
--Boehm,1988
15Aufgabe der OOA
- Objekte und Klassen identifizieren
- Verantwortlichkeiten identifizieren und den
Klassen zuordnen - Zusammenarbeit zwischen den Klassen
identifizieren - Vererbungshierarchie definieren
16Aufgabe der OOD
- Festlegung der Architektur des Systems
- Ueberarbeiten des in OOA erzeugten
OOA-Klassenmodells, z.B - Hinzufuegen/Verschmelzen/Aendern von Klassen
- Aenderungen an der Vererbungsstrukturen
- Hinzufuegen/Entfernen von Beziehungen
17Aufgabe der OOP
- Umsetzung des in OOD erzeugten OOD-Modells in
einer - Objektorientierten Programmiersprache
- Klassentests und schrittweise Integration des
Systems
18Softwareentwicklung
Programmierung ? Softwareentwicklung
19Konventionelle Entwicklung(Wasserfallmodell)
Analyse und Spezifikation
Test und Integration
Entwurf
Implementierung
- Sequentiell,in einer Richtung
- Schwerigkeiten fuer Iteration und Veraenderung
- Wiederverwendbarkeit nicht unterstuetzt
20objektorientierte Entwicklung
- in jeder Iteration werden die Phasen des
Wasserfallmodells durchlaufen
- Wiederverwendungsproblem geloest
21Analyse und Design mit UML
22Was is UML?
- Unified Modeling Language ist eine Sprache zur
Spezifikation, Visualisierung, - Konstruktion und Dokumentation von Modellen
für Softwaresysteme, - Geschäftsmodelle und andere Nicht-Softwaresyste
me - UML ist eine Modellierungssprache,keine
Programmiersprache - seit 1997 wird die UML in Version 1.1 als
Standard angesehen - und sie liegt bei der Object Management
Group(OMG) zur Standardisierung vor - die neueste Version ist UML 1.3
23Wer steht hinter der UML?
- Die UML wurde entwickelt von Grady Boch, Ivar
Jacobsen und Jim Rumbaugh - von Rational Rose Software.
- Sie haben die besten Ideen der
objektorientierten Entwicklungsmethoden
kombiniert. - und daraus die UML geschaft.
- Viele Computerunternehmen(Microsoft,Oracle,..)
wirkten aktiv an der Entwicklung mit - Und unterstuezen die UML.
24Was beinhaltet die UML?
- Die Elemente der UML werden nach Diagrammtypen
gegliedert - Anwendungsfalldiagramm
- Klassendiagramm
- Aktivitätsdiagramm
- Kollaborationsdiagramm
- Sequenzdiagramm
- Zustandsdiagramm
- Komponentendiagramm
- Einsatzdiagramm
25Anwendungsfalldiagramm
Systemgrenze
26Klassendiagramm(1)
27Klassendiagramm(2)
Oberklasse
Unterklasse1
Unterklasse2
Unterklasse3
28Sequenzdiagramm
objekt1
new()
objekt2
nachricht()
antwort
delete()