Wat is softwarevisualisatie?
Softwarevisualisatie is het gebruik van programma's of IDE-plug-ins (Integrated Development Environment) tijdens het ontwikkelen en testen van softwaretoepassingen. dit maakt het mogelijk om een grafische weergave van een bepaald aspect van de software te maken om te bepalen of er problemen of inefficiënties binnen het programma zijn. Er zijn een aantal soorten softwarevisualisatietechnieken, maar deze worden meestal gebruikt om details over programmabroncode te bekijken, om relaties tussen softwarecomponenten te onderzoeken of om een abstract overzicht te bekijken van hoe een programma wordt uitgevoerd, inclusief informatie over hoe het is interactie met omliggende processen. Over het algemeen wordt softwarevisualisatie op complexe systemen gebruikt om ongewoon gedrag of het gebruik van hulpbronnen te helpen ontdekken of om delen van een ontwerp te zien die onnodig of niet goed werken. De werkelijke visuele weergave die wordt gebruikt, varieert enorm, van onderling verbonden blokken tekst tot tweedimensionale (2D) staafdiagrammen tot driedimensionale (3D) objecten die van vorm veranderen terwijl een programma wordt uitgevoerd.
In sommige gevallen kan het handig zijn om softwarevisualisatie te gebruiken om naar de broncode voor een programma te kijken. Door het gebruik van kleuren en abstractie kunnen enorme hoeveelheden geschreven code tegelijk worden bekeken. De bedoeling kan zijn om te bepalen hoeveel code voor welk doel wordt gebruikt of, anders, de weergave kan worden gebonden aan een profiler of debugger die codeblokken markeert die lang duren om uit te voeren of die vaak worden uitgevoerd.
Object georiënteerde programmeertalen kunnen softwarevisualisatie gebruiken om relaties tussen de verschillende bibliotheken, klassen en methoden in een programma te bepalen. Dit helpt om afhankelijkheden tussen de verschillende delen van een programma te bepalen, waarvan sommige onbedoeld kunnen zijn. Het kan ook klassen of methoden in een programma weergeven die nooit worden aangeroepen of die door de programmalogica onbereikbaar zijn. Visueel kan een afhankelijkheids- of relatiegrafiek eruit zien als een netwerk van webben en lijnen, overlappende bollen van verschillende grootte, of zelfs de takken van een boom.
Zodra een programma wordt uitgevoerd, kan realtime softwarevisualisatie een abstracte weergave weergeven van hoe het programma wordt uitgevoerd, hoe verschillende wachtrijen worden verwerkt en hoe invoer en uitvoer stromen. Dit kan ontwikkelaars helpen om pieken of gaten in de prestaties en gebieden met een uitzonderlijk hoge activiteit te zien. Dit soort visualisaties kan eruit zien als bijna alles, van bewegende gekleurde blokken en golfvormen tot veranderende topografische kaarten die vertegenwoordigen dat codesegmenten worden uitgevoerd. Over het algemeen wordt de visualisatie echter vrij eenvoudig gehouden, zodat abnormale gebeurtenissen duidelijk kunnen worden gezien en waargenomen zonder al te veel grafische rommel.
Er zijn andere applicaties voor softwarevisualisatie, waaronder de reverse-engineering van een applicatie. Door te observeren hoe een programma op elkaar inwerkt en draait, kunnen verschillende segmenten van de code worden gefocust zonder dat een steile initiële leercurve nodig is. Nog een specifiek gebruik is op het gebied van computerbeveiliging om te observeren welke delen van een programma interactie hebben met externe processen of welke gebieden kunnen worden aangevallen.