Einführung in die Objektorientierte Programmierung

Stand: 14.12.2006

Zeitrichtwert: 24 Unterrichtsstunden

Inhaltliche Schwerpunkte Bemerkungen

Der Einstieg (1)

Orientierung: bisher wurden "einfache" Verschlüsselungsverfahren selbst programmiert; Nachteil dieser "einfachen" Verfahren: Geheimtexte können leicht entschlüsselt werden; Ziel: "bessere" Verfahren nutzen; Schwierigkeit: solche Verfahren sind kompliziert (werden evtl. später im Unterricht behandelt); Ausweg: jemand hat diese Verfahren bereits implementiert und stellt sie zur Verfügung; Mechanismus des "zur Verfügung Stellens": als Klasse (analog zu Delphi-Komponenten)

Lesen und Analysieren einer Klassendokumentation; Klärung der zur Verfügung gestellten Dienste;

Verwendung einer vorgegeben Klasse (2)

  • Objekt, Klasse
  • Geheimnisprinzip, Modularisierung

Entwicklung (oder Vorgabe) eines sehr einfachen "Rahmenprogramms"; Experimente mit diesem Programm, z. B.: Der Versuch, einen Dienst der Klasse zu nutzen scheitert, typische Fehlermeldung, Ursache: noch kein Objekt vorhanden, das den Dienst ausführen könnte

Entwicklung eines Grundschemas zum Arbeiten mit vorgegebenen Klassen: Vorbereitung: Klasse integrieren, Objektbezeichner deklarieren; Eigentliche Verwendung: Objekt erzeugen, Dienste des Objekts nutzen; Objekt vernichten; Implementierung dieses Schemas in Delphi

Vertiefung des Objektverständnisses: Objekt als Einheit aus Attributen und Methoden, das für die Erledigung bestimmter Aufgaben zuständig ist; Objekt als aktive und autonome Programmeinheit, das nach geeigneter Aufforderung diese Aufgaben erledigt; Klasse als Bauplan für Objekte, der für die Erzeugung von Objekten benötigt wird;

Diskussion der Vorteile des Objekt-Konzepts: Geheimnisprinzip, Modularisierung; Verdeutlichung durch einen Austausch der Klasse (andere Klasse mit Implementierung eines anderen Chiffrierverfahrens)

Übungen zur Verwendung von Klassen (2)

Bsp.: gegeben eine Klasse zur Ermittlung von Buchstabenhäufigkeiten in Texten; Verwendung dieser Klasse, um verschlüsselte Texte zu analysieren

Aufbau und Implementierung einer Klasse (2)

  • Darstellung objektorientierter Modelle
  • Implementierung objektorientierter Modelle
  • Vererbung zur Erweiterung von Klassen

Eine vorher benutzte Klasse wird jetzt genauer analysiert; Bsp.: Klasse mit einem einfachen Chiffrierverfahren (z. B. Caesar);

Beschreibung der Klassenstruktur mit einem UML-Klassendiagramm;

Einblicke in die Implementierung von Klassen mit Delphi;

In Delphi: Jedes Formular besitzt "von Anfang an" gewisse Eigenschaften, die dieses spezielle Formular (Klasse TForm1) von einer Oberklasse (Klasse TForm) geerbt hat.

evtl.: kleine Änderungen der Klasse

Entwicklung einer eigenen Klasse (3)

  • Entwicklung objektorientierter Modelle
  • Dokumentation

Bsp.: Eine einfache Uhr mit Sekundenzähler und Stundenzähler soll mit Hilfe von geeigneten Objekten realisiert werden

Identifikation von Objekten: Zähler für Sekunden (modulo 60), Zähler für Stunden (modulo 24); Idee: Eine Klasse soll Zählerobjekte modulo einer vom Benutzer vorgebbaren Grenze nutzen können;

Modellierung der Attribute und Methoden; Beschreibung des Modells mit UML;

Implementierung der Klasse; Verwendung der Klasse zur Realisierung der Uhr;

Veröffentlichung der (funktionierenden Klasse); Entwicklung einer Klassendokumentation; Klärung, wie eine Schnittstellenbeschreibung aussehen müsste (Signatur- und Verhaltensbeschreibung zu allen öffentlichen Methoden)

Uhr-Beispiel wie im Buch "Barnes, Kölling: Java lernen mit BlueJ. Pearson Studium."
Hinweise zur Implementierung mit Delphi findet man hier: Objektorientierte Software-Entwicklung - Teil 1

Entwicklung weiterer Klassen (6)

  • Entwicklung objektorientierter Modelle
  • Dokumentation
  • Abstraktion, Wiederverwendung

Beispiel: Klasse "Bruch", die Kürzen und Erweitern als Dienste zur Verfügung stellt

Beispiel: Das Spiel "chuck a luck" mit Objekten für Würfel, Konto und Spielbrett; hier sind mehrere Klassen beteiligt

Bei der Modellierung der Klassen darauf achten, dass diese auch in anderen Problembereichen wiederverwendet werden können. Hierzu muss gegenbenenfalls von Besonderheiten des aktuellen Problemkontextes abstrahiert werden.

siehe auch: Objektorientierte Software-Entwicklung - Teil 1

Programmierprojekt (6)

  • Entwicklungsschritte bei der Software-Entwicklung
  • Prozessbegleitende Dokumentation

Bsp.: Entwicklung eines interaktiven Roulette-Spiels (in Analogie zum Spiel "chuck a luck"); Anwendung des bisher Gelernten in einem etwas größeren Zusammenhang

Spezifikation der Anforderungen objektorientierte Analyse / und Design (gemeinsam); arbeitsteilige Implementierung der Klassen; Testen des Systems; begleitende Dokumentation des Systems

Trennung von Benutzungsoberfläche und Datenmodell - MVC (2)

  • Beziehungen zwischen Objekten

Analyse der bisher entwickelten Programme (z. B. chuck a luck): Ausführung des Spiels wird in Teilen noch innerhalb der Implementierung der GUI festgelegt; vollständige Trennung wäre anzustreben;

Demonstration eines Programms mit vollständiger Trennung; Analyse dieses Programms; Experimente mit dem Programm; Objekte mit Beziehungen zu anderen Objekten

siehe auch: Objektorientierte Software-Entwicklung - Teil 2

Werkzeuge

Valid XHTML 1.0 Strict Valid XHTML 1.0