Vorgehen bei der Entwicklung

Die Entwicklung eines Programms ist vergleichbar mit der Entwicklung eines technischen Produkts. Softwareentwicklung Wie man bei der Fertigung von einem einzelnen Fahrzeug nicht direkt damit beginnt Blech zu biegen, sondern zunächst einmal ein Lasten- und Pflichtenheft anlegt und das Fahrzeug auslegt und entwickelt, bevor es gefertigt wird, so verhält es sich auch mit Software. Zu Beginn ist es noch möglich direkt Programmcode zu schreiben, ohne viel Zeit in die Planung zu investieren. Mit steigender Komplexität eines Programms wird diese Planung jedoch deutlich wichtiger.

Wenn man das vorangegangene Beispiel des Fahrzeugs auf ein Programm überträgt, wäre es so als würde man Beginnen zu programmieren und dann im Arbeitsverlauf Entscheidungen zu treffen die eine Überarbeitung des bisher verfassten Codes nötig machen. Dies ist keine sonderlich effiziente Arbeitsweise.

Vor Beginn der eigentlichen Programmierung muss ein Pflichtenheft aufgestellt werden. Welche Benutzerschnittstellen müssen vorhanden sein, ist eine graphische Ausgabe notwendig oder kann der Nutzer über die Eingabezeile arbeiten? Welche Funktionalitäten sind gewünscht? Solche Fragen sollten sich zu Beginn der Entwicklung gestellt werden um bereits eine klare Vorstellung vom zu entwickelnden Programm zu erhalten. Diese Fokussierung auf die eigentlichen, an das Programm, gestellten Anforderungen sind sowohl für die Arbeit als Einzelner, als auch für die Arbeit im Team unabdingbar.

 

Ein solches Pflichtenheft könnte wie folgt aussehen:

Es soll ein Taschenrechner für ältere Kinder programmiert werden.

 

Welche Funktionen soll er besitzen?

 

Für die angestrebte Nutzergruppe reichen die Grundrechenarten und ein einfaches Zahlenfeld aus. Weitere Funktionen ließen sich leicht implementieren, sind aber nicht zielführend.

- Grundrechenarten

- Zahlenfeld

 

Welche Nutzerschnittstelle soll geboten werden?

 

Zur Auswahl stehen eine graphische Nutzeroberfläche und die Eingabe in die Konsole. Eine graphische Nutzeroberfläche lässt sich leichter visuell erfassen und verstehen.

-       Graphische Benutzeroberfläche

 

Darstellung des Ergebnisses?

 

Nutzer dieses Alters sollten neben der Fließkommadarstellung auch noch die Darstellung als Bruch geboten bekommen um sich diese anzueignen und sie zu verstehen.

-       Fließkommadarstellung und Bruchdarstellung

 

Diese trivial wirkenden Entscheidungen stecken ein klares Bild vom zu entwickelnden Programm ab und stecken die zu entwickelnden Funktionen klar ab.

 

Bottom-up / Top-down

 

Nach dem Entwickeln eines Pflichtenhefts, muss das weitere Vorgehen geklärt werden. Es gibt zwei Herangehensweisen bei der Entwicklung eines Programms. Zum einen das Bottom-up-Prinzip und zum anderen das Top-down-Prinzip.

Um diese Methoden zu verstehen sei zunächst die Struktur eines größeren Programms erklärt. Während einfache Programme noch mit einer einzigen Funktion auskommen in der sich der gesamte Code befindet, nutzen größere Programme eine Vielzahl von Funktionen die von einem Hauptprogramm aufgerufen werden um ihre Aufgabe zu erfüllen.

Beim vorangegangenen Programm des Taschenrechners ist die Hauptfunktion der Taschenrechner. Dieser benutzt die Subfunktionen Addition, Subtraktion, Multiplikation und Division. Für die graphische Ausgabe wird eine weitere Subfunktion benötigt. Diese Struktur kann man sich wie die Wurzel eines Baumes vorstellen. Die Hauptfunktion bildet den Stamm, während jede abzweigende Wurzel eine Subfunktion darstellt, welche möglicherweise wieder selbst Subfunktionen hat.

Beim Vorgehen nach dem Top-down-Prinzip wird zuerst die Funktion Taschenrechner erstellt. Es ist bekannt, dass sie die oben genannten Subfunktionen zur Ausführung benötigt und welche Funktionalität diese bieten müssen. Es wird also angenommen, dass diese Subfunktionen bereits vorliegen und so funktionieren wie sie die Funktion Taschenrechner benötigt. Nachdem die Funktion Taschenrechner komplett geschrieben ist, werden die Subfunktionen geschrieben, mit den Vorgaben die von der Funktion Taschenrechner gestellt wurden. In Summe entsteht ein funktionsfähiges Programm. Der Nachteil dieser Methode liegt darin, dass die Funktion Taschenrechner bis zur Vollendung der Subfunktionen nicht lauffähig ist und somit lange nicht geprüft werden kann, ob sie fehlerfrei ist oder so funktioniert wie geplant. Dies erhöht das Risiko zu Beginn Fehler zu machen, die erst spät im Entwicklungsprozess erkennbar werden.

 

Im Gegensatz dazu setzt das Botttom-up-Prinzip an der kleinsten Einheit an. Es wird zunächst die Gesamtheit an benötigten Funktionen und Subfunktionen festgestellt. Dann wird mit den einfachsten Subfunktionen begonnen. Im Beispiel des Taschenrechners ist die Addition die einfachste Subfunktion. Es muss von Anfang an klar sein, welche Schnittstellen benötigt werden um diese Subfunktion durchzuführen. Der Vorteil gegenüber dem Top-down-Prinzip ist, dass die Subfunktionen schon in der frühen Entwicklung getestet werden können, da sie als einzelnes Programm lauffähig sind.

Es ist Ihnen überlassen welche Methode Sie verwenden, jedoch ist das Bottom-up-Prinzip zu empfehlen, da es gerade zu Beginn Fehler schneller deutlich macht und damit die Möglichkeit bietet diese frühzeitig zu korrigieren.

 

Pseudocode

 

Das Schreiben von Code kann stellenweise sehr abstrakt sein. Der Schritt von der geplanten Funktionalität zum fertigen lauffähigen Code ist oftmals nur schwer direkt durchzuführen. Sogenannter Pseudocode eignet sich daher eine Abstraktionsebene zwischen Aufgabe und Ziel zu erstellen. Es werden erste Codestrukturen ersichtlich, ohne jedoch Wert auf richtige und vollständige Programmierung zu legen. Es reichen oftmals einfache Beschreibungen des Vorganges um sich den Zielcode klar zu machen.

Mit Pseudocode ist also im Wesentlichen Text gemeint, der bereits die Logiken und Funktionalitäten des späteren Programms verdeutlicht, aber nicht den Konventionen einer Programmiersprache unterworfen ist.

 

Ein Beispielprogramm für Pseudocode wäre folgendes:

Das Programm soll bei Werten, die kleiner als fünf sind, den Wert zu null setzen. Dies könnte ein Filter sein, der Bildbereiche, die dunkel sind, gänzlich schwarz färbt.

 

WENN eingabewert KLEINER 5

DANN eingabewert GLEICH 0

 

Die Implementierung dieses Pseudocodes sähe in MATLAB wie folgt aus:

 

if eingabewert < 5
 eingabewert = 0;
end

 

Es gibt auch Definitionen für Pseudocode, welche auf der deutschen Wikipedia-Seite nachzuschlagen sind http://de.wikipedia.org/wiki/Pseudocode .