1 Einfach OO Wenn alles so einfach wäre. 2 Wie gehen wir vor? Das Konzept Die Grundlagen Das...

Preview:

Citation preview

1

Einfach OO

Wenn alles so einfach wäre

2

Wie gehen wir vor?

• Das Konzept• Die Grundlagen• Das Vorgehensmodell

Einfach OO

3

Das Konzept

• Was heisst OO?• Was will OO?• Was war vor OO?• Was kann OO?• Wo ist OO stark?• Wo ist OO schwach?

Einfach OO

4

Was heisst OO?• ObjektOrientierte Softwareentwicklung

Einfach OO / Konzept

Objekte (Dinge)

Auto besteht aus:

Räder

Fahrwerk

Karosserie

5

Was will OO?Einfach OO / Konzept

•Die Realität abbilden mit Hilfe von Objekten

6

Was kann OO?

Einfach OO / Konzept

Identität

Wecker 1 Wecker 2

Zustand Verhalten

Das Verhalten, den Zustand und die Identität eines Objektes der realen Welt nachbilden.

Mich kennt man

Zeit 10:35 Zeit 14:45

Ich habe Werte

Zeit anzeigen alarmieren

Ich habe Intelligenz und kann etwas

7

Wo ist OO stark?

Privater Bereich

Öffentlicher Bereich

Auftrag

Ergebnis

Austauschbare Komponente

Normierte Schnittstelle

Einfach OO / Konzept

Kapselung (Information Hidding)

Verteilung von Intelligenz (Delegation)

Komponentenbildung (Services)

8

Wo ist OO schwach?Einfach OO / Konzept

•Performance•Einbussen durch starke Nutzung der Delegation

Auftrag

Ergebnis

Auftrag

Ergebnis

Ich bin nicht zuständig, mach du und liefere mir

Ich bin nicht zuständig, mach du und liefere mir

Ich bin zuständig, und liefere dir

9

• Was ist ein Objekt?• Was ist eine Klasse?• Was sind Beziehungen?

Die Grundlagen

Einfach OO / Grundlagen

10

• Abbild aus der realen oder gedachten Welt– Identität

– Zustand

– Verhalten

Was ist ein Objekt?Einfach OO / Grundlagen

Ferrari

- farbe = rot- kennzeichen = SG 23 44

einWecker

- Uhrzeit = 10:00- weckzeit = 6:00

11

• Schablone eines Objektes– Identität

– Zustand

– Verhalten

Was ist eine Klasse?Einfach OO / Grundlagen

Auto

- farbe: Color- kennzeichen: String

+ beschleunigen()+ bremsen()

Wecker

- Uhrzeit: Time- weckzeit: Time

+ setzeWeckzeit(eineZeit: Time)

12

• Schablone eines Objektes bestehend aus:– Attribute

- Ausprägung (Zustand)

– Operationen- Verhalten

Was ist eine Klasse?

OO-Software-Entwicklung / Theorie / Class-Diagram

KlassenName

attribut1attribut2attribut3

...

operation1()operation2()

...

13

• Attribute- name

- type

• Operationen- name

- parameter

- name

- type

-return Value

- type

Was ist eine Klasse?OO-Software-Entwicklung / Theorie / Class-Diagram

KlassenName

attribut1: typ1attribut2: typ2attribut3: typ3

...

operation1(parName: partyp) : retvaloperation2(parName: partyp) : retval

...

14

• Abstrakte Klasse ohne Implementierung

• Protokolldefinition- Operationen

-ohne -Implementierung

• Keine Attribute

Was ist eine Interface-Klasse?

OO-Software-Entwicklung / Theorie / Class-Diagram

InterfaceName„Interface“

attribut1attribut2attribut3

...

operation1operation2

...

15

Was sind Klassen-Beziehungen?

OO-Software-Entwicklung / Theorie / Class-Diagram

UhrPerson

AdressePerson

Fahrzeug

AutoFahrrad

• Beziehungen zwischen Klassen

• Vererbung

• Aggregation

• Komposition

16

Was ist eine Vererbungs-Beziehungen?

OO-Software-Entwicklung / Theorie / Class-Diagram

Fahrzeug

AutoFahrrad

• Beschreibung- Spezialisierung

• Prüffrage- iskindof (Ist eine Art von)

17

Was ist eine Mehrfach-Vererbung?OO-Software-Entwicklung / Theorie / Class-Diagram

Amphibienfahrzeug

BootAuto

• Beschreibung- Spezialisierung

• Prüffrage- iskindof (Ist eine Art von)

Auto

Drawable„Interface“Fahrzeug

18

Was ist eine Aggregation?

OO-Software-Entwicklung / Theorie / Class-Diagram

• Beschreibung- Unidirektionale (einseitige) Besitzangabe

• Prüffrage- has-a (Hat ein)

Person Uhr

19

Was ist eine Komposition?

OO-Software-Entwicklung / Theorie / Class-Diagram

• Beschreibung- Spezialfall der Aggregation -> Existenz-Abhängigkeit

• Prüffrage- part-of (Teil von)

Person Adresse

20

Was ist der Unterschied?

OO-Software-Entwicklung / Theorie / Class-Diagram

Person Adresse

Person Uhr

Komposition: Adresse kann ohne Person nicht existieren!

Aggregation: Uhr kann ohne Person existieren!

21

UhrPerson

GeburtstagPerson

EhepartnerPerson

Was ist eine Kardinalität?

OO-Software-Entwicklung / Theorie / Class-Diagram

• Spezifikation einer Klassenbeziehung

• Mengenangabe der Beziehung

•*-Null oder mehr

•1-exakt eins

•0..1-Null oder eins

*

1

0..1

22

Auto

Drawable„Interface“Fahrzeug

UhrPerson **

Was ist ein Klassendiagramm?

OO-Software-Entwicklung / Theorie / Class-Diagram

• Statische Darstellung• Beziehungen und Abhängigkeiten zwischen den Klassen

23

Was ist ein Vorgehensmodell?

OO-Software-Entwicklung / Theorie / Vorgehensmodell

• Vorgehensmodell

• Phasen

• Kernprozess

24

OO-Software-Entwicklung / Theorie / Vorgehensmodell

• Prozess Ablauf- Modellierung- Anforderungen- Analyse & Design- Implementierung- Test- Einsatz

• Prozess Unterstützung- Konfigurationsmanagement- Projektmanagement- Entwicklungsumgebung

Vorgehensmodell

25

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Was sind die Phasen?

Phasen Inception Elaboration Costruction Transtionübersetzt Einführung Ausarbeitung Konstruktion Übergang

entspricht Vorstudie Hauptstudie Systembau Einführung

Alle Phasen erstrecken sich über den gesamten Workflow

26

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Was sind die Kernprozesse?

• Systemabgrenzung• Anforderungen• Systemdefinition• Implementierung• Testen• Einsatz• Konfigurationsmanagement• Projektmanagement• Entwicklungsumgebung

27

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Vorstudie (Inception)

• Ziele- Systemabgrenzung- Kernanforderung- Projektplan (Meilensteine)- Projekt-Kosten / -Risiken

• Lieferobjekte- 10 - 20 % der Use Cases- Fachglossar- Prototyp

28

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Hauptstudie (Elaboration)• Ziele

- alle Anforderungen- Priorität- Systemarchitektur- Iterationsplan

• Lieferobjekte- 100 % der Use Cases- Klassendiagramme- techn. Prototyp

29

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Systembau (Construction)

• Ziele- Lauffähiges Teilsystem

• Lieferobjekte- Software- Dokumentation

30

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Einführung (Transition)

• Ziele- Einführung der SW

• Lieferobjekte- Schulungsunterlagen

31

OO-Software-Entwicklung / Theorie / UseCases

Was ist ein Use Case?

• Systemübersicht- Systemanforderungen

- Was sind die Anforderungen?

- System Benutzer- Wer sind die Benutzer?

- Abhängigkeiten- Wer löst was auf?

Bibliothekar

Buch an Kunde ausleihen

Buch zurücknehmen

32

OO-Software-Entwicklung / Theorie / UseCases

Was ist ein Actor?

Actor Name

• Systembenutzer

• Rolle

• Beispiele- Bibliotheksverwaltung

- Bibliothkar

- Offertesystem- Agent

33

OO-Software-Entwicklung / Theorie / UseCases

Was ist ein Use-Case?

• Funktionelle Anforderung

• Wird vom Actor ausgelöst und liefert ihm ein sinnvolles Ergebnis

• Beispiele- Bibliotheksverwaltung

- Buch an Kunde ausleihen - Offertesystem

- Offerte erstellen

Use-Case-Name

Recommended