Programmablaufplan

Aus besserwiki.de
DIN 66001
Bereich Informationsverarbeitung
Titel Sinnbilder und ihre Anwendung
Letzte Ausgabe Dezember 1983
Normverweis ISO 5807

Ein Programmablaufplan (PAP) ist ein Ablaufdiagramm für ein Computerprogramm, das auch als Flussdiagramm (engl. flowchart) oder Programmstrukturplan bezeichnet wird. Es ist eine grafische Darstellung zur Umsetzung eines Algorithmus in einem Programm und beschreibt die Folge von Operationen zur Lösung einer Aufgabe.

Die Symbole für Programmablaufpläne sind nach der DIN 66001 genormt. Dort werden auch Symbole für Datenflusspläne definiert. Programmablaufpläne werden oft unabhängig von Computerprogrammen auch zur Darstellung von Prozessen und Tätigkeiten eingesetzt (z. B. als Beschreibung des Arbeitsablaufs bei der Angebotserstellung in einem Handelsunternehmen). Im Bereich der Softwareerstellung werden sie nur noch selten verwendet. Pseudocode bietet einen ähnlichen Abstraktionsgrad, ist jedoch einfacher zu erstellen und in der Regel sehr viel einfacher zu verändern als ein Ablaufdiagramm.

Das Konzept der Programmablaufpläne stammt, ebenso wie das etwas jüngere Nassi-Shneiderman-Diagramm (Struktogramm), aus der Zeit des imperativen Programmierparadigmas. Bei der Abbildung objektorientierter Programmkonzepte durch UML finden erweiterte Programmablaufpläne (Aktivitätsdiagramme) Anwendung.

Ein einfaches Flussdiagramm, das einen Prozess für den Umgang mit einer nicht funktionierenden Lampe darstellt.

Das Flussdiagramm zeigt die Schritte als Kästchen verschiedener Art und ihre Reihenfolge durch die Verbindung der Kästchen mit Pfeilen. Diese diagrammatische Darstellung veranschaulicht ein Lösungsmodell für ein bestimmtes Problem. Flussdiagramme werden bei der Analyse, Gestaltung, Dokumentation oder Verwaltung eines Prozesses oder Programms in verschiedenen Bereichen eingesetzt.

Übersicht

Flussdiagramm einer for-Schleife im C-Stil

Flussdiagramme werden verwendet, um einfache Prozesse oder Programme zu entwerfen und zu dokumentieren. Wie andere Arten von Diagrammen helfen sie, den Prozess zu visualisieren. Zwei der vielen Vorteile sind, dass Fehler und Engpässe sichtbar werden können. Flussdiagramme verwenden in der Regel die folgenden Hauptsymbole:

  • Ein Prozessschritt, in der Regel eine Aktivität genannt, wird als rechteckiger Kasten dargestellt.
  • Eine Entscheidung wird in der Regel durch eine Raute dargestellt.

Ein Flussdiagramm wird als "funktionsübergreifend" bezeichnet, wenn das Diagramm in verschiedene vertikale oder horizontale Teile unterteilt ist, um die Steuerung verschiedener Organisationseinheiten zu beschreiben. Ein Symbol, das in einem bestimmten Teil erscheint, unterliegt der Kontrolle dieser Organisationseinheit. Ein funktionsübergreifendes Flussdiagramm ermöglicht es dem Autor, die Verantwortung für die Durchführung einer Handlung oder für eine Entscheidung korrekt zu lokalisieren und die Verantwortung jeder Organisationseinheit für verschiedene Teile eines einzigen Prozesses darzustellen.

Flussdiagramme stellen bestimmte Aspekte von Prozessen dar und werden in der Regel durch andere Diagrammtypen ergänzt. Kaoru Ishikawa beispielsweise definierte das Flussdiagramm als eines der sieben grundlegenden Werkzeuge der Qualitätskontrolle, neben dem Histogramm, dem Pareto-Diagramm, dem Kontrollblatt, der Regelkarte, dem Ursache-Wirkungs-Diagramm und dem Streudiagramm. Auch in der UML, einer Standardnotation für die Konzeptmodellierung in der Softwareentwicklung, ist das Aktivitätsdiagramm, das eine Art Flussdiagramm ist, nur eine von vielen verschiedenen Diagrammarten.

Nassi-Shneiderman-Diagramme und Drakon-Diagramme sind eine alternative Notation für Prozessabläufe.

Gängige alternative Bezeichnungen sind: Flussdiagramm, Prozessflussdiagramm, funktionales Flussdiagramm, Prozesskarte, Prozessdiagramm, funktionales Prozessdiagramm, Geschäftsprozessmodell, Prozessmodell, Prozessflussdiagramm, Arbeitsflussdiagramm, Geschäftsflussdiagramm. Die Begriffe "Flussdiagramm" und "Flussdiagramm" werden austauschbar verwendet.

Die einem Flussdiagramm zugrunde liegende Graphenstruktur ist ein Flussdiagramm, das von Knotentypen, ihren Inhalten und anderen Zusatzinformationen abstrahiert.

Geschichte

Die erste strukturierte Methode zur Dokumentation von Prozessabläufen, das "Flussdiagramm", wurde von Frank und Lillian Gilbreth in der Präsentation "Process Charts" vorgestellt: First Steps in Finding the One Best Way to do Work" (Erste Schritte bei der Suche nach dem besten Weg, Arbeit zu erledigen) 1921 vor Mitgliedern der American Society of Mechanical Engineers (ASME) vorgestellt. Die Werkzeuge der Gilbreths fanden schnell Eingang in die Lehrpläne für Wirtschaftsingenieure. In den frühen 1930er Jahren begann Allan H. Mogensen, ein Wirtschaftsingenieur, auf seinen Konferenzen zur Arbeitsvereinfachung in Lake Placid, New York, Geschäftsleute in der Anwendung einiger der Werkzeuge des Wirtschaftsingenieurwesens zu schulen.

Art Spinanger, ein Absolvent von Mogensens Klasse aus dem Jahr 1944, nahm die Werkzeuge mit zu Procter und Gamble, wo er das Programm zur Änderung bewusster Methoden entwickelte. Ben S. Graham, ein weiterer Absolvent des Jahres 1944, Direktor der Abteilung Formcraft Engineering bei Standard Register Industrial, wandte das Flussdiagramm auf die Informationsverarbeitung an, indem er das Multi-Flow-Prozessdiagramm entwickelte, um mehrere Dokumente und deren Beziehungen darzustellen. 1947 nahm die ASME einen von Gilbreths ursprünglicher Arbeit abgeleiteten Symbolsatz als "ASME Standard: Operation and Flow Process Charts".

Douglas Hartree erklärte 1949, dass Herman Goldstine und John von Neumann ein Flussdiagramm (ursprünglich: Diagramm) zur Planung von Computerprogrammen entwickelt hatten. Seine zeitgenössische Darstellung wurde von IBM-Ingenieuren und von Goldstines persönlichen Erinnerungen bestätigt. Die ursprünglichen Programmierflussdiagramme von Goldstine und von Neumann finden sich in ihrem unveröffentlichten Bericht "Planning and coding of problems for an electronic computing instrument, Part II, Volume 1" (1947), der in von Neumanns gesammelten Werken abgedruckt ist.

Das Flussdiagramm wurde zu einem beliebten Werkzeug für die Beschreibung von Computeralgorithmen, aber seine Beliebtheit nahm in den 1970er Jahren ab, als interaktive Computerterminals und Programmiersprachen der dritten Generation zu gängigen Werkzeugen für die Computerprogrammierung wurden, da Algorithmen in solchen Sprachen prägnanter als Quellcode ausgedrückt werden können. Häufig wird Pseudocode verwendet, der die gängigen Idiome solcher Sprachen nutzt, ohne sich streng an die Details einer bestimmten Sprache zu halten.

Zu Beginn des 21. Jahrhunderts wurden Flussdiagramme noch für die Beschreibung von Computeralgorithmen verwendet. Moderne Techniken wie UML-Aktivitätsdiagramme und Drakon-Diagramme können als Erweiterungen des Flussdiagramms betrachtet werden.

Typen

Nach Sterneckert (2003) können Flussdiagramme aus der Perspektive verschiedener Benutzergruppen (z. B. Manager, Systemanalytiker und Sachbearbeiter) modelliert werden, und es gibt vier allgemeine Typen:

  • Dokumentenflussdiagramme, die die Kontrolle über einen Dokumentenfluss durch ein System zeigen
  • Datenflussdiagramme, die Kontrollen über einen Datenfluss in einem System darstellen
  • Systemflussdiagramme, die Kontrollen auf einer physischen oder Ressourcenebene darstellen
  • Programmablaufdiagramm, das die Kontrollen in einem Programm innerhalb eines Systems zeigt

Beachten Sie, dass sich jede Art von Flussdiagramm auf eine Art von Kontrolle konzentriert, und nicht auf den speziellen Fluss selbst.

Es gibt jedoch einige unterschiedliche Klassifizierungen. Andrew Veronis (1978) beispielsweise nannte drei Grundtypen von Flussdiagrammen: das Systemflussdiagramm, das allgemeine Flussdiagramm und das detaillierte Flussdiagramm. Im selben Jahr stellte Marilyn Bohl (1978) fest: "In der Praxis werden bei der Lösungsplanung zwei Arten von Flussdiagrammen verwendet: Systemflussdiagramme und Programmflussdiagramme...". In jüngerer Zeit hat Mark A. Fryman (2001) weitere Unterschiede festgestellt: "Entscheidungsflussdiagramme, Logikflussdiagramme, Systemflussdiagramme, Produktflussdiagramme und Prozessflussdiagramme sind nur einige der verschiedenen Arten von Flussdiagrammen, die in Wirtschaft und Verwaltung verwendet werden".

Darüber hinaus gibt es viele Diagrammtechniken, die Flussdiagrammen ähneln, aber einen anderen Namen tragen, wie z. B. UML-Aktivitätsdiagramme.

Bausteine

Gemeinsame Symbole

Das American National Standards Institute (ANSI) legte in den 1960er Jahren Normen für Flussdiagramme und ihre Symbole fest. Die Internationale Organisation für Normung (ISO) übernahm 1970 die ANSI-Symbole. Die aktuelle Norm, ISO 5807, wurde 1985 überarbeitet. Im Allgemeinen verlaufen Flussdiagramme von oben nach unten und von links nach rechts.

ANSI/ISO-Form Bezeichnung Beschreibung
Flowchart Line.svg Flusslinie (Pfeilspitze) Zeigt die Reihenfolge des Prozesses an. Eine Linie, die von einem Symbol ausgeht und auf ein anderes zeigt. Pfeilspitzen werden hinzugefügt, wenn der Fluss nicht standardmäßig von oben nach unten und von links nach rechts erfolgt.
Flowchart Terminal.svg Terminal Zeigt den Anfang und das Ende eines Programms oder Unterprozesses an. Sie werden als stadionförmiges, ovales oder abgerundetes (verrundetes) Rechteck dargestellt. Sie enthalten in der Regel das Wort "Start" oder "Ende" oder eine andere Phrase, die den Beginn oder das Ende eines Prozesses signalisiert, z. B. "Anfrage einreichen" oder "Produkt erhalten".
Flowchart Process.svg Prozess Stellt eine Reihe von Vorgängen dar, die den Wert, die Form oder den Ort von Daten ändern. Wird durch ein Rechteck dargestellt.
Flowchart Decision.svg Entscheidung Zeigt eine bedingte Operation an, die bestimmt, welchen der beiden Wege das Programm einschlagen wird. Die Operation ist in der Regel eine Ja/Nein-Frage oder ein Wahr/Falsch-Test. Dargestellt als Raute (Rhombus).
Flowchart IO.svg Eingabe/Ausgabe Bezeichnet den Prozess der Eingabe und Ausgabe von Daten, z. B. bei der Eingabe von Daten oder der Anzeige von Ergebnissen. Dargestellt als Raute (Rhombus).
Flowchart Annotation.svg Anmerkung (Kommentar) Gibt zusätzliche Informationen zu einem Programmschritt an. Wird als offenes Rechteck mit einer gestrichelten oder durchgezogenen Linie dargestellt, die es mit dem entsprechenden Symbol im Flussdiagramm verbindet.
Flowchart Predefined Process.svg Vordefinierter Prozess Zeigt einen benannten Prozess an, der an anderer Stelle definiert ist. Wird als Rechteck mit doppelt gestrichelten vertikalen Kanten dargestellt.
Flowchart Connector.svg On-page Verbinder Paare von beschrifteten Verbindungselementen ersetzen lange oder verwirrende Linien auf einer Flussdiagrammseite. Wird durch einen kleinen Kreis mit einem Buchstaben darin dargestellt.
Off page connector.png Off-Page-Verbinder Ein beschrifteter Verbinder zur Verwendung, wenn sich das Ziel auf einer anderen Seite befindet. Wird durch ein Fünfeck in Form einer Hausplatte dargestellt.

Andere Symbole

Die ANSI/ISO-Normen enthalten weitere Symbole, die über die Grundformen hinausgehen. Einige davon sind:

Form Bezeichnung Beschreibung
Flussdiagramm-Datenbank Datendatei oder Datenbank Daten, dargestellt durch einen Zylinder, der ein Laufwerk symbolisiert.
Flussdiagramm Dokument Dokument Einzelne Dokumente werden durch ein Rechteck mit gewellter Basis dargestellt.
Flussdiagramm Dokument mehrfach Mehrere Dokumente, dargestellt als Stapel von Rechtecken mit gewellter Grundfläche.
Flussdiagramm Manuelle Eingabe Manuelle Bedienung Dargestellt durch ein Trapez mit der längsten parallelen Seite oben, zur Darstellung eines Vorgangs oder einer Prozessanpassung, die nur manuell vorgenommen werden kann.
Flussdiagramm manuelle Eingabe Manuelle Eingabe Dargestellt durch ein Viereck, dessen Spitze unregelmäßig von links nach rechts ansteigt, wie die Seitenansicht einer Tastatur.
Flussdiagramm Vorbereitung Vorbereitung oder Initialisierung Dargestellt durch ein längliches Sechseck, das ursprünglich für Schritte wie das Setzen eines Schalters oder die Initialisierung einer Routine verwendet wurde.

Parallele Verarbeitung

  • Der Parallelmodus wird durch zwei horizontale Linien am Anfang oder Ende gleichzeitiger Operationen dargestellt

Bei paralleler und gleichzeitiger Verarbeitung zeigen die horizontalen Linien des Parallelmodus oder ein horizontaler Balken den Beginn oder das Ende eines Abschnitts von Prozessen an, die unabhängig voneinander ausgeführt werden können:

  • Bei einer Gabelung erzeugt der Prozess einen oder mehrere zusätzliche Prozesse, die durch einen Balken mit einem eingehenden Pfad und zwei oder mehreren ausgehenden Pfaden angezeigt werden.
  • Bei einer Verknüpfung werden zwei oder mehr Prozesse als ein einziger Prozess fortgesetzt, angezeigt durch einen Balken mit mehreren eingehenden Pfaden und einem ausgehenden Pfad. Alle Prozesse müssen abgeschlossen sein, bevor der einzelne Prozess fortgesetzt wird.

Software

Diagrammerstellung

Historische Zeichenschablone für Programmablauf­pläne (SEL, 1950er Jahre) mit Symbolen auch für Ein-/Ausgabeoperationen auf Lochkarte, Magnetband und Drucker

Programmablaufpläne wurden anfangs manuell erstellt, alsbald unterstützt durch spezielle Zeichenschablonen.

Mittlerweile bieten viele Grafik- und Büro-Programme Vorlagen zum vereinfachten Erstellen von Programmablaufplänen, unterstützende Funktionen oder spezielle Module. Spezielle Programme bieten oft zusätzliche Fähigkeiten wie zum Beispiel automatisches Entflechten („kreuzungsfrei machen“) von Pfeilen und Verknüpfungslinien, oder das Prüfen auf Korrektheit entsprechend der DIN. Mitunter können Ablaufpläne aus Pseudocode oder aus Quellcode einer bestimmten Programmiersprache automatisch generiert werden, oder es kann umgekehrt aus einem Programmablaufplan der zugehörige Quellcode in einer bestimmten Programmiersprache erstellt werden.

Flussalgorithmus

Jedes beliebige Zeichenprogramm kann zur Erstellung von Flussdiagrammen verwendet werden, diese haben jedoch kein zugrunde liegendes Datenmodell zur gemeinsamen Nutzung von Daten mit Datenbanken oder anderen Programmen wie Projektmanagementsystemen oder Tabellenkalkulationen. Es gibt viele Softwarepakete, die automatisch Flussdiagramme erstellen können, entweder direkt aus dem Quellcode einer Programmiersprache oder aus einer Flussdiagrammbeschreibungssprache.

Es gibt mehrere Anwendungen und visuelle Programmiersprachen, die Flussdiagramme zur Darstellung und Ausführung von Programmen verwenden. Im Allgemeinen werden diese als Lehrmittel für Anfänger verwendet. Beispiele sind Flowgorithm, Raptor, LARP, Visual Logic, Fischertechnik ROBO Pro und VisiRule.

Elemente

Hauptsächlich werden die folgenden Elemente verwendet:

  • 6.4.1: Kreis; Oval / Rechteck mit gerundeten Ecken: Terminator
Oval (Programmablaufplan).png
  • 6.3.1: Pfeil, Linie: Verbindung zum nächstfolgenden Element
Pfeil, Linie (Programmablaufplan).svg
  • 6.1.1: Rechteck: Operation (Tätigkeit)
Rechteck (Programmablaufplan).png
  • 7.2.4: Rechteck mit doppelten, vertikalen Linien: Unterprogramm ausführen
Rechteck mit doppelten, vertikalen Linien (Programmablaufplan).png
  • 6.1.3: Raute: Verzweigung / Entscheidungen
Raute (Programmablaufplan).png
  • 6.2.1: Parallelogramm: Ein- und Ausgabe (ist in der DIN 66001 von 1982 zwar definiert, soll jedoch nicht für PAs verwendet werden)
Parallelogramm (Programmablaufplan).png

Beispiel

Beispiel eines Flussdiagramms (Programmablaufplans)

Die nebenstehende Abbildung zeigt eine Zählschleife. Die Zählvariable i wird vor Beginn der Schleife auf ihren Startwert i=1 gesetzt. Danach wird die erste Anweisung der Schleife, das Ausgeben der Variable i, ausgeführt. Die nachfolgende zweite Anweisung ist eine Auswahl, die prüft, ob i den Wert 39 besitzt. Wenn dies der Fall ist, wird i auf den Wert 61 gesetzt und die Schleife beginnt mit dem nächsten Durchlauf. Falls i nicht 39 ist, wird i in der nachfolgenden Anweisung um eins erhöht und anschließend geprüft, ob die Schleifenfortsetzungsbedingung i≤100 gültig ist. Falls ja, erfolgt ein nochmaliger Schleifendurchlauf. Ausgegeben würden alle natürlichen Zahlen von 1 bis 39 sowie 61 bis 100 (jeweils einschließlich).