Entwicklung von Software nach dem Bausteinprinzip
Zielsetzung
Wenn man die richtigen Bausteine zur Verfügung hat, dann ist es meist recht einfach, das gewünschte System zu entwickeln.
Das gilt nicht nur für Systeme im Alltag, diese Aussage trifft auch auf die Entwicklung von Software zu. Wir haben in den vorangegangenen Abschnitten Programme zu Kartenspielen entwickelt. Dabei war es äußerst hilfreich, auf Klassen als fertige Softwarebausteine zurückgreifen zu können.
Wir schauen uns hier noch diese Vorgehensweise genauer an. Insbesondere geht es um die Frage, wie eine Klasse aufbereitet werden sollte, damit sie von einem Benutzer direkt als Baustein verwendet werden kann.
Verwendung von Klassen
Betrachte das folgende Testprogramm zur Simulation des 17-und-4-Spiels.
Damit dieses Programm funktioniert, benötigt man Implementierungen der Klassen Kartenstapel
und Kartenhaufen
. Du findest eine Implementierung dieser Klassen in der Datei kartenspiel.py.
Aufgabe 1
(a) Was muss man als Benutzer alles über die Klassen Kartenstapel
und Kartenhaufen
wissen, um ein Programm wie das oben gezeigte schreiben zu können?
(b) Der Entwickler der Klassen Kartenstapel
und Kartenhaufen
veröffentlicht die folgenden Klassendiagramme:


Welche Informationen über die Klassen Kartenstapel
und Kartenhaufen
findet man hier? Welche zur Nutzung der Klasse benötigten Informationen sind hier nicht dokumentiert?
(c) Der Entwickler der Klasse Kartenstapel
hat die Implementierung der Methoden mit Kommentaren versehen.
Welche Informationen kann ein Nutzer hieraus entnehmen? Muss ein Nutzer auch die Details der Implementierung verstehen, um die Klasse nutzen zu können?
(d) Führe die Datei kartenspiel.py einmal aus, damit Python die Klassendeklaration übernimmt. Führe anschließend den help
-Befehl wie folgt aus:
Teste entsprechend, welche Informationen zur Klasse Kartenhaufen
angezeigt werden.
Warum sollte man die (öffentlichen) Methoden einer Klasse möglichst gut dokumentieren?
(e) Ergänze möglichst informative Kommentare in der Implementierung der Klasse Kartenhaufen
.
Quellen
- [1]: Legobausteine - Urheber: Priwo - Lizenz: Public Domain