Você está na página 1de 5

Unioeste - Universidade Estadual do Oeste do Parana

Ciência da Computação – Disciplina: Engenharia de Software II


Prof. Willian Francisco da Silva

Título Introdução a Métricas de Software


Nro. 32
Objetivo Apresentar os conceitos de métricas de software e destacar sua importância e
utilidade.
Bibliografia www.bfpug.com.br
http://www.pr.gov.br/batebyte/edicoes/2000/bb101/metricas.htm
www.psphome.hpg.ig.com.br/downloads/ etapas_do_gerenciamento_do_projeto.doc
http://www.iis.com.br/~coriceu/prodsoft/12metr.htm

Introdução a Métricas de Software

Não se pode controlar aquilo que não se consegue medir.


Tom de Marco

Software é atualmente um dos maiores componentes do orçamento de muitas


organizações. A maioria delas reconhece a importância de controlar os gastos
com software, de analisar a performance dos resultados obtidos com o seu
desenvolvimento e manutenção, a fim de permitir uma padronização. Para
fazer isto, necessitamos fazer uso de medidas e de modelos apropriados.

Medidas são necessárias para analisar qualidade e produtividade do processo


de desenvolvimento e manutenção bem como do produto de software
construído. Sabendo exatamente o "tamanho" do sistema a ser desenvolvido,
pode-se pensar em :
• alocar adequadamente a equipe que o desenvolverá;
• definir claramente as responsabilidades;
• ter indicação de performance durante o desenvolvimento;
• avaliar se novas tecnologias estão efetivamente trazendo os ganhos
esperados;
• ter um gerenciamento mais correto;
• melhorar a precisão das estimativas envolvidas;
• avaliar o patrimônio representado pelo software desenvolvido;

E a partir de medições torna-se possível realizar uma das atividades mais


fundamentais do processo de gerenciamento de projetos que é o planejamento.
A partir deste planejamento, passamos a identificar a quantidade de esforço, o
custo e as atividades que serão necessárias para a realização do projeto.[2]

Pela medição é possível quantificar e assim administrar melhor. O processo é


medido num esforço para melhorá-lo. O produto é medido, num esforço para
aumentar a sua qualidade.

1
Unioeste - Universidade Estadual do Oeste do Parana
Ciência da Computação – Disciplina: Engenharia de Software II
Prof. Willian Francisco da Silva

O software é medido por muitas razões: indicar a qualidade do produto, avaliar


a produtividade das pessoas que produzem o produto, avaliar os benefícios
derivados de novos métodos e ferramentas de software, formar uma linha
básica para estimativas, ajudar a justificar os pedidos de novas ferramentas ou
treinamento adicional.

Porém, às vezes surgem indagações do tipo: Quais são as métricas


apropriadas para o processo e para o produto? É justo usar medições para se
comparar pessoas, processos e produtos? Essas perguntas vem à tona
quando é feita uma tentativa de se medir alguma coisa que não tenha sido
medido no passado.

A medição é algo comum no mundo da engenharia. Infelizmente, a engenharia


de software está longe de ter uma medição padrão amplamente aceita e com
resultados sem nenhum fator subjetivo. Temos dificuldade em concordar sobre
o que medir e como avaliar o resultado das medições obtidas.

Geralmente, usa-se o recursos das estimativas (ou do chute1). Estimativas são


feitas usando-se a experiência passado como único guia. Se um novo projeto
for muito semelhante, em termos de tamanho e função, a um projeto passado,
provavelmente esse novo projeto exigirá aproximadamente a mesma
quantidade de esforço, tomará o mesmo tempo em calendário e custará o
mesmo valor em dólares.

Há bem pouco tempo, a única base para a realização de estimativas era a


experiência da equipe técnica envolvida no projeto, ou seja, um processo
inteiramente subjetivo e que fatalmente levava a atividades atropeladas ou não
realizadas, produtos com deficiência funcional, custo de realização além do
previsto e atraso na entrega do produto. Um dos grandes problemas da
utilização da experiência passada de desenvolvimento de projetos de software
em novos desenvolvimentos é a dificuldade de estabelecer semelhanças de
funcionalidade e tamanho entre projetos de software.

Se o projeto romper novos horizontes, novas técnicas de estimativas foram


disponibilizadas para o desenvolvimento de software com os seguintes
atributos:
• O escopo do projeto deve ser estabelecido antecipadamente.
• Métricas de software são utilizadas e o histórico de aferições passadas
é usado como uma base a partir da qual estimativas são feitas.
• O projeto é dividido em pequenas partes que são estimadas
individualmente.

1
CHUTE – calculo hipotetico usando tecnica estruturada

2
Unioeste - Universidade Estadual do Oeste do Parana
Ciência da Computação – Disciplina: Engenharia de Software II
Prof. Willian Francisco da Silva

Utilidade das Medidas


A capacidade de se medir um sistema de software (ou suas partes) permite:
1. estimar o tempo de construção do software
2. estimar regiões que tendem a apresentar uma grande taxa de defeitos.
3. ajudar na justificação de novas ferramentas e especialização adicional.

As métricas relacionadas com (1) são importantes principalmente na etapa de


análise do sistema. As métricas relacionadas com (2 e 3) são importantes em
todas as fases de desenvolvimento do sistema.

Categorias de métricas

As métricas de software, do ponto de vista de medição, podem ser divididas em


duas categorias: medidas diretas e indiretas.

Podemos considerar como medidas diretas do processo de engenharia de


software o custo e o esforço aplicados no desenvolvimento e manutenção do
software e do produto, a quantidade de linhas de código produzidas e o total de
defeitos registrados durante um determinado período de tempo. Porém, a
qualidade e a funcionalidade do software ou a sua capacidade de manutenção
são mais difíceis de ser avaliadas e só podem ser medidas de forma indireta.
Também podemos dividir as métricas de software, sob o ponto de vista de
aplicação, em duas categorias: métricas de produtividade e de qualidade. As
métricas de produtividade se concentram na saída do processo de engenharia
de software e métricas de qualidade indicam o quanto o software atende aos
requisitos definidos pelo usuário.

Entre as medidas diretas do processo de engenharia de software incluem-se o


custo e o esforço aplicados. As medidas diretas do produto incluem as linhas
de código produzidas, velocidade de execução, tamanho de memória e defeitos
registrados ao longo de certo espaço de tempo. As medidas indiretas do
produto incluem funcionalidade, qualidade, complexidade, eficiência,
confiabilidade, manutenibilidade e outras.

• métricas da produtividade que se concentra na saída do processo de


engenharia de software;
• métricas da qualidade que mostra o quão o estreitamente o software
conforma-se às exigências implícitas e explícitas do cliente.
• métricas técnicas concentram-se na característica do software e não
no processo pelo qual o software foi desenvolvido.
• métricas Orientadas ao Tamanho são usadas para compilar as
medições diretas da saída e da qualidade da engenharia de software.
• métricas Orientadas para a função oferecem medidas indiretas

3
Unioeste - Universidade Estadual do Oeste do Parana
Ciência da Computação – Disciplina: Engenharia de Software II
Prof. Willian Francisco da Silva

• métricas Orientadas às Pessoas compilam informações sobre a


maneira segundo a qual as pessoas desenvolvem software de
computador.

Implementando um programa de métricas


A implementação de um programa de métricas em uma empresa requer a
atuação em diversas frentes: estrutura organizacional, padrões, ferramentas e
processos.

Estrutura organizacional: A estrutura organizacional da empresa deve ser


modificada sendo criada uma equipe central para dar suporte às atividades
relacionadas ao controle de métricas. Dentre as responsabilidades atribuídas a
esta equipe destacam-se: definir os processos de medidas que serão usados;
consolidar as métricas; analisar e divulgar; manter as ferramentas utilizadas
para a coleta e gerenciamento; treinar as equipes;

Padrões: Diversos padrões devem ser estabelecidos pela equipe central do


programa de métricas. Exemplos:
• Classificar os projetos em tipos de desenvolvimento: novos
desenvolvimentos; grandes melhorias; manutenção; projetos internos;
• Padronizar as fases dos projetos: levantamento de requisitos; análise;
projeto;
• Padronizar as atividades não operacionais da equipe: férias; licenças;
• Padronizar as métricas primitivas: linhas de código, homens-hora,...
• Padronizar as métricas compostas: Produtividade = linhas-de-
código/pessoas-mês, Tempo de entrega = pontos-de-função / duração

Ferramentas: Diversos programas podem ser utilizados no apoio à


implementação do programa de métricas. Como exemplo, programas para: a
manutenção do banco de dados de métricas; a apropriação das homem-horas
consumidos nas atividades; a contagem de linhas de código e para o cálculo de
pontos de função; visulaização gráfica dos dados obtidos e consolidados;

Processo: O processo de implementação do programa de métricas se faz por


fases com as seguintes atividades.

Pontos de Função – PF
Para se dimensionar o "tamanho" de um software utilizam-se diversas técnicas.
Dentre elas destaca-se a Análise por Pontos de Função.
Em resumo, é uma técnica na qual verifica-se no software a ser criado a
quantidade de interfaces com outras funcões e arquivos de dados e pontua-se
cada interface considerando sua complexidade. Após algumas considerações
qualitativa-se chega-se a uma quantidade que representa o "tamanho" do
software a ser desenvolvido.

4
Unioeste - Universidade Estadual do Oeste do Parana
Ciência da Computação – Disciplina: Engenharia de Software II
Prof. Willian Francisco da Silva

Na engenharia temos o uso de metro quadrado (m2) para avaliar o tamanho de


uma construção. Mas obviamente outros grandezas são necessárias para um
completo conhecimento da construção, por exemplo, preço, tempo de duração
da construção, qualidade do material a ser utilizado, etc.
Da mesma forma, o PF nos dá o tamanho do software (como se fosse o m2 da
engenharia civil) mas necessita diversas outras grandezas para permitir um
planejamento adequado do desenvolvimento e o dimensionamento completo
do software.

Você também pode gostar