Che cos’è la visualizzazione del software?

La visualizzazione del software è l’atto di utilizzare programmi o plug-in dell’ambiente di sviluppo integrato (IDE) durante lo sviluppo e il test di applicazioni software; questo permette di creare una rappresentazione grafica di alcuni aspetti del software allo scopo di determinare se ci sono problemi o inefficienze all’interno del programma. Esistono diversi tipi di tecniche di visualizzazione del software, ma più comunemente vengono utilizzate per visualizzare i dettagli sul codice sorgente del programma, per esaminare le relazioni tra i componenti del software o per osservare una visione astratta dell’esecuzione di un programma, comprese le informazioni su come è interagire con i processi circostanti. In generale, la visualizzazione del software viene utilizzata su sistemi complessi per aiutare a scoprire comportamenti fuori dall’ordinario o utilizzo di risorse, o per vedere aree di un progetto che non sono necessarie o malfunzionanti. La rappresentazione visiva effettiva utilizzata varia notevolmente da blocchi di testo interconnessi a grafici a barre bidimensionali (2D) per elaborare oggetti tridimensionali (3D) che cambiano forma durante l’esecuzione di un programma.

In alcuni casi, può essere utile utilizzare la visualizzazione del software per esaminare il codice sorgente di un programma. Attraverso l’uso della colorazione e dell’astrazione, è possibile visualizzare contemporaneamente enormi quantità di codice scritto. L’intenzione potrebbe essere quella di determinare quanto codice viene utilizzato per quale scopo o, in alternativa, il display potrebbe essere associato a un profiler o debugger che evidenzi blocchi di codice che richiedono molto tempo per l’esecuzione o che vengono eseguiti frequentemente.

I linguaggi di programmazione orientati agli oggetti possono utilizzare la visualizzazione del software per determinare le relazioni tra le diverse librerie, classi e metodi in un programma. Questo aiuta a determinare le dipendenze tra le diverse aree di un programma, alcune delle quali potrebbero non essere intenzionali. Può anche mostrare classi o metodi in un programma che non vengono mai chiamati o che la logica del programma rende irraggiungibili. Visivamente, un grafico delle dipendenze o delle relazioni può sembrare una rete di ragnatele e linee, sfere sovrapposte di dimensioni diverse o persino i rami di un albero.

Una volta che un programma è in esecuzione, la visualizzazione del software in tempo reale può mostrare una rappresentazione astratta dell’esecuzione del programma, della gestione delle diverse code e del flusso di input e output. Questo può aiutare gli sviluppatori a vedere picchi o lacune nelle prestazioni e nelle aree che stanno ricevendo un’attività eccezionalmente elevata. Questi tipi di visualizzazioni possono assomigliare a qualsiasi cosa, dallo spostamento di blocchi colorati e forme d’onda alla modifica delle mappe topografiche che rappresentano i segmenti di codice in esecuzione. In generale, tuttavia, la visualizzazione è mantenuta abbastanza semplice in modo che gli eventi anomali possano essere chiaramente visti e osservati senza eccessivo disordine grafico.

Esistono altre applicazioni per la visualizzazione del software, una delle quali è il reverse engineering di un’applicazione. Osservando come un programma interagisce e viene eseguito, è possibile concentrarsi su diversi segmenti del codice senza richiedere una ripida curva di apprendimento iniziale. Un uso più specifico è nel campo della sicurezza informatica per osservare quali aree di un programma interagiscono con processi esterni o quali aree sono aperte agli attacchi.