33
Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão Métricas de Software Plácido Antônio de Souza Neto 1 1 Gerência Educacional de Tecnologia da Informação Centro Federal de Educação Tecnologia do Rio Grande do Norte 2006.1 - Planejamento e Gerência de Projetos

Métricas de Software - ifrn.edu.brplacidoneto/ensino/natalcentral/pgp/material/... · Métricas de Software Plácido Antônio de Souza Neto1 ... Exemplo: densidade de defeitos (defeitos

Embed Size (px)

Citation preview

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métricas de Software

Plácido Antônio de Souza Neto1

1Gerência Educacional de Tecnologia da InformaçãoCentro Federal de Educação Tecnologia do Rio Grande do Norte

2006.1 - Planejamento e Gerência de Projetos

Plácido A Souza Neto
Plácido A Souza Neto
Planejamento e Gerência de Projetos IFRN - DIATINF

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Introdução

PerguntaPor que medir?

Obter auto conhecimento (interno);

Atender a uma pressão imediata (externa);

Preparar-se para o futuro (tendências).

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Introdução

PerguntaObter auto conhecimento?

Se não sabemos onde estamos. . .Não conseguimos. . .

. . . Saber para onde se quer ir.

. . . Saber o que será feito.

É importante ter saber o que se tem, o que se está produzindo eaonde se quer chegar.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Introdução

PerguntaAtender a uma pressão imediata?

Saber o que fazer em uma necessidade a curto prazo.Ex.: Ser aprovado na concorrência de um projeto dedesenvolvimento de software.

É importante saber o que se deve fazer HOJE.. . . Saber para onde caminhar.

Se o ambiente de desenvolvimento não tiver uma estruturaconcreta de produção, como serão os próximos projetos?

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Introdução

Possíveis Riscos . . .

Se não se consegue MEDIR . . . . . . Não se consegue . . .

Controlar;Gerenciar;Melhorar;Trabalhar.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Introdução

PerguntaAté onde medir?

Alinhar os objetivos dos projetos (necessidades) com osobjetivos da empresa.Estabelecer um programa de métricas:

Adequado;Fundamentado;Gradual.

Não medir mais do que é necessário

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Introdução

PerguntaMas. . . Quais as vantagens de utilizar métricas no desenvolvimento desistemas?

Diminuir:Defeitos;Prazo de entrega;Disperdício;Custo;

Aumentar:Satisfação do cliente;Produtividade dos recursos;Visibilidade das ações;Qualidade do gerenciamento;Qualidade do produto.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Tipos de Ambiente

Figura: Painel Comparativo.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Ambientes para Aplicaçãode Métricas

Figura: Possibilidades de Métricas.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Tipos de Métricas

PerguntaComo podemos classificas as métricas em um projeto?

Métricas Primárias (1a Ordem);

Métricas Secundárias (2a Ordem);

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métricas Primárias (1a Ordem)

Apontamentos dos fatos (reais) -> MEDIDAS;

Informações objetivas da realidade;

Exemplo: defeitos, horas trabalhadas, custo, reclamações, . . . ;

Tendência à expressão numérica.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Riscos

Processo de captura -> credibilidade;

Meio de captura -> facilidade, entendimento, objetividade;

independência da análise -> confiabilidade.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métricas Secundárias (2a Ordem)

Indicadores (expressam um comportamento além dos números);

Resultado de uma relação de: Métrica / Fator;

Informações objetivas da realidade;

Exemplo: densidade de defeitos (defeitos por fase do projeto,. . . ).

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Riscos

Processo de definição e análise cos dados -> corretude;

Processo de uso -> utilidade, poder de explicação, relevância.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Estruturas e Objetivos

Objetiva o Processo e suas atividades e os projetos e suasatividades;Medições Operacionais:

Processo;Projeto;Atividades;

Objetiva o ambiente de desenvolvimento, mudanças etendências;Medições táticas:

Tendências;Impactos (Tradeoffs);Atributos;

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Estruturas e Objetivos

Objetiva comparações com outras organizações e melhoriascontínuas;Medições estratégicas:

Benchmarking;Melhoria Contínua;Avaliação Econômica;

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Possibilidades de Métricas em Software

Tamanho do software;

Quantidade de defeitos;

Complexidade do software;

Acesso e segurança;

Qualidade do produto;

Utilidade do produto;

Usabilidade do produto;

Estimativa de durabilidade;

Comportamento dos defeitos;

Taxa de inovação: novas funcionalidades (Entre versões);

Dentre outras . . . como . . .

Medir a quantidade de funcionalidades incluídas em umsoftware -> tamanho do produto

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métodos para medir tamanho do produto

Linhas de código - lines of code (Kloc);

Análise de Pontos de função (APF);

Constructive Cost Model (COCOMO);

Metodologias ágeis;

Pontos de casos de uso.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métodos para medir tamanho do produtoMétricas para Planejamento e Gerenciamento

Dimensão dos produtos: Modelos, protótipos, documentos esoftware;

Esforço de produção: Pessoas necessárias em um periodo detempo;

Produtividade: Quantidade produzida por esforço;

Defeitos: Número de erros encontrados;

Custo de produção: Valor do esforço de produção e correçao deerros.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métodos para medir tamanho do produto

LOC - Linha de Código Fonte:Mede todo o esforço necessário para entregar um código correto,sem erro;Depende da linguagem.

Funções:Determinada pela funcionalidade do sistema;Independe da linguagem.

Para qualquer abordagem é importante:Ter experiência;Utilizar dados históricos.

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Métodos para medir tamanho do produto

MÉTRICAS OBJETIVOSLinhas de Código (LOC) Dimensão do ProdutoPontos por Função (PF) Dimensão do ProdutoLOC/FP Dimensão do ProdutoPessoa/Mês (PM) Esforço HumanoPessoa-Mês/LOC Produtividade LinearDefeitos/LOC QualidadeCusto/LOC Custo

Tabela: Outros tipos de métricas

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Estimativa

Estimar a dimensão do programa;

Calcular o esfoço humano;

Aplicar penalidades de produtividade;

Realizar ajustes;

Calcular Reuso;

Identificar e corrigir defeitos.

OBS.: Muito importante ter base histórica de desenvolvimento

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Calculando Dimensão do programaPontos por Função

Depende da funcionalidade;

Baseado nos dados empíricos e o software a ser desenvolvido;É definido a partir de:

No de entradas do usuário;No de saídas do usuário;No de consultas do usuário;No de interfaces;. . . .

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Exemplo PF

Suponha que será construido um sistema se submissão deartigos:

Foram identificados dados de acordo com os requisitos coletadosinicialmente:

FP = (25*4)+(15*5)+(7*5)+(10*4) = 250FP

Número Fator de conversãoEntradas 25 4Saídas 15 5Consultas 10 4Interfaces 5 7

Tabela: Exemplo

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Calculando Dimensão do programaEsforço Humano

Determina o número de pessoas para realizar uma atividadenum período de tempo;Exemplo:

Construir um programa com 50 KLOC == 50.000 LOC;Produtividade linear dos programadores: 2,4 Pessoa-mês/KLOC.

O esforço depende do tamanho do software;

A produtividade diminui em equipes maiores, principalmentedeviso à necessidade de comunicação e interação.

Tamanho Equipe Esforço Prazo total1 150 Pes.Mes 150 meses10 150 Pes.Mes 15 meses100 150 Pes.Mes 1,5 meses

Tabela: Exemplo RH

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Variação entre as Linguagens

O número de linhas de códigos e a produtividade variam deacordo com a linguagem utilizada.

Linguagem de Programação LOC por PFC++ 53Java 46Delphi 18VB 24HTML 14

Tabela: LOC por PF

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

ExemploCalculando LOC e Esforço Humano

Suponha que o sistema de submissão de artigos está sendoanálisado (Sistema feito em Java);

Com base na tabela de LOC-por-PF, tem-se 46 LOC por PF, paraprogramas feito em Java;

O Esforço humano tem como base PRODUTIVIDADE x No LOC;

Considerando que é produtividade para o sistema de submissãode artigos seja de 3,1 Pes.Mes/LOC e que existem 280 PF apartir da análise prévia.

PerguntaQual será o esforço para produzir este sistema?Qual quantidade de linhas de código?

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

ExemploCalculando LOC e Esforço Humano

RespostaLOC = FP*(LOCporFP)LOC = 280*46LOC = 12,88 KLOC (12.880 LOC)————————-Esforço = Produtividade*KLOCEsforço = 3,1 * 12,88Esforço = 39,928 PM

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

ExemploCalculando LOC e Esforço Humano

RespostaCom 7 membros na equipe a quantidade de meses para construir osistema é?QtdMES = Esforço / No MembrosQtdMES = 39,928 PM / 7QtdMES = 5,7 Meses

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Aplicando Penalidades

Determinou-se empiricamente que a produtividade diminui com oaumento do tamanho do software;

Esta produtividade depende do tipo de sistema de acordo com atabela abaixo;

Tipos de Sistema Fator de PenalidadeSistema Web 1,030Sistema Militar 1,072Sistema embutido 1,110

Tabela: Fator Exponencial de Penalidade

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

ExemploCalculando Fator de Penalidade

RespostaEsforço = Produtividade*KLOCEsforço = 3,1 * 12,88Esforço = 39,928 PM—————————EsforçoPEN = (Esforco)(fator)

EsforçoPEN = (39,928)(1,030)

EsforçoPEN = 44,598 PM——————————-QtdMES = 44,598 PM PM / 7QtdMES = 6,37 Meses

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Aplicando Penalidades

O custo e os prazos é calculado em função do esforço, da equipee do custo da mão de obra;

Custo de mão de obra (CM) é dado em Valor/PM;Exemplo:

Programa com 12,88 KLOC;Esforço de 44,598 PM;Com uma equipe de 7 programadores;Salário mensal é R$ 1780,00.

Esforço Custo MO Equipe Prazo Custo Mensal Custo Total44,598 R$ 1780,00 7 6 Meses R$ 12.460,00 R$ 74.760,0044,598 R$ 450,00 7 6 Meses R$ 3.150,00 R$ 18.900,00

Tabela: Exemplo Custo

Introdução Tipos de Métricas Métricas de Software Aplicando Penalidades Custos e Prazos Conclusão

Conclusão

É importante ter saber o que se tem, o que se está produzindo eaonde se quer chegar.

É importante estabelecer um programa de métricas;Métricas são classificadas em:

Métricas Primárias (1a Ordem);Métricas Secundárias (2a Ordem);

As métricas são utilizadas para:Estimar a dimensão do programa;Calcular o esfoço humano;Aplicar penalidades de produtividade;Realizar ajustes;Calcular Reuso;Identificar e corrigir defeitos.