Als ich mit dem Programmieren anfing, stützte ich mich stark auf Flussdiagramme (und Druckerbeabstandungsdiagramme). Während ich in der COBOL-Klasse war, konnte ich keinen Code schreiben, bis mein Flussdiagramm vom Kursleiter abgemeldet wurde. Damals musste ich für alles ein Flussdiagramm erstellen.
Heute, fünfundzwanzig Jahre später, sehe ich mich nur noch zwei Arten von Dingen gegenüber. Sehr spezifische Algorithmen, bei denen die Logik knifflig ist oder sehr allgemeine Konzepte, um sicherzustellen, dass alle großen Schritte definiert und in der richtigen Reihenfolge ausgeführt werden.
Gibt es andere Anwendungsfälle für Flussdiagramme, die ich einfach übersehen habe?
quelle
noch nie
Flussdiagramme - insbesondere seit über 25 Jahren - wurden durch weitaus aussagekräftigere Diagrammtechniken ersetzt (siehe Aktionsdiagramme, Sequenzdiagramme, Zustandsdiagramme usw.).
IBMs eigene Untersuchungen zeigten , dass die Verwendung von Flussdiagrammen auf der Qualität eines Systems Design oder Umsetzung keine Wirkung hatte (obwohl sie für die Kommunikation mit den Nutzern und anderen Entwicklern marginal nützlich war) [genaue Angabe nicht ohne weiteres verfügbar, wurden aber in James Martin zitiert Diagramming Techniques für Analysten und Programmierer .
quelle
Ich habe seit meiner ersten Programmierstunde 1976 kein klassisches Flussdiagramm gezeichnet und seit den frühen 80ern niemanden mehr gesehen, der eines erstellt hat. Flussdiagramme waren nützlich, um die Programmlogik zu kommunizieren, wenn der Code in Assemblersprache war. In den späten 1960er Jahren verwendeten Assembler-Programmierer Pseudo-Code. Bei der Programmierung in modernen OO-Sprachen haben weder Flussdiagramme noch Pseudocode einen Wert. Sie können auch Code auf hoher Ebene in der Implementierungssprache schreiben.
Ich zeichne gelegentlich UML-Diagramme, meistens auf Papier, um Gestaltungsideen auszudrücken, aber diese Diagramme leben nur bis zum Ende der Diskussion. Von Zeit zu Zeit zeichne ich auch Zustandsübergangsdiagramme und konvertiere sie dann in eine Zustandstabelle in der Implementierungssprache.
quelle
Ich benutze die ganze Zeit Flussdiagramme aus einer Reihe von Gründen:
Sie sind meiner Meinung nach besser als UML-Anwendungsfalldiagramme. Sie können eine Reihe von verschiedenen Anwendungsfällen widerspiegeln und wie sie interagieren, und sie leisten insgesamt eine bessere Arbeit, indem sie die Benutzererfahrung und Entscheidungen zusammenführen.
Sie sind verständlicher und intuitiver. Dein Verstand folgt den Pfeilen natürlich wie ein Labyrinth von Anfang bis Ende. Sie können Flussdiagramme verwenden, um ein anderes Flussdiagramm für eine andere User Story zu beenden und darauf zu verweisen. Normalerweise kann ich sie in einem Buch mit Seitennummern drucken und schnell umblättern, um zum nächsten Flussdiagramm zu navigieren.
Sie sind universell. Nur wenige Personen außerhalb des Software-Engineerings kennen und verstehen UML-Diagramme, bei denen Flussdiagramme für Benutzer und Geschäftsanalysten besser erkennbar sind. Ich versuche, Kunden komplexe Anwendungsfälle zu vermitteln, und sie haben manchmal Schwierigkeiten, diese zu verstehen. Ich zeichne ihnen ein Flussdiagramm und sie verstehen, warum sie endlich alle Nuancen verstehen, die sie VIEL komplexer machen, als sie dachten.
quelle
Flussdiagramme sind nützlich, wenn bestimmte Aufgaben in einer bestimmten Reihenfolge ausgeführt werden müssen. Wo sie wirklich in meinem Kopf leuchten, zeigt sich, wo Entscheidungen getroffen werden, und stellt sicher, dass jede mögliche Entscheidung einen Weg hat. Auf diese Weise wird verhindert, dass Programme erstellt werden, für die eine Genehmigung von mamager erforderlich ist. Sie haben jedoch keine Möglichkeit, damit umzugehen, wenn der Manager (der in 98% der Fälle zustimmt) Nein sagt. Sie erinnern uns daran, dass der häufigste Weg nicht der einzige Weg ist. Ich finde sie nützlich, wenn ich mit Benutzern über Anforderungen spreche, da sie häufig nur den gängigsten Pfad angeben.
quelle
Flussdiagramme können für das Reverse Engineering von sehr schlecht strukturiertem Code nützlich sein. Besonders wenn es gotos hat. Zum Glück habe ich in letzter Zeit nicht viel Code gesehen, der noch nicht richtig verstanden wurde.
Wie andere für die Kommunikation mit Endbenutzern angegeben. Ich sortiere die Inbetriebnahme eines Fernsehsenders anhand eines Flussdiagramms. Die Hard- und Softwareleute hatten eine gemeinsame Spezifikation, an der sie arbeiten konnten.
quelle
UML-Aktivitätsdiagramm und Flussdiagramm sind nützlich, um die geringe bis mittlere Komplexität eines Prozesses oder Algorithmus darzustellen.
Sie sind sehr gut in der Kommunikation mit Geschäftsbenutzern über Geschäftsregeln.
Es gibt eine Variante der BPMN 2.0, die bei der Geschäftsprozessmodellierung sehr nützlich ist.
Einige BPMN-Tools können aus Diagrammen laufende Webanwendungen generieren.
Also ja, Flussdiagramme haben immer noch einen Platz, aber sie müssen mit Bedacht verwendet werden.
quelle
Ich bin kein Programmierer. Ich bin ein Hardwaretechniker.
Für mich ist es sinnvoll, zumindest mit Kommentaren zu beginnen, in denen die verwendeten logischen Blöcke erläutert werden. Anschließend das Programmskelett mit aktuellem Code ausarbeiten. Es ähnelt dem Starten eines Filmskripts mit einem Storyboard und dem anschließenden Ausfüllen der Aktionsdetails und des Dialogfelds.
Sollte ein lohnendes Unterfangen nicht sorgfältig geplant werden? Im Hardwarebereich beginnen wir mit einem Kundenanforderungsdokument, schreiben dann ein Hardwarespezifikationsdokument, erstellen den Schaltplan, zeichnen ein Platinenlayout und erstellen dann die Baugruppendokumentation. Wir fangen nicht nur an, Teile zu greifen und zusammenzulöten, sondern entwickeln Ideen für das Endprodukt.
Ich sehe nicht, wie effizient Code in einem 15KB oder 15MB Programm ohne viel Vorarbeit geschrieben werden kann, bevor die eigentliche Codierung gestartet wird.
quelle