400 likes | 622 Views
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
E N D
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 • 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 • gleichnamige Methodenverhalten 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. • 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 • Elemente leben & sterben gemeinsam • Aggregation • partof 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 • 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
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 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. (Quelle: http://www.hsf-degerloch.de/img_inh/ths_vm_05_2.jpg
Stundenentwurf Quelle: eigener Entwurf
Stundenentwurf HA: Welche Vorteile könnte Objektorientiertes vorgehen haben?
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).