Flowchart
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.
På 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
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
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
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
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
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
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
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å 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:
![]() Flowchart for simpel if-sætning |
![]() Flowchart for if-sætning med else |
![]() Flowchart for else-if-struktur |
while-løkke
En while-løkke vil normalt kunne skitseres som følger:
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:
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
![]() Flowchart der viser kodeopbygningen i en for-løkke |
![]() 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-case struktur vist med klassisk flowchart |
![]() Switch-case struktur vist med ikke standard flowchart |