• Nenhum resultado encontrado

L ISTA DE A BREVIATURAS E S IGLAS HTML HyperText Markup Language

Capítulo 1 Introdução: esse capítulo caracteriza a área de pesquisa em que o trabalho foi desenvolvido, evidenciando as lacunas que levaram à motivação e objetivos.

2) Leitura Vertical é necessária a validação entre a especificação dos requisitos e os diagramas de projeto, para assegurar que o projeto esteja correto em relação

2.7 Considerações Finais

Este capítulo apresentou uma revisão da literatura sobre inspeção de software, a qual foi conduzida por meio de uma revisão sistemática (KITCHENHAM, 2004). Assim, neste capítulo foram apresentados alguns conceitos sobre essa atividade, seu processo e as técnicas de leitura que a apóiam. Segundo Kalinowski (2004), é muito importante que a inspeção retenha o conhecimento obtido durante sua aplicação para que este conhecimento seja utilizado de forma adequada. Isso só é possível aplicando o processo de inspeção de forma sistemática, da maneira como foi descrita na Seção 2.4.

No intuito de otimizar o processo de inspeção, fala-se bastante de técnicas especializadas e ferramentas, as quais buscam reduzir a sobrecarga administrativa e aumentar a eficácia e eficiência do processo de inspeção (BIFFL; GRÜNBACHER; HALLING, 2006). Segundo Kothari e outros (2004), muitas empresas ainda têm adotado as inspeções manuais pela falta de ferramentas que atendam a um domínio especifico.

Nem toda inspeção ocorre com sucesso. Segundo Kollanus e Koskinen (2006), o principal problema no processo de inspeção é a falta de treinamento adequado, o que acaba limitando a formalidade da inspeção e levando a métricas de inspeção imaturas. Além disso, muitas empresas simplesmente param de realizar as inspeções depois de certo tempo. Denger e Shull (2007) apontam algumas razões para o abandono das inspeções:

• É difícil traçar um paralelo entre o esforço da inspeção e a qualidade do produto final, como satisfação, segurança e reusabilidade;

• Inspeções não são suficientemente bem conduzidas para o contexto dado. Os projetos tentam aplicar o processo importado de outro projeto, sem considerar a capacidade da equipe, as questões específicas que são importantes para a equipe, ou o esforço disponível; e

• O real investimento parece ser muito amplo, pois não existem conexões diretas entre as inspeções e as atividades usuais dos envolvidos.

Mesmo com os problemas apresentados acima, segundo Anderson e outros (2003), as inspeções de software se destacam como uma prática muito efetiva da engenharia de software.

A inspeção de código, em particular, é muito dependente da atividade de compreensão e assim, ao se melhorar a compreensão do código consegue-se também fazer com que a inspeção seja mais efetiva. Pesquisas têm sido conduzidas nessa área e a visualização tem se mostrado como um recurso promissor para ajudar na compreensão de código. Como na ferramenta apresentada neste trabalho utiliza uma metáfora visual para

apoiar a aplicação da técnica Stepwise Abstraction, no próximo capítulo explora-se a visualização de informações, com uma breve revisão sobre o assunto.

Capítulo 3

CAPÍTULO 3 -

VISUALIZAÇÃO DE INFORMAÇÕES

Este capítulo descreve como o uso de visualizações pode auxiliar no processo de compreensão. É apresentado também o processo de visualização, bem como as técnicas de visualização mais relevantes para este trabalho e seus respectivos exemplos. Por fim, é descrito o uso da visualização no contexto de software, seguido por exemplos de ferramentas de visualizações de software.

3.1 Considerações Iniciais

Conforme dito anteriormente, a compreensão de software tem papel estratégico na engenharia de software. Ela consome tempo, esforço e representa um custo considerável tanto nas atividades de desenvolvimento como nas de manutenção. Existem vários modelos propostos na literatura para compreensão (MARQUES; MENDONÇA; SANTOS, 2004), mas, independentemente do modelo considerado, a compreensão está sempre relacionada à transferência e construção de conhecimento a respeito do software, a partir dos artefatos disponíveis para análise.

Segundo Tergan e Keller (2005), o processo cognitivo de seres humanos é mais intuitivo, efetivo e eficiente quando apoiado por recursos visuais tais como imagens, gráficos e sinais. Isso porque os gráficos comunicam o conhecimento visualmente ao invés de verbalmente e, quando bem projetados, podem transmitir uma grande quantidade de informações mais complexas. Como diz o ditado “uma imagem vale por mil palavras”, um gráfico mostra ao invés de dizer (TIDWELL, 2005).

Almejando a construção de representações visuais de dados, a área emergente de Visualização de Informações se preocupa em facilitar o entendimento e/ou ajudar na descoberta de novas informações (NASCIMENTO; FERREIRA, 2005). De acordo com Keim

(KEIM, 2002) e Rhyne (RHYNE, 2000), a visualização pode ser usada para apresentação de informações e análise exploratória, além de apoio à decisão.

É sabido que a capacidade humana de lidar com informações de forma visual é muito maior do que com dados textuais. Isso se torna muito mais evidente em uma situação em que se tenha uma grande quantidade de informação (IEPSEN; LUZZARDI; LOH, 2007). Nesses casos, podem-se utilizar técnicas de visualização de informações para contornar as dificuldades de selecionar as informações relevantes de um grande conjunto de dados. Por meio dessas técnicas pode-se obter uma representação visual que, por um lado abstrai detalhes do conjunto de informações e, por outro, propicia uma organização desse conjunto segundo algum critério (FREITAS et al., 2001).

O objetivo deste capítulo é apresentar, ainda que resumidamente, um pouco do tema Visualização, uma vez que a técnica de visualização Treemap foi usada na ferramenta CRISTA para mostrar a estrutura do código fonte a ser inspecionado. Este capítulo foi escrito tendo como base o trabalho de Nascimento e Ferreira (2005).

O restante deste capítulo está organizado da seguinte forma: na Seção 3.2 é apresentado o processo de visualização de informações. Na Seção 3.3, apresentam-se algumas técnicas de visualização. Em seguida, na Seção 3.4 são traçadas considerações sobre o uso de visualização no contexto de engenharia de software bem como ferramentas de apoio, e por fim, a Seção 3.5 apresenta as considerações finais deste capítulo.