Hva er programvarevisualisering?
Programvarevisualisering er handlingen ved å bruke programmer eller plug-ins for integrert utviklingsmiljø (IDE) under utvikling og testing av programvare; Dette gjør det mulig å lage en grafisk fremstilling av et aspekt av programvaren for å bestemme om det er problemer eller ineffektivitet i programmet. Det finnes en rekke typer programvarevisualiseringsteknikker, men de blir ofte brukt for å se detaljer om programkildekode, for å undersøke forhold mellom programvarekomponenter eller for å se et abstrakt syn på hvordan et program kjører, inkludert informasjon om hvordan det er samspill med omkringliggende prosesser. Generelt brukes programvarevisualisering på komplekse systemer for å oppdage utenom den vanlige atferden eller ressursbruk, eller for å se områder av en design som er unødvendig eller funksjonsfeil. Den faktiske visuelle representasjonen som brukes varierer veldig fra sammenkoblede tekstblokker til todimensjonale (2D) søylediagrammer for å utdype tredimensjonale (3D) objekter som endrer form mens programmet kjører.
I noen tilfeller kan det være nyttig å bruke programvarevisualisering for å se på kildekoden for et program. Gjennom bruk av fargelegging og abstraksjon kan massive mengder skrevet kode vises på en gang. Hensikten kan være å bestemme hvor mye kode som brukes til hvilket formål, eller alternativt kan skjermen være bundet til en profiler eller feilsøking som fremhever blokkering av kode som det tar lang tid å utføre eller som blir utført ofte.
Objektorienterte programmeringsspråk kan bruke programvarevisualisering for å bestemme forholdet mellom de forskjellige bibliotekene, klasser og metoder i et program. Dette er med på å bestemme avhengigheter mellom de forskjellige områdene i et program, hvorav noen kan være utilsiktede. Den kan også vise klasser eller metoder i et program som aldri blir kalt eller at programlogikken gjør uoppnåelig. Visuelt kan et avhengighets- eller relasjonskart se ut som et nettverk av nett og linjer, overlappende sfærer i forskjellige størrelser, eller til og med grenene til et tre.
Når et program kjører, kan programvarevisualisering i sanntid vise abstrakt representasjon av hvordan programmet kjøres, hvordan forskjellige køer blir håndtert og hvordan input og output flyter. Dette kan hjelpe utviklere til å se pigger eller hull i ytelse og områder som har eksepsjonell høy aktivitet. Denne typen visualiseringer kan se ut som nesten alt fra å bevege fargede blokker og bølgeformer til å endre topografiske kart som representerer kodesegmenter som blir utført. Generelt holdes visualiseringen imidlertid ganske grunnleggende slik at anomale hendelser kan sees og observeres uten overdreven grafisk rot.
Det er andre applikasjoner for programvarevisualisering, hvorav den ene er omvendt prosjektering av et program. Ved å observere hvordan et program samhandler og kjører, kan forskjellige segmenter av koden fokuseres på uten å kreve en bratt innledende læringskurve. En mer spesifikk bruk er innen datasikkerhet for å observere hvilke områder i et program som samhandler med prosesser utenfor, eller hvilke områder som er åpne for angrep.