• Nenhum resultado encontrado

4. INSPEÇÃO DE DOCUMENTO DE REQUISITOS

4.2 Atividade de Inspeção

A técnica de inspeção foi originalmente desenvolvida na IBM em meados de 1970 por Michael Fagan e, inicialmente, proposta para avaliação do código-fonte de programa. O objetivo específico é a identificação e remoção de erros de forma antecipada, ou seja, antes de o produto ser entregue, sem, contudo, envolver-se na procura de soluções para esses erros [Fagan, 1976 e 1986; Laitenberger, 1995]. Para isso é feita uma investigação minuciosa do produto a ser inspecionado através de sua submissão à equipe de revisores, os quais coletam o

maior número de erros possível que são discutidos numa reunião posterior e enviados ao autor para corrigir o produto.

No processo de “Inspeção de Fagan” [Fagan, 1976 e 1986] cada participante envolvido tem responsabilidades específicas e desempenha funções bem-definidas de acordo com os papéis a eles atribuídos. De modo geral, os papéis podem ser descritos como mostra a Tabela 4.1.

Tabela 4-1 Papel dos participantes de uma inspeção e sua respectiva descrição.

Papel Descrição do Papel

Organizador Planeja todas as atividades de inspeção dentro do projeto.

Moderador Como líder da equipe esse conduz as atividades de inspeção e controla as reuniões.

Autor Cria o produto de trabalho a ser inspecionado e é responsável pela correção dos defeitos identificados. Apresentador Descreve as seções do produto de trabalho para a equipe de inspeção, percorrendo-o e então o explicando e interpretando, ou seja, relatando o que esse se supõe a fazer.

Redator Classifica e registra todos os defeitos e questões levantadas durante a reunião de inspeção.

Coletor Coleta os defeitos encontrados pelos inspetores caso não haja reunião de inspeção.

Inspetor Responsável por encontrar erros no produto. Todos os participantes podem atuar como inspetores em adição a quaisquer outras responsabilidades.

Esses participantes realizam suas tarefas seguindo um processo de inspeção que constitui de uma série de atividades, cada uma com um objetivo específico. A estrutura desse processo proposto por Fagan [1976; 1986] é apresentado a seguir:

• Planejamento: a equipe de inspeção é selecionada; o material a ser utilizado é obtido do autor e distribuído à equipe com antecedência; é verificada a disponibilidade dos participantes para a realização da inspeção e então, um local e horário para o encontro é agendado.

• Reunião de Apresentação: são descritas as características importantes do produto a ser inspecionado para a equipe de inspeção e os papéis são atribuídos a cada participante.

• Preparação: os participantes são responsáveis por examinar criteriosamente o material antes da reunião de inspeção, anotando qualquer defeito encontrado ou questão a ser levantada e preparando-se para executar seu devido papel.

• Reunião de Inspeção: a equipe é convocada para discutir o material examinado. Durante a reunião, todos os inspetores podem reportar os defeitos ou levantar outras questões, que são documentadas num formulário pelo redator. Ressalta-se que nenhuma solução ao erro encontrado deve ser dada uma vez que a intenção é apenas encontrar erros.

• Re-trabalho: o autor é responsável por resolver todos os defeitos e questões expostas na reunião de inspeção.

• Acompanhamento: é a parte final através do qual o material deve passar a fim de que a inspeção seja completada. O moderador é responsável por acompanhar o autor para assegurar que o re-trabalho necessário foi desempenhado adequadamente e que nenhum outro defeito foi introduzido.

A vantagem da inspeção é que ela encurta o tempo de entrega do produto uma vez que reduz o tempo gasto na fase de integração e teste do sistema, pois um produto mais qualificado é passado nos estágios posteriores ao exame de inspeção. E tendo um produto final de qualidade, além de aumentar a satisfação do cliente, poupa-se tempo de manutenção e assim aproveita-se o esforço para outros trabalhos. Reduzindo o tempo que se teria com o re- trabalho, aumenta-se a produtividade das atividades seguintes e a melhora no processo como um todo. Ainda, os dados de relatórios de inspeção podem ser usados para identificar os tipos de defeitos mais comuns e os mais custosos, determinar a causa de sua origem e mudar a maneira como o trabalho é feito a fim de evitá-los [Wiegers, 1995].

Visto os benefícios da inspeção e suas contribuições para a qualidade do sistema como um todo, sua importância ficou reconhecida entre muitos desenvolvedores de software e organizações. Desde então, várias outras propostas foram desenvolvidas com a finalidade de melhorar a inspeção de Fagan [1976; 1986] e com variações nos artefatos utilizados nesse processo. Aurum et al. [2002] sintetizam outros tipos de modelo de processo de inspeção de software que emergiram nos últimos 25 anos, mostrando a evolução da inspeção em duas principais áreas, o qual inclui mudança na estrutura do processo e o surgimento de vários métodos, ferramentas e modelos de apoio a essa estrutura do processo de inspeção. Para citar alguns exemplos, têm-se os trabalhos dos seguintes autores: Schneider et al. [1992], Porter et al. [1995], Basili et al. [1996a e 1996b], Shull et al. [2000], Travassos et al. [1999a, 1999b, 2000, 2002].

Dentre as diversas abordagens e técnicas que auxiliam no processo de inspeção, destacam-se as Técnicas de Leitura, que têm por objetivo conduzir os revisores na leitura de produtos de software enquanto descobrem defeitos nesses produtos. Elas oferecem um conjunto de instruções que explica como ler um documento de software e o que o revisor deverá procurar nele durante o processo de inspeção [Basili et al., 1996b]. Portanto, são classificadas como técnicas sistemáticas que fornecem diretrizes para serem usadas durante a fase de preparação de inspeção para examinar um dado artefato e identificar seus defeitos.

Sendo assim, elas tornam o trabalho dos revisores mais metódico e ordenado propiciando uma significativa melhora no processo de inspeção.

As Técnicas de Leitura podem ser definidas como uma série de passos ou procedimentos preparados para a análise individual de artefatos de software cujo propósito é guiar um inspetor na aquisição de um profundo entendimento de um produto de software, o qual é necessário para realizar uma determinada tarefa [Basili et al., 1996a; Laitenberger, 2002]. Devido à importância de algumas destas técnicas para o contexto deste trabalho, estas técnicas serão comentadas.