Programmablaufplan
| |||
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. ⓘ
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
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 ⓘ |
---|---|---|
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. | |
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". | |
Prozess | Stellt eine Reihe von Vorgängen dar, die den Wert, die Form oder den Ort von Daten ändern. Wird durch ein Rechteck dargestellt. | |
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). | |
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). | |
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. | |
Vordefinierter Prozess | Zeigt einen benannten Prozess an, der an anderer Stelle definiert ist. Wird als Rechteck mit doppelt gestrichelten vertikalen Kanten dargestellt. | |
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-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 ⓘ |
---|---|---|
Datendatei oder Datenbank | Daten, dargestellt durch einen Zylinder, der ein Laufwerk symbolisiert. | |
Dokument | Einzelne Dokumente werden durch ein Rechteck mit gewellter Basis dargestellt. | |
Mehrere Dokumente, dargestellt als Stapel von Rechtecken mit gewellter Grundfläche. | ||
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. | |
Manuelle Eingabe | Dargestellt durch ein Viereck, dessen Spitze unregelmäßig von links nach rechts ansteigt, wie die Seitenansicht einer Tastatur. | |
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
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. ⓘ
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
- 6.3.1: Pfeil, Linie: Verbindung zum nächstfolgenden Element
- 6.1.1: Rechteck: Operation (Tätigkeit)
- 7.2.4: Rechteck mit doppelten, vertikalen Linien: Unterprogramm ausführen
- 6.1.3: Raute: Verzweigung / Entscheidungen
- 6.2.1: Parallelogramm: Ein- und Ausgabe (ist in der DIN 66001 von 1982 zwar definiert, soll jedoch nicht für PAs verwendet werden)
Beispiel
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). ⓘ