• Nenhum resultado encontrado

A medição de desempenho em processos de desenvolvimento de software, e em qualquer atividade de engenharia, é crucial para criar um mecanismo de avaliação e controle a cerca dos mesmos. “Medição é um mecanismo para criar uma memória coorporativa e dar suporte para responder uma variedade de questões associadas com instâncias de qualquer processo de software” [BAS94].

Mas ainda existem muitas barreiras que impedem os profissionais da área de utilizarem tais técnicas ou de o fazerem de maneira correta, embora a literatura disponível atualmente sobre engenharia da informação seja relativamente ampla e variada, o que nos leva a

questionar: Por que as métricas e estimativas de software propostas para o desenvolvimento de sistemas não são fiéis à realidade e à dimensão do problema? Tais técnicas acompanharam a rápida evolução do setor? Cada vez mais, temos virtualmente nenhum modelo teórico e uma grande quantidade de métricas que em sua maioria não atingiram uma aceitação em larga escala [MIL88].

Os modelos e métricas atuais estão longe de serem perfeitos, mas quando aplicados corretamente podem prover melhorias significativas no processo de desenvolvimento de software [MIL88].

O termo métrica de software refere-se à mensuração dos indicadores quantitativos do tamanho e complexidade de um sistema ou processo.

A métrica de software tem como princípios especificar as funções de coleta de dados de avaliação e desempenho, atribuir essas responsabilidades a toda a equipe envolvida no projeto, reunir dados de desempenho pertencentes à complementação do software, analisar os históricos dos projetos anteriores para determinar o efeito desses fatores e utilizar esses efeitos para pesar as previsões futuras. Estes princípios nos permitem prever o resto do processo, avaliar o progresso e reduzir a complexidade.

Para isso, é necessária uma forma de estabelecer um processo de medição eficiente através de métricas bem definidas.

Para que uma disciplina de mensuração seja efetiva, algumas características devem estar presentes, como:

 Foco em objetivos específicos

 Aplicado a todo o ciclo de vida de recursos, processos e produtos.

 Interpretado com base no entendimento e caracterização dos objetivos, ambiente e contexto organizacional.

Essas características podem ser alcançadas baseando o programa de medição em uma técnica como a abordagem GQM por exemplo.

2.4.1. Goal-Question Metric

A abordagem Goal Question Metric (GQM) se baseia no pressuposto de que, para uma organização realizar um processo de medição de uma forma produtiva, deve primeiro especificar seus objetivos e seus projetos. A partir disso, devem ser traçados os dados para cada objetivo de forma a defini-los operacionalmente. Finalmente, provê uma estrutura para

interpretar os dados coletados de forma condizente aos objetivos para os quais as medições foram definidas [BAS94].

Dessa forma, o GQM auxilia a definir e integrar objetivos a modelos de processo, produto e perspectivas de qualidade baseada em necessidades específicas do projeto e organizações através de um programa de medições.

O modelo de mensuração resultante possui três níveis:

1. Nível conceitual (Objetivo): um objetivo é definido para um objeto, para uma variedade de razões, com respeito aos vários modelos de qualidade, dos vários pontos de vista e relativo a um ambiente particular. O conjunto de objetivos é baseado nas necessidades da organização e seus projetos. O objetivo determina o que deve ser melhorado ou aprendido [BAS94]. Objetos de medição são:

a. Produtos: Artefatos, documentos e entregáveis que são produzidos durante o ciclo de vida do sistema, por exemplo: especificações, programa, planos de teste e etc.

b. Processos: Atividades relacionadas ao software normalmente associadas a tempo, por exemplo: especificação, desenho de solução, teste e etc.

c. Recursos: Itens utilizados pelo processo de forma a produzir seus artefatos de saída, por exemplo: hardware, software, pessoas e etc.

2. Nível operacional (Questão/Pergunta): um conjunto de questões quantificáveis é utilizado para definir modelos do objeto de estudo e depois focar nesse objeto para caracterizar a avaliação ou a realização de um objetivo específico. Objetivos de negócio são traduzidos em questões com foco na medição. As mesmas questões podem ser definidas para suportar interpretações de dados de múltiplos objetivos;

3. Nível quantitativo (Métrica): um conjunto de dados é associado a cada pergunta com o objetivo de se obter respostas quantitativas. Nesse passo, as métricas identificadas devem ser adequadas para prover informações que respondam às questões. Geralmente cada métrica pode fornecer informações que respondam a várias questões e, algumas vezes, são necessárias combinações de métricas para que uma questão seja respondida.

Figura 6 - Estrutura hierárquica do GQM

Como podemos observar na Figura 6, o GQM é formado por uma estrutura hierárquica partindo do objetivo (que especifica o propósito da medição, o objeto a ser medido e o ponto de vista na qual a medida é realizada). O objetivo é refinado em várias questões, assim como no exemplo da Figura 6. Cada questão é refinada em métricas objetivas ou subjetivas. A mesma métrica pode ser utilizada de forma a responder diferentes questões [BAS94].

A literatura largamente difundida geralmente descreve o GQM em termos de um processo de seis passos, entre os quais, os três primeiros consistem em derivar métricas a partir dos objetivos de negócio [DAC05]. Os últimos três passos tratam da coleta de informações e o uso efetivo delas para tomada de decisão e melhorias. Os seis passos para implementação do GQM são definidos por [BAS05] como:

1. Desenvolver um conjunto de objetivos de negócio, de projeto e coorporativos associados a objetivos de medição para qualidade e produtividade.

2. Gerar perguntas (baseadas em modelos) que definem os objetivos da forma mais completa possível e quantificável.

3. Especificar métricas que precisam ser coletadas para responder as perguntas. 4. Desenvolver mecanismos para coleta de dados.

5. Coletar, validar e analisar os dados em tempo real para prover feedback aos projetos para ações corretivas.

6. Analisar os dados do post-mortem de forma a garantir a conformidade com os objetivos e realizar recomendações para futuras melhorias.

Estes seis passos do processo definido por Basili serão mais bem explorados na seção seguinte.

A descrição do GQM em termos de um processo de seis passos tende a convergir a um processo estritamente seqüencial, mas não é o caso quando o GQM é realmente implementado [DAC05]. Van Solingen [1999 apud DAC05] afirma que a implementação do GQM deve ser

vista em termos de fases de atividades que são integradas ao gerenciamento e ao planejamento de projeto e possuem relações de dependência uma com a outra. Apesar de essas fases compreenderem o processo de GQM descrito por Basili, o foco das fases está no planejamento e nos detalhes necessários para tornar o GQM uma realidade em uma organização. As fases definidas por Van Solingen em [DAC05] são nomeadas abaixo:

 Planejamento do GQM: lida com a implementação do GQM e os planos chave que precisam ser documentados. Esta fase, entretanto, aborda os passos de 1 a 5 do processo de Basili.

 Definição: foca no uso do método GQM para derivar métricas significativas. Engloba os primeiros três passos do processo do Basili.

 Coleta de Dados: aborda o planejamento para a execução da coleta de dados necessários para as métricas definidas. Esta fase endereça os passos 4 e 5 do processo de Basili.

 Interpretação: aborda a preparação dos dados coletados de forma a facilitar a análise e interpretação dos resultados relativos aos objetivos pré-determinados e realiza a análise e interpretação propriamente ditas. Esta fase implementa os passos 5 e 6 do processo definido por Basili.

Documentos relacionados