Hvad er en kontrolflowgrafik?
En styrestrømgrafik (CFG) er en visuel repræsentation af de forskellige stier, som et computerprograms kode kan tage. En CFG består af en række symboler, kaldet noder, der er forbundet med pile, der viser rute, som hver enkelt kan tage til den næste knude. Hver knude repræsenterer en betydelig linje eller linjer med programmeringskode. Der er flere måder at gengive en CFG, men de er alle læses generelt på samme måde. I udseendet er en kontrolflowgraf ikke i modsætning til et flowdiagram.
Et af de primære formål med at oprette en kontrolstrømningsgraf er at finde ud af, om der er dele af et computerprogram, der er unødvendige. Dette kan let opnås, når man ser på kontrolflowdiagrammet. Enhver knude, der ikke har en pil, der forbinder den med resten af noderne, kan fjernes.
Et andet formål, som en kontrolflowgraf tjener, er at hjælpe med at isolere problemer såsom uendelige sløjfer, hvor programudførelse ikke bevæger sig ud over en enkelt knude. Hver pil på diagrammet viser, hvilken betingelse der skal være opfyldt for at flytte til den knude, som den punkter, så situationer, hvor denne betingelse aldrig er opfyldt, kan opdages, fordi det får programmet til at cykle tilbage til den forrige knude igen og igen.
Endelig kan en kontrolflowgraf hjælpe med at skabe en programafhængighedsgraf. Denne type graf viser, hvilke områder i et program er afhængige af andre dele. I datalogi bruges dette til at etablere en evalueringsordre til Sørg for, at programkoden udføres i den rigtige rækkefølge.
Den visuelle natur af en kontrolstrømningsgraf er en af de funktioner, der kan gøre det potentielt uvurderligt. Stykker af kode, der aldrig direkte kaldes eller fås adgang til, vil være temmelig indlysende, fordi der enten ikke er nogen pile, der forbinder det til hovedprogrammet eller betingelserne viser, at de aldrig kan opfyldes for at nå koden. Der er computerprogrammer, der automatisk kan generere en kontrolflowgraf, der er baseret på en række kildekodefiler, hvilket yderligere forenkler processen.
En kontrolflowgrafik kan repræsenteres på et vilkårligt antal måder og kan derfor vises forskelligt afhængigt af hvem der har produceret den. Nogle grafer bruger cirkler eller firkanter udelukkende til at repræsentere knudepunkter, mens andre bruger de samme former som et standard flowdiagram. Selvom de læses nøjagtigt på samme måde, er den valgte metode rent personlig præference.