Adriano Gomes Daniel Santos Pedro Farias Rodrigo Rolim Estudo de Caso Agenda Visão Geral de COCOMO Exercício para Aplicação de COCOMO Estudo de Caso 1: AYK Translator Estudo de Caso 2: CEF Conclusão COCOMO – Visão Geral COCOMO - Constructive Cost Model é um modelo para estimativa de custos de projetos de software O modelo permite a estimativa do custo, do esforço e de planejar as atividades de desenvolvimento de um software. As entradas de COCOMO incluem 4 atributos de produto, 4 atributos de informática, 5 atributos de pessoais, 3 atributos do projeto. COCOMO – Visão Geral COCOMO fornece um nível estimado de esforço homem-mês para o projeto. Pode ser convertido em valor monetário se o custo unitário for conhecido. COCOMO fornece uma boa métrica para seus custo, esforço, e estimativas da programação, desde os melhores casos aos piores casos que podem ser abordados. COCOMO: Exercício 1 Um sistema de DB para automatização de um projeto O documento de requisitos necessita de 4 modulos,cujos tamanho estimado é: ○ ○ ○ ○ Cadastro: 0.6 KDSI Atualizações: 0.6 KDSI Consultar 0.8 KDSI Geração de relatório: 1.0 KDSI O projeto é julgado como orgânico Características do projeto: ○ Complexidade elevada ○ Armazenamento elevado ○ Experiência baixa ○ Potencialidades baixas do programador Outras características julgadas como nominal Estimativa de pessoas para terminar o projeto COCOMO: Exercício 1 Pessoas = PM (esforço) / TDEV(tempo de desenvolvimento) PM = A * (KDSI ^ B) * EAF = 16,35 TDEV = Adur * (KDSI ^ Bdur) * EAF = 6,12 • Pessoas = 2,67 COCOMO: Exercício 2 Parâmetros Projeto complexo, mas conhecido Tamanho estimado = 96 KDSI Pouca experiência sobre a aplicação Conhecimento da linguagem de programação: muito baixo Tamanho do DB elevado Metodologia de desenvolvimento: nenhuma O custo do pessoal é $3K por mês Pergunta - Usando estimativas intermediárias, valeria a pena investir: $100K em metodologias $120K em treinamento em linguagem de programação Objetivo: Alcançar o valor nominal para tais características COCOMO: Exercício 2 O esforço é 762 pessoa-mês Custo em pessoal é $(762 * 3K) = $2286K Treinamento em Metodologia Estimativas reduzidas em 70 PM = $210K Economia é $110K Treinamento em Ling. De Programação Estimativas reduzidas em 94 PM = $282K Economia é $162K COCOMO: Exercício 3 Qual analista você preferiria para seu projeto? Um analista hábil com experiência de 4-5 sobre a aplicação Um grande analista, mas com nenhum conhecimento da aplicação COCOMO: Exercício 3 Supondo que sua estimativa inicial era de 1000 horas de trabalho A nova estimativa será: EST = 1000 * M1 * M2 *… * Mn Opção 1: 1000 * 1 * 1 = 1000 horas de trabalho Opção 2: 1000 * 0.71 * 1.22 = 866 horas de trabalho Estudo de Caso 1 AYK Translator – Tradutor de Linguagens Empresa: General Dynamics Framework para migrar arquitetura sistemas de software legados para uma arquitetura de padrão aberto (OSA) Estudo de Caso 1 Objetivo: Uma análise de custo e beníficios será executada para mostrar a eficácia do tradutor de código automático. Mostrar como o tamanho da aplicação afeta na economia de custo associados com o esforço da conversão Estudo de Caso 1 Visão Geral do Assembly-to-C Translator (ACT) A ferramenta basea-se na tradução de AYK em código C/C++ A arquitetura do ACT consiste em 4 componentes: ○ GUI ○ Front-end Parser ○ Analisador/Optimizador ○ Gerador de código Back-end O ATC foi projetado para preservar a arquitetura legada O ATC preserva todos os cabeçalhos, comentário, e labels do software legado A lista de saída inclui instruções iniciais + código traduzido A documentação anterior é re-aproveitada Casos de testes pré-existentes podem ser usados Estudo de Caso 1 Análise do custo/ beneficio usando COCOMO 2 Os três fatores que afetam a estimativa para SLOC adaptado: DM - Porcentagem de modificação de arquitetura “0%” CM - Porcentagem de código modificado “100%” IM - Porcentagem de integração requerida “100% Estudo de Caso 1 A convenção de COCOMO II envolve estimar a porcentagem do código que é traduzido automaticamente (AT) , e o valor da produtividade (ATPROD). No estudo de caso, 80 por cento do código eram traduzidos automaticamente, a ATPROD foi determinado em 2400 e a taxa de produtividade em 1200 SLOC/PM . Estudo de Caso 1 Saving = WA - (NAP + AP*) Estudo de Caso 1 Estudo de Caso 2 : COCOMO na tomada de decisões Investimentos e Casos de Negócios Orçamentos e Cronogramas Análise de Trade-offs Riscos de Custo Desenvolvimento vs. Reuso Substituição de Software Legado Linhas de Produto Melhoramento de Processo Orçamentos e Cronogramas Planejamento Estratégico 2004 Área de Negócio demandas Área de TI Área de Negócio Área de Negócio Definição das Abordagens Estimativas realizadas Fórmula base /descrição Fórmula aplicada Tamanho APF Indicativa (Proposta Nesma) 35 PF por arquivo lógico interno 15 PF por arquivo de interface externa Esforço Média de dados internos H/M = (PF * 14,5)/168 Prazo COCOMO básico orgânico Prazo = 2.5 * (H/M)^0,38 Equipe COCOMO básico orgânico Equipe = esforço/prazo Custo média de custos internos percentuais de esforço de técnicos e gerentes dentro da metodologia custo hora gerencial * esforço gerencial (%) + custo hora técnico * esforço técnico (%) Análise dos Dados Conclusão Para atender todas as demandas de 2004 seriam necessários 3.169 homens-mês, o que significa que, no pior caso, teriam que ser contratadas 264 pessoas por mês. Bibliografia Calazans, Angélica Toffano Seidel e Oliveira, Marcelo Antonio Lopes de. Uso das ferramentas APF e COCOMO para estimativa da capacidade produtiva da TI. III Simpósio Brasileiro de Qualidade de Software. 2004 Disponível em: http://www.sbc.org.br/bibliotecadigital/download.php?paper=253 Acessado em: 19/06/07 Barry W. Boehm, Chris Abts, A. Winsor, Sunita Chulani, Bradford K. Clark, Ellis Horowitz, Ray Madachy, Donald Reifer. Bert Steece. Software Cost Estimation with COCOMO II. Prentice Hall, July 2000. Cap 2.6 USING COCOMO II FOR SOFTWARE DECISIONS pp. 59-68 AYK Translator - Reusing Legacy Software with Tomorrow’s Technology SPM07. Exercises on COCOMO