330 likes | 429 Views
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 ?
E N D
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 ? • Será que estamos melhorando?
Métricas de softwarehttp://sunset.usc.edu/classes/cs577b_2001/metricsguide/metrics.html • Métricas de software: • dados numéricosassociadosaodesenvolvimento de software • Métricassuportam: • Planejamento – servemcomo base paraestimativa de custo, recursos, cronogramação e orçamentação. • Organização de projeto – métricassuportam a forma de organizar o projeto • Controle – sãousadasparaacompanhar as atividades de desenvolvimento e verificaraderenciaaoplano • Melhoria – ferramentaessencialpara a melhoria de processos: identificação, ajustes e medida dos efeitos
Métricas • Métrica: • quantifica uma característica de um processo ou produto • Métrica: • direta: pode ser observável diretamente • derivada: 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 tempo • uma 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ódigo • esforç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 empregada • Penalizam códigos bem escritos • Não adaptáveis a linguagens visuais • Dificuldade 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
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 Arquivos de Interface Externa (AIE) AIE: Arquivo passado ou compartilhado entre sistemas. Exemplos: arquivos compartilhados bancos compartilhados bibliotecas de rotinas
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 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 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
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 pontos Entradas = 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
Fatores de complexidade técnica (TCF) • 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 • 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
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)
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
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)