Vizualizarea software este actul de utilizare a programelor sau a plug-in-urilor pentru mediul de dezvoltare integrat (IDE) în timpul dezvoltării și testării aplicațiilor software; aceasta permite crearea unei reprezentări grafice a unui aspect al software-ului în scopul de a determina dacă există probleme sau ineficiențe în cadrul programului. Există o serie de tipuri de tehnici de vizualizare a software-ului, dar ele sunt utilizate cel mai frecvent pentru a vedea detalii despre codul sursă al programului, pentru a examina relațiile dintre componentele software sau pentru a urmări o vedere abstractă a modului în care se execută un program, inclusiv informații despre cum este acesta. interacționând cu procesele din jur. În general, vizualizarea software este utilizată pe sisteme complexe pentru a ajuta la descoperirea comportamentelor ieșite din comun sau a utilizării resurselor sau pentru a vedea zonele unui design care nu sunt necesare sau funcționează defectuos. Reprezentarea vizuală reală care este utilizată variază foarte mult de la blocuri de text interconectate la grafice cu bare bidimensionale (2D) pentru a elabora obiecte tridimensionale (3D) care își schimbă forma pe măsură ce rulează un program.
În unele cazuri, poate fi util să folosiți vizualizarea software pentru a căuta codul sursă pentru un program. Prin utilizarea colorării și a abstractizării, cantități masive de cod scris pot fi vizualizate simultan. Intenția ar putea fi de a determina cât de mult cod este folosit în ce scop sau, alternativ, afișajul ar putea fi legat de un profiler sau depanator care evidențiază blocuri de cod care durează mult timp pentru a fi executate sau care sunt executate frecvent.
Limbajele de programare orientate pe obiecte pot utiliza vizualizarea software pentru a determina relațiile dintre diferitele biblioteci, clase și metode dintr-un program. Acest lucru ajută la determinarea dependențelor dintre diferitele zone ale unui program, dintre care unele pot fi neintenționate. De asemenea, poate afișa clase sau metode dintr-un program care nu sunt niciodată apelate sau pe care logica programului le face inaccesibile. Din punct de vedere vizual, o diagramă de dependență sau relație poate arăta ca o rețea de rețele și linii, sfere suprapuse de dimensiuni diferite sau chiar ramurile unui copac.
Odată ce un program rulează, vizualizarea software-ului în timp real poate arăta o reprezentare abstractă a modului în care programul se execută, a modului în care sunt gestionate diferite cozi și a modului în care fluxul de intrare și ieșire. Acest lucru poate ajuta dezvoltatorii să vadă vârfuri sau lacune în performanță și zone care primesc o activitate excepțional de mare. Aceste tipuri de vizualizări pot arăta ca aproape orice, de la mutarea blocurilor colorate și a formelor de undă până la schimbarea hărților topografice care reprezintă segmentele de cod în curs de executare. În general, totuși, vizualizarea este păstrată destul de simplă, astfel încât evenimentele anormale pot fi văzute și observate clar, fără dezordine grafică excesivă.
Există și alte aplicații pentru vizualizarea software-ului, dintre care una este inginerie inversă a unei aplicații. Observând modul în care un program interacționează și rulează, diferite segmente ale codului pot fi concentrate fără a necesita o curbă de învățare inițială abruptă. O altă utilizare specifică este în domeniul securității computerelor pentru a observa ce zone ale unui program interacționează cu procesele externe sau care sunt zonele care sunt deschise pentru atac.