La visualización de software es el acto de utilizar programas o complementos del entorno de desarrollo integrado (IDE) durante el desarrollo y la prueba de aplicaciones de software; esto permite la creación de una representación gráfica de algún aspecto del software con el propósito de determinar si existen problemas o ineficiencias dentro del programa. Hay varios tipos de técnicas de visualización de software, pero se utilizan con mayor frecuencia para ver detalles sobre el código fuente del programa, para examinar las relaciones entre los componentes del software o para observar una vista resumida de cómo se está ejecutando un programa, incluida información sobre cómo se está ejecutando. interactuar con los procesos circundantes. En general, la visualización de software se usa en sistemas complejos para ayudar a descubrir comportamientos fuera de lo común o uso de recursos, o para ver áreas de un diseño que son innecesarias o que funcionan mal. La representación visual real que se utiliza varía mucho desde bloques de texto interconectados hasta gráficos de barras bidimensionales (2D) para elaborar objetos tridimensionales (3D) que cambian de forma a medida que se ejecuta un programa.
En algunos casos, puede resultar útil utilizar la visualización de software para ver el código fuente de un programa. Mediante el uso de colores y abstracción, se pueden ver grandes cantidades de código escrito a la vez. La intención podría ser determinar cuánto código se usa para qué propósito o, alternativamente, la pantalla podría estar vinculada a un generador de perfiles o depurador que resalte los bloques de código que tardan mucho en ejecutarse o que se ejecutan con frecuencia.
Los lenguajes de programación orientados a objetos pueden utilizar la visualización de software para determinar las relaciones entre las diferentes bibliotecas, clases y métodos en un programa. Esto ayuda a determinar las dependencias entre las diferentes áreas de un programa, algunas de las cuales pueden ser involuntarias. También puede mostrar clases o métodos en un programa que nunca se llaman o que la lógica del programa hace inalcanzable. Visualmente, un gráfico de dependencia o relación puede verse como una red de redes y líneas, esferas superpuestas de diferentes tamaños o incluso las ramas de un árbol.
Una vez que un programa se está ejecutando, la visualización del software en tiempo real puede mostrar una representación abstracta de cómo se está ejecutando el programa, cómo se manejan las diferentes colas y cómo fluyen las entradas y salidas. Esto puede ayudar a los desarrolladores a ver picos o brechas en el rendimiento y áreas que están recibiendo una actividad excepcionalmente alta. Estos tipos de visualizaciones pueden parecerse a casi cualquier cosa, desde bloques de colores en movimiento y formas de onda hasta mapas topográficos cambiantes que representan segmentos de código en ejecución. En general, sin embargo, la visualización se mantiene bastante básica para que los eventos anómalos se puedan ver y observar claramente sin un desorden gráfico excesivo.
Existen otras aplicaciones para la visualización de software, una de las cuales es la ingeniería inversa de una aplicación. Al observar cómo un programa interactúa y se ejecuta, se pueden enfocar diferentes segmentos del código sin requerir una curva de aprendizaje inicial empinada. Otro uso específico es en el ámbito de la seguridad informática para observar qué áreas de un programa están interactuando con procesos externos o qué áreas están abiertas al ataque.