33
1 Einfach OO Wenn alles so einfach wäre

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

Embed Size (px)

Citation preview

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

1

Einfach OO

Wenn alles so einfach wäre

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

2

Wie gehen wir vor?

• Das Konzept• Die Grundlagen• Das Vorgehensmodell

Einfach OO

Page 3: 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

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

4

Was heisst OO?• ObjektOrientierte Softwareentwicklung

Einfach OO / Konzept

Objekte (Dinge)

Auto besteht aus:

Räder

Fahrwerk

Karosserie

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

5

Was will OO?Einfach OO / Konzept

•Die Realität abbilden mit Hilfe von Objekten

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

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

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

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)

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

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

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

9

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

Die Grundlagen

Einfach OO / Grundlagen

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

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

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

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)

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

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()

...

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

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

...

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

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

...

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

15

Was sind Klassen-Beziehungen?

OO-Software-Entwicklung / Theorie / Class-Diagram

UhrPerson

AdressePerson

Fahrzeug

AutoFahrrad

• Beziehungen zwischen Klassen

• Vererbung

• Aggregation

• Komposition

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

16

Was ist eine Vererbungs-Beziehungen?

OO-Software-Entwicklung / Theorie / Class-Diagram

Fahrzeug

AutoFahrrad

• Beschreibung- Spezialisierung

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

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

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

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

18

Was ist eine Aggregation?

OO-Software-Entwicklung / Theorie / Class-Diagram

• Beschreibung- Unidirektionale (einseitige) Besitzangabe

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

Person Uhr

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

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

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

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!

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

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

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

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

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

23

Was ist ein Vorgehensmodell?

OO-Software-Entwicklung / Theorie / Vorgehensmodell

• Vorgehensmodell

• Phasen

• Kernprozess

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

24

OO-Software-Entwicklung / Theorie / Vorgehensmodell

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

• Prozess Unterstützung- Konfigurationsmanagement- Projektmanagement- Entwicklungsumgebung

Vorgehensmodell

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

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

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

26

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Was sind die Kernprozesse?

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

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

27

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Vorstudie (Inception)

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

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

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

28

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Hauptstudie (Elaboration)• Ziele

- alle Anforderungen- Priorität- Systemarchitektur- Iterationsplan

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

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

29

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Systembau (Construction)

• Ziele- Lauffähiges Teilsystem

• Lieferobjekte- Software- Dokumentation

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

30

OO-Software-Entwicklung / Theorie / Vorgehensmodell

Einführung (Transition)

• Ziele- Einführung der SW

• Lieferobjekte- Schulungsunterlagen

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

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

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

32

OO-Software-Entwicklung / Theorie / UseCases

Was ist ein Actor?

Actor Name

• Systembenutzer

• Rolle

• Beispiele- Bibliotheksverwaltung

- Bibliothkar

- Offertesystem- Agent

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

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