Projekt Banksystem
Abschnittsübersicht
-
"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.