Hvad er softwarevisualisering?
Softwarevisualisering er handlingen ved at bruge programmer eller plug-ins til integreret udviklingsmiljø (IDE) under udvikling og test af softwareapplikationer; dette muliggør oprettelse af en grafisk repræsentation af et eller andet aspekt af softwaren med det formål at bestemme, om der er problemer eller ineffektivitet i programmet. Der er en række typer softwarevisualiseringsteknikker, men de bruges oftest til at se detaljer om programkildekode, til at undersøge forholdet mellem softwarekomponenter eller for at se et abstrakt billede af, hvordan et program udføres, herunder information om, hvordan det er interagere med omgivende processer. Generelt bruges softwarevisualisering på komplekse systemer til at hjælpe med at opdage uden for den sædvanlige opførsel eller ressourceforbrug, eller til at se områder i et design, der er unødvendige eller funktionsfejl. Den aktuelle visuelle repræsentation, der bruges, varierer meget fra sammenkoblede tekstblokke til to-dimensionelle (2D) søjlediagrammer til detaljerede tredimensionelle (3D) objekter, der ændrer form, når et program kører.
I nogle tilfælde kan det være nyttigt at bruge softwarevisualisering til at se på kildekoden til et program. Gennem brug af farvelægning og abstraktion kan massive mængder af skrevet kode vises på én gang. Hensigten kunne være at bestemme, hvor meget kode der bruges til hvilket formål, eller skiftevis kan skærmen være bundet til en profiler eller debugger, der fremhæver blokke med kode, der tager lang tid at udføre, eller som udføres ofte.
Objektorienteret programmeringssprog kan bruge softwarevisualisering til at bestemme forholdet mellem de forskellige biblioteker, klasser og metoder i et program. Dette hjælper med at bestemme afhængigheder mellem de forskellige områder i et program, hvoraf nogle kan være utilsigtede. Det kan også vise klasser eller metoder i et program, der aldrig kaldes, eller som programlogikken gør uværdig. Visuelt kan et afhængigheds- eller relationskort se ud som et netværk af baner og linjer, overlappende sfærer i forskellige størrelser eller endda grenene til et træ.
Når et program kører, kan visualisering af software i realtid vise abstrakt repræsentation af, hvordan programmet udføres, hvordan forskellige køer håndteres, og hvordan input og output flyder. Dette kan hjælpe udviklere med at se pigge eller huller i ydeevne og områder, der får usædvanlig høj aktivitet. Disse typer visualiseringer kan ligne næsten alt fra bevægelse af farvede blokke og bølgeformer til skiftende topografiske kort, der repræsenterer kodesegmenter, der udføres. Generelt holdes visualiseringen imidlertid temmelig grundlæggende, så anomale begivenheder tydeligt kan ses og observeres uden overdreven grafisk rod.
Der er andre applikationer til softwarevisualisering, hvoraf den ene er omvendt konstruktion af en applikation. Ved at observere, hvordan et program interagerer og kører, kan forskellige segmenter af koden fokuseres på uden at kræve en stejl indledende læringskurve. En mere specifik anvendelse er inden for computersikkerhed til at observere, hvilke områder i et program interagerer med processer udenfor, eller hvilke områder der er åbne for angreb.