terça-feira, 9 de outubro de 2012

Métricas de Software


    As métricas de software são os sistemas métricos utilizados para medir software, com o objetivo de obter informações que sejam úteis aos desenvolvedores, podendo assim, auxilia-los na administração do projeto bem como, em todo o ciclo de vida da engenharia de software. “Uma métrica de software é qualquer tipo de medição que se refira a um sistema de software, processo ou documentação relacionada” (SOMMERVILLE, 2003, p. 468). Sommerville ainda define assim o papel das métricas de software: A medição de software se ocupa em obter um valor numérico para alguns atributos de um produto ou de um processo de software. Comparando esses valores um com os outros e com os padrões que se aplicam em uma organização, é possível tirar conclusões sobre a qualidade do software ou dos processos de software.(SOMMERVILLE, 2003, p. 468). 

  Segundo esta visão percebe-se que as métricas de software baseiam-se na aplicação de padrões bem definidos dentro da organização. Por outra perspectiva a importância de se usar dados numéricos, obtidos através da aplicação de métricas de software, segundo Koscianski e Soares (2006, p. 57) se justifica pelo fato de que os números permitem análises, comparações e combinações que são impossíveis de fazer com outros tipos de informações. Para Pressman (2002, p. 506) as métricas de software ajudam na avaliação dos modelos de análise e projeto, fornecem uma indicação da complexidade do projeto procedimental e do código-fonte além de facilitar o processo de teste de software tornando-o mais efetivo. As métricas de software abrangendo todo o ciclo de vida do software possuem um vasto campo de pesquisa: 

    O assunto ‘métricas de software’ é bastante extenso. Exemplificando, Xenos [2000] cita um relatório com mais de 200 métricas diferentes, um indício de que caracterizar o funcionamento de um software não é uma tarefa simples. (XENOS apud KOSCIANSK; SOARES, 2006, p. 224).  Dessa maneira existem diferentes classificações na literatura a respeito das métricas de software. Essas classificações servem como guias para a escolha de métricas de software que se encaixe em um determinado contexto. A respeito das medições é necessário ainda explanar as diferentes fontes de ruídos que podem afetar o resultado da aplicação das métricas. Essa explanação é feita a seguir.



 Fontes de Ruído nas Métricas de Software 


   Ao se realizar uma medição espera-se obter dados legítimos sobre o objeto em questão. Segundo Koscianski e Soares (2006, p. 57) no domínio das ciências exatas e da engenharia os valores das medições necessitam de precisão, pois um pequeno erro de medida pode ter conseqüências bastante significativas. Porém, nem sempre o resultado da aplicação de uma métrica representa o valor real que seria obtido em condições ideais.  O motivo dessa distorção no resultado de uma medição são as fontes de ruídos. Exemplificando na engenharia civil as fontes de ruídos que poderiam influenciar nas medições de um projeto de um prédio seriam: a umidade relativa do ar da região que poderia modificar as propriedades de certos materiais utilizados na obra, o clima e o tipo de terreno onde o prédio será construído. Essas fontes de ruídos, portanto são devidamente tratadas pelos engenheiros e dessa maneira os prédios são construídos. 

    As aplicações de métricas em software também estão sujeitas a interferência de ruídos que segundo Koscianski e Soares (2006, p. 58) basicamente estão divididos  em duas categorias: os ruídos provenientes dos usuários e os ruídos provenientes do hardware. Os ruídos que são influenciados pelos usuários podem ser vistos em testes práticos realizados em software para obter informações relativas a sua usabilidade: Exemplos de medidas que se enquadram aqui são aquelas envolvendo a habilidade ou a opinião dos usuários, como medir o tempo para  cumprir uma determinada tarefa; ou julgar em uma escala de zero a dez a qualidade de uma interface. Embora os números obtidos possam refletir alguma informação sobre a qualidade do software, carregam consigo uma grande margem de incerteza. (KOSCIANSKI; SOARES, 2006, p. 59). Uma possível alternativa para amenizar essa margem de incerteza seria utilizar técnicas estatísticas tais como Média e Desvio-Padrão possibilitando uma maior exatidão a respeito dos dados coletados.

   Há também os ruídos provenientes do hardware, ao se avaliar o desempenho de um software, por exemplo, deve-se levar em conta fatores como: CPU utilizada, quantidade de memória, periféricos conectados ao computador e ainda a presença de outros softwares rodando na máquina. Ou seja, fatores técnicos do hardware como, quantidade de  cache do processador e dos discos rígidos e a disposição dos dados em memória tudo isso influencia em um resultado da aplicação de uma métrica de software que dependa da execução do mesmo sobre determinado hardware. Percebe-se, portanto que a utilização de métricas de software está sujeita a variações e influências nos seus resultados e dessa maneira deve-se minimizar estas influências para que os dados representem com mais fidelidade  o objetivo da medição.

Um comentário: