FACULDADE DE ENGENHARIA DE GUARATINGUETÁ ECONOMIA DE EMPRESAS TÓPICOS DE ENGENHARIA ECONÔMICA
Economia da Engenharia de SW
description
Transcript of Economia da Engenharia de SW
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)