Artigo Engenharia de Software 6 - Utilizando Visualização de Informação para Compreensão de Software

Este artigo apresenta como a visualização de informação em conjunto com as métricas de código fonte podem ajudar no processo de compreensão do software.

Esse artigo faz parte da revista Engenharia de Software 6 edição especial. Clique aqui para ler todos os artigos desta edição

 

Projeto

Utilizando Visualização de Informação para Compreensão de Software

De que se trata o artigo:

Este artigo apresenta como a visualização de informação em conjunto com as métricas de código fonte podem ajudar no processo de compreensão do software.

Para que serve:

A cada dia, com o contínuo aumento na complexidade dos sistemas de software, o processo para análise e compreensão do código visando evolução e manutenção do sistema se torna mais complexo e demorado. Aplicando os conceitos discutidos neste artigo, podemos tornar estas etapas menos difíceis e trabalhosas.

Em que situação o tema é útil:

Atualmente, existem diversas ferramentas que auxiliam a modelagem de sistemas, o controle de versões, testes, que possibilitam o desenvolvimento em grupo, mas ainda não é comum o uso de ferramentas que facilitem o processo de compreensão do software. Talvez por isso, ainda seja comum a existência de código duplicado, com alta complexidade, entre outros pontos negativos que reduzem a qualidade do sistema desenvolvido. A partir deste ponto, percebemos a importância da compreensão do software nas etapas de desenvolvimento e manutenção.

 

É cada vez mais evidente a importância de se ter controle sobre o modo como um software está sendo desenvolvido. Quando as primeiras linguagens de programação foram criadas, considerando aspectos como tamanho e complexidade dos sistemas desenvolvidos e o conhecimento sobre técnicas de programação, percebeu-se que os desenvolvedores não possuíam uma metodologia para estruturação de seu código. Possivelmente, os desenvolvedores não imaginavam uma forma bem definida na qual fosse possível analisar os códigos escritos sem ter que, necessariamente, olhar as centenas, ou até mesmo milhares de linhas de código (uma tarefa difícil e custosa). Além disso, retirar informações úteis e precisas dessas linhas com objetivo de dar continuidade ou manutenção ao sistema não era uma atividade trivial.

Embora muito tempo tenha se passado e muita evolução tenha ocorrido no desenvolvimento de técnicas para apoiar o desenvolvimento de sistemas, a tarefa de análise de código ainda é um campo com tópicos a serem explorados. Neste contexto, apresentaremos neste artigo o que se tem estudado sobre compreensão de código utilizando técnicas de visualização de informação, métricas e mineração visual de dados e ao final comentaremos sobre um plug-in de visualização desenvolvido para o Eclipse.

Visualização de Informação

Os seres humanos possuem dificuldades em processar dados no formato de textos e tabelas; por isso, freqüentemente, recorremos a meios visuais para interpretar o mundo a nossa volta [1]. Imagine por exemplo, dois mapas geográficos apresentando o número de habitantes (dado em análise) de cada país. No mapa 1, apresentamos sobre cada país o número de habitantes. No mapa 2, utilizamos cores com tonalidades diferentes para indicar o dado em análise, onde, a cor mais escura representa o país com maior população. Considerando que seu interesse seja estudar os países com população entre 50 e 100 milhões, qual mapa você utilizaria para obter esta informação de maneira mais rápida e segura?

O objetivo da visualização de informação é possibilitar que dados sejam apresentados através de formas simples e intuitivas [2].

A grande preocupação da visualização de informação é como os dados serão apresentados, pois uma boa escolha da forma de apresentação resulta na facilidade do entendimento e possibilita a descoberta de (novas) informações. Voltando ao exemplo do mapa, é possível que você “descubra” rapidamente, através do mapa que utiliza cores, que a região com maior concentração populacional esteja no continente asiático.

Como o número de habitantes é um dado comum e bastante discutido, talvez este não seja o melhor exemplo. Agora, como você analisaria o código do seu sistema com milhares de linhas para encontrar os pontos mais complexos, com alto índice de acoplamento e que a refatoração se torna indicada para facilitar a evolução e manutenção do software?

Muitas maneiras podem ser utilizadas para apresentar dados, dentre elas, o formato, cores, movimentos, posicionamento na tela e tamanho. Um exemplo dessa abordagem pode ser visto na Figura 1. Através dela, conseguimos notar como a forma, o tamanho e a cor podem ser usados para diferenciar os dados.

 Hoje em dia é comum encontrarmos técnicas de visualização de informação até mesmo em players de música para dispositivos móveis, onde cada música é representada por um ponto e este ponto é inserido em um plano. Os pontos mais a esquerda indicam que aquelas músicas possuem um ritmo mais rápido, pontos localizados a direita, músicas lentas e assim por diante. Com isso, para escolher as músicas que você deseja ouvir basta marcar o plano com o ponto, então o programa definirá um raio e tocará apenas as músicas que estiverem dentro da região especificada." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados