Métricas em Engenharia de Software
PONTOS POR CASO DE USO
PONTOS POR FUNÇÃO
2008-1
TI - Sistemática de Métricas
“Não se consegue controlar
o que não se consegue medir”
Tom DeMarco
Aspectos a discutir







Projetos
O que são métricas de software?
Porque devem ser utilizadas
O que se deve medir?
Como podem ser feitas estas medidas?
Quais os principais métodos para estimar
prazos e custos?
Quais os problemas de cada um?
Projetos

Projeto é um empreendimento não
repetitivo, caracterizado por uma seqüência
lógica e clara de eventos, com início, meio e
fim, que se destina a atingir um objetivo
claro e definido, sendo conduzido por
pessoas dentro de parâmetros predefinidos
de tempo, custo, recursos envolvidos e
qualidade.
Projetos - Porque gerenciá-los?









Competição
Padrões de qualidade
Redução das margens de lucro
Resultados financeiros
Fatores tecnológicos
Aspectos Legais
Aspectos sociais
Fatores políticos
Pressões econômicas
Projetos beneficiados com gerência







De tamanho maior ($, pessoal e tempo)
Mais interdependentes
Com grande importância (grau de risco...)
Afetam a reputação da organização
Envolvem recursos compartilhados
São não-familiares à equipe
Envolvem incerteza do mercado
O projeto bem sucedido







Concluído no tempo previsto
Concluído no orçamento previsto
Com utilização otimizada de recursos
Com qualidade e performance desejadas
Com o mínimo possível de alterações
Com alto grau de aceitação pelo usuário
Com adaptação cultural adequada
Estimulando o sucesso do projeto










Seleção correta da equipe
Alto grau de comprometimento da equipe
Sinergia com parceiros
Identificação precoce de pontos de melhoria
Estimativas (prazos, custo, tamanho) realistas
Planos de contingência
Modificações sob controle
Prioridade para alcance das metas
Linhas de comunicação informais
Inexistência de pressões externas à equipe
Gerenciamento de Projetos
Benefícios










Evitar surpresas durante a execução
Estabelecer diferencial competitivo
Antecipar situações desfavoráveis
Adaptar trabalho ao cliente
Dispor de orçamento antes dos gastos
Agilizar decisões
Aumentar controle gerencial sobre as fases
Facilitar revisões na estrutura do projeto
Otimizar a alocação de recursos
Facilitar novas estimativas
Fracasso de projetos: causas










Externas: mudanças na estrutura, tecnologia, ambiente,
preços e cenário político
Metas e objetivos mal estabelecidos
Pouca compreensão da complexidade
Estimativas deficientes
Planejamento inadequado
Gerência de projeto ineficiente
Falta de treinamento e capacitação
Falta de padronização e metodologias
Avaliação incorreta dos riscos
Clientes com expectativas não atendidas
Gerenciar integradamente...
Escopo
Contratos
Comunicação
Tempo
Custo
Integração
Riscos
RH
Qualidade
O que seria um bom método?


Aquele que fosse capaz de permitir a
realização de previsões com um alto grau de
acerto em relação ao item avaliado.
Aquele que permitisse a realização da
estimativa o mais rápido possível dentro do
ciclo de vida de desenvolvimento.
Principais Métodos

Avaliação sem compromisso técnico

Avaliações por similaridade

Avaliações baseadas em fórmulas.
Dados para avaliação


Para que boas avaliações possam ser realizadas, é
fundamental que existam dados, colhidos de projetos
anteriores.
Os dados relevantes básicos são




tamanho
esforço
distribuição das habilidades na equipe
Muitos aspectos tornam difícil a comparação:






tipo de software
metodologia utilizada
grau de complexidade
ambiente de desenvolvimento
nível cultural da equipe
e mais....

Uma das maiores dificuldades no gerenciamento
de projetos de informática é saber a dimensão do
que esta sendo gerenciado

Muitas aplicações que parecem pequenas,
quando em desenvolvimento, mostram-se
muitas vezes maiores do que o previsto
inicialmente.
Porque Métricas ?
Vamos fazer uma analogia com outra Engenharia
Engenharia Civil
Como se contrata a construção de uma casa ?
OU
Como se compra uma casa ?
Já imaginaram fazer isto sem a unidade m ou m2, ou sem CUB?
Porque Métricas ?
Vamos ver como funciona com Software...
Como se contrata a construção de um aplicativo ?
OU
Como se compra um aplicativo ?
Que métrica utilizamos ?
Qual métrica utilizamos ?
Tipos de Métricas





Contagem de Linhas de Código Fonte (LOCs)
Halstead (operandos e operadores)
Análise de Pontos por Função
Análise por Casos de uso
Outras Técnicas ....
Pontos por Caso de Uso



Foi proposto em 1993 por Gustav Karner;
Baseou-se na Análise por Pontos de Função;
Trata de estimar o tamanho de um sistema
de acordo com:



o modo como os usuários o utilizarão;
a complexidade de ações requerida por cada
tipo de usuário;
uma análise em alto nível dos passos
necessários para a realização de cada tarefa;
Pontos por Caso de Uso


O Método de Use Case Points foi criado para
que seja possível estimar o tamanho de um
sistema já na fase de levantamento de
Casos de Uso;
Ele utiliza-se dos próprios documentos
gerados nesta fase de análise como subsídio
para o cálculo dimensional;
Pontos por Caso de Uso

Sistema que será usado como exemplo:



Site de suporte de produtos para uma grande
companhia de software;
A estimativa foi feita a partir dos casos de uso
de nível muito alto (business modelling), que
foram criados em tempo de levantamento de
requisitos;
Os atores, nessa vez, foram os diferentes tipos
de usuários identificados nesses casos de uso;
Pontos por Caso de Uso

Passo 1: Cálculo do UAW (Unadjusted Actor
Weight)
Tipo de Ator
Peso
Descrição
Ator Simples
1
Outro sistema acessado através de uma
API de programação
Ator Médio
2
Outro sistema acessado interagindo através
da rede
Ator Complexo
3
Um usuário interagindo através de uma
interface gráfica
Pontos por Caso de Uso

No caso do exemplo:
Tipo de Ator
Peso
Nº de atores
Resultado
Ator Simples
1
0
0
Ator Médio
2
0
0
Ator Complexo
3
4
12
Total UAW
12
Valores já calculados: UAW = 12
Pontos por Caso de Uso

Passo 2: Cálculo do UUCW (Unadjusted Use
Case Weight)

Para fins de cálculo, dividimos os casos de uso
em três níveis de complexidade:



Simples (peso 5): Tem até 3 transações, incluindo
os passos alternativos, e envolve menos de 5
entidades;
Médio (peso 10): Tem de 4 a 7 transações,
incluindo os passos alternativos, e envolve de 5 a 10
entidades;
Complexo (peso 15): Tem acima de 7 transações,
incluindo os passos alternativos, e envolve pelo
menos de 10 entidades;
Pontos por Caso de Uso

No caso do exemplo:
Tipo
Peso Nº de Casos de Uso
Resultado
Simples
5
7
35
Médio
10
13
130
Complexo
15
3
45
Total UUCW
210
Valores já calculados: UAW = 12, UUCW = 210
Pontos por Caso de Uso


Passo 3: Cálculo do UUCP (Unadjusted Use
Case Points)
UUCP = UAW + UUCW
No caso do exemplo:
UUCP = 12 + 210 = 222
Valores já calculados: UAW = 12, UUCW = 210, UUCP = 222
Pontos por Caso de Uso

Calculando fatores de ajuste:

O método de ajuste é bastante similar ao
adotado pela Análise por Pontos de Função e é
constituído de duas partes:


Cálculo de fatores técnicos: cobrindo uma série
de requisitos funcionais do sistema;
Cálculo de fatores de ambiente: requisitos nãofuncionais associados ao processo de
desenvolvimento;
Pontos por Caso de Uso

Passo 4: Cálculo do
Tfactor

Para cada requisito
listado na tabela, deve
ser atribuído um valor
que determina a
influência do requisito
no sistema, variando
entre 0 e 5;
Fator
Requisito
Peso
T1
Sistema distribuído
2
T2
Tempo de resposta
2
T3
Eficiência
1
T4
Processamento complexo
1
T5
Código reusável
1
T6
Facilidade de instalação
0.5
T7
Facilidade de uso
0.5
T8
Portabilidade
2
T9
Facilidade de mudança
1
T10
Concorrência
1
T11
Recursos de segurança
1
T12
Acessível por terceiros
1
T13
Requer treinamento especial
1
Pontos por Caso de Uso

No caso do exemplo:
Fator
Requisito
Peso
Influência
Resultado
T1
Sistema distribuído
2
1
2
T2
Tempo de resposta
2
3
6
T3
Eficiência
1
3
3
T4
Processamento complexo
1
3
3
T5
Código reusável
1
0
0
T6
Facilidade de instalação
0.5
0
0
T7
Facilidade de uso
0.5
5
2.5
T8
Portabilidade
2
0
0
T9
Facilidade de mudança
1
3
3
T10
Concorrência
1
0
0
T11
Recursos de segurança
1
0
0
T12
Acessível por terceiros
1
0
0
T13
Requer treinamento especial
1
0
0
Tfactor
19,5
Pontos por Caso de Uso


Passo 5: Cálculo do TCF (Technical
Complexity Factor)
TCF = 0.6 + (0.01  Tfactor)
No caso do exemplo:
TCF = 0.6 + (0.01  19.5) = 0.795
Valores já calculados: UUCP = 222, Tfactor = 19.5, TCF = 0.795
Pontos por Caso de Uso

Passo 6: Cálculo do
Efactor

Para cada requisito
listado na tabela, deve
ser atribuído um valor
que determina a
influência do requisito
no sistema, variando
entre 0 e 5;
Fator
Descrição
Peso
E1
Familiaridade com RUP ou
outro processo formal
1.5
E2
Experiência com a aplicação
em desenvolvimento
0.5
E3
Experiência em Orientação a
Objetos
1
E4
Presença de analista
experiente
0.5
E5
Motivação
1
E6
Requisitos estáveis
2
E7
Desenvolvedores em meioexpediente
-1
E8
Linguagem de programação
difícil
2
Pontos por Caso de Uso

No caso do exemplo:
Fator
Descrição
Peso Influência
E1
Familiaridade com RUP ou outro
processo formal
1.5
5
7.5
E2
Experiência com a aplicação em
desenvolvimento
0.5
0
0
E3
Experiência em Orientação a Objetos
1
5
5
E4
Presença de analista experiente
0.5
5
2.5
E5
Motivação
1
5
5
E6
Requisitos estáveis
2
3
6
E7
Desenvolvedores em meio-expediente
-1
0
0
E8
Linguagem de programação difícil
2
0
0
Efactor
26
Valores já calculados: UUCP = 222, TCF = 0.795, Efactor = 26
Resultado
Pontos por Caso de Uso


Passo 7: Cálculo do ECF (Environmental
Complexity Factor)
ECF = 1.4 + (-0.03  Efactor)
No caso do exemplo:
ECF = 1.4 + (-0.03  26) = 0.62
Valores já calculados: UUCP = 222, TCF = 0.795, Efactor = 26, ECF = 0.62
Pontos por Caso de Uso


Passo 8: Cálculo dos UCP (Use Case Points)
UCP = UUCP  TCF  ECF
No caso do exemplo:
ECF = 222  0.795  0.62 = 109.42 ou
109 Use Case Points
Valores já calculados: UUCP = 222, TCF = 0.795, ECF = 0.62
Pontos por Caso de Uso

Passo 9: Cálculo do tempo de trabalho
estimado


Para simplificar, utilizaremos a média de 20
horas por Ponto de Casos de Uso
No caso do exemplo:
Tempo estimado = 109 * 20 = 2180 horas de trabalho
Valores já calculados: UCP = 109
Estimativa de Custo de
Desenvolvimento




O custo da hora-desenvolvimento varia de
acordo com a especialização do profissional
que irá realizar a tarefa.
Para analistas, este valor se situa entre 80 e
100 reais por hora.
Para programadores, entre 30 e 60 reais a
hora.
Na média, para horas de desenvolvimento
de cada caso de uso, pode-se considerar R$
50,00
Estimativa do Custo de
Desenvolvimento.



É obtida a partir da multiplicação do número
de casos de uso estimados, pelo valor médio
da hora de desenvolvimento.
Exemplo: para um sistema de 300 UCP,
teríamos:
300 * 50,00 = 15.000,00
Assim neste caso teríamos um custo de
desenvolvimento de R$ 15.000,00 (quinze
mil reais)
Estimativa do Custo de
Desenvolviemtno


Para cada empresa que desenvolve
software, estes valores devem ser ajustados
em função do que realmente ocorreu nos
projetos já terminados e entregues ao
usuário.
Com o tempo, pode-se chegar a estimativas
da proporcionalidade do envolvimento de
programadores e analistas no projeto,
fazendo-se cálculos mais realistas.
Estimativa de Custo do
Projeto

Devem ser somados todos os custos
envolvidos, desde o início do projeto até o
seu final:





Custo de treinamento
Custo de hw
Custo do sw de apoio (licenças de BD,
Ferramenta CASE, etc.)
Custo do desenvolvimento
Outros
Conclusões - UCP



Devido à amplitude do assunto
tratado, vários temas não foram
abordados;
O método de Use Case Points parece
ser muito bom para quem precisa de
dados de estimativa em um curto
espaço de tempo;
Tanto APF quanto PCU são métricas
muito subjetivas;
Conclusões - UCP


É evidente o problema de que a
granularidade de cada caso de uso
varia muito entre analistas, causando
uma significativa variação nos
resultados de PCU;
As métricas específicas para OO
apresentadas servem mais para
controle de qualidade do que para
cálculo de tamanho.
Análise de Pontos por Função
Medir o software através da quantificação da
funcionalidade solicitada e adquirida pelo cliente,
tendo como base primária o projeto lógico

Medir o desenvolvimento e manutenção de
software independentemente da tecnologia utilizada
na implementação

Medir o desenvolvimento e manutenção de
software consistentemente em todos os projetos e
organizações

Mudanças nos Requisitos
Aplicativo
Entregue
Projeto
Funcional
Requisitos
100 PFs
120 PFs



Impacto
Esforço
Cronograma
Custo
Tela de entrada do
código do estado
alterada (3 PFs)
Acrescentada
interface arquivo
N&A (10 PFs)
Consulta N&A e ao
código do estado
acrescentadas (7
PFs)
+ 1 mês
+ 2 semanas
+ $5000
Projeto
Detalhado
130 PFs
• Nova tabela legal
acrescentada (10
PFs)
+ 0.5 meses
+ 2 semanas
+ $2500
135 PFs
• Relatório resumo
incluído (5 PFs)
+ 0.25 meses
+ 2.5 dias
+ $1250
Como Contar Pontos de Função
Telas
Relatórios
Arquivos
Mestres
Tamanho
Arquivos de
Controle
Arquivos de
Referência
Sinais
Passos na Contagem de PF







Determine o Tipo de Contagem
Identifique o Escopo da Contagem e a
Fronteira da Aplicação
Conte as Funções de Dados
Conte as Funções Transacionais
Determine os Pontos de Função Não
Ajustados
Determine o Fator de Ajuste
Calcule os Pontos de Função Ajustados
Visão Geral da APF:
O Que é Contado
EE
P1
Atualizar Arquivo
Mestre
SE
P2
ALI
Arquivo
Mestre
Produzir Relatório
Relatório
Resumo
Semanal
Semanal
Fronteira
Chave
Detalhes
P3
Detalhes Arquivo
Mestre
Arquivo
Referência
em
Outro
Sistema
CE
do
AIE
Sistema
Tamanho Funcional
(Não Ajustado)
Tipo de Função
Baixa
Média
Alta
EE
x3
x4
x6
SE
x4
x5
x7
CE
x3
x4
x6
ALI
x7
x 10
x 15
AIE
x5
x7
x 10
Diagrama de Funções
Fronteira da Aplicação
Entrada Externa
Saída Externa
Consulta Externa
Aplicativo
Arquivo
Lógico
Interno
Arquivos de
Interface Externa
Entrada Externa
Saída Externa
Consulta Externa
Outros
Aplicativos
Determinação de Pontos de Função Brutos
Tipo de Complexidade
Função Funcional
ALIs
4
0
0
Complexidade
Total do
Tipo
de função
Total
Simples X 7 =
Média X 10 =
Complexa X 15 =
28
0
0
28
AIEs
4
0
0
Simples X 5 =
Média X 7 =
Complexa X 10 =
20
0
0
20
EEs
4
2
1
Simples X 3 =
Média X 4 =
Complexa X 6 =
12
8
6
26
SEs
4
2
0
Simples X 4 =
Média X 5 =
Complexa X 7 =
16
10
0
26
CEs
5
0
0
Simples X 3 =
Média X 4 =
Complexa X 6 =
15
0
0
15
Total de Pontos de Função Brutos = 115
Determinação do Fator de Ajuste
O FA (Fator de Ajuste) é baseado em 14
características gerais de sistema que determina a
funcionalidade geral da aplicação que está sendo
contada.
O nível (grau) de influência varia de 0 a 5.
0 - Nenhuma influência
1 - Influência mínima
2 - Influência moderada
3 - Influência média
4 - Influência significante
5 - Influência forte
Variação máxima de 35 %
Características Gerais de Sistema
1. Comunicação de Dados
2. Processamento de Dados Distribuído (Funções Distribuídas)
3. Performance
4. Configuração do equipamento
5. Volume de Transações
6. Entrada de Dados On-Line
7. Interface com o usuário
8. Atualização On-Line
9. Processamento Complexo
10. Reusabilidade
11. Facilidade de Implantação
12. Facilidade Operacional
13. Múltiplos Locais
14. Facilidade de mudanças.
Procedimento


Classificar os quatorze itens de acordo o
nível de influência.
Aplicar a fórmula


FA = (NI * 0,01) + 0,65
Variação de 0,65 até 1,35
Determinação dos Pontos de Função
Ajustados

Para desenvolvimento


PFD = (PFB + PFC) * FA
Onde:



PFD - Ponto de Função de Desenvolvimento
PFC - Ponto de Função de Conversão
FA - Fator de Ajuste
Para manutenção
PFM = [(INC + ALT + PFC) * FAD] + (EXC * FAA)
Onde:
PFM - Pontosde função do projeto de manutenção
INC - Ponto de função brutos que foram incluídos na aplicação pelo
projeto de manutenção.
ALT - Ponto de função que foram alterados na aplicação pelo projeto
de manutenção.
PFC - Ponto de função que foram adicionados pelo processo de
conversão.
FAD - Fator de ajuste da aplicação depois do projeto de
manutenção.
EXC - Ponto de função brutos que foram excluídos da aplicação pelo
projeto de manutenção.
FAA - Fator de ajuste da aplicação antes do projeto de manutenção.
Para cálculo de uma aplicação
PFA = [(PFB + INC + ALTD) - (ALTA + EXC)] * FAD
Onde:
PFA - Ponto de Função Ajustados da aplicação
PFB - Ponto de Função Bruto da Aplicação antes do projeto de manutenção
INC - Pontos de função brutos que foram adicionados pelo projeto de
manutenção.
ALTD - Pontos de função brutos correspondentes às funções que sofreram
alteração durante o projeto de manutenção. Este número reflete as funções
depois da manutenção.
ALTA - São os Pontos de função brutos correspondentes às funções que
sofreram alteração durante o projeto de manutenção. Esse número reflete as
funções antes da manutenção.
EXC - Pontos de função brutos correspondentes às funções que foram
excluídas da aplicação pelo projeto de manutenção.
FAD - Fator de ajuste da aplicação verificado depois do projeto de
manutenção.
Gerenciando Mudanças nos Requisitos
Aplicativo
Entregue
Requisitos
100 PFs
Projeto
Funcional
120 PFs
Projeto
Detalhado
130 PFs
135 PFs
Quadro comparativo:
APF X PCU
APF
PCU
Mais antiga e mais utilizada no mundo
Relativamente nova e pouco utilizada
Padrão internacional desde 2002
Ainda não alcançou o nível de padronização
e nem foi incorporada em ferramentas
populares
Não requer o uso de notação padrão, mas é
baseada no modelo funcional e independente Baseada no modelo de casos de uso
de tecnologia
Largamente discutida na literatura
Tem aumentado o uso e a publicação de
estudos na literatura
É suportada pelo IFPUG e diversos grupos
Ainda não possui
nacionais de usuários e bases históricas de
produtividade
medidas realizadas
bons
históricos
de
Possui regras de contagem padronizadas
Há dúvidas de qual o nível apropriado de
detalhe que cada caso de uso deve possuir
Alto nível de maturidade
Em fase de amadurecimento
Oferece treinamento e certificação
Ainda
não
certificação
oferece
treinamentos
e
Tipos de Métricas
Características
Linha de
Código
1. Independência de
tecnologia
Não
Sim
Sim
Casos
de Uso
Sim
2. Produção de
resultados
consistentes
3. Avaliação por
usuários sem
conhecimento de PD
4. Significância para
o usuário final
Sim
Sim
Sim
Sim
Não
Não
+-
Sim
Não
Não
Sim
Sim
Não
Não
Sim
Sim
5. Utilizado em
estimativas
Sistema Pontos p/
Halstead Função
Exemplos de Aplicações
Aplicação
PF
1. Produtos de Software
Ferramenta CASE IEF (Texas) 20.000
Compilador Visual Basic (MS) 3.000
3.500
SGBD IMS (IBM)
Gerenciador de TP CICS (IBM) 2.000
Word 7.0 (Microsoft)
2.500
Excel 6.0 (Microsoft)
2.500
Aplicação
PF
2. Sist. Comerciais Diversos
Imposto de Renda Pessoal
Contabilidade Geral
Processamento de Pedidos
Recursos Humanos
Suporte a Vendas
Preparação de Orçamento
2.000
1.500
1.250
1.200
975
750
Região Impossível
Custo do Esforço
Evitando a Região Impossível
Região Impossível
(75% de Td)
Td
To
Tempo de Desenvolvimento
Observações:
1) Td é o tempo ótimo de desenvolvimento.
2) To é o tempo que acarreta o menor custo.
3) To = 2 Td.
4) É impossível terminar em menos que 0,75 * Td.
Os 7 Pecados Capitais¹
•
•
•
•
•
•
Falta de Comunicação (com o seu pessoal)
Confiança Cega (no parceiro)
Cinismo e Desconfiança (com o parceiro)
O Contrato é “a Bíblia” (falta de flexibilidade)
“Ir Dormir Aborrecido” (fazer bola de neve)
Má Prática de Métricas (ambas as partes
devem entender os critérios)
•
Cobiça e Oportunidade
(explorar falhas do
contrato)
¹ Dekkers, C., Management of Outsourcing: How to Avoid Common
Mistakes, Software Management Conference, San Jose, February 2000
O Oitavo Pecado¹
Comprar os seus sapatos com
base no tamanho médio do pé
do brasileiro
¹ Aguiar, M., Contratando o Desenvolvimento com Base em
Métricas, Developers Magazine, setembro de 2000.
Obtenha Suas Próprias Medidas através de
um Programa de Métricas
IFPUG
e
BFPUG
BFPUG
Download

Metricas 2008 PCU_PPF - ita-pog