Objektorientierte Modellierung Didaktik der Informatik Sommersemester 2009 Referent: Martin Wendel Objektorientierte Modellierung
Objektorientierte Modellierung Grundlagen der Objektorientierung Einführung in UML Lehrplan Unterrichtsreihe Stundenentwurf
Grundlagen der Oo. OO entstand in 1960ern Simula-67 Smalltalk Alan Kay Komplexität reduzieren Objekte der realen Welt abbilden Quelle: http://en.wikipedia.org/wiki/Alan_Kay
Grundlagen der Oo. Daten aus Problembereich gruppieren Eigenschaften Attribute Operatoren Methoden Akteure sind Instanz einer Klasse
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
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
Grundlagen der Oo. Datenkapsellung 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 Quelle: http://informatik.unibas.ch/lehre/ws06/cs203/se5.pdf
Grundlagen der Oo. Vererbung Polymorphismus 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
Grundlagen der Oo. Polymorphismus Späte Bindung 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
Grundlagen der Oo. Macht`s einfach einfacher 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
Einführung in UML Unified Modeling Language Hilfsmittel zur Modellierung Dokumentation Spezifizierung Visualisierung komplexer Softwaresysteme
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
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
Einführung in UML Quelle: http://www.sts.tu-harburg.de/teaching/ss-07/se-ss-07/05-Spezifikation-UML-Teil-1a.pdf
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
Einführung in UML Beziehungen zwischen Klassen Assoziation: Vererbung Implementierung Quelle: http://informatik.unibas.ch/lehre/ws06/cs203/se5.pdf
Einführung in UML Komposition Aggregation Elemente leben & sterben gemeinsam Aggregation part of Quelle: http://upload.wikimedia.org/wikipedia/commons/2/2b/Komposition_Aggregation.png
Einführung in UML Quelle: http://upload.wikimedia.org/wikiversity/de/b/b9/Klassendiagramme.pdf
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
Lehrplan Zu vermittelnde Kompetenzen: Grundideen und Grundkonzepte kennen Objektorientierte Modelle zu einfachen Problembereichen entwickeln und implementieren
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
Lehrplan Additum Leistungskurs: Verschiedene Beziehungsarten Vererbung 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
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
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
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
Stundenentwurf Eine Gruppe von Hundebesitzern möchte ihren jeweiligen (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.
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 Schüler erhalten BlueJ-Projekt. PC
Stundenentwurf Quelle: eigener Entwurf
Stundenentwurf
Stundenentwurf Zeit Funktion Sozialform Medien 20 Methoden dressiereHund() sageKommando() HoereKommandoUndReagiere() implementieren. PA PC 5 Pause Kontrolle der Methoden, Fehlersuche 2 Mensch und 2 Hundobjekte erzeugen Dressur durchführen
Stundenentwurf
Stundenentwurf
Stundenentwurf Zeit Funktion Sozialform Medien 5 Objektdiagramm erstellen GU Tafel Notausstieg 1 10 Main Methode implementieren 3 Menschobjekte & 3 Hundobjekte erzeugt und eine Dressur durchführt. PA PC Notausstieg 2 15 Das Projekt selbstständig erweitern. Dabei Klassendiagramm und Objektdiagramm nutzen GA HA: Welche Vorteile könnte Objektorientiertes vorgehen haben?
Vielen Dank für die Aufmerksamkeit!
Diskussion Sollte von Beginn an Objektorientiertes Programmieren und Modellieren vermittelt werden?
Quellen Baumann, R. (19962): Didaktik der Informatik. Stuttgart. Berkenkötter, K. (2004):Unified Modeling Language. Internet: http://www.informatik.uni- bremen.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/05- Spezifikation-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.uni- muenster.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.fu- berlin.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/Q- T/Rittershofer/Informatik/Objektorientierung/hundedressur.pdf (24.05.2009). Thomas, M. (o. J.):Objektorientierung?! Stellenwert und Konkretisierung im Informatikunterricht. Internet: http://ddi.cs.uni- potsdam.de/Personen/marco/Objektorientierung_mit_BlueJ_Thomas_LOGIN_3.pdf (24.05.2009).