• Aucun résultat trouvé

POSSIBLE SIDE EFFECTS AFTER THE PROPHYLACTIC USE OF LARGE QUANTITIES OF IODINE

Time of blockade duration

5. POSSIBLE SIDE EFFECTS AFTER THE PROPHYLACTIC USE OF LARGE QUANTITIES OF IODINE

A informação estrutural relacionada à estrutura pacote-classe-método tem um papel importante nas atividades de compreensão de software (Storey, 2006). A maioria dos ADSs oferece pelo menos uma visão que apresenta este tipo de estrutura. Um exemplo é o Package Explorer do ADS Eclipse.

Esta metáfora utiliza uma estrutura hierárquica em árvore vertical que permite esconder ou expandir cada um de seus nós. Estes nós utilizam ícones para denotar o tipo de elemento que eles representam. Como qualquer outra, esta metáfora tem limitações. Ela não escala bem, e em ADS, geralmente, se limita a apresentar somente a estrutura do projeto. Além disso, possui limitações em relação à sua efetividade de uso, conforme mencionado no capítulo 1 desta tese. Claramente, há espaço para enriquecer esta metáfora visual com novos atributos visuais tais como cores, posicionamento e tamanho dos elementos visuais. Estes atributos podem ser usados para representar importantes propriedades do software tais como tamanho, versões, modificações executadas, entre outros.

Tabela 3 Perspectivas e suas respectivas Metáforas Visuais

Grupos de Visões ou Perspectivas Visões

Estrutura Pacote-Classe-Método (PCM)

Mapa em árvore (1) Hierarquia de Herança (HH) Visão Polimétrica (2)

Acoplamento (ACO) Grafos de Dependência de Pacotes (3) e

Classes (4); Visão Tabular (5); Grafos Espirais Egocêntricos (6); Matrizes de Relacionamento de Pacotes (7), Classes (8) e Métodos (9).

129

Decidimos utilizar uma metáfora visual alternativa para representar a estrutura PCM no SourceMiner. Uma visão baseada nesta metáfora deveria escalar bem, suportar a fácil inclusão dos atributos visuais mencionados anteriormente, e ajudar a contrapor a visão PCM tradicional disponibilizada pelo ADS. A metáfora visual mapas em árvores foi selecionada para isto.

Mapas em árvores são visualizações 2D que mapeiam uma estrutura em árvore usando retângulos aninhados de forma recursiva (Shneiderman, 1992). Mapas em árvores são bastante efetivos na representação de grandes hierarquias. Além da hierarquia propriamente dita, também representam outros atributos de dados usando o tamanho (área) do retângulo e as suas cores.

Mapas em árvores são efetivos na representação de grandes hierarquias, pois cada retângulo pode ser facilmente dimensionado para utilizar toda área que lhe é disponibilizada na tela do computador. Como cada retângulo corresponde a um nó da hierarquia PCM, um mapa em árvore pode visualmente representar simultaneamente milhares de nós de uma mesma estrutura. Pela sua simplicidade, esta estrutura também facilita a descoberta de padrões e a identificação de casos excepcionais e pontos fora da curva.

A Figura 27 e a Figura 28 mostram um software representado na perspectiva PCM utilizando os mapas em árvore como metáfora visual. Conforme mencionado anteriormente, os elementos de software são representados por retângulos aninhados. Os retângulos mais internos representam os métodos e o mais externos representam aos pacotes.

Usando esta metáfora visual, os métodos (retângulos internos) que estão contidos na mesma classe são representados dentro de um mesmo retângulo mais externo. Para facilitar a visualização, os retângulos que representam métodos têm as bordas pretas e os retângulos que representam classes têm as bordas vermelhas.

De forma análoga, as classes que estão contidas em um mesmo pacote são representadas em um mesmo retângulo mais externo. Para facilitar a visualização, os retângulos que representam pacotes têm as bordas brancas. Este processo prossegue até que se chegue ao nível do projeto que é representado pelo retângulo mais externo a todos.

130

Figura 27 Mapa em árvores Decorado por Interesses

131

Utilizando os mapas em árvore desta forma, pode-se representar em uma única tela todos os métodos, classes, interfaces e pacotes de acordo com sua posição na estrutura hierárquica de um projeto.

Além da forma como os retângulos estão posicionados e aninhados, a área e a cor dos retângulos são usadas para decoração. Isto é ilustrado na Figura 27, aonde a cor é utilizada para representar os interesses que afetam cada elemento, e na Figura 28, aonde a cor é utilizada para representar a complexidade ciclomática para cada método.

A nossa implementação de mapas em árvore utiliza zoom semântico para melhor apresentar na tela os pacotes, classes e métodos de um projeto. Programadores podem usar o zoom semântico para navegar do nível mais alto para o mais baixo na representação visual da abstração dos módulos do sistema. Esta navegação ocorre quando se pressiona, respectivamente, os botões esquerdo e direito do mouse sobre a representação do elemento de software na visão montada pelo ambiente.

A Figura 29 apresenta um exemplo de zoom semântico. Nesta figura, a classe marcada em vermelho corresponde à classe marcada na Figura 28 após a aplicação do zoom.

Como em qualquer visão do SourceMiner, os usuários também podem aplicar critérios de filtragem para eliminar a representação de elementos de software que não sejam de interesse da análise naquele momento no mapa em árvore. Usando os recursos de filtragem, os usuários podem se focar em elementos de interesse utilizado critérios de busca ortogonais à estrutura PCM. Pode-se, por exemplo, executar uma filtragem para somente mostrar elementos com certo tamanho ou com certa substring no seu nome.

Também de forma similar a outras visões, a partir dos elementos gráficos é possível acessar o código fonte correspondente ao mesmo no editor do Eclipse. Para esta finalidade, os usuários devem simultaneamente utilizar a tecla Control e pressionar o botão esquerdo do mouse sobre o elemento gráfico em questão. A camada de desenho gráfico do sistema então solicita ao módulo de Coordenação e Estrutura Visual da camada de coordenação para que seja ativado o Editor do Eclipse para apresentação do código fonte correspondente ao elemento de software selecionado.

132

Figura 29 Zoom Semântico no Mapa em árvores