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]