Estimativas de Projetos de Software Reinaldo Cabral [email protected] Contexto Precisamos de um software para permitir a gerência das solicitações de serviço realizadas à nossa unidade organizacional Questões: Qual o esforço necessário para desenvolver a solução? Qual o custo? Qual o prazo? Melhor comprar ou fazer? Objetivos de Aprendizagem Ao final, todos devem estar aptos: Identificar métricas que apóiam a elaboração de estimativas em projetos de software Utilizar análise de pontos de função para estimar esforço, prazo e custo de projetos de software. Roteiro 1. Notas Introdutórias Premissas Contexto 2. Métricas de Tamanho e Modelos 3. Pontos de Função 4. Tópicos Relacionados 5. Verificação do Alcance dos Objetivos de Aprendizagem 1. Notas Introdutórias Premissas Escopo bem definido Requisitos descritos adequadamente Visão sobre o domínio 1. Notas Introdutórias Contexto Atividades “criativas” Variabilidade da forma de executar as atividades Uso de métricas e modelos de estimativas Decisões fundamentadas na experiência individual 1. Notas Introdutórias Estimativa ad-hoc 1 Atividades: 1. Análise (Modelagem): 20 hh 2. Desenvolvimento (Codificação): 300 hh 3. Testes (Execução de partes da aplicação para verificar se funciona): 50 hh 4. Implantação (Instalação no cliente): 10 hh Esforço total: 380 hh 1. Notas Introdutórias Estimativa ad-hoc 2 Atividades: Fase 1 - Planejamento do Processo Atividade 1. Planejamento do Processo para o Projeto (20, 5 hh) Identificar o Escopo do Projeto 8 hh Estabelecer Características do Projeto 1 hh Planejar Processo 9 hh Obter Comprometimento com o Plano do Processo (2,5 hh) Avaliar o Processo Planejado 2 hh Registrar Comprometimento com o Plano do Processo 0,5 hh 2. Planejamento Inicial (24,5 hh) Estabelecer Estrutura Organizacional do Projeto 3 hh Estabelecer Cronograma 5 hh Planejar Recursos Humanos 6 hh Planejar Acompanhamento e Controle 1 hh Planejar Treinamento 3 hh Planejar Gerência de Configuração 2,5 hh Consolidar Plano do Projeto 1 hh Obter Comprometimento com o Plano do Projeto (3 hh) Avaliar Plano do Projeto 2,5 hh Registrar Comprometimento com o Plano do Projeto 0,5 h 1. Notas Introdutórias [Hazan e von Staa, 2004] 2. Métricas de Tamanho e Modelos “Mede o tamanho do que o software faz” Carol A. Dekkers Function Points Allan Albrecht, 1979, IBM Medida funcional de tamanho baseada nos requisitos lógicos do usuário Crescimento no Brasil: ISO/IEC 20926 1 UFP => 6,78 (Fonte de mais de 3000 projetos, http://www.isbsg.org ) Use Case Points 1996-1999: 5 especialistas certificados CFPS 2000: 2 especialistas certificados CFPS 2001: 12 especialistas certificados CFPS 2002: 45 especialistas certificados CFPS Gustav Karner, 1993 - Iniciativa da Rational 1 UCP => 20 hh Dependente do “estilo do caso de uso” Outras: Feature Points COCOMO 81, COCOMO II COSMIC FFP 3. Pontos de Função Cinco Componentes dos Pontos de Função: Arquivo Lógico Interno (ALI) Arquivo de Interface Externa (AIE) Entrada Externa (EE) Saída Externa (SE) Consulta Externa (CE) 3. Pontos de Função - Componentes Arquivo Lógico Interno (ALI) Entidade lógica e persistente, a respeito da qual dados serão mantidos. Baseiam-se em requisitos lógicos dos usuários e são independentes da implementação ou meios dearmazenamento, tais como tabelas ou bancos de dados. Um ALI é contado com base em uma avaliação do número de campos de dados não recursivos do usuário e do número de tipos de elementos de registros lógicos nele contidos. 3. Pontos de Função - Componentes Arquivo de Interface Externa (AIE) Entidade lógica e persistente, que é requerida para referência ou validação pelo software sendo contado, mas que é mantido por outro aplicativo de software. (Isto é, um arquivo de interface externa deve ser um arquivo lógico interno para um outro aplicativo). É avaliado com base no número de campos de dados não recursivos do usuário e no número de tipos de elementos de registros lógicos. Arquivos de interface externa também são parte dos requisitos lógicos dos usuários. 3. Pontos de Função - Componentes Entrada Externa (EE) Processo lógico do negócio que mantém os dados em um ou mais arquivos lógicos internos, ou é um processo de controle que direciona o software para atender os requisitos de negócio do usuário. É contada com base no número de campos de dados do usuário envolvidos e na soma dos ALI e AIE participantes do processo. Um exemplo de EE seria “Incluir empregado” em um aplicativo de recursos humanos. 3. Pontos de Função - Componentes Saída Externa (SE) Processo lógico do negócio que gera dados para um usuário ou para outro aplicativo externo ao software. Exemplos típicos de saídas externas incluem relatórios de usuários, disquetes ou fitas para a Receita Federal. As saídas externas também fazem parte dos requisitos lógicos dos usuários. 3. Pontos de Função - Componentes Consulta Externa (CE) Último tipo de função lógica de usuário contada através de pontos de função. Consiste em um par gatilho-resposta (ou perguntaresposta) através do qual a pergunta ou solicitação de dados entra no aplicativo vinda de fora (tipicamente a partir de um usuário ou de outro aplicativo), os dados são recuperados para atender à solicitação e enviados para fora. Mais uma vez, as Consultas Externas fazem parte dos requisitos lógicos dos usuários de um aplicativo de software. 3. Pontos de Função Complexidade Funcional Registros Lógicos ITENS DE DADOS REFERENCIADOS 1 a 19 20 a 50 51 ou mais 1 Baixa Baixa Média 2a5 Média Média Alta 6 ou mais Alta Alta Alta 3. Pontos de Função Complexidade Entrada Externa Registros Lógicos ITENS DE DADOS REFERENCIADOS 1a4 5 a 15 16 ou mais 0a1 Baixa Baixa Média 2 Média Média Alta 3 ou mais Alta Alta Alta 3. Pontos de Função Complexidade Saída Externa Registros Lógicos ITENS DE DADOS REFERENCIADOS 1a5 6 a 19 20 ou mais 1 Baixa Baixa Média 2a3 Média Média Alta 4 ou mais Alta Alta Alta 3. Pontos de Função Complexidade Consulta Externa Registros Lógicos ITENS DE DADOS REFERENCIADOS 1a5 6 a 19 20 ou mais 1 Baixa Baixa Média 2a3 Média Média Alta 4 ou mais Alta Alta Alta 3. Pontos de Função - Complexidade de cada tipo de função 3. Pontos de Função - Fator de Ajuste de Valor (FAV) FAV = 0,65 + (Soma das Características Gerais do Sistema x 0,01) Soma das 14 Características Gerais do Sistema avaliadas em uma escala de 1 a 5. 1. Comunicação de Dados 8. Atualização On-Line 2. Processamento Distribuído de Dados 9. Processamento Complexo 3. Desempenho 10. Reutilização 4. Configuração Intensamente Utilizada 11. Facilidade de Instalação 5. Taxa de Transação 12. Facilidade de Operação 6. Entrada de Dados On-Line 13. Múltiplas Localidades 7. Eficiência do Usuário Final 14. Facilidade de Alteração 3. Pontos de Função - Contagem Ajustada (Contagem não Ajustada) * FAV 4. Tópicos Relacionados Variação/Extensão de Modelos Calibração Dinâmica de Estimativas (Baldassarre et al., 2003) Ferramentas de apoio à contagem Certificação IFPUG BFPUG 5. Verificação do Alcance dos Objetivos de Aprendizagem Cite métricas que apóiam a execução de estimativas em projetos de Software Como utilizar APF para estimar esforço, prazo e custo de projetos de software? Estimativas de Projetos de Software Reinaldo Cabral [email protected]