Upload
yeriel
View
30
Download
1
Embed Size (px)
DESCRIPTION
Economia da Engenharia de SW. Sessão 1 Métricas de SW Prof. E.A.Schmitz 2012. Alguns problemas práticos das fábricas de SW. Quanto custa a construção de um produto ? Quanto tempo demora a construção ? Qual é a produtividade de nossa equipe ? Quanto gastamos em retrabalho ? - PowerPoint PPT Presentation
Citation preview
Economia da Engenharia de SW
Sessão 1
Métricas de SWProf. E.A.Schmitz
2012
Alguns problemas práticos das fábricas de SW
Quanto custa a construção de um produto ?
Quanto tempo demora a construção ?
Qual é a produtividade de nossa equipe ?
Quanto gastamos em retrabalho ?
Será que estamos melhorando?
Métricas de softwarehttp://sunset.usc.edu/classes/cs577b_2001/metricsguide/metrics.html
Métricas de software:
dados numéricos associados ao desenvolvimento de software
Métricas suportam:
1.Planejamento – servem como base para estimativa de custo, recursos, cronogramação e orçamentação.
2.Organização de projeto – métricas suportam a forma de organizar o projeto
3.Controle – são usadas para acompanhar as atividades de desenvolvimento e verificar aderencia ao plano
4. Melhoria – ferramenta essencial para a melhoria de processos: identificação, ajustes e medida dos efeitos
Métricas
Métrica: quantifica uma característica de um processo ou
produtoMétrica:
direta: pode ser observável diretamentederivada: obtidas a partir de métricas diretas
Examplos métricas diretas: número de linhas de código, páginas de
documentação, número de testes, requisitos, etc etc. Examplos de métricas derivadas:
linhas de código por programador-horas.
Indicadores
Indicador: representação de uma métrica que provê um entendimento
melhor do projeto ou do processo de desenvolvimento de software.
forma adequada para avaliar o andamento de projetos ou processos.Indicador:
pode ser o comportamento de uma métrica no tempouma relação entre duas métricas.
Indicadores:podem incluir a comparação de valores atuais versus
planejados, estabilidade ou qualidade.
Métricas de Processo (Grady)
Métricas privadas (individuais):taxa de defeitos individuais, por módulos, erros
encontrados durante o desenvolvimento, linhas de código ou pontos por função por módulo ou função
Métricas públicas (consolidação das métricas privadas):taxa de defeitos por projeto, esforço, tempo consumido
em uma visão ampla
Métricas orientadas ao tamanho
Registram dados históricos de projetos:linhas de códigoesforço (pessoas/mês), custo, erros
Coletam indicadores úteis:erros e defeitos, custo, erros por pessoa/mês, linhas de código por pessoa/mês, custo por página de documentação e etc.
Problemas: Dependente a linguagem de programação empregadaPenalizam códigos bem escritosNão adaptáveis a linguagens visuaisDificuldade para estimar projetos
Métricas orientadas à funcionalidade
Medem a funcionalidade do sistema (valor)
Ponto de função (Albrecht) :relação empírica entre tipos de domínio da
informação do software e o seu nível de complexidade estimado
Pontos de função
Métrica criada por Peter Albrecht em 1984 Objetiva:
isolar os fatores intrínsecos do sistema prover medida baseada na visão externa e independente de tecnologia ser aplicada bem cedo no ciclo do projeto ser compreensível por usuários não-técnicos ter baixo custo de aplicação
Sucesso da métrica: Passou a ser usada em licitações Permite coletar dados para benchmark
Métrica Pontos de função
Número de pontos de função (FP) de um sistema depende de:
Unadjusted function points (UFP):
parâmetros observáveis pelo usuário
Technical Complexity Factor (TCF)
dificuldades da implementação
FP = TCF x UFP
Pontos de função não-ajustados -UFP
UFP =soma ( função observável pelo usuário
*
complexidade da função)
Funções observáveis: arquivos, interfaces, entradas, saídas, consultas
Complexidade: simples, média, complexa
Tabela de cálculo de pontos de função (UFP)
Total = UFP = número de pontos de função não ajustados
Parâmetro de medição Fator de Peso por complexidade
Simples Média Complexa
Entradas externas 3 4 6
Saídas externas 4 5 7
Consulta externas 3 4 6
Arq. lógicos internos 7 10 15
Arquivos interface externos 5 7 10
Contagem dos Arquivos Lógicos Internos (ALI)
ALI: grupo lógico de dados sob o ponto de vista do usuário.
Inclui todos os arquivos lógicos que são gerados, usados ou mantidos pelo sistema.
Exemplos:
arquivos
tabelas do banco de dados
Contagem dos ALI
Complexidade dos arquivos internos depende de:
• número de registros lógicos (RL)do arquivo
• número de dados elementares referenciados (DER)
DERRL 1-19 20-50 51+1 S S M
2-5 S M C6+ M C C
Contagem dos Arquivos de Interface Externa (AIE)
AIE: Arquivo passado ou compartilhado entre sistemas.
Exemplos:
arquivos compartilhados
bancos compartilhados
bibliotecas de rotinas
Contagem dos AIEs
Complexidade dos AIEs depende de:
• número de RL do arquivo
• número de DERs
DERRL 1-19 20-50 51+1 S S M
2-5 S M C6+ M C C
Contagem das Entradas Externas (EE)
EE: transação com dados ou controles do usuário que:
(i) entram pelam borda externa do sistema
(ii) adicionam ou alteram dados num arquivo lógico interno.
Exemplos:
arquivos de entrada
formulários de entrada
Contagem das EEs
Complexidade de uma EE depende de:
• número de Arquivos Lógicos Referenciados (ALR) pela transação
• número DERs que cruzam a interface e atualizam campos dos ALI
DERALR. 1-4 5-15 16+0-1 S S M2-3 S M C4+ M C C
Contagem das Saídas Externas (SE)
SE: dados ou controles de saída que saem pela interface do sistema após o processamento ter ocorrido.
Exemplos:
arquivos de saída
relatórios de saída: impressos ou em tela, mensagens do sistema e de erro
Contagem das SEs
Complexidade das SEs depende de:
• número de DERs distintos apresentados na saída
• número de ALRs
DERALR 1-5 6-19 20+0-1 S S M2-3 S M C4+ M C C
Contagem das Consultas Externas (CE)
CE : entrada de dados que causam uma saída imediata. É sempre uma combinação de uma entrada com uma saída.
A saída da consulta não deve usar dados derivados.
Exemplos:
prompts
helps
Contagem das CEs
Complexidade das CEs depende de:
• número de DERs distintos apresentados na saída
• número de ALRs
DERALR 1-5 6-19 20+0-1 S S M2-3 S M C4+ M C C
Exemplo de cálculo de PFs
Estimativa do sistema:Arquivos: 3 simples
Interfaces: 1 simples
Entradas: 5 simples, 2 médias, 2 complexas
Saídas: 3 simples
Consultas: 1 simples, 2 médias
Cálculo de pontosEntradas = 5*3+2*4+2*6 =35
Saídas = 3*4 =12
Arquivos =3*7 =21
Interface =1*5 =5
Consultas=1*3+2*4 =11
Total = 84 pontos
Fator de complexidade técnica (TCF)
TCF = 0.65 + 0.01 x Fi i = 1..14
A cada Fi , fatores de complexidade técnica, deve ser
atribuído um valor entre 0 e 5 significando a importância
deste fator no sistema.
Valor 0 (zero) significa que o fator não se aplica e valor 5
(cinco) significa que tem um peso muito importante.
0,65TCF1,35
F1- Comunicação de dados
F2-Processamento distribuído
F3-Desempenho
F4-Utilização do equipamento
F5-Volume de transações
F6-Entrada de dados on-line
F7-Eficiência do usuário final
F8-Atualização on-line
F9-Processamento complexo
F10-Reutilização de código
F11-Facilidade de implantação
F12-Facilidade operacional
F13-Múltiplos locais
F14-Facilidade de alteração
Fatores de complexidade técnica (TCF)
Exemplos de medidas baseadas em PFs
1 PF = 100 linhas de código fonte
número de páginas de documentação = PF 1.15
número de casos de teste = PF 1.2
defeitos = PF 1.25
prazo do projeto(meses)= PF 0.4
equipe (pessoas)= PF/150
equipe de manutenção= PF/500
(Capers Jones)
Pontos de função e linhas de código
Medidas de produtividade
Planejamento de projeto deve responder:
Qual a duração do projeto?
Quantas pessoas serão necessárias para a sua execução?
Para responder é necessário saber:
Quanto trabalho um profissional consegue produzir por unidade de tempo.
Medidas de produtividade
Porque a estimativa da produtividade é difícil?
objetivos conflitantes dos projetos
falta de uma especificação detalhada do produto
variação no esforço de reuso
emergência de novas técnicas, processos e métodos.
(Stutzke)
Estimando esforço de desenvolvimento
Dados:1-Uma estimativa para o número de pontos de função de um
sistema. (NPF)2-Uma estimativa da produtividade da equipe em Pontos de
função / homem.mês (PR) ( obtida a partir do histórico da empresa)
Calcular a distribuição de probabilidade para a variável“esforço”(E) :
E= NPF/PR
Qual a produtividade média nos EUA?
Distribution for /C5P
RO
BA
BIL
ITY
0,000
0,027
0,053
0,080
0,106
0,133
2,00 3,67 5,33 7,00 8,67 10,33 12,00
Estimando esforço
Fatores do esforço necessário para uma atividade
E = Esforço (Pessoas.Mes ou PM)
S= Tamanho da atividade (p.ex. M2)
P = Produtividade da equipe (p.ex. M2/PM)
E = S/P
Bibliografia
1-Jones, C.; "Applied software measurement", McGraw-Hill, 1991
2-International Function Point Users Group - Function Point Counting Practices Manual (Release 4.0), January, 1994 (www.bannister.com/ifpug/home/docs/docs.html)