Informatik 12 GK/LK: E Objektorientierte Softwareentwicklung - Herr Hempel
Abschnittsübersicht
-
Herzlich Willkommen im Kurs Informatik 12 E zum Thema Objektorientierte Softwareentwicklung!Sie werden in diesem Kurs lernen, wie komplexe Softwareprojekte geplant, entwickelt und realisiert werden. Die dabei notwendigen Handlungsschritte ermöglichen Ihnen einen Zugang zu Problemlösetechniken der Informatik. Grundlagen sind die in Klasse 10 und im vorherigen Kapitel "Algorithmen und Daten" wiederholten algorithmischen Strukturen und Konzepte.
Der Moodle-Kurs begleitet den Unterricht. Sie finden hier Tafelbilder, Aufgaben, Dateien, Arbeitsblätter sowie Lösungen. Die Unterlagen werden schrittweise und i. d. R nach dem Unterricht veröffentlicht.
Hinweis: 2025-11-25 Der Kurs wird aktuell gepflegt und bearbeitet.
-
BlueJ-Hilfe Teil 1 Datei
-
Unabhängig von den Softwareprojekten gibt es hier allgemeine Aktivitäten.
-
"Was ist ein Einbruch in eine Bank gegen die Gründung einer Bank?"
Mackie Messer in Brechts "Die Dreigroschenoper"Die Entwicklung einer Software zur Verwaltung von Kunden und deren Geldtransaktionen über deren Konten unsere Wossi-Bank ist unser erstes komplexes Softwareprojekt. Es wird deutlich über die bisherigen algorithmischen Ansätze hinausgehen. Für die Analyse der Geschäftsvorgänge und die Abbildung dieser in ein informatisches Modell nutzen wir konsequent die sogenannte objektorientierte Modellierung und anschließend die objektorientierte Implementierung, die uns bereits ansatzweise in den Projekten mit dem Turtlezeichner bzw. Turtlerechner joe begegnet ist.
-
- Reflektieren Sie die Schrittfolge für das Abheben von Bargeld von Ihrem Konto mit Ihrer Kundenkarte an einem Geldautomaten. Erfassen Sie in einer Übersicht weitere Transaktionen, die Sie am Bankautomaten bzw. am Bankschalter durchführen könnten. Geben Sie Details der Tätigkeiten an (z. B. Karte einstecken, PIN eingeben, ...) an.
- Führen Sie beispielhaft Transaktionen mit der Bankingsoftware durch. Vergleichen Sie mit Ihren Aufzeichnungen. Ergänzen und korrigieren Sie. Seien Sie kreativ und versuchen Sie, die Sicherheitsmaßnahmen der Bankingsoftware zu umgehen (hier dürfen Sie das
).
Hinweis: Die Daten der Kunden befinden sich in der zugehörigen Text-Datei. - Erfassen Sie alle Aspekte, die in der Bankingsoftware nicht korrekt laufen bzw. die verbesserungswürdig sind.
-
Spielen Sie das Bankwesen an der Wossi-Bank durch. In den Dateien finden Sie Karten für Kunden und Konten sowie mögliche Szenarien. Beobachten Sie alle Transaktionen und das Verhalten der Kunden/Bankangestellten.
-
Öffnen Sie das Projekt in BlueJ. Sie finden einen Entwurf der Klassen Kunde und Konto vor, der sich jedoch von unseren Überlegungen unterscheidet. Die Unterschiede gibt es zu finden und zu beheben. Außerdem sind einige Funktionalitäten noch nicht oder fehlerhaft implementiert. Daher ist es notwendig, die Klassen gründlich zu prüfen.
- Erzeugen Sie die Klassenkarten der Klassen Kunde und Konto über das Kontextmenü der jeweiligen Klasse. Vergleichen Sie mit der Vorgabe. Notieren Sie sich Unterschiede.
- Öffnen Sie den Quelltext der Klassen. Betrachten Sie die Realisierung von Attributen und Methoden. Ergänzen Sie die fehlenden Attribute und Methodenköpfe mit leerem Rumpf. Beachten Sie dabei, dass Anfragemethoden stets eine Rückgabe erwarten. Dies kann vorläufig auch ein fester Wert sein.
- Wenn die Klassendiagramme identisch sind, dann erzeugen Sie Objekte der Klasse und testen Sie die Funktionalität der Methoden. Beheben Sie alle Probleme.
-
Fügen Sie in BlueJ über "Bearbeiten - Klasse aus Datei hinzufügen..." die Klasse Dieb ins Projekt ein. Legen Sie mindestens zwei Kontoobjekte und einen Dieb an. Dieser benötigt natürlich auch ein Konto, daher müssen Sie eines der beiden Konten dem Dieb zuordnen. Versuchen Sie nun, mithilfe der Methode des Diebs das andere Konto zu "erleichtern". Warum geht das?
Ändern Sie die Klasse Konto so ab, dass jedes Attribut mit der Sichtbarkeit private deklariert wird. Testen Sie anschließend erneut.
-
Analyse
Erforschen Sie die Realisierung der Beziehung zwischen Dieb und Konto. Geben Sie Gründe und Ursachen für die Beziehung an.
Realisierung/Transfer
Erzeugen Sie im aktuellen Arbeitsstand des Projekts eine Beziehung zwischen Kunde und Konto in dem Sinne, dass ein Konto genau einem Kunde gehört. Stellen Sie eine Analogie zur Umwandlung einer 1:n-Beziehung im ER-Modell zu dieser Beziehung her. Erweitern Sie die Klasse so, dass der Kontoinhaber im Konstruktor festgelegt wird und es eine Methode zum Abfragen des Inhabers gibt. Testen Sie Ihr Szenario.
-
-
AB Beziehungsarten im Klassendiagramm Lösung Datei
-
Lösung Datei
-
-
Ziel des Projekts Würfel
Das Ziel dieses Java-Projekts ist die Entwicklung einer objektorientierten Software in Java zur Simulation eines Würfels mit dem PicoIO. Dazu ist sind Klassen zu entwickeln, die auch für andere Projekte mit dem PicoIO verwendet werden können.
-
Lösung Würfelprojekt Datei
-
Spezifikation des Projekts Binärzähler

Ein Zähler wird beispielsweise eingesetzt, um die momentane Auslastung eines Zuges zu erfassen. Dazu geht ein Zugbegleiter durch den Zug und drückt für jede Person auf den Zählknopf. Dadurch wird der Nachfolger der bisher erfassten Zahl ermittelt. Ein Binärzähler nutzt dazu das Binärsystem. Der PicoIO soll als Binärzähler arbeiten. Jeder Tastendruck erzeugt einen Zählimpuls. Das Zählen kann aufwärts oder abwärts erfolgen. Dies wird mithilfe des Magnetsensor entschieden. Die LED geben dabei den Zustand der Stelle in der Binärzahl an. Es gilt folgende Zuordnung und Belegung für das obige Beispiel für die Dezimalzahl 5:
Binärstelle 26 25 24 23 22 21 20 LED-Nummer 16 17 18 19 20 21 22 Beispielzahl 5 0 0 0 0 1 0 1 Bei der Entwicklung des Softwareprojekts ist besonders auf die Wiederverwendbarkeit bisheriger Klassen zu achten.
Tipp: Zur Bildung des Vor- oder Nachfolgers einer Binärzahl, die als LED-Zustandsfolge vorliegt kann ein Programm der Turingmaschine genutzt werden. Untersuchen Sie die folgende Turingmaschine auf ihre Arbeitsweise als Zähler und übertragen Sie das Prinzip in den Algorithmus für das Zählen.







