Java Reference
In-Depth Information
Also reduziert sich die Arbeit der Implementierungsphase bei der Entwicklung von Hamster-Pro-
grammen auf das Eingeben des entwickelten Programms in den Computer und das anschließende
Compilieren des Programmcodes.
An dieser Stelle sei auf eine ganz wichtige Eigenschaft der Programmentwicklung hingewiesen:
Vermeiden Sie es, die Entwurfsphase direkt am Computer durchzuführen und den Programmcode
direkt einzugeben. Nehmen Sie sich einen Stift zur Hand und skizzieren Sie Ihre Lösungsideen
zunächst auf Papier. Bei so einfachen Beispielen, wie dem obigen, scheint das überflüssig zu sein,
aber bei komplexeren Problemen laufen Sie ansonsten in die Gefahr, sogenannten „Spaghetti-Code“
zu produzieren. Der Begriff „Spaghetti-Code“ wird dann verwendet, wenn der Programmcode nicht
mehr sauber strukturiert und die Lösungsidee nur schwer nachvollziehbar ist; ein Phänomen, das
häufig bei direkt in den Computer eingegebenem Programmcode festzustellen ist: Zunächst wird
der Code eingegeben, dann werden Fehler entdeckt, es werden Programmteile geändert, gelöscht
und hinzugefügt, und schließlich hat man ein schier undurchdringliches Wirrwarr bzw. Chaos von
Programmcode vor sich. Hüten Sie sich davor, Spaghetti-Code zu produzieren. Gute Programme sind
nicht nur dadurch gekennzeichnet, dass sie korrekt ablaufen, sondern auch durch die Eigenschaft,
dass andere Personen sie leicht verstehen und die Lösungsidee nachvollziehen können.
Achten Sie also im Programmcode auf Übersichtlichkeit und Strukturiertheit. Halten Sie sich an
die Gestaltungskonventionen. Nutzen Sie die Möglichkeit, zur Lösung von Teilproblemen Prozedu-
ren und Funktionen definieren zu können. Kommentieren Sie Prozeduren bzw. Funktionen sowie
komplizierte Sachverhalte. Wählen Sie aussagekräftige Bezeichner.
Vergleichen Sie einmal das folgende Programm mit dem oben entwickelten. Auch dieses Programm
löst die Problemstellung korrekt, ist aber wesentlich schwerer überschaubar, weniger verständlich
und kaum nachvollziehbar:
void main() {
while
(vornFrei()) vor(); gib(); while (!vornFrei()) {
linksUm(); vor(); r(); vor(); gib(); }
} void r() { linksUm(); linksUm(); linksUm(); }
12.5 Test
Ziel der Testphase ist die Überprüfung, ob das entwickelte Programm die Problemstellung korrekt
und vollständig löst. Korrekt bedeutet, dass das Programm für zulässige Anfangsgrößen die erwar-
teten Endgrößen produziert, wobei eventuell vorhandene Bedingungen, die an den Lösungsweg ge-
stellt wurden, eingehalten werden. Vollständig bedeutet, dass das Programm für alle zulässigen An-
fangsgrößen korrekt arbeitet. Dabei ist es im Allgemeinen allerdings nicht möglich, Testläufe für alle
möglichen Anfangsgrößen durchzuführen, in der Regel gibt es nämlich unüberschaubar viele mög-
liche Anfangszustände. Daher besteht eine wesentliche Aufgabe der Testphase darin, sogenannte
Testmengen zu bilden. Testmengen werden derart gebildet, dass die Menge der zulässigen Anfangs-
größen in (disjunkte) Teilmengen zerlegt wird, wobei alle Elemente einer Teilmenge jeweils gewisse
Gemeinsamkeiten bzw. gleichartige Charakteristiken aufweisen. Aus jeder dieser Teilmengen wird
ein Vertreter gewählt und in die Testmenge eingefügt. Hat man eine korrekte Zerlegung der Menge
der zulässigen Anfangsgrößen gewählt, d.h. eine korrekte Testmenge gebildet, und arbeitet das Pro-
gramm für alle Elemente der Testmenge korrekt, dann kann man rückschließen, dass das Programm
Search WWH ::




Custom Search