quarta-feira, 8 de janeiro de 2014

Métricas de Software para processos



Devido a importância dos processos no ciclo de vida do software bem como, sua forte relação com a qualidade final do produto, foram desenvolvidas ao longo do tempo métricas que auxiliam no gerenciamento e controle dos processos de software. Uma definição para métricas de processos é dada por Kan (1995, p. 83) como sendo métricas que podem ser usadas para auxiliar no desenvolvimento e manutenção dos processos de software.
As métricas segundo Pressman (2002, p. 506) conduzidas durante os primeiros estágios do processo de software fornecem aos engenheiros de software um mecanismo consistente e objetivo para avaliar a qualidade do software em desenvolvimento. 
Na visão de Sommerville (2003, p. 477) a melhoria de processo é uma prática iterativa e de longo prazo e que deve ser apoiada através de métricas de processos que auxiliem os gerentes fornecendo dados quantitativos que demonstrem as variações existentes nas características de um processo para que o mesmo possa ser aperfeiçoado. Sommerville (2003, p. 477) ainda lista algumas dessas características dos processos de software como pode-se observar a seguir: 
  • Facilidade de compreensão: Até que ponto o processo está explicitamente definido e com que facilidade se pode compreender a definição do processo? 
  • Visibilidade: As atividades de processos culminam em resultados nítidos, de modo que o progresso do processo seja externamente visível? 
  • Facilidade de suporte: Até que ponto as atividades do processo podem ser apoiados por ferramentas CASE
  • Aceitabilidade: O processo definido é aceitável e utilizável pelos engenheiros responsáveis pela produção do produto de software? 
  • Confiabilidade: O processo está projetado de tal maneira que seus erros sejam evitados ou identificados antes que resultem em erros no produto? 
  • Robustez: O processo pode continuar, mesmo que surjam problemas inesperados? 
  • Facilidade de manutenção: O processo pode evoluir para refletir os requisitos mutáveis da organização ou melhorias de processos identificadas? 
  • Rapidez: Com que rapidez pode ser concluído o processo de entrega de um sistema, a partir de uma determinada especificação? 


As métricas de processo podem demonstrar através de dados quantitativos aos gerentes valores correspondentes a algumas das questões que se deseja saber através das características listadas a cima apoiando assim suas decisões com dados quantitativos que podem auxiliar no melhoramento dos processos de software. Existem ainda segundo Sommerville (2003, p. 484) três classes de métricas de processos que podem ser coletadas: 

  • O tempo gasto para um processo em particular: Esse pode ser o tempo total dedicado ao processo, o ‘tempo de calendário’, o tempo gasto no processo por engenheiros individuais, etc. 
  • Os recursos requeridos para um processo em particular: Os recursos podem ser o esforço total calculado em pessoa-dia, os custos relacionados a equipamentos de hardware bem como, custos de viagens etc. 
  • O número de ocorrências de um evento em particular: Exemplos de eventos que podem ser monitorados são o número de defeitos descobertos durante a inspeção de código, o número de mudanças nos requisitos que foram solicitados, o número médio de linhas de código modificadas em resposta a uma mudança nos requisitos é um exemplo dessa classe de métrica a ser coletada. 



Essas categorias de medições de processo podem ser utilizadas para descobrir se houve mudanças relativas a eficiência de um processo e ainda mudanças que influenciam na qualidade do software. 

O objetivo das métricas classificadas como métricas de processos, portanto, é auxiliar no controle, gerenciamento e evolução dos processos de software através de dados quantitativos possibilitando um nível de qualidade mensurável.

Nenhum comentário:

Postar um comentário