Kapitel 8
Kapitel 8
Kapitel 8
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
374 8 Software-Engineering und DV-Organisation<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯-⎯⎯⎯<br />
8.2 Hilfsmittel für den Entwurf von Algorithmen<br />
Ist ein Software-Projekt soweit detailliert beschrieben, dass mit der Programmierung begonnen<br />
werden kann, so stellt sich noch das Problem des Entwurfs und der Darstellung von Algorithmen.<br />
Auch dazu stehen eine Anzahl von Hilfsmitteln zur Verfügung. Einige sollen hier<br />
kurz behandelt werden: Pseudocode, Ablauf- oder Flussdiagramme, Struktogramme und<br />
Entscheidungstabellen. Teilweise kann auch hier auf die in <strong>Kapitel</strong> 8.1 erläuterten Methoden<br />
sowie auf Automaten (siehe <strong>Kapitel</strong> 9.1) zurückgegriffen werden.<br />
8.2.1 Pseudo-Code<br />
Unter einem Pseudo-Code versteht man eine reduzierte und in einer dem Problem angepassten<br />
Weise formalisierte, jedoch der natürlichen Sprache ähnliche Kunstsprache. Algorithmen<br />
lassen sich damit prägnanter und verständlicher formulieren. Um dies zu demonstrieren,<br />
wird der als „binäres Suchen“ bekannte Algorithmus zur Suche eines Eintrages in<br />
einer geordneten Datei zunächst in natürlicher Sprache und anschließend mit Hilfe eines<br />
Pseudo-Codes formuliert:<br />
Beispiel: Binäres Suchen im Klartext und als Pseudo-Code<br />
Gegeben sei eine Datei mit n Elementen, die nach einem Ordnungskriterium (z.B. lexikographisch,<br />
oder bei numerischen Werten, der Größe nach) geordnet sind. Für ein bestimmtes,<br />
vorgegebenes Element x ist nun der die Position von x in der Datei kennzeichnende Index zu<br />
ermitteln. Dazu wird die Datei in eine untere und eine obere Hälfte unterteilt. Nun wird durch<br />
Vergleich von x mit demjenigen Element, das gerade die Grenze zwischen den beiden Hälfte<br />
bildet, festgestellt, ob es mit diesem Element übereinstimmt, oder ob es in der oberen oder in<br />
der unteren Hälfte liegen müsste, sofern es überhaupt in der Datei enthalten ist. Man halbiert<br />
nun auf diese Art den Suchbereich, in dem x jeweils vermutet wird, immer weiter, bis entweder<br />
x gefunden wurde, oder bis der Suchbereich kein Element mehr enthält. In diesem Fall<br />
ist x in der untersuchten Datei nicht enthalten.<br />
Diese Beschreibung des Algorithmus in natürlicher Sprache ist nicht so weit gehend formalisiert,<br />
dass eine Übertragung in ein Programm ohne weiteres möglich wäre. Insbesondere<br />
wäre eine automatische Programm-Generierung mit Hilfe eines Software-Werkzeugs derzeit<br />
noch undurchführbar. Unter Verwendung eines einfachen Pseudo-Codes lässt sich der Algorithmus<br />
jedoch in eine kompakte und dennoch leicht lesbare Form bringen:<br />
SETZE untergr auf 1<br />
SETZE obergr auf n<br />
SOLANGE untergr