Wenn alles so einfach wäre

Slides:



Advertisements
Ähnliche Präsentationen
Dauermagnete Bei magnetischen Materialien unterscheidet man Eisenkerne bzw. Weicheisenstücke und Dauermagnete bzw. Hart-magnetische Materialien. Dauermagnete.
Advertisements

TAGUNG DER DEUTSCH-LUSITANISCHEN JURISTENVEREINIGUNG O processo penal português Panorâmica introdutória Der portugiesische Strafprozess ein einführender.
Ach wie gut, daß niemand weiß Der Schutz von Wissen
Herzlich Willkommen bei SIMPLE STABLE BULDING
Adjektivendungen Tabellen und Übungen.
ZWILLING Neuheiten 2008.
Das Hexenkochbuch Nicht Rattenschwänze, Spinnenbein
 Präsentation transkript:

Wenn alles so einfach wäre Einfach OO Wenn alles so einfach wäre

Wie gehen wir vor? Das Konzept Die Grundlagen Das Vorgehensmodell Einfach OO Wie gehen wir vor? Das Konzept Die Grundlagen Das Vorgehensmodell

Das Konzept Was heisst OO? Was will OO? Was war vor OO? Was kann OO? Einfach OO Was heisst OO? Was will OO? Was war vor OO? Was kann OO? Wo ist OO stark? Wo ist OO schwach?

Was heisst OO? ObjektOrientierte Softwareentwicklung Objekte (Dinge) Einfach OO / Konzept Was heisst OO? ObjektOrientierte Softwareentwicklung Objekte (Dinge) Auto besteht aus: Räder Fahrwerk Karosserie

Was will OO? Die Realität abbilden mit Hilfe von Objekten Einfach OO / Konzept Was will OO? Die Realität abbilden mit Hilfe von Objekten

Einfach OO / Konzept Was kann OO? Das Verhalten, den Zustand und die Identität eines Objektes der realen Welt nachbilden. Identität Zustand Verhalten Wecker 1 Wecker 2 Zeit 10:35 Zeit 14:45 Zeit anzeigen alarmieren Mich kennt man Ich habe Werte Ich habe Intelligenz und kann etwas

Wo ist OO stark? Kapselung (Information Hidding) Einfach OO / Konzept Wo ist OO stark? Kapselung (Information Hidding) Verteilung von Intelligenz (Delegation) Komponentenbildung (Services) Auftrag Privater Bereich Ergebnis Austauschbare Komponente Normierte Schnittstelle Öffentlicher Bereich

Wo ist OO schwach? Performance Einfach OO / Konzept Einbussen durch starke Nutzung der Delegation 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 Auftrag Auftrag Ergebnis Ergebnis

Die Grundlagen Was ist ein Objekt? Was ist eine Klasse? Einfach OO / Grundlagen Die Grundlagen Was ist ein Objekt? Was ist eine Klasse? Was sind Beziehungen?

Was ist ein Objekt? Abbild aus der realen oder gedachten Welt Einfach OO / Grundlagen Was ist ein Objekt? Abbild aus der realen oder gedachten Welt Identität Zustand Verhalten Ferrari - farbe = rot - kennzeichen = SG 23 44 einWecker - Uhrzeit = 10:00 - weckzeit = 6:00

Was ist eine Klasse? Schablone eines Objektes Identität Zustand Einfach OO / Grundlagen Was ist eine Klasse? Schablone eines Objektes Identität Zustand Verhalten Auto - farbe: Color - kennzeichen: String + beschleunigen() + bremsen() Wecker - Uhrzeit: Time - weckzeit: Time + setzeWeckzeit(eineZeit: Time)

Was ist eine Klasse? Schablone eines Objektes bestehend aus: OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Klasse? KlassenName attribut1 attribut2 attribut3 ... operation1() operation2() ... Schablone eines Objektes bestehend aus: Attribute - Ausprägung (Zustand) Operationen - Verhalten

attribut1: typ1 attribut2: typ2 attribut3: typ3 ... OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Klasse? Attribute - name - type Operationen - name - parameter - name - type -return Value - type KlassenName attribut1: typ1 attribut2: typ2 attribut3: typ3 ... operation1(parName: partyp) : retval operation2(parName: partyp) : retval ...

Was ist eine Interface-Klasse? InterfaceName „Interface“ OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Interface-Klasse? Abstrakte Klasse ohne Implementierung Protokolldefinition - Operationen -ohne -Implementierung Keine Attribute InterfaceName „Interface“ attribut1 attribut2 attribut3 ... operation1 operation2 ...

Was sind Klassen-Beziehungen? OO-Software-Entwicklung / Theorie / Class-Diagram Was sind Klassen-Beziehungen? Fahrzeug Auto Fahrrad Beziehungen zwischen Klassen Vererbung Aggregation Komposition Person Uhr Person Adresse

Was ist eine Vererbungs-Beziehungen? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Vererbungs-Beziehungen? Fahrzeug Auto Fahrrad Beschreibung - Spezialisierung Prüffrage - iskindof (Ist eine Art von)

Was ist eine Mehrfach-Vererbung? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Mehrfach-Vererbung? Amphibien fahrzeug Boot Auto Auto Drawable „Interface“ Fahrzeug Beschreibung - Spezialisierung Prüffrage - iskindof (Ist eine Art von)

Was ist eine Aggregation? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Aggregation? Person Uhr Beschreibung - Unidirektionale (einseitige) Besitzangabe Prüffrage - has-a (Hat ein)

Was ist eine Komposition? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Komposition? Person Adresse Beschreibung - Spezialfall der Aggregation -> Existenz-Abhängigkeit Prüffrage - part-of (Teil von)

Was ist der Unterschied? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist der Unterschied? Person Adresse Komposition: Adresse kann ohne Person nicht existieren! Person Uhr Aggregation: Uhr kann ohne Person existieren!

Was ist eine Kardinalität? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist eine Kardinalität? Spezifikation einer Klassenbeziehung Mengenangabe der Beziehung * -Null oder mehr 1 -exakt eins 0..1 -Null oder eins Person * Uhr 1 Person Geburtstag 0..1 Person Ehepartner

Was ist ein Klassendiagramm? OO-Software-Entwicklung / Theorie / Class-Diagram Was ist ein Klassendiagramm? Auto Drawable „Interface“ Fahrzeug Uhr Person * Statische Darstellung Beziehungen und Abhängigkeiten zwischen den Klassen

Was ist ein Vorgehensmodell? OO-Software-Entwicklung / Theorie / Vorgehensmodell Was ist ein Vorgehensmodell? Vorgehensmodell Phasen Kernprozess

OO-Software-Entwicklung / Theorie / Vorgehensmodell Prozess Ablauf - Modellierung - Anforderungen - Analyse & Design - Implementierung - Test - Einsatz Prozess Unterstützung - Konfigurationsmanagement - Projektmanagement - Entwicklungsumgebung

Alle Phasen erstrecken sich über den gesamten Workflow OO-Software-Entwicklung / Theorie / Vorgehensmodell Was sind die Phasen? Alle Phasen erstrecken sich über den gesamten Workflow

Was sind die Kernprozesse? OO-Software-Entwicklung / Theorie / Vorgehensmodell Was sind die Kernprozesse? Systemabgrenzung Anforderungen Systemdefinition Implementierung Testen Einsatz Konfigurationsmanagement Projektmanagement Entwicklungsumgebung

Vorstudie (Inception) OO-Software-Entwicklung / Theorie / Vorgehensmodell Vorstudie (Inception) Ziele - Systemabgrenzung - Kernanforderung - Projektplan (Meilensteine) - Projekt-Kosten / -Risiken Lieferobjekte - 10 - 20 % der Use Cases - Fachglossar - Prototyp

Hauptstudie (Elaboration) OO-Software-Entwicklung / Theorie / Vorgehensmodell Hauptstudie (Elaboration) Ziele - alle Anforderungen - Priorität - Systemarchitektur - Iterationsplan Lieferobjekte - 100 % der Use Cases - Klassendiagramme - techn. Prototyp

Systembau (Construction) OO-Software-Entwicklung / Theorie / Vorgehensmodell Systembau (Construction) Ziele - Lauffähiges Teilsystem Lieferobjekte - Software - Dokumentation

Einführung (Transition) OO-Software-Entwicklung / Theorie / Vorgehensmodell Einführung (Transition) Ziele - Einführung der SW Lieferobjekte - Schulungsunterlagen

OO-Software-Entwicklung / Theorie / UseCases Was ist ein Use Case? Buch an Kunde ausleihen Systemübersicht - Systemanforderungen - Was sind die Anforderungen? - System Benutzer - Wer sind die Benutzer? - Abhängigkeiten - Wer löst was auf? Buch zurücknehmen Bibliothekar

Was ist ein Actor? Systembenutzer Rolle OO-Software-Entwicklung / Theorie / UseCases Was ist ein Actor? Systembenutzer Rolle Beispiele - Bibliotheksverwaltung - Bibliothkar - Offertesystem - Agent Actor Name

Was ist ein Use-Case? Funktionelle Anforderung 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