Download - Métricas e Estimativas de Software

Transcript
Page 1: Métricas e Estimativas de Software

“A medição de software se dedica a derivar um valor numérico para algum atributo de um produto ou processo de software. Comparando­se esses valores uns com os outros e aos padrões que se aplicam em sua organização, você pode ser capaz de tirar conclusões. Sobre a qualidade de software ou os processos de software” [Sommerville]. Ou seja, uma métrica de software é uma medição que se refere a um software, processo ou documentação. 

Existem várias classificações para as métricas de software. Algumas delas estão listadas a seguir. 

Internas ou Externas ● Métricas Internas ou Estáticas: medições de um produto de software a partir de suas 

próprias características internas sem a necessidade de execução dos programas. Por exemplo, linhas de código, números de erros encontrados em revisões, dados coletados na documentação, etc. 

● Métricas Externas ou Dinâmicas: são medições de um produto de software a partir do comportamento do sistema ou do seu efeito no ambiente durante a execução dos seus programas. 

Diretas ou Indiretas ● Métricas Diretas, Básicas ou Quantitativas: não dependem da medição de outros 

atributos. Exemplo: custo/esforço do desenvolvimento, linhas de código, velocidade de execução, quantidade de memória, número de erros, quantidade de defeitos. Concentram­se na saída do processo de engenharia de software. 

● Métricas Indiretas, Derivadas ou Qualitativas: dependem da medição de outros atributos. Exemplo: produtividade, qualidade e técnicas (funcionalidade, manutenabilidade, complexidade, eficiência, confiabilidade, modularidade, portabilidade). Indicam o quanto o software atende aos requisitos definidos pelo usuário. 

Orientadas a Tamanho, Função ou Pessoas ● Métricas Orientadas a Tamanho: baseadas no número de linhas de código produzidas 

(LOC) ● Métricas Orientadas a Função: baseadas na funcionalidade de software, tais como a 

Analise de Pontos de Função. ● Métrica Orientadas a Pessoas: indicam a forma como as pessoas devem desenvolver 

os programas. 

Objetivas ou subjetivas ● Objetivas: independem do autor da medição ou julgamento humano. Exemplo: 

quantidade de defeitos. ● Subjetiva: dependem do autor da medição ou julgamento humano. Exemplo: classificar 

a criticidade de um defeito. 

Produtividade, Qualidade ou Técnica ● Produtividade: resultado do processo de desenvolvimento 

Page 2: Métricas e Estimativas de Software

● Qualidade: nível de exigência ou satisfação do usuário ● Técnica: funcionalidade, manutenabilidade, modularidade, complexidade, eficiência, 

confiabilidade, portabilidade. 

Exemplos de Métricas ● Fan­in e Fan­out: Fan­in é o número de funções que chamam a função X. Fan­out é o 

número de funções chamadas pela função X. ● Extensão de Código: quanto maior for o tamanho do código de um componente, mais 

complexo e propenso a erros este componente será ● Complexidade Ciclomática: complexidade de controle do programa. Utiliza grafos e a 

seguinte fórmula: ○ M=E­N+2P, onde: 

M = complexidade ciclomática E = quantidade de setas N = quantidade de nós P = quantidade de componentes conectados 

● Extensão de Identificadores: extensão média de identificadores distintos de um programa. Quanto maiores forem os identificadores, mais eles serão significativos e mais compreensível será o programa. 

● Profundidade de aninhamento das declarações condicionais: declarações IF profundamente aninhadas são difíceis de compreender e são potencialmente propensas a erros. 

● Índice de Fog: extensão média das palavras e sentenças nas documentações ● Mean Time To Failure (MTTF): tempo que o software roda sem falhar ● Densidade do defeito: quantidade de defeitos (durante um período de tempo) pelo 

tamanho do software ● Mean Time Between Failures (MTBF): tempo médio entre as falhas. Ajuda a prever 

quando ocorrerá a próxima falha.  

Questões Comentadas

FCC ­ 2012 ­ TJ/RJ ­ Analista Judiciário: Analista de Sistemas Métricas de software são formas de quantificar o esforço necessário para a construção de um sistema de software. Sobre métricas de software é correto afirmar que  

A. um indicador é parte de uma métrica.   B. custo, funcionalidade e número de erros são métricas indiretas.   C. a métrica de pontos de função só pode ser calculada com o código terminado.   D. linhas de código, esforço e memória são métricas diretas.   E. métricas de produtividade indicam o quanto o software atende aos requisitos.  

 Comentários: Revisando: 

A. Indicador é a combinação de métricas.  

Page 3: Métricas e Estimativas de Software

B. Custo e número de erros são métricas diretas. Funcionalidade, sim, é uma métrica indireta. 

C. A métrica de pontos de função pode ser calculada mesmo sem código D. Alternativa correta. E. Métricas de produtividade avaliam o processo, e não o produto.