O que é visualização de software?
Visualização de software é o ato de usar programas ou plug-ins de ambiente de desenvolvimento integrado (IDE) durante o desenvolvimento e teste de aplicativos de software; isso permite a criação de uma representação gráfica de algum aspecto do software com o objetivo de determinar se há algum problema ou ineficiência no programa. Existem vários tipos de técnicas de visualização de software, mas elas geralmente são usadas para ver detalhes sobre o código-fonte do programa, examinar relações entre componentes de software ou assistir a uma visão abstrata de como um programa está sendo executado, incluindo informações sobre como ele é executado. interagindo com os processos circundantes. Em geral, a visualização de software é usada em sistemas complexos para ajudar a descobrir comportamentos fora do comum ou uso de recursos, ou para ver áreas de um design desnecessárias ou com mau funcionamento. A representação visual real usada varia muito de blocos de texto interconectados a gráficos de barras bidimensionais (2D) a elaborar objetos tridimensionais (3D) que mudam de forma à medida que um programa é executado.
Em alguns casos, pode ser útil usar a visualização de software para verificar o código fonte de um programa. Através do uso de cores e abstração, grandes quantidades de código escrito podem ser visualizadas de uma só vez. A intenção poderia ser determinar quanto código é usado para qual finalidade ou, alternativamente, a exibição pode ser vinculada a um criador de perfil ou depurador que realce blocos de código que levam muito tempo para serem executados ou que são executados com freqüência.
As linguagens de programação orientadas a objetos podem usar a visualização de software para determinar os relacionamentos entre as diferentes bibliotecas, classes e métodos em um programa. Isso ajuda a determinar dependências entre as diferentes áreas de um programa, algumas das quais podem não ser intencionais. Também pode mostrar classes ou métodos em um programa que nunca são chamados ou que a lógica do programa torna inacessível. Visualmente, um gráfico de dependência ou relação pode parecer uma rede de teias e linhas, esferas sobrepostas de tamanhos diferentes ou até mesmo os galhos de uma árvore.
Depois que um programa está sendo executado, a visualização do software em tempo real pode mostrar uma representação abstrata de como o programa está sendo executado, como diferentes filas estão sendo tratadas e como a entrada e a saída estão fluindo. Isso pode ajudar os desenvolvedores a ver picos ou lacunas no desempenho e nas áreas que estão recebendo atividades excepcionalmente altas. Esses tipos de visualizações podem parecer quase qualquer coisa, desde mover blocos coloridos e formas de onda até alterar mapas topográficos que representam segmentos de código sendo executados. No entanto, em geral, a visualização é mantida bastante básica, de modo que eventos anômalos podem ser vistos e observados com clareza sem excessos de gráficos.
Existem outros aplicativos para visualização de software, um dos quais é a engenharia reversa de um aplicativo. Observando como um programa está interagindo e executando, diferentes segmentos do código podem ser focados sem exigir uma curva de aprendizado inicial acentuada. Um uso mais específico está no campo da segurança do computador para observar quais áreas de um programa estão interagindo com processos externos ou quais estão abertas a ataques.