MINISTÉRIO DA INTEGRAÇÃO NACIONAL SECRETARIA EXECUTIVA DEPARTAMENTO DE GESTÃO ESTRATÉGICA COORDENAÇÃO-GERAL DE TECNOLOGIA DA INFORMAÇÃO ENCARTE R - PDF
Download "MINISTÉRIO DA INTEGRAÇÃO NACIONAL SECRETARIA EXECUTIVA DEPARTAMENTO DE GESTÃO ESTRATÉGICA COORDENAÇÃO-GERAL DE TECNOLOGIA DA INFORMAÇÃO ENCARTE R"
Alexandre Pedroso Alcaide
1 ENCARTE R Estimativa de de Software Estimativa de de Software: Contratação de Serviços de Fábrica de Software Página 1 de 10
2 SUMÁRIO 1 REFERÊNCIAS INTRODUÇÃO ESTIMATIVA PRELIMINAR ESTIMATIVA INTERMEDIÁRIA MEDIÇÃO FINAL ESTIMATIVA BASEADA EM HORA DE SERVIÇO TÉCNICO (HST) O MÉTODO DE CÁLCULO ATORES DESCRIÇÃO MANUAL: ESTIMATIVA BASEADA EM HST PLANILHA ESTIMATIVA ITEM ITEM ITEM ITEM
3 1 REFERÊNCIAS KARNER, G. Use Case Points: resource estimation for Objectory projects. Objective Systems SF AB (copyright owned by Rational/IBM), 1993 Roteiro de Métrica SISP, COCOMO, Construtive Cost Model, BOEHM, Barry W., Prentice Hall, 1981 Anda, B, Dreiem, H, Sjoberg, D, Jorgesen, M, Estimating Development Effort based on Use Cases Experiences from Industry. In M. Gogolla, C. Kobryn (Eds.): UML 2001 The Unified Modeling Language, Modeling Languages, Concepts, and Tools, 4th International Conference, Toronto, Canada, October 1-5, 2001, LNCS 2185, Springer-Verlag, pp INTRODUÇÃO As estimativas do produto e do processo são a base para o planejamento do projeto de software. As estimativas fornecem dados que permitem prever o tempo necessário e os custos do projeto. Não é possível elaborar cronograma e orçamento sem o uso de estimativas. Para determinar o tempo de desenvolvimento, é necessário estimar a duração das atividades do software. Estimativas da duração do software dependem do tamanho do software que é necessário produzir e da produtividade dos profissionais alocados. Estimativas são realizadas com base em métricas. Métricas de tamanho, duração, produtividade e esforço estão entre as mais utilizadas. Para fazer as estimativas, pode-se optar por duas estratégias: Métricas com base no histórico do órgão Métricas estatísticas de diferentes órgãos As métricas históricas funcionam bem quando a organização é estável e já possui informações coletadas em anos de experiência. Para isso, é fundamental que exista um processo de gerenciamento do projeto cuidadoso e que todos os dados sejam obtidos para serem analisados e avaliados. Com isso, pode-se estimar como a equipe irá produzir, a partir de casos anteriores semelhantes. As estimativas podem ser realizadas por especialistas, que atribuem valores com base em suas experiências de projetos anteriores. Neste caso, podem-se utilizar analogias com projetos anteriores e estimar quais seriam os valores para o novo projeto. As métricas estatísticas são elaboradas por empresas especializadas que obtêm dados de diversas organizações de desenvolvimento de software. Estes dados devem levar em consideração as diversas condições e características que causem impacto no desenvolvimento do software. Com base nestes valores, os especialistas elaboram tabelas, fórmulas e algoritmos que podem ser aplicados no planejamento de um processo de software. Isto permite que as organizações de desenvolvimento possam elaborar o seu planejamento ajustando os valores as suas próprias condições. Os métodos algorítmicos para a realização de estimativas oferecem uma opção mais independente e objetiva. Um exemplo desses métodos são as estimativas de esforço. Esses métodos estão centrados no tamanho do software e da produtividade da equipe, por exemplo: Esforço = Produtividade*Tamanho O esforço é entendido como a quantidade de horas de trabalho a ser executada nas atividades de desenvolvimento do projeto que entregará, ao seu final, o produto/serviço de software, podendo ser apurado utilizando-se diversos métodos que estão disponíveis no mercado. O Ministério da Integração Nacional (MI) desenvolveu um método que foi baseado no método de Estimativa baseada em complexidade de Casos
4 de Uso: O processo de estimativa de esforço é realizado através da aplicação da complexidade das funcionalidades do software. As estimativas de esforço constituem um processo constante durante o desenvolvimento de software. Ele deve ser executado no início dos projetos (estimativas iniciais) e com base em requisitos preliminares, que identificam as funcionalidades contidas no escopo do software. As estimativas devem ser revisadas constantemente à medida que o desenvolvimento percorra seu ciclo de vida, a fim de verificar valores, apoiar a correção de desvios e avaliar o andamento do projeto de forma clara e objetiva. Ao final do desenvolvimento, é importante medir o tamanho final do produto de software entregue, assim como as apurações dos esforços realizados durante a sua construção. Tais medições geram valores que auxiliam no entendimento do contexto produtivo ocorrido em cada caso e retroalimenta a base histórica do MI, com dados que servem para a validação e aprimoramento de todo o processo de estimativas. O momento onde as estimativas e medições serão refeitas, dependerá do ciclo de vida de cada projeto em particular, mas são importantes os seguintes pontos de controle: 1.1. ESTIMATIVA PRELIMINAR Objetivo: Subsidiar estimativas para produzir os artefatos iniciais do projeto (predefinição do escopo do sistema e com o estabelecimento da linha de base da medição durante todo o ciclo de vida dentro da organização). Neste momento, o artefato disponível, geralmente, é apenas o DOD Documento de Oficialização da Demanda ESTIMATIVA INTERMEDIÁRIA Objetivo: Conferir estimativas preliminares ou intermediárias a partir dos resultados obtidos pela análise de requisitos do sistema (verificação do escopo do sistema). Podem ser realizadas tantas estimativas intermediárias quantas forem necessárias dependendo do tamanho e do formato do ciclo de vida do desenvolvimento de software, segundo suas iterações. Entradas: Documentação disponível do sistema: A documentação de apoio à contagem pode variar dependendo do ponto de execução em que o projeto se encontrar. o Modelo de Dados, Visão, Glossário, Diagrama de casos de uso, detalhamento de casos de uso e Protótipos MEDIÇÃO FINAL Objetivo: Realizar a estimativa do produto de software entregue ao usuário. Entradas: o Modelo de Dados, Visão, Glossário, Diagrama de casos de uso, detalhamento de casos de uso e Sistema em produção.
5 Em seguida serão apresentados os detalhamentos de como o MI Ministério da Integração Nacional realiza as suas estimativas de software. 2. ESTIMATIVA UTILIZADA PELA MI A estimativa utilizada pelo MI baseia-se no conceito da Técnica de Pontos por Casos de Uso. A análise de sistemas Orientados a Objetos já utiliza, comumente, os diagramas de Casos de Uso (Use Cases) para descrever as funcionalidades do sistema de acordo com a forma de utilização por parte dos usuários. A técnica de estimativa do MI foi criada para permitir que seja possível estimar o tamanho do sistema ainda na fase de levantamento de Casos de Uso, utilizando-se dos próprios documentos gerados nesta fase de análise como subsídio para o cálculo. O Ministério da Integração Nacional possui um sistema para aplicação da Técnica de Pontos de Caso de Uso e que armazena o histórico de projetos de software do órgão. As Ordens de Serviço são abertas e gerenciadas pelo sistema que realiza a estimativa do projeto no inicio e permite que novos cálculos de estimativa sejam realizados ao longo da execução do projeto. Conforme método de cálculo descrito no item O MÉTODO DE CÁLCULO Uma vez que os casos de uso do sistema sejam identificados, é possível estimar-se o tamanho do software como um todo, baseando-se em um conjunto simples de métricas e modificadores. Os passos necessários para a geração da estimativa por Pontos de Caso de Uso são descritos a seguir: Passo 1: Identificação dos atores dos casos de uso O primeiro passo no cálculo do sistema é classificar a quantidade de atores envolvidos em cada caso de uso. A classificação de atores utiliza a tabela 1. Foi identificado como boa prática, na identificação dos atores que um número maior do que 3 (três) implicará na sua revisão e possível divisão do caso de uso. ATORES DESCRIÇÃO 1 Um sistema acessado através de uma API de programação, por exemplo. 2 Outro sistema interagindo através de um protocolo de comunicação, como WebService, TCP/IP ou FTP ou outra API Humano Um usuário interagindo através de uma interface gráfica (stand-alone ou Web) Tabela 1. Pesos de Atores Passo 2: Classificando os Casos de Uso Uma vez identificado os atores dos casos de uso, deve-se fazer a classificação destes. Para fins de cálculo, dividimos os casos de uso em três níveis de complexidade, de acordo com o número de fluxos envolvidos em seu processamento e com a associação dos atores que participam dos casos de uso. Por fluxos, entende-se como um conjunto de fluxos que devem ser realizados no caso de uso. Por exemplo: fluxo principal e fluxo alternativo. A tabela 2 mostra a classificação dos Casos de Uso de acordo com a quantidade de fluxo e de atores. Atores
6 Fluxos 1 2 Humano Simples Simples Médio Dividir 5-6 Simples Médio Complexo Dividir 7-8 Médio Complexo Complexo Dividir +9 Dividir Dividir Dividir Tabela 2. Classificação dos casos de uso Foi identificada como boa prática nos episódios de casos de uso que tenham mais de 9 fluxos que os mesmos devem ser revistos, pois, podemos ter mais de um processo de negócio associado. Após a classificação dos casos de uso, será calculada a sua quantidade de Horas de Serviço Técnico (HST). Para calcular a quantidade de HST do sistema somam-se os HSTs identificados para cada caso de uso de acordo com a sua classificação. O valor total de HST foi calculado de acordo com a complexidade dos casos de uso, conforme apresentado no Item 2 da Figura 1. Para realizar este cálculo, o MI dispõe de uma Planilha denominada - Modelo - Planilha de HST.xltx, conforme apresentado na seção 3. A COSIS mantém atualizada, desde 2012, uma base histórica da execução dos seus projetos quanto ao escopo, ao esforço, ao custo e ao prazo. De acordo com estes dados, originou-se o trabalho de medição e análise para formar a base histórica dos seus projetos. 3. MANUAL: ESTIMATIVA BASEADA EM HST Esta seção tem como objetivo descrever passo a passo o arquivo Modelo - Planilha de HST.xltx. A Planilha possui 3 abas (planilhas): Leia-me: um informativo sobre as instruções referentes aos cálculos que serão realizados; Identificação: descrição sobre o projeto e tipo de Estimativa; Estimativa: Planilha que mostrará os casos de uso, assim como estimativas, complexidades, atores envolvidos, e fases. A partir da descrição acima, as abas 1 e 2 são apenas descrições e deverão ser preenchidas de acordo com o processo. Já a aba 3 identificada como Estimativa será melhor descrita para facilitar o manuseio de suas informações, como descrito no item 3.1 Planilha estimativa: 3.1 PLANILHA ESTIMATIVA A planilha estimativa possui a seguinte visão (figura 1). É importante reforçar que a tabela de Lista de Casos de Uso do projeto é a mais relevante visto que as demais tabelas serão preenchidas a partir dessa tabela. Sendo assim, seu preenchimento deve ser feito e revisado, para garantir que os cálculos estejam corretos: Fluxos Atores ITEM Humano Simples Simples Médio Dividir 5-6 Simples Médio Complexo Dividir 7-8 Médio Complexo Complexo Dividir
7 +9 Dividir Dividir Dividir ITEM 2 Simples Médio Complexo HST por Tecnologias ITEM 3 Total de UC por Tipo Tecnologia Simples Médio Complexo HST Java HST ajustados 120 PHP Lista de Casos de Uso do Projeto % Atores Fluxos Classificação HST Pronto ITEM 4 UC.001 UC.001 0% ,00000 UC.002 UC % ,00000 UC.003 UC.004 UC.005 UC.006 Figura 1 Informações das Funcionalidades ITEM 1 O item 1 apresenta como os casos de uso são classificados quanto a sua complexidade em relação às quantidades de fluxos e atores ITEM 2 O item 2 mostra um resumo da medição a partir do momento que os casos de uso são classificados ITEM 3 O item 3 mostra a quantidade de HST por tecnologia e por complexidade para o desenvolvimento de um caso de uso no ciclo de desenvolvimento de Software do MI. Os valores foram obtidos a partir da base histórica de projetos; ITEM 4 O item 4 Lista de casos de uso é o principal, pois lista todos os casos de uso do projeto. O cálculo da quantidade de HST será definido a partir das configurações presente nas colunas Atores e Fluxos. Veremos abaixo essa tabela mais sucintamente: A primeira coluna indica o número do Caso de Uso e a segunda coluna seu nome.
8 % Pronto: Essa coluna definirá o quanto daquele Caso de Uso já está pronto, ou seja, será utilizada nos casos de manutenção de uma funcionalidade. É importante respeitar os seguintes fatores de Pronto: Percentual de Pronto Explicação 50% Quando estiver fora da garantia e a funcionalidade foi feita pela mesma empresa 25% Quando estiver fora da garantia e a funcionalidade foi feita por outra empresa Atores: A coluna deverá ser selecionada com a quantidade de atores do Caso de uso, se é 1 a 2, ou se é uma pessoa, um ator humano. Esse campo irá influenciar no cálculo de HST para o Caso de Uso. Fluxos: Deverá ser selecionada a quantidade de Fluxos do Caso de Uso. A seleção desse campo auxiliará os campos seguintes, para a definição de quantos HST possui o Caso de Uso. HST: Essa coluna também é preenchida automaticamente e mostrará a quantidade de HSTs que aquele Caso de Uso possui efetivamente. Após a tabela, onde serão inseridos os fluxos e a descrição de todos os Casos de Uso do projeto, será visível uma outra tabela que mostrará através das fases do projeto os gastos, a disciplina, o esforço perfil e os produtos que serão entregues, como pode ser visto na Tabela 1: Fases Quantidade de HST estimada: 226 Disciplina Esforço (%) Esforço (HST) 1,00% 2,00 Perfil Produtos Cronograma Gerência de Projeto 1,00% 2,00 Relatório de Status Concepção 1,00% 2,00 Plano do Projeto Desenvolvimento Engenharia de 6,00% 14,00 1,00% 2,00 Total Fase: 22,00 R$ 0,00 5,00% 11,00 Gerência de Projeto 3,00% 7,00 Engenharia de 8,00% 18,00 1,00% 2,00 Documento de Visão Glossário Relatório de Status Atualização de Cronograma Especificação de Caso de Uso Lista de Mensagens
9 4,00% 9,00 2,00% 5,00 2,00% 5,00 Especificação de Interface Matriz de rastreabilidade Regra de Negócio Análise e Projeto Implementação 3,00% 7,00 Arquiteto de SW Documento de Arquitetura 10,00% 23,00 AD Modelo de Dados 5,00% 11,00 Desenvolvedor Protótipo 27,00% 61,00 Desenvolvedor Código fonte Encerramento Testes (VER e VAL) 4,00% 9,00 Testes Roteiro de Teste 4,00% 9,00 Testador Evidência testes Implantação 2,00% 5,00 Documentador Manual do usuário Total Fase: 182,00 R$ 0,00 Gerência de Projeto 2,00% 5,00 Integração 4,00% 9,00 Desenvolvedor Relatório de Status build Plano de Implantação Implantação 4,00% 9,00 Desenvolvedor Manual de Produção Total Fase: 23,00 R$ 0,00 Tabela 2 - Quadro Programática do Projeto Cada coluna possui um objetivo: Quantidade estimada de HST: Esse campo será preenchido segundo as descrições estabelecidas na tabela de Listagem de Caso de Uso, consolidando todos os Casos de Uso descritos. Fases: Irá mostrar o que será entregue nas fases do projeto, assim como os envolvidos e o quanto de HST que será gasto. Disciplina: Cada fase possui disciplinas, que serão listadas nessa coluna; Esforço: Mostra a porcentagem do esforço gasto por disciplina; Esforço (HST): Mostra a quantidade em HST do esforço gasto por disciplina; Perfil: Cada disciplina possui um perfil associado. Essa coluna mostrará o perfil do envolvido na disciplina; Produtos: Essa coluna listará, por disciplina, quais produtos serão entregues; Valor do Produto: Mostrará o valor em reais daquela disciplina; Ao final de todas essas divisões, necessárias para saber onde cada HST está sendo investido, ainda serão exibidas algumas tabelas que demonstrarão melhor a quantidade de HST necessária e envolvidos do projeto: A tabela representada pela Tabela 2 ilustra a fase e os perfis envolvidos, além do faturamento que poderá ser feito por fase. Além disso, apresenta uma linha de esforço total onde mostra por perfil dos envolvidos a quantidade de HST e a quantidade em Reais de custo por perfil.
10 Fases Gestão Análise Desenvolvimento Dias Faturamento por Fase Concepção 0,00 0,00 0,00 R$ 0,00 Desenvolvimento 0,00 0,00 0,00 R$ 0,00 Encerramento 0,00 0,00 0,00 R$ 0,00 Esforço Total 0,00 0,00 0,00 R$ 0,00 Custo por Perfil R$ 0,00 R$ 0,00 R$ 0,00 Tabela 3 - Faturamento por fase Ainda poderá ser visto a quantidade de horas que cada fase do projeto necessitará para ser concluída (Tabela 3): Fases Concepção Desenvolvimento Encerramento Horas Tabela 4 - Dias por fases A Tabela 4 mostra, a partir das tabelas anteriores, a quantidade total de horas do projeto, o prazo e a equipe ideal para a sua execução. Assim como em meses, a duração e a quantidade de envolvidos no total. Sendo assim, tem-se uma visão geral do projeto. Nesta planilha, utilizou-se uma inflator de 50% para cada HST, ou seja, considerou-se que para cada uma HST agregado no projeto necessitou-se de 1,5 hora de trabalho. Qtda de Horas 78,00 PRAZO E EQUIPE IDEAL Prazo Ideal: Prazo ideal comprimido 25%: Equipe Ideal para prazo comprimido: Meses Meses Pessoas Tabela 5 - Prazo e Equipe Ideal É importante informar que a planilha é um exemplo e que outras abas poderão ser inseridas para complementar alguma pendência ou dúvida relativa ao funcionamento como, por exemplo, uma planilha de Fatores de Ajuste.