Upload
sonje-raithel
View
107
Download
0
Embed Size (px)
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