28
WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

Embed Size (px)

Citation preview

Page 1: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu1

Objektorientierte Softwareentwicklung

Xinxin Li Haibin Hu

28.11.03

Page 2: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu2

Einführung

Die Historie der Objektorientierung

UML (Unified Modeling Language)

Page 3: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu3

Objekt

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.

Page 4: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu4

Fahrrad Mensch Buch

Realität

Modellbesitzt liest

Page 5: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu5

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.

Page 6: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu6

Objekt-Klassen-Beziehung:

Klasse Objekt

z.B

Instance of

Studenten

XinxinInstance of

HaibinInstance of

Page 7: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu7

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.

Page 8: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu8

Kreisradius

Mittelpunkt: Point = (10,10)anzeigen()entfernen()

setPosition(pos:Piont)setRadius(neuerRadius)

einKreis:Kreisradius = 25

mittelpunkt = (10,10)

Klassenname

Attributname

Attribut-Typ

Methoden

Objektname Klassenname

Attributname Attributwerte

Page 9: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu9

GeomFigur

Dreieck RechteckKreis

Oberklasse

Unterklassen

Vererbung

Page 10: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu10

Die Geschichte der Programmiersprache ist eine kontinuierliche Steigerung der Abstaktionen:

Machinensprache (Bitmuster,Machinenabhaengig…) Assemblersprache (Zeichen statt Bitfolge…)

Low-level Sprache

High-level Sprache

1. Formula (Fortran) Die erste high-level Sprache Fortran, geeignet fuer nummerische

und wesenschaftliche Anwendungen2. Kontrolle (Cobol)

fuer einfach Berechnung von grossen menge Daten in Bereich Business3. Procedure (Pascal)4. Objekteorientierung (C++,Java…)

Page 11: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu11

Algo

Smalltalk-72

Smalltalk-74

Smalltalk-76

Smalltalk-78

Smalltalk-80

Fortran

PL/1Cobol

Pascal

C

Simula

LISP

Prolog

Ada

ObjectPascal

Objective C

C++

Eiffel

Java

CLOS

Loops

Ada 95 ObjectCobol

1960

1970

1980

1990

Nicht oo. Objektorient.

Page 12: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu12

Eingenschaft 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

Page 13: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu13

1. 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

->Klassen bzw. Objekte objektorientiert entwickelte Software ist einfach zu aendern u. erweitern

->Abstrahierung u. Kapslung von Daten

Page 14: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu14

OOA = “Objektorientierte Analyse”OOD = “Objektorientierter Entwurf(Design)”OOP = “Objektorientierte Programmierung”

--Boehm,1988

Page 15: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu15

Aufgabe der OOA

Objekte und Klassen identifizieren Verantwortlichkeiten identifizieren und den Klassen zuordnen Zusammenarbeit zwischen den Klassen identifizieren Vererbungshierarchie definieren

Page 16: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu16

Aufgabe 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

Page 17: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu17

Aufgabe der OOP

Umsetzung des in OOD erzeugten OOD-Modells in einer Objektorientierten Programmiersprache Klassentests und schrittweise Integration des Systems

Page 18: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu18

Softwareentwicklung

Programmierung ≠ Softwareentwicklung

Page 19: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu19

Konventionelle Entwicklung(Wasserfallmodell)

Analyse undSpezifikation Entwurf Implementierung

Test undIntegration

Sequentiell,in einer Richtung

Schwerigkeiten fuer Iteration und Veraenderung

Wiederverwendbarkeit nicht unterstuetzt

Page 20: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu20

objektorientierte Entwicklung

iterative Entwicklung

in jeder Iteration werden die Phasen des Wasserfallmodells durchlaufen

Wiederverwendungsproblem geloest

Page 21: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu21

Analyse und Design mit UML

Page 22: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu22

Was is UML?

Unified Modeling Language ist eine Sprache zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen für Softwaresysteme, Geschäftsmodelle und andere Nicht-Softwaresysteme 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

Page 23: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu23

Wer 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.

Page 24: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu24

Was beinhaltet die UML?

Die Elemente der UML werden nach Diagrammtypen gegliedert:

Anwendungsfalldiagramm Klassendiagramm Aktivitätsdiagramm Kollaborationsdiagramm Sequenzdiagramm Zustandsdiagramm Komponentendiagramm Einsatzdiagramm

Page 25: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu25

Anwendungsfalldiagramm

Systemgrenze

Page 26: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu26

Klassendiagramm(1)

Page 27: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu27

Klassendiagramm(2)

Oberklasse

Unterklasse1 Unterklasse2 Unterklasse3

Page 28: WiSe 03/04 Projekt ESPRESSO OOSE XinXin Li Haibin Hu 1 Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

WiSe 03/04Projekt ESPRESSOOOS

EOOSE

XinXin LiHaibin Hu28

Sequenzdiagramm

objekt1

objekt2new()

nachricht()

antwort

delete()