Flowchart

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

Flowcharts anvendes til at beskrive funktionen af software.

Når man tegner et flowchart, så handler det om at give en mere overskuelig beskrivelse af softwaren.

Til brug for dette anvendes nogle standard figurer som man forbinder pile, så man beskriver de handlinger programmet udfører, og hvilken rækkefølge programmet gør det i. Denne dokumentationsform egner sig godt til programmer med sekventiel opførsel.

ISO Standard

Tegnemåden til Flowcharts er standardiseret inden for ISO 5807, så symboler og pile skal tegnes ud fra denne standard.

Standarden er defineret på ISO-organisationens hjemmeside[1], men her skal man betale for at kunne læse dokumentet.

Der ligger en udemærket beskrivelse på denne hjemmeside https://www.wikiwand.com/en/Flowchart[2], hvor de elementer der passer bedst til beskrivelse af program-flow er taget fra.

Software værktøj

Flowchart kan på enkel vis tegnes ved hjælp af Dia, der kan hentes på Dias download side.

Alternativt kan man anvende draw.io, der ligger på sin egen side, hvor man kan tegne diagrammer uden at installere et program.

https://app.diagrams.net/ ligger også et alternativ, som er godt at tegne flowcharts i.

Tegnestandarden

Herunder vises de elementer der indgår i tegnestandarden omkring flowcharts, specielt til at vise et program-flow.

Start og Stop

Til at angive starten af et program anvendes en aflang figur med afrundede ender som vist her:

Figuren der anvendes til at starte programforløbet i et flowchart med
Figuren der anvendes til at starte programforløbet i et flowchart med

Normalt placeres start-figuren i toppen af flowchartet, så man får en normal læseretning.

Nogle programmer afsluttes også, og den samme form anvendes til at afslutte et program med, som vist her:

Figuren der anvendes til at afslutte programforløbet i et flowchart med
Figuren der anvendes til at afslutte programforløbet i et flowchart med

Normalt når man har en afslutning på programmet, så placeres den i bunden af flowchartet.

Andre typer programmer afsluttes ikke, men vil fortsætte med at loope (som fx Arduino). Her vil man bare udelade stop-funktionen, og føre en pil derop hvor der loopes.

Handlinger

Når et program skal udføre en form for handling (gerne bestående af flere programlinjer), så anvendes et rektangel som vist her:

Figuren der anvendes til at udføre en handling i flowchartet
Figuren der anvendes til at udføre en handling i flowchartet

Normalt vil programforløbet komme ind i toppen af rektanglet, men det kan også komme ind af en side. Normalt vil programforløbet komme ud af bunden. Dette giver det mest naturlige læseforløb.

Betingelser

Både i if-sætninger og i loops anvendes betingelser, der illustreres med en rhombe som vist her:

Figuren der anvendes til at udføre en betingelse i flowchartet
Figuren der anvendes til at udføre en betingelse i flowchartet

Som det kan ses vil program komme ind i toppen af rhomben, og normalt vil den opfyldte betingelse komme ud af den ene side eller bunden, og den ikke opfyldte betingelse vil komme ud af den anden mulighed.

Der noteres ved linjerne hvad der kommer ud hvor (ja / nej).

Input og Output

For at angive at noget i et flowchart læser et input der kommer ude fra, eller at programmet sender et output til fx en skærm anvendes et parallelogram som vist her:

Figuren der anvendes til at angive et input eller et output i flowchartet
Figuren der anvendes til at angive et input eller et output i flowchartet

Normalt vil programforløbet komme ind i toppen af parallelogrammet, men det kan også komme ind af en side. Normalt vil programforløbet komme ud af bunden. Dette giver det mest naturlige læseforløb.

Kommentarer

Ønsker man at tilknytte en kommentar til en bestemt del af et flowchart kan det gøres som vist her:

Figuren der anvendes til at angive en kommentar i flowchartet
Figuren der anvendes til at angive en kommentar i flowchartet

Rutiner

Til mere sammensatte handlinger kan anvendes symbolet til en rutine som vist her:

Figuren der anvendes til at angive en sammensat rutine i flowchartet
Figuren der anvendes til at angive en sammensat rutine i flowchartet

Normalt vil dette symbol anvendes til rutiner, som bliver dokumenteret i sit eget selvstændige flowchart.

Forbindelser

Normalt anbefales det at holde flowcharts så simple at de er lette at overskue, men i enkelte tilfælde kan det være relevant at lave så store og komplekse flowcharts, at man er nødt til at dele flowchartet op. Det gøres forskelligt, alt efter om det er på samme side det fortsætter eller om det fortsætter på en anden side. De to symboler er vist her:

Figuren der anvendes til at angive en forbindelse til en anden del af flowchartet på samme side
Figuren der anvendes til at angive en forbindelse til en anden del af flowchartet på samme side

Figuren der anvendes til at angive en forbindelse til en anden del af flowchartet på en anden side
Figuren der anvendes til at angive en forbindelse til en anden del af flowchartet på en anden side

Program-Strukturer vist som flowchart

De grundlæggende strukturer der anvendes i de fleste programmeringssprog er vist ved beskrivelsen af strukturerne.

if-betingelsen

If kan kombineres med else til at give følgende strukturer:

If-flowchart.png

Flowchart for simpel if-sætning

If-else-flowchart.png

Flowchart for if-sætning med else

Else-if-flowchart.png

Flowchart for else-if-struktur

while-løkke

En while-løkke vil normalt kunne skitseres som følger:

While-flowchart.png
Flowchart der viser et eksempel på en while-løkke

do-while-løkke

En while-løkke vil normalt kunne skitseres som følger:

Do-while-flowchart.png
Flowchart der viser et eksempel på en do-while-løkke

for-løkke

For-løkken er lidt kompliceret at skitsere, og vil derfor tit blive simplificeret til en simpel handlingsboks, hvor der beskrives at noget gentages et antal gange

For-flowchart.png

Flowchart der viser kodeopbygningen i en for-løkke

For-kasse-flowchart.png

Flowchart der viser et simplere eksempel på en for-løkke

switch-strukturen

En forgrening ved hjælp af en switch-case struktur kan illustreres som følger, enten på en måde så den ligner en else-if struktur, eller med et modificeret symbol:

Switch-case1-flowchart.png

Switch-case struktur vist med klassisk flowchart

Switch-case2-flowchart.png

Switch-case struktur vist med ikke standard flowchart