Forum: Mikrocontroller und Digitale Elektronik Firmware - Flußdiagramm - Variablen oder Wortlaut?


von Johann (Gast)


Lesenswert?

Hallo zusammen!

Ich schreibe gerade an meine Diplomarbeit und würde gerne mal wissen, 
wie ihr das so bei euren Flußdiagrammen haltet. Da ich alle meine 
Variablen in Strukturen angeordnet habe, sind die Variablenname 
insgesamt ziemlich lang und somit für ein Flußdiagramm doch eher 
unpassend.
Also beschreibe ich das Flußdiagramm sinngemäß mit Worten. Allerdings 
fehlt mir dann irgendwie der richtige Bezug zum Programm selbst, da sich 
der Leser ja nun alle Variablen selbst zusammenklamüsern muss... Bin 
leicht verwirrt und finde im Webz leider nichts so wirklich 
interessantes zu dem Thema.

Habt ihr da evtl. einen Tipp? :)

Gruß und vielen Dank,

 Johann

von Juergen G. (jup)


Lesenswert?

Schreib einfach die Strukturnamen in den Kopf des Flussdiagrammes, und 
verwende in den Kaesten dann nur das was nach den Punkten kommt.

Mach die FD's in moeglichst kleinen Teilen also auf Funktionsebene
und verweise in den anderen FD's auf die Namen.

Ju

von Johann (Gast)


Lesenswert?

Hallo Ju,

danke für die Antwort! Ich stell mich da jetzt mal ein bisschen blöd und 
frage ganz frech ob du da nicht vielleicht ein Beispiel hast? Wär super 
:-)

Gruß, Johann

von Steel (Gast)


Lesenswert?

Wie lang sind denn die Variablennamen? Sprechende bezeichner sind gut, 
SCHREIENDE sind schrott.

Hab mal eine Software gesehen wo der Verunstalter Variablen wie Sätze 
ausgeschrieben hat.

 Sowas ist Amateurliga.

-> 
Diese_Variable_wird_jeden_Schreifendurchlauf_incrementiert_und_ist_vom_T 
yp_integer  = 
Diese_Variable_wird_jeden_Schreifendurchlauf_incrementiert_und_ist_vom_T 
yp_integer+1;

von Juergen G. (jup)


Lesenswert?

Du hast zBsp.: zwei Struct's

typedef struct {
  uint16_t limits[4];
  uint16_t home[4];
  uint8_t backlash[4];
  uint16_t minvel;
  uint16_t maxvel;
  uint16_t cylMoveTimeOut;
  uint16_t stepDelay;
} t_MachineProfile;

typedef struct {
   uint16_t x;
  uint16_t y;
  uint8_t  z;
  uint16_t a;
} t_Position;

und die Variablen global

t_Position pos;
t_MachineProfile mProfile;


ein FD faengt mit dem "Start - Oval" an
in dieses Oval schreibst Du

      Start
(with: pos, mProfile)

und in den Kaesten oder Romben

dann

x == limits[0]

oder

backlash[3] = a;

von Johann (Gast)


Angehängte Dateien:

Lesenswert?

Das war jetzt mal mein erster Versuch... bin aber nicht wirklich 
glücklich damit...
Ist das verständlich genug?

von Johann (Gast)


Lesenswert?

Ist natürlich auch noch nicht vollständig, es fehlen bei den 
Verzweigungen noch die Nein-Zweige. Soll nur ein Beispiel sein! :-)

von Juergen G. (jup)


Lesenswert?

Steel schrieb:
> Sowas ist Amateurliga.
>
> ->
> Diese_Variable_wird_jeden_Schreifendurchlauf_incrementiert_und_ist_vom_T
> yp_integer  =
> Diese_Variable_wird_jeden_Schreifendurchlauf_incrementiert_und_ist_vom_T
> yp_integer+1;

Full Ack;

Soweit ich mich erinnern kann werden vom Compiler nur die ersten 36 
(oder so) Zeichen zur Unterscheidung der Variablen benutzt.
Oder ist das Alte Schule?

Ich hab mich an die Kamel-Schreibweise gewoehnt. Und verwende fuer 
locale oder globale Variablen Prefixe in menuscula.

Ju

von Johann (Gast)


Lesenswert?

Oder ich mache natürlich alles mit den Variablen und beschreibe diese 
dann im begleitenden Text, wöre ja auch möglich oder? Dieser Mischmasch 
ist irgendwie so .. naja :-/

von Juergen G. (jup)


Lesenswert?

Johann schrieb:
> Das war jetzt mal mein erster Versuch... bin aber nicht wirklich
> glücklich damit...
> Ist das verständlich genug?

Viel zu viel geschreibe in den Kaesten.

Deine Variablennamen sind verstaendlich genug.
Du kannst die erklaerenden Texte weglassen.

verwende lieber gleich die C-Syntax

also
adcAN1Val_us = x

oder in den Verzweigungen

adcAN1Val_us <= 100?

von Juergen G. (jup)


Lesenswert?

Als algemeinen Hinweis vielleicht noch eines.

Wenn ein Flussdiagramm als Grundlage zur Programmierung dient solltest 
Du  Pseudocode-Syntax oder Syntax der Programmiersprache verwenden in 
der auch das Programm geschrieben wird.

Ist das Flussdiagramm naturwissenschaftlicher Art solltest Du die 
Mathematischen Syntax und Operatoren verwenden.

Derjenige der Deine DA liest sollte wissen auf was er gefasst sein darf 
und sollte eine entsprechende Vorbildung mitbringen.


Ju

von Amir Troglodim (Gast)


Lesenswert?

Ein Flussdiagramm ist ja eher etwas von den einfacheren 
Dokumentationsmoeglichkeiten. Meist muss auch noch ein 
State-Event-Action-Diagramm hin.

von Stefan F. (sfrings)


Lesenswert?

Lieber nicht Konstrukte der Programmiersprache in dem Diagramm 
verwenden. Für den Programmierer ist das toll, aber für nicht 
Programmierer ungünstig.

Beschäftige Dich mal mit UML. UML ist eine Darstellungssprache, die 
unter anderem auch für solche Diagramme vorgesehehn ist. Ziel von UML 
ist es, eine eindeutige Symbolik umabhängig von der Programmiersprache 
zu verwenden. So wie auch die Mathematik, die Chemie und die Musik ihre 
eigene standarisierte Symbolsprache verwendet.

Ich denke, UML ist inzwischen allgemeiner Standard. Übrigens können die 
aktuellen Office Programme neben ihrer alten eigenen Symbolbibliothek 
auch UML.

Schau es Dir mal a, Du wirst sehen, dass ein UML Diagramm fast genau so 
aussieht, wie Dein Entwurf. Nur mit dem Vorteil, dass UML Dir ganz genau 
vorschreibt, wie Du die Symbole, Linien und Pfeile zu beschriften hast.

von Johann (Gast)


Lesenswert?

Hm ich habe UML nur mal in einer Informatikvorlesung gesehen und da 
wurde meiner Erinnerung nach gesagt, dass es sich eher für OOP eignet. 
Da ich ja weder Klassen o.ä. in meiner Mikrocontrollerprogramm habe, 
dachte ich ein Flußdiagramm wäre besser. Ich glaube das wäre jetzt zu 
aufwändig mich für diese Programm in UML einzuarbeiten. ;)

Ich habe das jetzt erstmal so  umgesetzt, dass ich den gesamten 
Algorithmus zu meiner Regelung als Diagramm in Wortform darstelle und 
die einzelnen Teilbereiche dann in C-Syntax schreibe. Zusätzlich dazu 
erfolgt eine kurze Beschreibung in Textform. Gefällt mir ganz gut soweit 
:-)

Vielen Dank für die Hilfe!

von Johann (Gast)


Lesenswert?

Es wird spät und man möge mir meine Tippfehler verzeihen ;-)

von StinkyWinky (Gast)


Lesenswert?

Normalerweise macht man ein Flussdiagramm BEVOR man codiert. Der Code 
ist also noch unbekannt. Daher haben Variablennamen im FD nichts 
verloren.

Es geht um die Übersicht des Ablaufes, der auch für Nicht-Programmierer 
verständlich sein soll.

von oszi40 (Gast)


Lesenswert?

Bilder sagen mehr als Worte. Daher kann ein simples Flußdiagramm den 
Erkenntnisprozeß der späteren Leser verbessern. Einen Irrgarten sollte 
man aber vermeiden. MS-Visio wäre eine Variante wenn es nicht so teuer 
wäre.

von Stefan F. (sfrings)


Lesenswert?

UML ist keine Programmiersprache und hat mit OOP nur wenig gemeinsam.

UML ist geeignet, um OOP Programme zu dokumentieren. Es ist aber auch 
genau so gut geeignet, andere Programme oder Prozesse zu beschreiben. 
UML ist sogar dazu gedacht, Geschätfsprozesse, Abteilungs-Hierarchien 
und Timing-Diagramme zu erstellen.

Was Du da gezeichnet hast, ist im beinahe ein UML Diagramm. UML legt 
präzise fest, wann eine Linie durchgezogen oder gestrichelt gezeichnet 
wird. UML legt auch fest, wozu Pfeile dienen, wie man die Ausgänge einer 
Entscheidung beschriftet und so weiter.

Objektstrukturen sind nur ein kleiner Teil von UML. UML deckt aber auch 
genau solche Diagramme ab, wie das von Dir gezeichnete. Der Vorteil in 
UML besteht darin, das die Symbole spezifiziert sind.

Du kannst UML Diagramme auf der ganzen Welt vorziegen. Jeder der UML 
beherrscht, wird Dein Diagramm ohne großartige Erklärungen verstehen.

Hätten wir kein UML, dann würde jeder andere Symbole verwenden und man 
müsste erstmal erklären, was die Symbole bedeuten. Ich könnte z.B. 
Dreiecke für Entscheidungen verwenden, die "Ja" Ausgänge grün malen und 
die "Nein" Ausgänge rot malen. Jemand anderes würde ganz andere Symbole 
verwenden und andere Farben. Und was, wenn die Entscheidung mehr als nur 
ja/nein Möglichkeiten kennt? Wie stellt man das dann dar? UML 
beantwortet diese Frage eindeutig.

So wie man Schaltplane mit weitgehend genormten Symbolen zeichnet, 
sollte man auch Diagramme mit genormten Symbolen zeichnen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.