Programm Ablauf Plan (PAP)
Die DIN 66001 legt fest, wie ein Programm Ablauf Plan (kurz PAP) aussieht.
Mit einem PAP können Mikrocontroller Programme zum besseren Verständnis graphisch dargestellt werden. Der Entwurf eines Programms erfolgt
hier zuerst als PAP und wird dann in Assembler umgesetzt.
Die DIN 66001 legt auch die Darstellung von Datenflußplänen fest. Diese stellen den Fluß von Informationen dar. Auf diesen Teil der DIN Norm wird
hier nicht eingegangen.
PAPs eignen sich nicht für den Entwurf von Programmen in Hochsprachen, da Verzweigungen sehr nahe an den Sprungbefehl angelent sind.
Für prozedurale Sprachen eignen sich daher eher Struktogramme und für objektorientierte Sprachen UML.
Elemente eines Programm Ablauf Plans
Der Beginn oder das Ende eines PAPs stellt man in einem Oval (Grenzstelle) dar (s.
Abb.1). In das Oval kann
z.B. „Start“ oder „Ende“ für das Hautprogramm eingetragen werden. Bei Unterprogrammen kann der Name des Unterprogramms
in das einleitende Oval eingetragen werden und in das beendende „ret“ oder „return“. Bei ISRs bietet sich eine
sprechende Bezeichnung der ISR im Start und ein „reti“ am Schluss an.
Abb. 1: Grenzstelle
Die einzelnen Operationen werden in Rechtecken dargestellt (s.
Abb. 2). Hier können Zuweisungen, einzelne Befehle oder
frei sprachliche Beschreibungen der Operationen eingeschrieben werden. Der enthaltene Text sollte die jeweilige Operation eindeutig beschreiben,
so dass eine Umsetzung in ein Programm möglich ist.
Abb. 2: Operation
Unterprogrammaufrufe sind durch ein Rechteck mit doppelten vertikalen Linen an den Rändern darzustellen (s.
Abb. 3).
Hierbei symbolisiert das Zeichen mehrere hintereinanderliegende Anweisungen. Als Text ist der Name des aufzurufenden Unterprogramms
in das Symbol zu schreiben.
Abb. 3: Unterprogramm
Eine wie in
Abbildung 4 dargestellte Übergangsstelle dient der Übersichtlichkeit. Durch die Verwendung von
Übergängen können lange Pfeile vermieden werden und PAPs über mehrere Seiten sinnvoll dargestellt werden. Ein Übergangspunkt kann nur zu
einer Stelle im PAP verweisen. Es kann jedoch an mehreren Stellen betreten werden. Zusammengehörige Übergangsstellen müssen den gleichen
Namen tragen.
Abb. 4: Übergangsstelle
Verweigungen werden in Rauten dargestellt (s.
Abb. 5). In das Verzweigungssymbol wird die Bedingung eingetragen nach
welcher verzweigt wird. Auf die ausgehenden Linien bzw. Pfeile wird notiert, ob dieser Weg bei erfüllen oder bei nicht erfüllen der Bedingung
gewählt wird. Eine Verzweigung kann auch nur eine Variable enthalten und einen sich verzweigenden Ausgangspfad. Hier ist an jeden der Zweige
anzugeben, bei welchem Wert der Variablen der jeweilige Weg gewählt wird.
Abb. 5: Verzweigung
Die einzelnen Elemente werden durch
Ablauflinien verbunden. Ist die Leserichtung nicht von oben nach unten oder links nach rechts, so muss
zwingend eine Pfeilspitze eingezeichnet werden. Es können mehrere Ablauflinien zusammengeführt werden, wenn unterschiedliche Ausführungsstränge
wieder vereinigt werden. Dies zeigen die
Abbildungen 7 und
8.
Kreuzen sich zwei Ablauflinien, so stellt dies keine Verknüpfung dar.
Abb. 6: Ablauflinie
Abb. 7: Zusammenführung
Abb. 8: Zusammenführung mit Pfeil
An die einzelnen Elemente können Kommentare angefügt werden. Die gestrichelte Linie ist am entsprechenden Element anzubringen und der Kommentartext
steht am offenen Rechteck.
Abb. 9: Kommentar
Beispiele
Das erste Beispiel in
Abbildung 10 zeigt einen einfachen PAP mit Start und Ende Grenzstellen. Die Verzweigung dient dazu
auf das Betätigen eines Tasters zu warten. Ist der Taster gedrückt wird ein eine Lampe angeschaltet. Dieser Operation ist ein Kommentar angefügt.
Abb. 10: Einfaches Programm
Der Beispiel-PAP in
Abbildung 11 zeigt ein Unterprogramm. In die obere Grenzstelle wurde der Name des Unterprogramms eingetragen.
Anhand der Variable „Fall“ wird die Programmführung verzweigt. Ist Fall=3, so wird das Unterprogramm beendet, was durch die Grenzstelle
mit dem Eintrag „return“ symbolisiert. Ist Fall zwischen 0 und 2 werden Unterprogramme aufgerufen. Nach den Unterprogrammaufrufen
führt der Programmfluss in die Übergangsstelle „S0“. Diese Übergangsstelle führt zurück zum Beginn des Unterprogramms.
Abb. 11: Unterprogramm mit Mehrfachauswahl