Algorithmen- und Dokumentationstechniken

In diesem Kapitel werden wir genauer auf Algorithmen eingehen und die daraus folgende Dokumentation eines Algorithmus.Wann benötigt man einen Algorithmus? Ein Algorithmus ist eine eindeutige Handlungsvorschrift für die Lösung eines oder mehrerer Probleme. Es werden bei der Entwicklung alle Handlungsvorschriften in eine Reihe sortiert, damit man diese dann später in einer Software implementieren kann. Somit ist ein Algorithmus die Beschreibung eines Verfahrens unter der Verwendung von auführbaren/elementaren Verarbeitungsschritten.

Bei der Planung eines Algorithmus steht die Zielgruppe im Vordergrund, da dieser Algorithmus für die Gruppe verständlich sein soll. Wenn die Zielgruppe den Algorithmus nicht versteht kann sie ihn unmöglich anwenden oder automatisieren. Gehen wir aber davon aus, dass wir unsere Algorithmen ausschließlich Informatikern vorlegen.

Neben der Zielgruppe gibt es noch weitere Kriterien, mit denen sich Algorithmen unterscheiden lassen. Man kann sagen, dass es die Hauptkriterien sind für die Unterscheidung von Algorithmen:

  • terminierend: Dieser Algorithmus führt immer zu einem Ende (z.B. Wäsche waschen)
  • deterministisch: Ablauf ist immer der gleiche, d.h. dass der nächste Handlungsschritt eindeutig vordefiniert ist.

Nun wissen wir was ein Algorithmus ist und wie man ihn unterscheidet aber wie können wir nun eigene Algorithmen für Probleme in unserem Alltag entwickeln ? Der erste Schritt bei der Entwicklung eines Algorithmus ist die Findung eines Problemes. Im nächsten Schritt gilt es dann eine Lösung für dieses Problem zu überlegen durch verschiedene Handlungsschritte und Vorschriften.

Dokumentationstechniken

Damit auch andere Leute unseren Algorithmus verstehen können ist eine ausführliche Dokumentation notwendig. Hierbei gibt es unendlich viele Möglichkeit für die Realisierung einer solchen Dokumentation. Wir werden dir nun zwei Dokumentationstechniken vorstellen mit denen du einen Algorithmus am besten Dokumentieren kannst:

Pseudocode

Der Pseudocode ist ein Programmcode, der keinen Normen folgen muss und somit von keiner Maschine verstanden werden kann. Er kann lediglich von Menschen verstanden werden und dient zur Veranschaulichung eines Algorithmus. Der Pseudocode ist somit eine Mischung aus Programmiersprachen und natürlicher Sprache.

Vorteile (+)Nachteile (-)
veränderungsfreundlichunübersichtlich
leicht zu erstellen
Umsetzung im Programm leicht

Ein Beispiel für Pseudocode:

Struktogramme

Das Nassi-Shneiderman Diagramm ist ein Diagrammtyp zur Erstellung von Programmentwürfen. Man nennt diese Diagramme auch Struktogramme, da sie im Rahmen der strukturierten Programmierung ihre Anwendung finden. Die Aufgabe eines Struktogramms ist es, den Ablauf eines Programms auf dem Papier darzustellen. Die Notwendigkeit der Struktogramme ergab sich aus der Entwicklung der Programme, die immer komplizierter und unübersichtlicher geworden sind.

In der professionellen Entwicklung von Software werden aber meistens keine Struktogramme verwendet, sondern meistens UML Diagramme (z.B. Aktivitätsdiagramme oder Sequenzdiagramme), die einen klaren Vorteil gegenüber Struktogrammen haben. Die UML Diagramme sind international genormt und somit können alle Softwareentwickler etwas mit UML Diagrammen anfangen. Dennoch sind Struktogramme ein gutes Hilfsmittel um erste Strukturen und Abläufe eines Programms zu entwickeln. Hier ein Beispiel für ein klassisches Struktogramm: