– Maturidade de Software – GQM – GOAL QUESTION METRIC
Método GQM
Muitos projetos de desenvolvimento de software são entregues fora do orçamento e prazo, comprometendo a sua qualidade. Isso se deve principalmente à avaliação inadequada dos fatores de risco. É necessário propor uma abordagem sistemática para prevenir e monitorar riscos. Para isso, deve ser utilizado um procedimento para listar, analisar e priorizar os riscos, minimizando a exposição destes.
- O primeiro passo é o estabelecimento de uma política de mensuração para a identificação adequada das medidas a serem coletadas.
- Essa definição deve ser feita com base em critérios bem fundamentados, devido ao grande número de opções possíveis e ao custo envolvido na coleta de cada informação.
- Com intuito de guiar o processo de definição das medidas, além do Goal-Question-Metric – GQM (Meta – Questão – Métrica), vários métodos foram propostos, como Goal-Driven Software Measurement (GDSM) e Practical Software and System Measurement (PSM).
Definição das métricas GQM
GQM é uma abordagem de cima para baixo (top down) e foi apresentado por Victor Basili em conjunto com o Laboratório de Software da NASA e a Universidade de Maryland. É uma abordagem orientada a metas para a mensuração de produtos e processos de software, ou seja, um mecanismo para definição e interpretação de métricas de software.
- O GQM na mensuração orienta as metas. Por exemplo, a coleta de dados documentada que deve ser baseada em um fundamento lógico.
- A abordagem GQM apresenta algumas vantagens como identificação das métricas úteis e relevantes e a interpretação dos dados coletados.
O modelo GQM é composto por três níveis:
Conceitual (Meta): são definidos os objetivos da organização, ou seja, as metas a serem atingidas pelo programa de medição.
Exemplo reduzir defeitos, eliminar desperdícios, aumentar produtividade etc.
Operacional (Pergunta): um conjunto de perguntas é elaborado com relação a cada objetivo identificado no nível anterior.
Exemplo Qual a taxa de defeito atual? Qual a taxa de defeito após a implantação do novo processo?
Quantitativo (Métrica): um conjunto de métricas (objetivas e subjetivas) é estabelecido, de maneira a atender a cada pergunta elaborada no nível anterior.
Exemplo que dados serão necessários? Quais os formatos? Como coletar (fórmula e processo)? Onde armazenar e como utilizar?
Esta abordagem começa com uma meta, especificando o propósito da medição, objeto a ser medido, foco e o ponto de vista ao qual a medição será obtida.
É necessário dividir o problema em componentes. Inicialmente, divide-se a meta em várias perguntas. Cada pergunta é derivada em métricas objetivas e subjetivas. Uma mesma métrica pode ser utilizada para responder perguntas diferentes de uma mesma meta. Metas diferentes podem ter perguntas e métricas em comum. E uma mesma métrica pode ter valores diferentes quando obtida sob pontos de vista diferentes.
Abordagem GQM
Agora, acompanhe um exemplo de aplicação da Abordagem GQM:
Objetivo
Assegurar que todos os defeitos são corrigidos antes do software ser liberado para uso.
Perguntas
- Quantos defeitos temos atualmente?
- Qual o status de cada defeito?
- Qual a cobertura dos testes?
Métricas
- Número de defeitos;
- Número de defeitos porstatus;
- Número de casos de testes planejados x executados;
- Número de requisitos testados.
Objetivos da medição
Os objetivos da medição são definidos em termos da entidade, propósito, atributos de qualidade, ponto de vista e ambiente (por exemplo, analisar o sistema de software com o propósito de fazer predição da confiabilidade do ponto de vista do cliente. Cada objetivo é refinado em um conjunto de perguntas que representam uma definição operacional do objetivo.
Outros exemplos:
- Qual a distribuição de falhas por nível de gravidade?
- Para cada pergunta, as métricas relevantes são definidas (por exemplo, número total de falhas e número de falhas gravíssimas).
- Cada objetivo é refinado em um conjunto de perguntas que representam uma definição operacional do objetivo.
Embora GQM tenha a sua origem como uma metodologia de medição para o desenvolvimento de software, os conceitos básicos do GQM podem ser usados em qualquer lugar onde métricas eficazes são necessárias para avaliar a satisfação das metas.
A abordagem GQM é um paradigma que suporta:
- Alinhamento das métricas com as metas técnicas e de negócios da organização;
- Melhoria no processo de software;
- Gerência dos riscos;
- Melhoria da qualidade dos produtos.
Práticas eficazes de aplicação GQM
- Achar as pessoas certas (todos os níveis de programadores) envolvidas no processo GQM;
- Definir objetivos explícitos de medição e expor explicitamente;
- Planejar cuidadosamente o programa de medição e documentação (definições operacionais e explícitas);
- Não criar falsas metas para medição;
- Adquirir modelos de qualidade implícito da equipe;
- Considerar contexto;
- Obter métricas adequadas;
- Focar nas metas ao analisar dados;
- Permitir que os dados sejam interpretados pelas pessoas envolvidas;
- Integrar as atividades de medição com as atividades regulares do projeto
- Não utilizar as métricas para outros fins;
- Assegurar o compromisso da gerência em apoiar resultados das medições;
- Estabelecer uma infraestrutura para apoiar o programa de medição;
- Assegurar que a métrica é encarada como uma ferramenta, não é o objetivo final;
- Obter treinamento em GQM antes de ir em frente.
Benefícios do GQM
Embora o benefício do GQM seja estabelecer métricas significativas para projetos de software, o GQM também pode ser aplicado na melhoria do processo sistemático com as seguintes finalidades:
- Compreender e nivelar as práticas de software na organização;
- Orientação e acompanhamento dos processos de software;
- Aferir novas tecnologias de engenharia de software;
- Avaliar e certificar melhorias nas atividades;
- Conquista da melhoria dos objetivos;
- Ganhos financeiros;
- Aumento da capacidade para realizar iniciativas de melhoria;
- Melhoria da sinergia do grupo;
- O aumento da consciência da qualidade e envolvimento com garantia de qualidade (QA).
O GQM começa por identificar metas (nível conceitual) que estejam alinhadas com os objetivos de negócio. A equipe (gerentes de projeto, equipe de desenvolvimento, os clientes, ou outras partes interessadas), em seguida, elaboram questões (nível operacional) para clarificar ainda mais e aperfeiçoar os objetivos, bem como captar as variações de compreensão dos objetivos que existe entre as partes com relação às suas noções de qualidade e meio ambiente, que poderá ser impactado com o alcance do objetivo.
A seguir, a equipe identifica as métricas que fornecerão respostas para as perguntas (nível quantitativo). O que distingue GQM de outros paradigmas de medição é a estrutura hierárquica em árvore utilizada para manter as relações entre os objetivos, questões e métricas.
O GQM considera relevante o planejamento de coleta de dados e o planejamento de como os resultados da medição devem ser organizados e otimizados. Quando há falhas, a principal causa é atribuída à forma como os resultados das medições será utilizada.
Implementação
GQM pode ser aplicado em nível estratégico de uma organização ou em nível de projetos ou a ambos os níveis simultaneamente. Quando aplicado em nível estratégico, a mensuração dos dados se dá a partir dos resultados de projetos piloto orientados a fornecer feedback ao nível estratégico para a tomada de decisões relacionadas a produtos e processos.
ATENÇÃO: As organizações utilizam uma abordagem gradual para a execução GQM com o planejamento de projetos e atividades de gestão.
Fase de planejamento
A fase de planejamento define como o GQM será definido e executado pelo pessoal envolvido. O planejamento prevê a documentação, que serve como entrada para outras fases do GQM:
Plano de GQM: A fase de definição consiste em identificar medição metas, colocar questões e identificar métricas adequadas. O plano de GQM é um documento que contém cada medição meta e sua correspondente repartição em perguntas e métricas, preservando assim as relações de metas para questões de métricas. Este documento fornece a fundação para progredir através das outras fases do GQM, apenas como um documento de requisitos que fornece a base para as atividades de desenvolvimento.
Plano de Medição: Define as métricas necessárias e o modo de coleta de dados: como os dados são coletados, por quem e quando. O Plano de Medição inclui a descrição dos meios de comunicação necessários para registro e validação dos dados.
Plano de Análise: Define a forma de analisar, agregar e apresentar os dados recolhidos. Estabelece o palco para a devida interpretação: a visão do Gestor do Projeto é diferente do Vice-Presidente, por exemplo. O plano de análise fornece orientações sobre a forma como a informação precisa ser organizada e recuperada para facilitar a sua utilização e garantir que o foco permaneça sobre os objetivos. O ponto importante é que o planejamento para a análise e interpretação deve ser feito antes da coleta de dados de modo que seja claramente vinculado aos objetivos. O plano de Análise define o nível adequado de captação para a apresentação dos dados.
Fase de Coleta de Dados
A fase de coleta de dados inclui a medição de acordo com o Plano de Medição e prepara para análise em conformidade com o Plano de Análise. Durante a coleta dos dados, os mesmos devem ser validados, atualizados e precisos. Uma vez validados, os dados podem ser apresentados para interpretação. A atividade principal desta fase é armazenar os dados de forma que facilite o acesso.
Fase de Interpretação
Após a coleta, os dados são validados e encaminhados para a análise. É feita a interpretação dos dados baseada nas questões e metas definidas. Alguns questionamentos surgem:
- Os resultados das medições respondem às questões colocadas?
- O objetivo foi atingido?
ATENÇÃO: Na fase da interpretação, são tomadas decisões sobre a continuidade do processo, as lições aprendidas e uso futuro.
Etapas do GQM
GQM é dividido em seis etapas, veja:
- Desenvolver um conjunto de metas organizacionais e metas de medições para aumentar a produtividade e a qualidade do software. Para realizar a medição, cada meta GQM deve conter:
- Objeto: O processo ou estudo. Por exemplo, um subsistema do produto final;
- Finalidade: Motivação por trás da meta (por quê?). Por exemplo, uma melhor compreensão, melhor orientação, controle, previsão e melhoria.
- Foco: A qualidade do objeto em estudo (o quê?). Por exemplo: custo, exatidão.
- Viewpoint: Perspectivas da meta (de quem?). Por exemplo, gestor do projeto, programador, cliente.
- Gerar perguntas baseadas em modelos que definem os objetivos em uma forma quantitativa. Esclarecer e aperfeiçoar a medição de metas, que se deslocam de um nível conceitual para um nível operacional. As perguntas ajudam a identificar interpretações da meta entre as partes interessadas.
- Especificar as medidas necessárias para se obter as respostas e acompanhar os processos e produtos em conformidade com os objetivos. Nesse passo, é examinada a forma como as questões poderiam ser respondidas, que se deslocam a partir do nível operacional para um nível quantitativo. Uma vez que os objetivos são refinados em uma lista de perguntas, devem ser definidas métricas que forneçam todas as informações quantitativas para responder às perguntas de forma satisfatória.
- Desenvolver mecanismos para a coleta de dados. Uma vez que as métricas são identificadas, é possível determinar para quais dados os itens são necessários para apoiar as métricas, e como esses itens serão recolhidos. Os dados devem ser organizados de forma significativa para o destinatário da informação. A maioria dos projetos deve ter um plano de medição que inclui:
- Definições formais de medidas diretas;
- Descrições textuais de medidas diretas;
- Todos os possíveis resultados das medições diretas;
- A pessoa que recolhe cada medição direta;
- O momento, tempo ou frequência quando a medição direta deve ser feita;
- O meio, instrumento ou forma que devem ser utilizados para a medição.
- Coletar, validar e analisar o dado em tempo real para prover retorno ao projeto para ação corretiva. Os dados devem ser validados antes de serem utilizados para análise. Automatizar pode ajudar, mas não pode substituir todas as formas de coleta de dados e de validação. O ideal é minimizar a sobrecarga imposta às pessoas que são obrigadas a fornecer os dados, garantindo, ao mesmo tempo, que compreendam o significado do esforço de coleta de dados. Validação consiste em verificar os dados recolhidos para exatidão, perfeição e coerência.
- Analisar o dado para avaliar a conformidade com as metas e formular recomendações para melhorias futuras. O último passo no processo GQM é olhar para os resultados de medição e avaliá-los, identificar as lições aprendidas que podem ser úteis aos futuros projetos. Quando o GQM é implementado para apoiar a melhoria em uma organização, as experiências e lições aprendidas com cada implementação são condicionadas sob forma de políticas, procedimentos e práticas melhores, para apoiar futuras iniciativas e projetos, e a melhoria da organização, para ajudar a alcançar uma maior alavancagem do negócio.
Desvantagens do GQM
Você acompanhou o significa, objetivo e as vantagens do GQM. Veja, agora, suas desvantagens e esteja sempre atento a esses pontos:
- As métricas não são definidas no nível de detalhes necessários para garantir confiabilidade;
- Não é explicitado se as métricas podem ou não ser repetidas, ou seja, se a medição de um atributo for repetida por uma pessoa diferente, o mesmo resultado deve ser obtido;
- Há uma necessidade de se estabelecer um padrão que permita expressar uma métrica com detalhes suficientes para torná-la não ambígua e que, ao mesmo tempo, seja de fácil especificação;
- Necessário que as métricas sejam categorizadas por tamanho, esforço e planejamento, qualidade, desempenho, confiabilidade e complexidade.
Não se preocupa com os problemas relacionados com a medição em si, como:
- Viabilidade;
- Economicidade;
- Quais os benefícios esperados;
- Quanto custa medir, armazenar e processar;
- Corretude do modelo de medição;
- Confiabilidade dos modelos estatísticos;
- Técnicas de medição;
- Escalas das medidas;
Refinamento das metas
A partir deste conceito, vamos compreender o impacto sobre a qualidade da execução. Para medir essa meta, devemos:
- Analisar o produto final (Objeto);
- Para compreender melhor (Propósito);
- O impacto sobre a qualidade da execução (Foco);
- Sobre o reforço do processo (Ambiente);
- Do ponto de vista da equipe do projeto (Ponto de vista).
Atividade proposta
Disserte sobre a importância do modelo GQM e como esse modelo pode melhorar a qualidade do processo de desenvolvimento de software.
Chave de resposta: Temos que focar na melhoraria da pontualidade e do atendimento de solicitações de mudança, e medir e acompanhar o tempo médio para atendimento.
Referências
PRESSMAN, Roger S. Engenharia de software – Uma abordagem profissional. 7. Ed. São Paulo: MCGRAW-HILL BRASIL, 2011.
PFLEEGER, Shari Lawrence. Engenharia de software – Teoria e prática. 2. Ed. São Paulo: Pearson (Livros Universitários), 2003.
SOMMERVILLE, Ian. Engenharia de software. 9. Ed. São Paulo: Pearson (Livros Universitários), 2011.
Lista de Exercícios de Modelo de Maturidade de Software – Lista 5