Java Reference
In-Depth Information
Kapitel 12
Programmentwurf
12 .
In diesem Kapitel wird ein systematisches Verfahren zur Entwicklung von Computerprogrammen
vorgestellt. Bei diesem Verfahren ist der Entwicklungsprozess in mehrere Phasen aufgeteilt. Nach
einer Einführung in Abschnitt 1 dieses Kapitels werden die einzelnen Phasen Analyse, Entwurf, Im-
plementierung und Test in den Abschnitten 2 bis 5 erläutert. Abschnitt 6 geht auf die Dokumentation
des Entwicklungsprozesses ein. Das Verfahren wird an einem Beispiel durchgängig demonstriert.
Abschnitt 7 vertieft die Ausführungen der ersten Abschnitte anhand eines weiteren Beispiels. Ab-
schnitt 8 enthält einige Übungsaufgaben, die Sie anschließend selbstständig mittels des eingeführten
Verfahrens lösen können sollten.
12.1 Lösen von Problemen
Wenn Sie die vorangegangenen Kapitel sorgfältig durchgearbeitet und insbesondere die Übungsauf-
gaben intensiv bearbeitet haben, sind Sie Ihrem Ziel, ein „guter“ Programmierer zu werden, schon
ein ganzes Stück nähergekommen. Sie wissen nun, was Anweisungen sind, Sie können Prozeduren
und boolesche Funktionen definieren und aufrufen, und Sie kennen als Kontrollstrukturen des Pro-
grammablaufs die Auswahl- und Wiederholungsanweisungen, mit denen Sie Algorithmen bzw. Pro-
gramme flexibel formulieren können. In diesem Kapitel wird nun kein weiteres derartiges Sprach-
konstrukt eingeführt. Stattdessen werden Sie lernen, wie Sie die bisher erlernten Sprachkonstrukte
einsetzen können, um ausgehend von einem gegebenen Problem ein Programm zu entwickeln, das
dieses Problem korrekt und vollständig löst und dessen Lösungsidee auch für andere verständlich
ist.
Vielleicht hatten Sie beim Lösen von Übungsaufgaben insbesondere in den letzten beiden Kapi-
teln bestimmte Probleme. Sie wussten eventuell nicht, wie Sie an die Übungsaufgabe herangehen,
womit Sie anfangen sollten. Keine Angst, in diesem Kapitel werden Sie ein Verfahren kennenler-
nen, das Ihnen dabei hilft, derartige Übungsaufgaben systematisch zu lösen. Nichtsdestotrotz ist
der Algorithmen- bzw. Programmentwurf kein vollständig mechanisierbarer, sondern ein kreativer
Prozess, bei dem Sie Ihre Gehirnzellen aktivieren müssen. Er ist insbesondere selbst nicht algorith-
misierbar und erfordert vom Programmierer Intuition, Erfahrung und Ideen.
Der Programmentwurf ist jedoch vergleichbar mit vielen Problemen, mit denen Sie tagtäglich in Be-
rührung kommen. Überlegen Sie einmal: Wie gehen Sie vor, wenn Sie ein Puzzle zusammensetzen.
Ganz sicher nicht so, dass Sie einfach probieren, solange Puzzlestücke zusammenzustecken, bis das
Puzzle fertig ist. Vielmehr werden Sie zunächst die vier Eckstücke und anschließend die Randstücke
suchen und damit zunächst den Rahmen zusammensetzen. Anschließend werden Sie vielleicht (falls
es sich bei dem Puzzle um ein Landschaftsbild handelt) alle blauen Stücke heraussuchen, die zum
Himmel gehören könnten. Was Sie hier machen, nennt man Komplexitätsreduktion . Sie versuchen,
das komplexe Gesamtproblem zunächst in weniger komplexe Teilprobleme zu zerlegen und die Teil-
probleme zu lösen. Die Gesamtlösung ergibt sich dann schließlich durch die Zusammenführung
Search WWH ::




Custom Search