Objektorientierte Modellierung

Download Report

Transcript Objektorientierte Modellierung

Didaktik der Informatik
Sommersemester 2009
Referent: Martin Wendel
Objektorientierte Modellierung
Grundlagen der Objektorientierung
 Einführung in UML
 Lehrplan
 Unterrichtsreihe
 Stundenentwurf

2
Grundlagen der Oo.

OO entstand in 1960ern
 Simula-67
 Smalltalk
 Alan Kay
Quelle: http://en.wikipedia.org/wiki/Alan_Kay

Komplexität reduzieren

Objekte der realen Welt abbilden
3
Grundlagen der Oo.

Daten aus Problembereich gruppieren
 Eigenschaften
○ Attribute
 Operatoren
○ Methoden

Akteure sind Instanz einer Klasse
4
Grundlagen der Oo.

Klasse
 legt Attribute und Methoden fest
 Bauplan für Instanzen
 beliebig viele Instanzen
 Jede Instanz einer Klasse besitzt
○ eigene Werte für Attribute
○ eine eindeutige Identität.
Quelle:
http://informatik.unibas.ch/lehre/ws06/cs203/se5.pdf
5
Grundlagen der Oo.

Instanz / Objekt
 Verhalten durch Methoden bestimmt
 Zustand durch Attribute beschrieben
 eigenständige Programmeinheit
 interagieren mit anderen Objekten
 Kein unkontrollierter Zugriff von Außen
○ Datenkapsellung
6
Grundlagen der Oo.

Datenkapsellung
Quelle:
http://informatik.unibas.ch/lehre/ws06/cs2
03/se5.pdf
 Die Implementierung des Objekts für die
Außenwelt nicht sichtbar.
 beschränkt die Sichtbarkeit von Attributen
und Methoden
 Schnittstellen regeln wie andere Objekte
auf Objekt zugreifen können
 Interner Zustand kann nicht unerwartet
geändert werden
7
Grundlagen der Oo.

Vererbung
 redundanzfreies Programmieren
 Klassen übernehmen Eigenschaften und
Verhalten von Ihrer „Superklasse“
 Vererbte Attribute und Methoden können
redefiniert werden.
 Polymorphismus
Quelle: http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm1.PNG
8
Grundlagen der Oo.

Polymorphismus
 gleichnamige Methoden
verhalten sich unterschiedlich
in unterschiedlichen Klassen
 Interfaces stellen sicher, dass
die Aufrufe der Methoden immer
gleich sind

Späte Bindung
 Zuordnung einer konkreten Methode erst zur
Laufzeit des Programms
 Klassenzugehörigkeit des Objekts bestimmt
welche Methode verwendet wird
9
Grundlagen der Oo.

Nutzen der Objektorientierung
 Verringerung der Komplexität
○ Aufbau der Realität abbilden
 Änderungen in objektorientierten Systemen
meist auf Klassenebene
○ Geringerer Änderungsaufwand
 Polymorphismus und Vererbung ermöglichen
Wiederverwendung von Komponenten.
Macht`s einfach einfacher
10
Einführung in UML

Unified Modeling Language

Hilfsmittel zur




Modellierung
Dokumentation
Spezifizierung
Visualisierung
komplexer Softwaresysteme
11
Einführung in UML

Funktionen der UML
 Abstraktion / Vereinfachung
 Kernpunkte des Systems darstellen
 Verhindert sich beim Entwurf eines Systems
in Details zu verlieren!
 Die meisten Systeme werden in Teamarbeit
erstellt
→ Kommunikation ist notwendig
12
Einführung in UML
 Nicht nur Programmierer sind in den
Entwicklungsprozess involviert
 gemeinsame, verständliche Sprache
notwendig
○ natürliche Sprache mehrdeutig und unpräzise
○ Programmiersprachen nicht für alle
verständlich
○ Graphische UML füllt diese Lücke
 Vielfältige Beschreibungsmöglichkeiten
13
Einführung in UML
Quelle: http://www.sts.tu-harburg.de/teaching/ss-07/se-ss-07/05-Spezifikation-UML-Teil-1a.pdf
14
Einführung in UML

Klassendiagramme
 Stellen statische Struktur eines Systems dar
 Zeigt Klassen mit Attributen und Operatoren
○ Klassen, Attribute und Operationen haben
Namen
 Sichtbarkeit bei Attributen & Operationen
○ + public
○ private
○ # protected
Quelle: http://informatik.unibas.ch/lehre/ws06/cs203/se5.pdf
15
Einführung in UML
 Beziehungen zwischen Klassen
○ Assoziation:
○ Vererbung
○ Implementierung
Quelle: http://informatik.unibas.ch/lehre/ws06/cs203/se5.pdf
16
Einführung in UML
○ Komposition
 Elemente leben &
sterben gemeinsam
○ Aggregation
 part of
Quelle: http://upload.wikimedia.org/wikipedia/commons/2/2b/Komposition_Aggregation.png
17
Einführung in UML
Quelle: http://upload.wikimedia.org/wikiversity/de/b/b9/Klassendiagramme.pdf
18
Einführung in UML

Objektdiagramme
 Anordnung von Objekten zur Laufzeit
○ Art Schnappschuss des Systems
 Objekte haben Namen und Typ
 Optional Werte für Attribute angeben
 Ähnliche Notation bei Klassen- und
Objektdiagrammen
Quelle: http://info12.t-butsch.net/images/4/43/Objektdiagramm.jpg
19
Lehrplan

Zu vermittelnde Kompetenzen:
 Grundideen und Grundkonzepte kennen
 Objektorientierte Modelle zu einfachen
Problembereichen entwickeln und
implementieren
20
Lehrplan

Inhalte Grundideen und Grundkonzepte
 Basiskonzepte der Objektorientierung:
○ Klasse, Objekt, Nachricht, Beziehung
 Prinzipien der Objektorientierung:
○ Abstraktion, Kapselung, Vererbung, Polymorphismus

Inhalte entwickeln und implementieren
 Entwicklung Objektorientierter Modelle
 Darstellung Objektorientierter Modelle
 Implementierung Objektorientierter Modelle
21
Lehrplan

Additum
 Verschiedene Beziehungsarten
 Vererbung

Leistungskurs:
 gleicher Wortlaut
 Objektorientierte Modelle zu komplexen
Problembereichen entwickeln und
implementieren

Vererbung gehört zu den Grundprinzipien der Oo.
Daher unbedingt auch im GK zu vermitteln
22
Unterrichtsreihe

Kognitive Ziele:





Schüler in die Lage versetzen:
Einen einfachen Sachverhalt aus
objektorientierter Sicht zu begreifen
Klassendiagramme zu erstellen
Klassen mit deren Beziehungen zu erkennen
Klassen als Bauplan für Objekte zu begreifen
Einfache Sachverhalte objektorientiert zu
modellieren und zu implementieren
23
Unterrichtsreihe

Psychomotorische Ziele
 Fähigkeit der Schüler Wissen anzuwenden
und Anderen zu erklären vertiefen.
 Sich eigenständig in Gruppen mit der mit der
Erfassung und Lösung eines informatischen
Problemgegenstandes auseinandersetzen
24
Unterrichtsreihe

Aufbau der Unterrichtsreihe
 mehrere kleine Projekte
○ Motivation der Schüler hoch halten
○ Binnendifferenzierung
 Modellieren zunächst gemeinsam
○ Schrittweise mehr auf Schüler übertragen
○ Modellierungskompetenz sicherstellen
 Abschlussprojekt :
○ gemeinsames eigenständig in Gruppen
erarbeitetes Softwareprojekt
25
Stundenentwurf
(Quelle: http://www.hsf-degerloch.de/img_inh/ths_vm_05_2.jpg
Eine Gruppe von Hundebesitzern möchte ihren jeweiligen
Hund dressieren. Dazu gehen Sie mit Ihrem Hund auf einen
Dressurplatz. Dort geben sie Ihrem Hund verschiedene
Kommandos und der Hund reagiert darauf- oder auch nicht.
Je nach Reaktion des Hundes verhält sich der Hundebesitzer
unterschiedlich. Er lobt seinen Hund oder sagt, dass man das
noch üben muss.
26
Stundenentwurf
Zeit
Funktion
Sozialform
Medien
5
Begrüßung, Aufmerksamkeit
bündeln
FU
OH /
Beamer
15
Lehrer entwirft zusammen mit
Schülern ein Diagramm zur
Aufgabenstellung.
• Identifikation der Klassen
• Identifikation der Attribute
• Identifikation der Methoden
GU
Tafel
5
Schüler erhalten BlueJ-Projekt.
PC
27
Stundenentwurf
Quelle: eigener Entwurf
28
Stundenentwurf
29
Stundenentwurf
Zeit
Funktion
Sozialform
Medien
20
Methoden
• dressiereHund()
• sageKommando()
• HoereKommandoUndReagiere()
implementieren.
PA
PC
5
Pause
5
Kontrolle der Methoden,
Fehlersuche
PA
PC
5
2 Mensch und 2 Hundobjekte
erzeugen
Dressur durchführen
PA
PC
30
Stundenentwurf
31
Stundenentwurf
32
Stundenentwurf
Zeit
Funktion
Sozialform
Medien
5
Objektdiagramm erstellen
GU
Tafel
PA
PC
Das Projekt selbstständig erweitern. GA
Dabei Klassendiagramm und
Objektdiagramm nutzen
PC
Notausstieg 1
10
Main Methode implementieren
3 Menschobjekte &
3 Hundobjekte erzeugt und eine
Dressur durchführt.
Notausstieg 2
15
HA:
Welche Vorteile könnte Objektorientiertes vorgehen haben?
33
Vielen Dank für die Aufmerksamkeit!
34
Diskussion
Sollte von Beginn an Objektorientiertes
Programmieren und Modellieren
vermittelt werden?
35
Quellen

BAUMANN, R. (19962): Didaktik der Informatik. Stuttgart.

Berkenkötter, K. (2004):Unified Modeling Language. Internet: http://www.informatik.unibremen.de/~roefer/pi2-04/10.pdf(12.06.09)

Elmer, F.-J. (): Software Engineering. Klassendiagramme. Internet:
http://informatik.unibas.ch/lehre/ws06/cs203/se5.pdf()20.06.09)

HARTMANN, W., NÄF, M. & REICHERT, R. (2006): Informatikunterricht planen und durchführen. Berlin.

HUBWIESER, P. (20042): Didaktik der Informatik. Berlin, Heidelberg & New York.

LAHRES, B., RAÝMAN G.(2006): Praxisbuch Objektorientierung. Internet:
http://openbook.galileocomputing.de/oo/oo_01_einleitung_000.htm#Xxx999137 (20.05.2009))

Marrone, R. (2007): Software Engineering. Internet: http://www.sts.tu-harburg.de/teaching/ss-07/se-ss-07/05Spezifikation-UML-Teil-1a.pdf

Ministerium für Bildung, Wissenschaft, Jugend und Kultur(o. J.): Lehrplanentwurf Informatik. Internet:
http://informatik.bildung-rp.de/extern/service/lehrplaene.html (27.05.2009)

Ministerium für Bildung, Wissenschaft, Jugend und Kultur (2008): Lehrplanentwurf für das Wahlfach
und das Wahlpflichtfach Informatik an Gymnasien und Integrierten Gesamtschulen. Internet:
http://informatik.bildung-rp.de/extern/service/lehrplaene.html (27.05.2009)

Müller-Olm, M. ()2006) Softwareengineering. Internet: http://cs.unimuenster.de/sev/teaching/ws0607/se/SE231106-6.pdf (3.06.09)

OESTERREICH,B.(20046): Objektorientierte Softwareentwicklung. Analyse und Design mit der UML 2.0.
München.

Ram, S. (o. J.): Was ist Objektorientierte Programmierung.
Internet: http://userpage.fuberlin.de/~ram/pub/pub_jf47ht81Ht/begriff_objektorientierte_programmierung_de

RITTERSHOFER, A. (2003): Objektorientierte Hundedressur – ein anschauliches Beispiel für den
Informatik-Unterricht. Internet: http://www.dbg-metzingen.de/Menschen/Lehrer/QT/Rittershofer/Informatik/Objektorientierung/hundedressur.pdf (24.05.2009).

THOMAS, M. (o. J.):Objektorientierung?! Stellenwert und Konkretisierung im Informatikunterricht.
Internet: http://ddi.cs.unipotsdam.de/Personen/marco/Objektorientierung_mit_BlueJ_Thomas_LOGIN_3.pdf
(24.05.2009).
36