Uso de Métricas
na Melhoria do
Processo de Software
Mauricio Aguiar, CFPS
[email protected]
Brazilian Function Point Users Group
Presidente
www.bfpug.com.br
International Function Point Users Group
Director
www.ifpug.org
23 de outubro de 2000
Objetivos
“Não se
consegue controlar
o que não se
consegue medir¹”
¹ Tom DeMarco, Controlling Software Projects, Yourdon Press, 1982.
Objetivos
“Na maioria das disciplinas, é assumida uma
forte relação entre medição e controle.
Contudo, temo que esta idéia seja novidade
para os gerentes de software; estes, embora
sejam pessoas racionais com relação a
outros assuntos, mantém uma ilusão de
controle, embora nunca meçam nada.¹”
¹ Tom DeMarco, Controlling Software Projects, Yourdon Press, 1982.
Agenda
Tópicos
• Medidas Funcionais de Tamanho de Software
• Pontos de Função
• Estimativas de Esforço e Prazo
• Pontos de Função e o CMM
• Cuidados na Contratação de Software com
Base em Pontos de Função
Medindo Software
Por Que Medir¹
•Visão dos processos
•Identificação e gerenciamento de risco
•Identificação e resolução de problemas (antes que se
tornem críticos)
•Comunicação (na equipe e na organização)
•Avaliação do desempenho da organização
•Justificativas objetivas para as decisões
“Conduz a organização do gerenciamento a partir do sentimento
ao gerenciamento com base em fatos” - Carol Dekkers
¹ Staley, M.J., Clark, B., Managing Software Projects With Metrics, SEI, 1999
Medidas de Tamanho
Funcionais x Não Funcionais
Linha de Código¹ (LOC) - Medida não
funcional de tamanho
Ponto de Função² (PF) - Medida funcional
de tamanho
¹ Park, R., Software Size Measurement: a Framework for Counting
Source Statements, CMU/SEI-92-TR-020, 1992.
² IFPUG, Counting Practices Manual, Version 4.1, IFPUG, 1999.
Medidas Funcionais
•Medem a funcionalidade entregue ao usuário,
independentemente da forma de implementação
•Independem de plataforma ou linguagem de
programação
•Independem do estilo de programação
utilizado
•Permitem comparações entre empresas,
linguagens, etc.
O padrão ISO/IEC 14143-1:1998 trata da definição dos
conceitos referentes às medidas funcionais de tamanho de
software
Algumas Medidas
Funcionais de Tamanho
•Pontos de Função do IFPUG do International
Function Point Users Group
•Mark II Function Points de Charles Symons
•Full Function Points (Cosmic) de Alain Abran
•3D Function Points da BOEING
•Bang de Tom DeMarco
Pontos de Função
•Medem o software através da quantificação da
funcionalidade solicitada e adquirida pelo
cliente, tendo como base primária o projeto
lógico
•Medem o desenvolvimento e manutenção de
software independentemente da tecnologia
utilizada na implementação
•Medem o desenvolvimento e manutenção de
software consistentemente em todos os projetos
e organizações
Pontos de Função
Entrada Externa
Saída Externa
Consulta Externa
Arquivos de
Aplicativo Sendo Considerado Interface Externa
Arquivo
Lógico
Interno
Entrada Externa
Saída Externa
Consulta Externa
Outros
Aplicativos
© Copyright 1999. International Function Point User Group 1999
Gerenciando Mudanças
nos Requisitos
Aplicativo
Entregue
Projeto
Funcional
Requisitos
100 PFs
120 PFs



Tela de entrada do
código do estado
alterada (3 PFs)
Acrescentado arquivo
interface A (10 PFs)
Consulta a A e ao
código do estado
acrescentadas (7 PFs)
Projeto
Detalhado
130 PFs
• Nova tabela legal
acrescentada (10
PFs)
135 PFs
• Relatório resumo
incluído (5 PFs)
Impacto
Esforço
Cronograma
Custo
+ 1 mês
+ 2 semanas
+ $5000
+ 0.5 meses
+ 2 semanas
+ $2500
+ 0.25 meses
+ 2.5 dias
+ $1250
© Copyright 1999. International Function Point User Group 1999
Produzindo Estimativas
Estimativa Para o Projeto
Baseada em Dados Históricos
e/ou Ferramenta
Tamanho em PF
Variáveis do Projeto
Projeto A – 100 PFs
•
•
•
•
On-line/database
Novo desenvolvimento
C++
Desenvolvedores
altamente experientes
Esforço = 5 meses
Cronograma = 3 meses
Custo (a $5000) = $25000
KLOC = 6
Defeitos Entregues = 25
Produtividade = 20 PF/Mês.
Projeto B – 100 PFs
•
•
•
•
Batch
Melhoria
Cobol
Desenvolvedores
medianamente
experientes
Esforço = 20 meses
Cronograma = 6 meses
Custo (a $5000) = $100000
KLOC = 10
Defeitos Entregues = 100
Produtividade = 5 PF/Mês
© Copyright 1999. International Function Point User Group 1999
Download

Parte 1