Implementação de um Processo de Medições de Software Claudia

Transcrição

Implementação de um Processo de Medições de Software Claudia
Implementação de um
Processo de Medições de
Software
Claudia Hazan, MSc.
Certified Function Point Specialist
[email protected]
Agenda
• Introdução
• Qualidade de Software
•
•
•
•
•
•
Medições de Software
Análise de Pontos por Função
Gerência de Projetos
Estimativas
Banco de Dados Histórico
Conclusão
Cenário
Qualidade de
Software
ARIANE 5
ARIANE 5
• Projeto da Agência Espacial
Européia que custou:
– 10 anos.
– US$ 8 Bilhões.
• Capacidade 6 toneladas.
• Garante supremacia européia
no espaço.
Vôo inaugural em 4/junho/1996
RESULTADO
• Explosão 40 segundos
após a decolagem.
• Destruição do foguete
e carga avaliada em
US$ 500 milhões.
O que aconteceu? (I)
• Fato: o veículo detonou suas cargas
explosivas de autodestruição e explodiu no
ar. Por que?
• Porque ele estava se quebrando devido às
forças aerodinâmicas. Mas por que?
• O foguete tinha perdido o controle de
direção (atitude). Causa disso?
• Os computadores principal e back-up deram
shut-down ao mesmo tempo.
O que aconteceu? (II)
• Por que o Shut-down? Ocorrera um run
time error (out of range, overflow , ou outro)
e ambos computadores se desligaram. De
onde veio este erro?
• Um programa que convertia um valor em
ponto flutuante para um inteiro de 16 bits
recebeu como entrada um valor que estava
fora da faixa permitida.
Especificamente:O que faltou?
strict precondition 1:
{
Set."x"=FLPT and Set."y"=INT16
and -32768 <= x <= +32767
}
program code:
y := int(x);
postcondition:
{Set."x"=FLPT and Set."y"=INT16 and y=int(x)}
Conscientização
Não!
Será que a minha empresa tem problemas?
?
Será mesmo?
???
Quais Seriam?
Modelos da
Qualidade de
Software
Qualidade de Software
QUALIDADE
Conformidade
aos Requisitos
Adequação
ao Uso
SATISFAÇÃO DO CLIENTE
Aumento da Fatia de Mercado
Qualidade de Software
Conjunto de Características a serem
satisfeitas em um determinado grau
de modo que o software satisfaça às
necessidades de seus USUÁRIOS
Cliente
Usuários
Suporte
Equipe de
Desenvolvimento
Modelos
?
Medições de
Software
POR QUE MEDIR ?
Por Que Medir
❐ Indicar a qualidade do Produto
❐ Avaliar a produtividade do processo
❐ Formar uma Baseline para estimativas
❐ Ajudar a justificar as solicitações de novas
ferramentas ou treinamento
Por Que Medir ....
❐ Entender e aperfeiçoar o Processo
❐ Melhorar a gerência de projetos e
relacionamento com clientes
❐ Reduzir frustrações e pressões de
cronograma
❐ Gerenciar contratos de software
Por Que Medir ....
“ NÃO SE PODE GERENCIAR
O QUE NÃO SE PODE MEDIR ”
Tom De Marco
“Se você não sabe para onde você quer ir,
qualquer caminho você pode seguir.
Se você não sabe onde você está,
um mapa não vai ajudar!”
Roger Pressman
Implantação de um Processo de
Medição
Um Processo de Medição deve:
• Fornecer uma base para melhoria contínua do
processo
• Quantificar qualidade e produtividade
• Estar integrado com o ciclo de vida
• Medir o impacto de vários métodos, ferramentas,
e técnicas de melhoria
Princípios de um Processo de
Medição
• Medições devem ser usadas para medir processos, não pessoas
• O processo de medição deve ter objetivos claros e bem-definidos
• O processo de medição deve ser fortemente acoplado com o processo
de gerência da qualidade e integrado dentro de planos e orçamentos
• O processo de coleta de dados deve ser simples, e ferramentas
automáticas para extração de dados devem ser usadas.
• As medições devem ser repetíveis e independente do observador
• O processo de medição é um processo contínuo e sujeito a melhoria
• Os resultados das métricas deve ser compartilhado com os
desenvolvedores
Tipos de Medições
DADOS HARD
Informações que podem ser quantificadas
com pouca ou nenhuma subjetividade.
DADOS SOFT
Opiniões humanas devem ser avaliadas
DADOS DE PADRONIZAÇÃO
Métricas Padrão usadas por propósitos
corporativos
Análise de Pontos
por Função
Análise de Pontos por Função
= 1000 PF
Pontos de Função (PF)
É uma medida de dimensionamento de software
através da funcionalidade implementada em um
sistema, sob o ponto de vista do usuário.
Análise de Pontos por Função
Medir a funcionalidade requisitada
e recebida pelo usuário
Medir Projetos de Desenvolvimento e de
Manutenção independentemente da
tecnologia utilizada
Análise de Pontos por Função
APF quantifica as funções contidas dentro de um
software em termos entendidos pelo usuário.
APF relata diretamente os requisitos do negócio.
APF é independente da tecnologia utilizada.
APF torna possível as estimativas nas fases iniciais
do processo de desenvolvimento de software.
APF fornece facilidade para uma reestimativa
APF fornece suporte à: tributação do software,
tempo de duração do projeto e gerência
APF apoia a análise de produtividade e qualidade
Visão Geral
Fronteira da Aplicação
Consultas
Externas
(Sem Dados Derivados)
APLICAÇÃO
Saídas
Externas
( Com Dados Derivados)
Arquivos Lógicos Internos
Entradas
Externas
Funções de dados
Funções transacionais
Arquivos de
Interface
Externa
Outra Aplicação
Arquivo Lógico Interno
Análise de Pontos por Função
ETAPAS PARA CONTAGEM DE PONTOS DE FUNÇÃO
■
Determinar o Tipo de Cálculo
Identificar a Fronteira da Aplicação
Contagem das Funções de Dados
■
Contagem das Funções Transacionais
■
Cálculo dos Pontos de Função Não-Ajustados
Cálculo do Fator de Ajuste
Cálculo dos Pontos de Função Ajustados
■
■
■
■
Etapas de Contagem
Determinar
Tipo de
Contagem
Identificar
Escopo de
Contagem e
Fronteira da
Aplicação
Contar
Funções
de Dados
Contar
Funções
Transacionais
Determinar
os PF Não
Ajustados
Determinar
o Fator de
Ajuste
Calcular
os PF
Ajustados
Etapas de Contagem
TIPOS DE CÁLCULO DE PONTOS POR FUNÇÃO
• Contagem de PF de Projetos de Desenvolvimento
- PF associados com a instalação inicial de um software novo
• Contagem de PF de Projetos de Manutenção
- PF associados com a melhoria de um software já existente
(inclui funcionalidade que é adicionada, modificada ou excluída)
• Contagem de PF de Aplicações
- PF associados com uma aplicação instalada
- Funcionalidade da aplicação no ponto de vista do usuário
Etapas de Contagem
Determinação da fronteira da aplicação baseada:
✓ No ponto de vista do usuário
✓ Na funcionalidade do negócio e não na
implementação tecnológica
Etapas de Contagem
Arquivos Lógicos
Internos
Funções
de Dados
Arquivos de
Interface Externa
Etapas de Contagem
Classificação das Funções - de acordo
com o número de Registros Lógicos e
Itens de Dados:
❐ Simples
❐ Média
❐ Complexa
Etapas de Contagem
Entrada
Externa
Funções
Transacionais
Saída
Externa
Consulta
Externa
Etapas de Contagem
Classificação das Funções - de acordo
com o número Arquivos Referenciados
e Itens de Dados:
❐ Simples
❐ Média
❐ Complexa
Etapas de Contagem
CONTAGEM DOS PF´s NÃO AJUSTADOS
TIPO DE
FUNÇÃO
COMPLEXIDADE
FUNCIONAL
ARQUIVO
SIMPLES
X 7 =
MÉDIA
X 10 =
COMPLEXA X 15 =
INTERFACE
SIMPLES
X 5 =
MÉDIA
X 7 =
COMPLEXA X 10 =
ENTRADA
SIMPLES
X 3
MÉDIA
X 4
COMPLEXA X 6
=
=
=
SAÍDA
SIMPLES
X 4
MÉDIA
X 5
COMPLEXA X 7
=
=
=
CONSULTA
SIMPLES
X 3
MÉDIA
X 4
COMPLEXA X 6
=
=
=
TOTAL
COMPLEX.
* * * TOTAL DE PONTOS DE FUNÇÃO NÃO - AJUSTADOS =
TOTAL
TIPO FUNÇÃO
Etapas de Contagem
1. Comunicação de Dados
2. Processamento Distribuído
3. Performance
4. Utilização do Equipamento
5. Volume de Transações
6. Entrada de dados “on-line”
7. Eficiência do Usuário Final
8. Atualização “on-line”
9. Processamento Complexo
10. Reutilização de Código
11. Facilidade de Implantação
12. Facilidade Operacional
13. Múltiplos Locais
14. Facilidade de Mudanças
Atribui-se um peso de 0 a 5 para cada característica:
0- Nenhuma Influência
1- Influência Mínima
2- Influência Moderada
3- Influência Média
4- Influência Significativa
5- Grande Influência
Etapas de Contagem
NÍVEL DE INFLUÊNCIA (NI)
NI = Σ Características Gerais do Sistema
FATOR DE AJUSTE (FA)
FA = ( NI * 0,01 ) + 0,65
Etapas de Contagem
PROJETO
- Cálculo de PF de um Projeto de Desenvolvimento
PF_DESENVOLVIMENTO =
PF_NÃO_AJUSTADO * FATOR_AJUSTE
- Cálculo de PF de um Projeto de Manutenção
PF_MANUTENÇÃO =
((PF_INCLUÍDO + PF_ALTERADO)* FA_ATUAL)
+ (PF_EXCLUÍDO*FA_ANTERIOR)
Etapas de Contagem
APLICAÇÃO
- Cálculo de PF de uma Aplicação já Implantada
PF_APLICAÇÃO =
PF_NÃO_AJUSTADO * FATOR_AJUSTE
- Cálculo de PF de uma Aplicação já Implantada
a partir dos PF de um Projeto de Desenvolvimento
PF_APLICAÇÃO =
PF_DESENVOLVIMENTO - (PF_CONVERSÃO * FATOR_AJUSTE)
Etapas de Contagem
APLICAÇÃO
- Cálculo de PF de uma Aplicação após
um Projeto de Manutenção
PF_APLICAÇÃO =
(PF_NÃO_AJUSTADO + PF_INCLUÍDO + PF_ALTERADO_ATUAL
- PF_ALTERADO_ANTERIOR - PF_EXCLUÍDO) * FA_ATUAL
Implantação de APF no SERPRO
Implantação de APF na SUNAT
✔
✔ Administradores de APF:
→ responsáveis pela disseminação da métrica nos Pólos e
envio das pontuações dos projetos para a Coordenação
✔
✔
Página de APF (Intranet):
→ Manter os líderes de projeto “sintonizados” com o Plano
de Medições da SUNAT
→ disseminação da técnica de APF
→ distribuição do ESTIMATIVA
→ disponibilização dos resultados
→ canal de comunicação entre os líderes de projeto e a
Coordenação
ESTIMATIVA
❐
❐ Desenvolvido pela ATGDE/SUNAT
❐
❐ Automatiza os cálculos envolvidos na técnica de APF
❐
❐ Fornece facilidades para a pontuação de projetos
❐
❐ “Fala a língua” da SUNAT
❐
❐ Permite agrupamento de funções por plataformas diferentes
(linguagem e equipe)
❐
❐ Estima produtividade da equipe
❐
❐ Permite acompanhamento da evolução dos Projetos (versão,
manutenção)
❐
❐ Fornece relatórios apropriados às necessidades gerenciais
❐
❐ Base histórica integrada
ESTIMATIVA
☞ Relatórios
❐ Descrição Detalhada
❐ Estimativa de Produtividade
❐ Pontos por Função de Aplicação
❐ Pontos por Função de Projeto
❐ Pontos por Função dos Projetos
❐ Quadro Comparativo dos Pontos por Função por Linguagem
❐ Relação Detalhada dos Projetos
❐ Relação Simplificada dos Projetos
☞ Gráficos
❐ Evolução do Tamanho do Projeto
❐ Influência das Características
❐ Distribuição das Funções
ESTIMATIVA
ESTIMATIVA
Certificação CFPS
CFPS - Certified Function Point Specialist:
é a certificação conferida pelo
International Function Point Users Group
às pessoas aprovadas no exame de
certificação.
A certificação é a garantia
de que o profissional
entende e utiliza
corretamente as regras do
IFPUG para a contagem de
pontos de função.
Gerência de Projetos
Planejamento de
Projetos
O processo Planejamento do Projeto de Software
envolve desenvolver ESTIMATIVAS para o trabalho
a ser executado, estabelecer os compromissos
necessários e definir o plano para executar o trabalho.
Planejamento de
Projetos
Meta - Estimativa
Documentar as estimativas de software a serem
usadas no acompanhamento do projeto de
software.
Plano:
estimativas de tamanho, custo,
esforço e cronograma e recursos
computacionais críticos
Medições para Estimativas
Aplicação
Entregue
Requisitos
Projeto
Funcional
Projeto
Detalhado
Documentação
Estimativa
de FP
Inicial
Estimativa
de FP
Intermediária
FP
Entregues
Real
Medições para Mudança de Escopo Gerencial
Requisitos
100 FPs
Aplicação
Entregue
Projeto
Funcional
Projeto
Detalhado
120 FPs
130 FPs
135 FPs
• Nova tabela
adicionada
(10 FPs)
• Relatório
de sumário
adicionado
(5 FPs)
+ 0.5 mês
+ 1 semana
+ $2500
+ 0.25 mês
+ 2.5 dias
+ $1250
•Tela para entrada
de dados modificada
(3FPs)
• Arquivo adicionado
(10 FPs)
•Consulta adicionada
(7 FPs)
Impacto
+ 1 mês
Esforço
Cronograma + 2 semanas
+ $5000
Custo
Estimativas
Métodos para Estimativas
de Tamanho
- Contagem Indicativa - NESMA
- Estimativas Percentuais - Tabela SPR
-Estimativas Percentuais - Tabela ISBSG
- Contagem Empírica
Contagem Indicativa da NESMA
Segundo o Modelo de Dados e Interfaces
• Utilizaremos a “Contagem
Indicativa” (NESMA)
• A técnica assume que cada
arquivo lógico (10 ptos.) terá:
– inclusão, alteração e exclusão
x 4 = 12 ptos.)
– 1 relatório (5 ptos.)
– 2 consultas (2 x 4 = 8 ptos.)
(3
Contagem Indicativa da NESMA
• Fórmula 1 (sem Interfaces):
– PF = Qtd Arquivos Lógicos * 35
• Considerando que as Interfaces
(7 ptos.) tenham:
– 2 consultas (2 x 4 = 8 ptos.)
• Fórmula 2 (completa):
PF = (Qtd. Arq. Lógicos * 35) +
(Qtd. Interfaces * 15)
Contagem Indicativa da NESMA
EXEMPLO: SISTEMA COM 3 ARQUIVOS INTERNOS
PF = Nº de ALIs x 35 + Nº de AIEs x 15
PF = 3 x 35 + 0 x15 = 105
TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS = 105
Para simplificar, supondo FATOR DE AJUSTE = 1, TEMOS:
PONTOS DE FUNÇÃO AJUSTADOS = 105 *1 = 105
Método de Estimativa Percentual
* A quantidade de arquivos internos representa 25% do total de
funções de uma aplicação
* A quantidade de interfaces representa 3% do total de funções de uma
aplicação
* A quantidade de entradas externas representa 30% do total de
funções de uma aplicação
* A quantidade de saídas externas representa 28% do total de funções
de uma aplicação
* A quantidade de consultas representa 14% do total de funções de
uma aplicação
Método de Estimativa Percentual
EXEMPLO: SISTEMA COM 3 ARQUIVOS INTERNOS
* Se 3 ARQUIVOS = 25 % do TOTAL DE FUNÇÕES, então
TOTAL DE FUNÇÕES = 12.
* Se INTERFACES = 3% do TOTAL DE FUNÇÕES, então
INTERFACES = 0,36 (arredonda-se para 0).
* Se ENTRADAS = 30 % do TOTAL DE FUNÇÕES, então
ENTRADAS = 3,6 (arredonda-se para 4).
* Se SAÍDAS = 28 % do TOTAL DE FUNÇÕES, então SAÍDAS =
3,36 (arredonda-se para 3).
* Se CONSULTAS = 14% do TOTAL DE FUNÇÕES, então
CONSULTAS = 1,68 (arredonda-se para 2).
Método de Estimativa Percentual
EXEMPLO: SISTEMA DE 3 ARQUIVOS INTERNOS
TIPO DE FUNÇÃO
COMPLEXIDADE FUNCIONAL
TOTAL COMPLEX. TOTAL
TIPO FUNÇÃO
ARQUIVO
3 MÉDIA X 10
30
INTERFACE 0 MÉDIA
X 7
0
ENTRADA
4 MÉDIA X 4
16
SAÍDA
3 MÉDIA X 5
15
CONSULTA 2 MÉDIA X 4
8
* * * TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS
=
69
PONTOS DE FUNÇÃO AJUSTADOS = 69 *1 = 69
ISBSG
International Software Benchmarking Standards Group
- Organização sem fins lucrativos
- Mantém um Banco de Dados de métricas de projetos de
software internacionais para auxiliar na melhoria da
gerência de recursos de TI, promovendo a melhoria das
estimativas e produtividade do projeto e Benchmarking.
Objetivo: Fornecer as organizações a oportunidade de fazer
um benchmarking com os melhores do mundo, permitindo que
estas submetam seus projetos de software para o repositório,
com custo zero e um esforço mínimo, e recebam um relatório
gratuitamente. Este relatório apresenta graficamente dados de
Benchmarking do projeto submetido em relação aos projetos
com perfil similar contidos no Banco de Dados.
Método de Estimativa Percentual
Estudo do ISBSG (Data 6 /2000)
Objeto Novo Desenvolvimento Re-desenvolvimento
Melhorias
ALI
22,00%
23,00%
15,60%
AIE
5,00%
2,50%
6,50%
EE
33,50%
52,90%
32,70%
SE
23,50%
17,50%
32,00%
CE
16,00%
4,10%
13,20%
Método de Estimativa Percentual
(ISBSG)
EXEMPLO: SISTEMA COM 3 ARQUIVOS INTERNOS –
NOVO DESENVOLVIMENTO
* Se 3 ARQUIVOS = 22 % do TOTAL DE FUNÇÕES, então
TOTAL DE FUNÇÕES = 13,64 arredonda-se para 14.
* Se INTERFACES = 5% do TOTAL DE FUNÇÕES, então
INTERFACES = 0,7 (arredonda-se para 1).
* Se ENTRADAS = 33,5 % do TOTAL DE FUNÇÕES, então
ENTRADAS = 4,69 (arredonda-se para 5).
* Se SAÍDAS = 23,5 % do TOTAL DE FUNÇÕES, então SAÍDAS =
3,29 (arredonda-se para 3).
* Se CONSULTAS = 16% do TOTAL DE FUNÇÕES, então
CONSULTAS = 2,24 (arredonda-se para 2).
Contagem Empírica
• Baseado no Esquema Lógico e
Conhecimento das Funções
Fronteira da Aplicação
Consultas
Externas
(Sem Dados Derivados)
APLICAÇÃO
Saídas
Externas
( Com Dados Derivados)
Arquivos Lógicos Internos
Entradas
Externas
Funções de dados
Funções transacionais
Arquivos de
Interface
Externa
Outra Aplicação
Arquivo Lógico Interno
ESTIMADO:
NESMA: 105 PF
JONES: 69 PF
ISBSG: 80 PF
_____________
MÉDIA: 85 PF
Para simplificar, supondo 1 para o Fator de Ajuste:
REAL: 84 PFs
Estimativas por Fases
Atividade do ciclo de Vida
%
de
Distribuição
Levantamento de Dados (LD)
10%
Projeto Lógico (PL)
20%
Projeto Físico (PF)
25%
Construção (CO), Testes (TE)
35%
Implantação (IM)
10%
Total do Sistema
100%
Ambiente/Linguagem
Produtividade (horas/PF)
Baixa
Média
Alta
Produtividade (PF/homen_hora)
Baixa
Média
Alta
Visual Basic
8,8 h
6,8 h
5,7 h
0,1136
0,1477
0,1742
Delphi
8,8 h
6,8 h
5,7 h
0,1136
0,1477
0,1742
C
26,4 h
17,6 h
13,2 h
0,0379
0,0568
0,0758
C ++
13,2 h
8,8 h
6,6 h
0,0758
0,1136
0,1515
Access
8,8 h
6,8 h
5,7 h
0,1136
0,1477
0,1742
ORACLE
13,2 h
8,8 h
6,6 h
0,0758
0,1136
0,1515
SQL
8,3 h
5,9 h
4,3 h
0,1212
0,1704
0,2273
UNIX Shell Scripts
8,8 h
6,8 h
5,7 h
0,1136
0,1477
0,1742
VB–Script
12 h
12 h
12 h
0,0833
0,0833
0,0833
ASP
12 h
12 h
12 h
0,0833
0,0833
0,0833
HTML
8,3 h
5,9 h
4,3 h
0,1212
0,1704
0,2273
Java
13,2 h
8,8 h
6,6 h
0,0758
0,1136
0,1515
DT2
17 h
17 h
17 h
0,0588
0,0588
0,0588
Lotus Notes
5,5
3,9
3,1
0,1818
0,2564
0,3226
8,2 h
6,8 h
5,7 h
0,1212
0,1704
0,2273
WEB/Documentos
Case
Oracle Designer 2000
Exemplo de Estimativa
de Esforço
EXEMPLO: SISTEMA COM 3 ARQUIVOS LÓGICOS
INTERNOS E 1 ARQUIVO DE INTERFACE EXTERNA
- Linguagem JAVA
- Aplicação de complexidade média, Equipe Iniciante
0,0758 PFs/homem_hora ou 13,2 horas para produzir 1 PF.
Esforço = 85 * 13,2 = 1122 horas
Método para Estimativa
de Prazo
- Estimativa de Esforço
- Tamanho da Equipe
- Consideração: 6 horas de trabalho/ dia
Prazo (em dias) = Esforço (horas) /Tam. equipe * 6
Exemplo de Estimativa
de Prazo
EXEMPLO: SISTEMA COM 3 ARQUIVOS LÓGICOS
INTERNOS E 1 ARQUIVO DE INTERFACE EXTERNA
• Equipe: 1 analista e 1 programador (2 profissionais)
• Produtividade: 6 horas /dia
Prazo = 1122 /2 * 6 = 93,5 dias úteis
(aproximadamente 4 meses)
Estimativas de Custo
Indicador de Custo: $/Ponto de Função
Método para Estimativa
de Recursos Computacionais
Críticos
- Planilha:
Estimativas de Recursos Computacionais
- Nome do Recurso Computacional
- Descrição
- Parâmetros
- Custos
- Crítico
Banco de Dados
Histórico
Banco de Dados
Histórico
Contém informações relevantes de projetos realizados
Contém Baselines de esforço, tempo, custo e outros
atributos relevantes.
Utilizado para Estimativas de futuros projetos
Utilizado para análise e melhoria do processo
Banco de Dados
Histórico
Precisão das
Estimativas
Tipo do Projeto
Plataforma
Cronograma
Recursos
Computacionais
Críticos
Metodologia
Linguagens
Tamanho
Banco de Dados
Histórico
Construção
Implantação de um Processo de Medições
Identificação de Indicadores
Identificação de Métricas
Identificação de Atributos do Projeto Relevantes
Definição das Baselines
Definição de Método de Análise e Melhoria
Conclusão
Medições
Baseline
Resultados
• Estatísticas de
Projeto/Aplicação
• Atributos de
Projeto/Aplicação
Decisões
Melhorias
Oportunidades
• Produtividade
• Qualidade
• Satisfação do Cliente
• Custos
• Quais são nossos
pontos fortes?
• Quais são nossas
oportunidades de melhoria ?
Programas
• Pessoal
• Métodos/técnicas
•Tecnologia
• Ambiente
Ações
Análise de Pontos por Função
BFPUG: www.bfpug.com.br
IFPUG: www.ifpug.org
Modelo CMM
www.sei.cmu.edu
Claudia Hazan
MSc. Qualidade de Software
Certified Function Point Specialist
Analista de Sistemas do SERPRO
www.serpro.gov.br
Tel: (21) 2506-4407
Cel: (21) 9124-6579
[email protected]