Você está na página 1de 5
Unioeste - Universidade Estadual do Oeste do Parana Ciência da Computação – Disciplina: Engenharia de

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.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

NNããoo ssee ppooddee ccoonnttrroollaarr aaqquuiilloo qquuee nnããoo ssee ccoonnsseegguuee mmeeddiirr TToomm ddee MMaarrccoo

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.

Unioeste - Universidade Estadual do Oeste do Parana Ciência da Computação – Disciplina: Engenharia de

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 chute 1 ). 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.

partes que são estimadas

O

projeto

é

dividido

em

pequenas

individualmente.

1 CHUTE – calculo hipotetico usando tecnica estruturada

Unioeste - Universidade Estadual do Oeste do Parana Ciência da Computação – Disciplina: Engenharia de

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.

as

métricas

Orientadas

ao

Tamanho

são

usadas

para

compilar

medições diretas da saída e da qualidade da engenharia de software.

métricas Orientadas para a função oferecem medidas indiretas

Unioeste - Universidade Estadual do Oeste do Parana Ciência da Computação – Disciplina: Engenharia de

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:

novos

Classificar

os

projetos

em

tipos

de

desenvolvimento:

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,

linhas-de-

Padronizar

as

métricas

compostas:

Produtividade

=

código/pessoas-mês, Tempo de entrega = pontos-de-função / duração

Ferramentas:

à

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;

Diversos

programas

podem

ser

utilizados

no

apoio

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.

Unioeste - Universidade Estadual do Oeste do Parana Ciência da Computação – Disciplina: Engenharia de

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.