22.08.2015 Views

avaliação de um processo empírico para estimar o esforço de ...

avaliação de um processo empírico para estimar o esforço de ...

avaliação de um processo empírico para estimar o esforço de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Pontifícia Universida<strong>de</strong> Católica <strong>de</strong> Minas GeraisINSTITUTO DE EDUCAÇÃO CONTINUADAGERÊNCIA DE PROJETO DE SOFTWAREAVALIAÇÃO DE UM PROCESSO EMPÍRICO PARA ESTIMAR OESFORÇO DE PROJETOS DE SOFTWAREDaniel Albricker <strong>de</strong> CarvalhoBelo Horizonte2009


Daniel Albricker <strong>de</strong> CarvalhoAVALIAÇÃO DE UM PROCESSO EMPÍRICO PARA ESTIMAR OESFORÇO DE PROJETOS DE SOFTWAREMonografia <strong>de</strong> conclusão docurso <strong>de</strong> pós- graduação latosenso Gerência <strong>de</strong> Projetos <strong>de</strong>Software, necessária <strong>para</strong>obtenção do grau <strong>de</strong>especialista.Orientador: Rogério BaldiniBelo Horizonte2009


AGRADECIMENTOSGostaria <strong>de</strong> agra<strong>de</strong>cer a Deus e minha querida esposa Karine, por seremmeus principais motivadores <strong>para</strong> conclusão <strong>de</strong>ste trabalho.Agra<strong>de</strong>ço também aos meus pais e minhas irmãs, pelo apoio incondicionalem todos os momentos <strong>de</strong> minha vida.Agra<strong>de</strong>ço ao meu orientador Rogério Baldini pelos ensinamentos eprincipalmente pela paciência durante a realização <strong>de</strong>ste trabalho.Enfim agra<strong>de</strong>ço ao colega e amigo Alexandre Oliveira, gerente da Fábrica <strong>de</strong>Software da TOTVS – BH, pelos incentivos, sugestões e críticas, que foramfundamentais <strong>para</strong> que eu concluísse a especialização.


RESUMOEsta monografia avalia o <strong>processo</strong> <strong>empírico</strong> <strong>de</strong> estimativa do <strong>esforço</strong> <strong>de</strong>projetos <strong>de</strong> software implantado pela Fábrica <strong>de</strong> Software da Empresa TOTVS,unida<strong>de</strong> Belo Horizonte, com o objetivo <strong>de</strong> fornecer <strong>um</strong>a perspectiva em relação àeficiência e confiabilida<strong>de</strong> <strong>de</strong>ste <strong>processo</strong> utilizado pela empresa. Este trabalhoapresenta <strong>um</strong> levantamento bibliográfico sobre o <strong>processo</strong> <strong>de</strong> estimativas abordadono CMMI – Capability Maturity Mo<strong>de</strong>l Integration e sobre a aplicação da Análise <strong>de</strong>Pontos <strong>de</strong> Função, ferramenta <strong>de</strong> estimativa <strong>de</strong> tamanho <strong>de</strong> software cada vez maisutilizada como apoio em diversas áreas da gerência <strong>de</strong> projetos. O estudo <strong>de</strong> caso<strong>de</strong>sta monografia aborda a metodologia <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software implantadana Fábrica <strong>de</strong> Software da TOTVS – BH, no qual é <strong>de</strong>talhado e exemplificado o<strong>processo</strong> <strong>de</strong> estimativa que ocorre durante a fase <strong>de</strong> levantamento <strong>de</strong> requisitos dosprojetos da empresa, e a <strong>avaliação</strong> <strong>de</strong>ste <strong>processo</strong>, com<strong>para</strong>ndo-o com <strong>um</strong> <strong>processo</strong>formal <strong>de</strong> estimativa <strong>de</strong> software, a partir da análise <strong>de</strong> pontos <strong>de</strong> função.Palavras-chave: Gerenciamento <strong>de</strong> Projeto; Processo <strong>de</strong> Software;Metodologia; Métricas, Pontos <strong>de</strong> Função.


ABSTRACTThis paper evaluates the empiric process of effort estimation for softwareprojects by Software Factory at TOTVS’ company, in Belo Horizonte, with theobjective to provi<strong>de</strong> a perspective of efficiency and thrust of this process. This paperpresents a theorical study about estimation process approached in CMMI - CapabilityMaturity Mo<strong>de</strong>l Integration and about the application of Function Points Analysis. FPAis the effort estimation technique more used in many areas of project management.The case estudied in this paper covers software <strong>de</strong>velopment methodology implantedon Software Factory of TOTVS, whose estimation process occurs during therequirement analysis stage. This empirical process is compared with a formalsoftware estimation process, the Function Point Analysis.Key-words: Project Management, Software Process; Methodology; Metrics;Function Points.


LISTA DE FIGURASFigura 1 – Processos da contagem <strong>de</strong> pontos <strong>de</strong> função .........................................21Figura 2 – Casos <strong>de</strong> Uso mo<strong>de</strong>lados pelo Analista <strong>de</strong> Customização a partir dosrequisitos...................................................................................................................40Figura 3 – Diagrama <strong>de</strong> Ativida<strong>de</strong>s do Caso <strong>de</strong> Uso “Cadastrar os Embalagens e osrespectivos preços por produto”................................................................................40Figura 4 – Botão Customizado da Visão <strong>de</strong> Produtos...............................................41Figura 5 – Cadastro Customizado <strong>de</strong> embalagens por produto ................................42Figura 6 – Diagrama <strong>de</strong> Ativida<strong>de</strong> do Caso <strong>de</strong> Uso “Inserir Tipos <strong>de</strong> Embalagens XQuantida<strong>de</strong> por item <strong>de</strong> movimento” .........................................................................43Figura 7 – Botão Customizado no cadastro <strong>de</strong> Itens <strong>de</strong> Movimento .........................45Figura 8 – Tela <strong>de</strong> Quantida<strong>de</strong> <strong>de</strong> Vasilhames por produto ......................................45


LISTA DE TABELASTabela 1 – Complexida<strong>de</strong> funcional dos ALI e AIE ...................................................24Tabela 2 – Contribuição dos pontos <strong>de</strong> função não ajustados das funções do tipodado ..........................................................................................................................24Tabela 3 – Tabela <strong>de</strong> Complexida<strong>de</strong> <strong>para</strong> Entradas Externas (EE)..........................27Tabela 4 – Tabela <strong>de</strong> Complexida<strong>de</strong> <strong>para</strong> Saídas Externas (SE) e ConsultasExternas (CE)............................................................................................................27Tabela 5 – Contribuição dos pontos <strong>de</strong> função não ajustados das funções do tipotransação...................................................................................................................27Tabela 6 – Tabela <strong>de</strong> níveis <strong>de</strong> influência das características gerais do sistema .....28Tabela 7 – Tipos dos Requisitos ou Ativida<strong>de</strong>s <strong>de</strong> customização.............................36Tabela 8 – Graus <strong>de</strong> dificulda<strong>de</strong> dos requisitos.........................................................37Tabela 9 – Matriz <strong>de</strong> Esforço.....................................................................................37Tabela 10 – Estrutura da tabela ZPRECOPRODUTO ..............................................42Tabela 11 – Planilha <strong>de</strong> ativida<strong>de</strong>s do projeto <strong>de</strong> customização...............................46Tabela 12 – Tabela <strong>de</strong> apropriação do <strong>esforço</strong> <strong>para</strong> cada ativida<strong>de</strong>.........................47Tabela 13 – Tabela com os prazos modificados empiricamente pelo analista..........48Tabela 14 – Contagem das Funções <strong>de</strong> Dados ........................................................50Tabela 15 – Contagem das Funções do tipo transação ............................................51Tabela 16 – Contagem dos níveis <strong>de</strong> influência........................................................52Tabela 17 – Apropriação dos percentuais <strong>de</strong> <strong>esforço</strong> <strong>de</strong> acordo com a ativida<strong>de</strong> dociclo <strong>de</strong> vida...............................................................................................................53Tabela 18 – Planilha <strong>de</strong> Horas do Projeto baseado em Pontos <strong>de</strong> Função ..............54


SUMÁRIO1. INTRODUÇÃO ........................................................................................................91.1. Motivação .......................................................................................................101.2. Objetivo...........................................................................................................101.3. Definição do Problema....................................................................................111.4. Contribuições..................................................................................................121.5. Organização da Monografia............................................................................122. REVISÃO BIBLIOGRÁFICA..................................................................................142.1. Gerenciamento <strong>de</strong> Projetos ............................................................................142.2. O mo<strong>de</strong>lo CMMI..............................................................................................152.3. Estimativa <strong>de</strong> Tamanho <strong>de</strong> Software através da Análise <strong>de</strong> Pontos <strong>de</strong> Função...............................................................................................................................183. FUNDAMENTAÇÃO TEÓRICA.............................................................................193.1. Introdução.......................................................................................................193.2. Análise <strong>de</strong> Pontos <strong>de</strong> Função.........................................................................193.3. Cálculo do Esforço / Produtivida<strong>de</strong>.................................................................314. EXPERIMENTOS E RESULTADOS .....................................................................334.1. Estudo <strong>de</strong> Caso ..............................................................................................334.1.3.2.1. Processo “Cadastrar as Embalagens e os respectivos preços porproduto”.......................................................................................................404.1.3.2.2. Processo “Inserir Tipos <strong>de</strong> Embalagens X Quantida<strong>de</strong> por item <strong>de</strong>movimento” .................................................................................................435. CONSIDERAÇÕES FINAIS ..................................................................................555.1. Análise dos Resultados ..................................................................................556. Referências ...........................................................................................................57


91. INTRODUÇÃODevido ao crescimento do mercado <strong>de</strong> Tecnologia da Informação, acompetição entre as empresas <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software tem a<strong>um</strong>entado acada ano.De acordo com Gartner Group, o mercado mundial <strong>de</strong> licença <strong>de</strong> software<strong>de</strong> gestão empresarial integrada, incluindo ERP, CRM, BI e SCM, superou amarca <strong>de</strong> US$13,4 bilhões em 2004, esperando-se <strong>um</strong> crescimento anual<strong>de</strong> 6,4% até 2009, atingindo US$18,3 bilhões. O crescimento contínuo nomercado mundial <strong>de</strong> software <strong>de</strong> gestão empresarial integrada <strong>de</strong>ve-se, emgran<strong>de</strong> parte, à globalização e à conseqüente exigência <strong>para</strong> que osnegócios busquem otimizar suas operações <strong>de</strong> maneira a aten<strong>de</strong>r às<strong>de</strong>mandas cada vez maiores e mais complexas por parte <strong>de</strong> seus clientes,reven<strong>de</strong>dores e outros parceiros comerciais. (Prospecto Preliminar <strong>de</strong>Distribuição Pública Primária e Secundária <strong>de</strong> Ações Ordinárias <strong>de</strong> Emissãoda TOTVS S.A., 2006).Há <strong>um</strong>a necessida<strong>de</strong> das empresas que trabalham com projetos <strong>de</strong> softwareem implantar <strong>um</strong>a metodologia que potencialize a execução dos projetos, garantindoqualida<strong>de</strong> do produto final, sem que haja prejuízo com relação ao custo ecronograma previsto. Uma alternativa <strong>para</strong> melhorar esses resultados po<strong>de</strong> serobtida através da elaboração <strong>de</strong> métricas <strong>para</strong> estimativa do tamanho do projeto noinício do ciclo do <strong>de</strong>senvolvimento, pois a partir da estimativa do tamanho dosoftware será possível calcular <strong>esforço</strong> e custo do projeto, bem como gerenciar o<strong>processo</strong> <strong>de</strong> <strong>de</strong>senvolvimento do software <strong>de</strong> forma eficiente.Uma das técnicas mais utilizadas pelas empresas <strong>de</strong> software <strong>para</strong> medir otamanho <strong>de</strong> <strong>um</strong> software, no que diz respeito às funcionalida<strong>de</strong>s fornecidas por ele éa Análise <strong>de</strong> Pontos <strong>de</strong> Função, que começou a ser significativamente utilizada noBrasil no início da década <strong>de</strong> 90, principalmente por ter sido consi<strong>de</strong>rada <strong>um</strong>amedida padrão <strong>para</strong> gran<strong>de</strong>s contratos públicos <strong>de</strong> <strong>de</strong>senvolvimento e manutenção<strong>de</strong> sistemas (VAZQUEZ, SIMÕES, ALBERT, 2008).Neste trabalho será efetuado <strong>um</strong> estudo sobre o <strong>processo</strong> formal <strong>de</strong>estimativa <strong>de</strong> tamanho <strong>de</strong> software através da análise <strong>de</strong> pontos <strong>de</strong> função, e aaplicação da mesma em <strong>um</strong> projeto da Fábrica <strong>de</strong> Software do Grupo TOTVS,unida<strong>de</strong> Belo Horizonte, com o objetivo <strong>de</strong> avaliar a eficiência <strong>de</strong> <strong>um</strong> <strong>processo</strong><strong>empírico</strong> atualmente adotado pela empresa em com<strong>para</strong>ção com o <strong>processo</strong> <strong>de</strong>análise <strong>de</strong> pontos <strong>de</strong> função.


101.1. MotivaçãoO que motivou a escolha <strong>de</strong>ste tema <strong>para</strong> este trabalho foi a necessida<strong>de</strong> <strong>de</strong>avaliar a metodologia <strong>para</strong> <strong>estimar</strong> o <strong>esforço</strong> dos projetos <strong>de</strong> customização naFábrica <strong>de</strong> Software da empresa <strong>de</strong> tecnologia TOTVS, <strong>de</strong>vido à crescente <strong>de</strong>mandados projetos, o que exige o a<strong>um</strong>ento na confiabilida<strong>de</strong> das estimativas realizadas.A Fábrica <strong>de</strong> Software da TOTVS é o <strong>de</strong>partamento responsável porimplementar as customizações dos aplicativos <strong>de</strong>senvolvidos pela empresa, ou seja,implementar as regras <strong>de</strong> negócio específicas dos clientes, não contempladas nasversões originais dos aplicativos, vendidas normalmente em forma <strong>de</strong> produto.Somente no 1º semestre <strong>de</strong> 2008, foram iniciados 251 projetos <strong>de</strong>customização, o que correspon<strong>de</strong> a <strong>um</strong> a<strong>um</strong>ento <strong>de</strong> 37% do número <strong>de</strong> projetosiniciados no mesmo período <strong>de</strong> 2007. Devido ao a<strong>um</strong>ento <strong>de</strong> vendas das soluções<strong>de</strong> gestão empresarial e o conseqüente a<strong>um</strong>ento na <strong>de</strong>manda das customizações,torna-se essencial a melhoria contínua dos <strong>processo</strong>s <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong>software, <strong>de</strong>ntre eles o <strong>processo</strong> <strong>de</strong> estimativas <strong>de</strong> tamanho. Além do a<strong>um</strong>ento donúmero <strong>de</strong> projetos, notou-se <strong>um</strong> a<strong>um</strong>ento expressivo na quantida<strong>de</strong> <strong>de</strong> projetoscom prazos acima <strong>de</strong> 160 Horas, sendo que no 1º semestre <strong>de</strong> 2008 o índicea<strong>um</strong>entou 57%, o que implica a necessida<strong>de</strong> <strong>de</strong> a<strong>um</strong>entar ainda mais aconfiabilida<strong>de</strong> das estimativas, por se tratar <strong>de</strong> projetos <strong>de</strong> média e longa duração.1.2. ObjetivoO objetivo geral <strong>de</strong>ssa pesquisa monográfica é:Fazer <strong>um</strong>a <strong>avaliação</strong> <strong>de</strong> <strong>um</strong> <strong>processo</strong> <strong>empírico</strong> <strong>de</strong> estimativa <strong>de</strong> <strong>esforço</strong> dosoftware, atualmente adotado pela Fábrica <strong>de</strong> Software da filial Belo Horizonte doGrupo TOTVS, e com<strong>para</strong>r a eficiência do mesmo, utilizando <strong>um</strong> <strong>processo</strong> formal <strong>de</strong>ponto <strong>de</strong> função, a partir <strong>de</strong> <strong>um</strong> estudo <strong>de</strong> caso.Os objetivos específicos são:• Estudar o <strong>processo</strong> “Estabelecer Estimativas” do gerenciamento <strong>de</strong>projetos, <strong>de</strong> acordo com o mo<strong>de</strong>lo SEI CMMI;


11• Estudar as principais características da técnica <strong>de</strong> análise por pontos <strong>de</strong>função;• Descrever <strong>um</strong> <strong>processo</strong> <strong>empírico</strong> <strong>de</strong> estimativa <strong>de</strong> tamanho e <strong>esforço</strong> <strong>de</strong>software, apresentando suas vantagens e <strong>de</strong>svantagens;• Com<strong>para</strong>r o <strong>processo</strong> <strong>empírico</strong> com <strong>processo</strong> formal <strong>de</strong> análise por pontos<strong>de</strong> função.Ao término <strong>de</strong>ste trabalho será possível obter <strong>um</strong>a conclusão sobre aeficiência do <strong>processo</strong> <strong>empírico</strong> utilizado pela Fábrica <strong>de</strong> Software da TOTVS – BH ese há necessida<strong>de</strong> <strong>de</strong> alteração do mo<strong>de</strong>lo aplicado atualmente.1.3. Definição do ProblemaAtualmente a Fábrica <strong>de</strong> Software da TOTVS – BH dispõe <strong>de</strong> <strong>um</strong>ametodologia <strong>para</strong> <strong>estimar</strong> o <strong>esforço</strong> <strong>de</strong> software nos projetos <strong>de</strong> customização,implantada em Janeiro <strong>de</strong> 2004, quando a empresa ainda era RM Sistemas 1 .Após aquisição da RM Sistemas pela TOTVS, houve diversas mudançasculturais e estratégicas da empresa, como o a<strong>um</strong>ento do investimento na área <strong>de</strong>serviços da empresa e <strong>um</strong> crescimento significativo da <strong>de</strong>manda <strong>de</strong> projetos <strong>de</strong>customização, o que acarretou a necessida<strong>de</strong> <strong>de</strong> reavaliar vários <strong>processo</strong>s do<strong>de</strong>partamento.Diante <strong>de</strong>sse contexto surgiu <strong>um</strong> problema em relação à confiabilida<strong>de</strong> do<strong>processo</strong> <strong>de</strong> estimativa <strong>de</strong> <strong>esforço</strong> dos projetos <strong>de</strong> customização, que por ser feito<strong>de</strong> forma empírica, po<strong>de</strong> não ser o mais a<strong>de</strong>quado <strong>para</strong> que o <strong>de</strong>partamento consigadar vazão à elevada <strong>de</strong>manda, <strong>de</strong> forma eficiente, <strong>de</strong>ntro do prazo, custo equalida<strong>de</strong> esperados pelos clientes e pela própria empresa._________________1 A empresa RM Sistemas foi incorporada ao Grupo TOTVS S.A. em abril <strong>de</strong> 2006.


121.4. ContribuiçõesEspera-se que este trabalho contribua inicialmente com as equipes <strong>de</strong><strong>de</strong>senvolvimento da fábrica <strong>de</strong> software da TOTVS, no sentido <strong>de</strong> mostrar asvantagens e <strong>de</strong>svantagens da utilização <strong>de</strong> <strong>um</strong> <strong>processo</strong> <strong>empírico</strong> <strong>para</strong> realizarestimativas, e apresentar o seu nível <strong>de</strong> eficiência, quando com<strong>para</strong>do a <strong>um</strong><strong>processo</strong> formal <strong>de</strong> análise por pontos <strong>de</strong> função. Procurar-se-á estabelecer cenáriospróximos da realida<strong>de</strong> dos projetos <strong>de</strong> customização, <strong>de</strong> forma que os resultadosobtidos neste trabalho possam ser avaliados pelos lí<strong>de</strong>res do <strong>de</strong>partamento.Este trabalho também esten<strong>de</strong> a outras empresas, po<strong>de</strong>ndo subsidiar<strong>de</strong>cisões nas organizações que enfrentam dificulda<strong>de</strong>s em <strong>estimar</strong> o tamanho <strong>de</strong>seus projetos nas fases iniciais, e que não possuem metodologia ou não sabem qualseria a melhor técnica a ser aplicada a cada projeto.1.5. Organização da MonografiaEste trabalho será dividido nas seguintes partes:1. Revisão Bibliográfica - Neste tópico é apresentado <strong>um</strong> levantamentobibliográfico do <strong>processo</strong> <strong>de</strong> estimativas proposto pelo CMMI, e autilização pelo mercado da técnica <strong>de</strong> métrica <strong>de</strong> software por pontos<strong>de</strong> função;2. Fundamentação Teórica – Este tópico <strong>de</strong>screve a técnica <strong>de</strong> análisepor pontos <strong>de</strong> função, que será utilizada na aplicação prática <strong>de</strong>stamonografia;3. Experimentos e resultados – Neste tópico é apresentado o <strong>processo</strong><strong>empírico</strong> <strong>de</strong> métricas adotado pela Fábrica <strong>de</strong> Software da TOTVS.Posteriormente apresenta-se <strong>um</strong>a com<strong>para</strong>ção do <strong>processo</strong> <strong>empírico</strong>com a técnica <strong>de</strong> pontos <strong>de</strong> função em <strong>um</strong> projeto real da fábrica <strong>de</strong>software, mostrando os resultados obtidos;4. Consi<strong>de</strong>rações Finais e Conclusão – O fechamento <strong>de</strong>sta monografiadá-se pela conclusão extraída dos experimentos feitos e dos resultadosobtidos. Espera-se ao final <strong>de</strong>ste trabalho obter <strong>um</strong>a conclusão sobre a


13com<strong>para</strong>ção entre <strong>um</strong> <strong>processo</strong> <strong>empírico</strong> e <strong>um</strong> <strong>processo</strong> formal <strong>de</strong>estimativa <strong>de</strong> software.


142. REVISÃO BIBLIOGRÁFICA2.1. Gerenciamento <strong>de</strong> ProjetosSegundo o Project Management Institute (PMI), <strong>um</strong> projeto é <strong>um</strong> <strong>esforço</strong>temporário utilizado <strong>para</strong> criar <strong>um</strong> produto, serviço ou resultado exclusivo. Ogerenciamento <strong>de</strong> projetos é a aplicação <strong>de</strong> conhecimento, habilida<strong>de</strong>s, ferramentase técnicas às ativida<strong>de</strong>s do projeto com o objetivo <strong>de</strong> aten<strong>de</strong>r aos seus requisitos. Érealizado através da aplicação <strong>de</strong> forma integrada dos seguintes <strong>processo</strong>s <strong>de</strong>gerenciamento <strong>de</strong> projetos: iniciação, planejamento, execução, monitoramento econtrole, e encerramento (PMI, 2004).Segundo Hazan (2006), a partir do planejamento do projeto <strong>de</strong> software épossível ter <strong>um</strong>a visão geral dos requisitos que <strong>de</strong>finem o escopo do produto, com oobjetivo <strong>de</strong> estabelecer e manter planos que <strong>de</strong>finam as ativida<strong>de</strong>s a seremrealizadas durante o projeto. Uma das principais ativida<strong>de</strong>s durante a fase <strong>de</strong>planejamento do projeto é elaborar estimativas, pois fornecerão métricas que<strong>de</strong>verão aten<strong>de</strong>r às necessida<strong>de</strong>s <strong>de</strong> comunicação e informação do projeto.Baseado nessas métricas, o gerente do projeto será capaz <strong>de</strong> acompanhar o projetoao longo do seu ciclo <strong>de</strong> vida, e i<strong>de</strong>ntificar eventuais problemas <strong>de</strong> forma ágil,direcionando <strong>esforço</strong>s <strong>para</strong> solucioná-los. A análise baseada nas métricas permiteque as principais variáveis do projeto sejam monitoradas, tais como cronograma,custos, qualida<strong>de</strong>, riscos e escopo (VAZQUEZ, SIMÕES, ALBERT, 2008).As estimativas <strong>de</strong> tamanho são o primeiro tipo <strong>de</strong> análise quantitativaefetuada no projeto <strong>de</strong> software e é o <strong>processo</strong> necessário <strong>para</strong> calcular o número<strong>de</strong> períodos do trabalho que serão necessários <strong>para</strong> finalizar as ativida<strong>de</strong>s do projeto(PMI, 2004).Segundo Boehm (2000, apud HAZAN, 2006), <strong>um</strong> dos principais riscos <strong>de</strong> <strong>um</strong>projeto é a falta <strong>de</strong> credibilida<strong>de</strong> nas estimativas pelas equipes <strong>de</strong> <strong>de</strong>senvolvimento.Isto ocorre quando as estimativas <strong>de</strong> tamanho são imprecisas, ou seja, quando osprojetos são subestimados ou superestimados.Em muitos casos, as estimativas ina<strong>de</strong>quadas <strong>de</strong> tamanho <strong>de</strong> softwarepo<strong>de</strong>m levar ao estabelecimento <strong>de</strong> objetivos difíceis <strong>de</strong> se alcançar, acarretando emprazos não c<strong>um</strong>pridos, custos excessivos com horas extras e má qualida<strong>de</strong> do


15software, constituindo <strong>um</strong> dos principais fatores causadores do cancelamento <strong>de</strong>projetos (HAZAN, 2006). Para tornar a ativida<strong>de</strong> <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> projetos <strong>de</strong>software mais previsíveis, existem mo<strong>de</strong>los <strong>para</strong> medir e melhorar os <strong>processo</strong>s daorganização, como por exemplo o CMMI - Capability Maturity Mo<strong>de</strong>l Integration.2.2. O mo<strong>de</strong>lo CMMISegundo Vazquez, Simões e Albert (2008), o mo<strong>de</strong>lo CMMI é <strong>um</strong> dosmo<strong>de</strong>los <strong>de</strong> maturida<strong>de</strong> mais difundidos no mundo, tendo sido originado a partir domo<strong>de</strong>lo CMM, <strong>de</strong>senvolvido durante a década <strong>de</strong> 80 pelo SEI (Software EngineeringInstitute). Este mo<strong>de</strong>lo é dividido em 5 níveis <strong>de</strong> maturida<strong>de</strong> (Inicial, Gerenciado,Definido, Gerenciado Quantitativamente e Otimizado), on<strong>de</strong> cada nível possui <strong>um</strong>conjunto pré-<strong>de</strong>finido <strong>de</strong> áreas <strong>de</strong> <strong>processo</strong>s (SEI, 2002).2.2.1. O <strong>processo</strong> CMMI <strong>para</strong> o estabelecimento <strong>de</strong> EstimativasO <strong>processo</strong> “Estabelecer Estimativas” compõe <strong>um</strong>a das principais ativida<strong>de</strong>sda área <strong>de</strong> planejamento do projeto <strong>de</strong> software do nível 2 no mo<strong>de</strong>lo CMMI(SEI,2002).É importante ressaltar que o CMMI aborda as principais estimativas que<strong>de</strong>vem ser consi<strong>de</strong>radas no <strong>processo</strong> <strong>de</strong> planejamento <strong>de</strong> projetos, porém ele não<strong>de</strong>fine e não <strong>de</strong>screve como implantar <strong>um</strong> <strong>processo</strong> <strong>de</strong> estimativa.De acordo com o CMMI, este <strong>processo</strong> abrange, entre outros, os seguintessub-<strong>processo</strong>s:2.2.1.1. Estabelecer estimativas <strong>de</strong> atributos <strong>de</strong> produtos <strong>de</strong> trabalho e tarefasEste <strong>processo</strong> aborda a estimativa do tamanho, principal entrada <strong>de</strong> muitosmo<strong>de</strong>los utilizados <strong>para</strong> <strong>estimar</strong> o <strong>esforço</strong>, custo e cronograma do projeto, emboraentradas como conectivida<strong>de</strong>, complexida<strong>de</strong> e estrutura também po<strong>de</strong>m servir <strong>de</strong>base <strong>para</strong> realizar tais estimativas (SEI, 2002). De acordo com o CMMI, <strong>para</strong> cada


16atributo <strong>de</strong> tamanho <strong>de</strong>ve ser atribuído <strong>um</strong> nível relativo <strong>de</strong> dificulda<strong>de</strong> oucomplexida<strong>de</strong>.As sub-práticas do CMMI que compõem o <strong>processo</strong> <strong>para</strong> estabelecerestimativas <strong>de</strong> atributos <strong>de</strong> produtos <strong>de</strong> trabalho e tarefas são as seguintes:a. Determinar a abordagem técnica <strong>para</strong> o projeto, ou seja, esta sub-práticaaborda os requisitos não funcionais do produto e inclui as <strong>de</strong>cisõestomadas em relação às características <strong>de</strong> arquitetura do sistema,tecnologia que será utilizada e abrangência esperada das funcionalida<strong>de</strong>sdos produtos finais, como segurança, confiabilida<strong>de</strong> e questõesergonômicas (SEI, 2002);b. Usar métodos apropriados <strong>para</strong> <strong>de</strong>terminar os atributos <strong>de</strong> produtos <strong>de</strong>trabalho e tarefas que serão utilizados <strong>para</strong> <strong>estimar</strong> os requisitos <strong>de</strong>recursos, ou seja, a metodologia <strong>para</strong> <strong>de</strong>terminar o tamanho e acomplexida<strong>de</strong> <strong>de</strong>ve ser baseada em mo<strong>de</strong>los válidos ou dados históricos,e <strong>de</strong>ve evoluir conforme a<strong>um</strong>enta o entendimento do relacionamento dascaracterísticas do produto com seus atributos. Os métodos sugeridos peloCMMI <strong>para</strong> <strong>estimar</strong> o tamanho dos requisitos incluem os métodos <strong>de</strong>contagem <strong>de</strong> Pontos <strong>de</strong> função <strong>para</strong> software e contagem <strong>de</strong> Pontos porCaso <strong>de</strong> Uso (SEI, 2002);c. Estimar os atributos dos produtos <strong>de</strong> trabalho e tarefas;d. Estimar, conforme apropriado, o trabalho, maquinário, materiais e métodosque serão exigidos pelo projeto.Os principais artefatos que compõem este sub-<strong>processo</strong> são: abordagemtécnica, tamanho e complexida<strong>de</strong> das tarefas e produtos <strong>de</strong> trabalho, mo<strong>de</strong>los <strong>de</strong>estimativas e estimativas <strong>de</strong> atributos.2.2.1.2. Determinar estimativas <strong>de</strong> Esforço e CustoDe acordo com o mo<strong>de</strong>lo CMMI, as estimativas <strong>de</strong> <strong>esforço</strong> e custo <strong>de</strong>vem sergeradas baseando-se nos mo<strong>de</strong>los e dados históricos aplicados ao tamanho eoutros parâmetros <strong>de</strong> planejamento. Desta forma a estimativa <strong>de</strong> <strong>esforço</strong> e custo


17po<strong>de</strong> ser obtida a partir <strong>de</strong> dados históricos do <strong>esforço</strong> e custo <strong>de</strong>spendido emprojetos anteriores <strong>de</strong> características semelhantes, juntamente com o tamanhodimensionado nos respectivos projetos.Po<strong>de</strong> haver casos que os dados históricos não se aplicam, quando os<strong>esforço</strong>s a serem estimados são consi<strong>de</strong>rados “sem prece<strong>de</strong>ntes”, ou seja, se <strong>um</strong>produto ou tipo <strong>de</strong> tarefa semelhante ao que será estimado nunca foi construídoanteriormente (SEI, 2002). Neste caso os riscos <strong>de</strong> erros nas estimativas a<strong>um</strong>entame exigem <strong>um</strong> <strong>esforço</strong> maior <strong>para</strong> <strong>de</strong>senvolver novos critérios <strong>de</strong> estimativas <strong>para</strong> anova característica <strong>de</strong>sse produto ou tarefa.As sub-práticas do CMMI que compõem o <strong>processo</strong> <strong>para</strong> <strong>de</strong>terminar asestimativas <strong>de</strong> <strong>esforço</strong> e custo dos projetos são as seguintes:a. Coletar mo<strong>de</strong>los ou dados históricos que serão utilizados <strong>para</strong> transformaros atributos dos produtos <strong>de</strong> trabalho e tarefas em estimativas <strong>de</strong> horas <strong>de</strong>trabalho e custo, cujos dados históricos incluem os dados <strong>de</strong> custo,<strong>esforço</strong> e cronograma <strong>de</strong> projetos executados anteriormente, além <strong>de</strong>dados apropriados <strong>de</strong> escala <strong>para</strong> equilibrar as diferenças <strong>de</strong> tamanho ecomplexida<strong>de</strong> (SEI, 2002).b. Incluir necessida<strong>de</strong>s <strong>de</strong> infra-estrutura <strong>de</strong> suporte quando estiverestimando o <strong>esforço</strong> e o custo, on<strong>de</strong> na engenharia <strong>de</strong> software, <strong>de</strong>vemser i<strong>de</strong>ntificados os recursos computacionais críticos no ambiente servidor,ambiente <strong>de</strong> testes ou no ambiente <strong>de</strong> produção do projeto, e basear asestimativas <strong>de</strong> recursos computacionais nos requisitos alocados.Exemplos <strong>de</strong> recursos computacionais incluem: memória, processador,espaço em disco, periféricos, capacida<strong>de</strong> da re<strong>de</strong> e do banco <strong>de</strong> dados(SEI, 2002).c. Estimar o <strong>esforço</strong> e o custo utilizando mo<strong>de</strong>los e/ou dados históricos, cujasprincipais entradas <strong>para</strong> realizar estimativas incluem, <strong>de</strong>ntre outras: riscos,competências críticas e papéis necessários <strong>para</strong> executar o trabalho,requisitos <strong>de</strong> produtos, abordagem técnica, nível <strong>de</strong> habilitação <strong>de</strong>gerentes e pessoal <strong>para</strong> executar o trabalho, conhecimento, habilida<strong>de</strong>s etreinamento, viagens, etc (SEI, 2002).


182.3. Estimativa <strong>de</strong> Tamanho <strong>de</strong> Software através da Análise <strong>de</strong> Pontos <strong>de</strong>FunçãoAtualmente existem várias técnicas <strong>para</strong> estimativa <strong>de</strong> tamanho<strong>de</strong>senvolvidas com base nas funcionalida<strong>de</strong>s do software, tais como: Mark II,COSMIC-FFP, NESMA, Análise <strong>de</strong> Pontos <strong>de</strong> Caso <strong>de</strong> Uso e Análise <strong>de</strong> Pontos <strong>de</strong>Função, sendo a última a mais aceita e utilizada pelo mercado <strong>de</strong> software(VAZQUEZ, SIMÕES, ALBERT, 2008).A Análise <strong>de</strong> Pontos <strong>de</strong> Função (APF) é a técnica que me<strong>de</strong> asfuncionalida<strong>de</strong>s fornecidas por <strong>um</strong> software sob o ponto <strong>de</strong> vista do usuário. Surgiucomo <strong>um</strong>a alternativa às métricas baseadas em linhas <strong>de</strong> código e foi introduzida nadécada <strong>de</strong> 70, por Alan Albrecht, na época funcionário da IBM (VAZQUEZ, SIMÕES,ALBERT, 2008).A contagem dos pontos <strong>de</strong> função é regulamentada pelo InternationalFunction Point Users Group (IFPUG), entida<strong>de</strong> sem fins lucrativos, sediada nosEstados Unidos e composta por pessoas e empresas <strong>de</strong> diversos países, cujométodo foi oficializado através do padrão internacional ISO/IEC 20926 <strong>de</strong> 2002(VAZQUEZ, SIMÕES, ALBERT, 2008).Segundo o Brazilian Function Point Users Group (BFPUG), representaçãobrasileira oficial do IFPUG, ponto <strong>de</strong> função é <strong>um</strong>a métrica funcional <strong>de</strong> tamanho <strong>de</strong>software, baseada em <strong>um</strong>a <strong>avaliação</strong> padronizada dos requisitos lógicos fornecidosao usuário. Uma métrica funcional <strong>de</strong> tamanho é <strong>um</strong>a medida externa, pois me<strong>de</strong>somente aquilo que é percebido pelos usuários do produto <strong>de</strong> software,in<strong>de</strong>pen<strong>de</strong>ntemente da forma com que os requisitos serão implementados(tecnologia utilizada, experiência da equipe, etc) (BFPUG).No Brasil a técnica <strong>de</strong> análise <strong>de</strong> pontos <strong>de</strong> função começou a sersignificativamente utilizada no início da década <strong>de</strong> 90, porém o interesse do mercadoconsolidou-se quando passou a ser utilizada em gran<strong>de</strong>s contratos públicos <strong>de</strong><strong>de</strong>senvolvimento <strong>de</strong> sistemas (VAZQUEZ, SIMÕES, ALBERT, 2008).


193. FUNDAMENTAÇÃO TEÓRICA3.1. IntroduçãoSegundo Vazquez, Simões e Albert (2008), o <strong>processo</strong> <strong>de</strong> estimativa tem opropósito inicial <strong>de</strong> fornecer informações que beneficiam o planejamento e controledos projetos. Este <strong>processo</strong> envolve, basicamente, as seguintes ativida<strong>de</strong>s:• Estimar o tamanho do produto a ser gerado;• Estimar o <strong>esforço</strong> empregado na execução do projeto;• Estimar a duração do projeto;• Estimar o custo do projeto.Para obter tais informações é necessário primeiramente escolher a unida<strong>de</strong>que será utilizada <strong>para</strong> medir o tamanho do produto. Fazendo <strong>um</strong>a analogia comprojetos da construção civil, a unida<strong>de</strong> <strong>de</strong> medida <strong>de</strong> tamanho padrão <strong>para</strong> essestipos <strong>de</strong> projeto é o metro quadrado (m²), que serve como unida<strong>de</strong> base <strong>para</strong>calcular custos, enquanto que na engenharia <strong>de</strong> software, entre outras unida<strong>de</strong>s <strong>de</strong>medida <strong>de</strong> tamanho do software observa-se que o ponto <strong>de</strong> função tem sido aunida<strong>de</strong> mais utilizada pelo mercado (VAZQUEZ, SIMÕES, ALBERT, 2008).Este capítulo <strong>de</strong>screve <strong>um</strong>a visão geral do <strong>processo</strong> <strong>de</strong> contagem <strong>de</strong> pontos<strong>de</strong> função, abordando a <strong>de</strong>finição dos termos básicos <strong>para</strong> aplicação da técnica, poisa teoria contida neste capítulo será aplicada no estudo <strong>de</strong> caso <strong>de</strong>scrito no capítuloseguinte. Este capítulo também apresenta a relação do ponto <strong>de</strong> função comomedida básica <strong>para</strong> cálculo do <strong>esforço</strong> do projeto <strong>de</strong> software.3.2. Análise <strong>de</strong> Pontos <strong>de</strong> FunçãoSegundo Vazquez, Simões e Albert (2008), a análise <strong>de</strong> pontos <strong>de</strong> função é<strong>um</strong>a técnica que me<strong>de</strong> o tamanho funcional do software, sob o ponto <strong>de</strong> vista dousuário, e que possui os seguintes objetivos primários:


20• Medir as funcionalida<strong>de</strong>s do software solicitadas e recebidas pelo usuário;• Medir o <strong>de</strong>senvolvimento e a manutenção do software, in<strong>de</strong>pen<strong>de</strong>nte datecnologia utilizada durante a implementação.3.2.1. BenefíciosVazquez, Simões e Albert (2008) <strong>de</strong>stacam diversos benefícios da aplicaçãoda análise <strong>de</strong> pontos <strong>de</strong> função nas empresas:• É <strong>um</strong>a ferramenta que <strong>de</strong>termina o tamanho <strong>de</strong> <strong>um</strong> software adquirido por<strong>um</strong>a empresa através da contagem <strong>de</strong> todas as funcionalida<strong>de</strong>s incluídasno sistema;• Apóia à análise <strong>de</strong> produtivida<strong>de</strong> e qualida<strong>de</strong>, seja diretamente ou <strong>de</strong>forma conjunta com outras métricas <strong>de</strong> <strong>esforço</strong>, <strong>de</strong>feitos e custo;• Apóia o gerenciamento do escopo <strong>de</strong> projetos, <strong>um</strong>a vez que po<strong>de</strong>m serfeitas diversas medições por pontos <strong>de</strong> função ao longo do ciclo <strong>de</strong> vida doprojeto, possibilitando <strong>de</strong>terminar se os requisitos tiveram variação <strong>de</strong>tamanho e se tal variação correspon<strong>de</strong> à inclusão <strong>de</strong> novos requisitos oualteração <strong>de</strong> requisitos já existentes;• Auxilia o gerenciamento <strong>de</strong> requisitos, pois reforça a clareza e nível <strong>de</strong><strong>de</strong>talhamento dos requisitos especificados;• Serve como base <strong>para</strong> <strong>estimar</strong> custo e recursos em projetos <strong>de</strong> software,<strong>um</strong>a vez que a estimativa <strong>de</strong> pontos <strong>de</strong> função no início do ciclo <strong>de</strong> vida doprojeto po<strong>de</strong> ser utilizada como entrada <strong>para</strong> outros mo<strong>de</strong>los <strong>de</strong> <strong>esforço</strong>,custo e prazo.• Po<strong>de</strong> auxiliar na negociação <strong>de</strong> contratos, pois permite o estabelecimento<strong>de</strong> preço <strong>de</strong> contratos por cada unida<strong>de</strong> <strong>de</strong> ponto <strong>de</strong> função, já que é <strong>um</strong>amedida que representa <strong>um</strong> fator tangível <strong>para</strong> o cliente.3.2.2. Processo <strong>de</strong> contagem <strong>de</strong> pontos <strong>de</strong> função


21O <strong>processo</strong> <strong>para</strong> contagem <strong>de</strong> pontos <strong>de</strong> função abrange 7 etapasrelacionadas entre si, como mostra o diagrama da Figura 1:Figura 1 – Processos da contagem <strong>de</strong> pontos <strong>de</strong> funçãoFonte: Vazquez, Simões e Albert, 2008As seções seguintes <strong>de</strong>screvem cada etapa do <strong>processo</strong> <strong>de</strong> contagem <strong>de</strong>pontos <strong>de</strong> função.3.2.2.1. Determinar o tipo <strong>de</strong> contagemNeste <strong>processo</strong>, os responsáveis pela medição <strong>de</strong>terminam o tipo dacontagem que será utilizada <strong>para</strong> medir o software, po<strong>de</strong>ndo ser <strong>um</strong> dos 3 tipos<strong>de</strong>scritos a seguir (VAZQUEZ, SIMÕES, ALBERT, 2008):• Contagem <strong>de</strong> <strong>um</strong> projeto <strong>de</strong> <strong>de</strong>senvolvimento: Este tipo <strong>de</strong> contagemme<strong>de</strong> as funcionalida<strong>de</strong>s fornecidas aos usuários <strong>de</strong> acordo com osrequisitos levantados no início do projeto do software. Ressalta-se que no


22escopo <strong>de</strong>ste tipo <strong>de</strong> contagem <strong>de</strong>vem ser incluídas as funções <strong>de</strong>migração <strong>de</strong> dados do sistema que será substituído <strong>para</strong> o novo sistema,caso haja necessida<strong>de</strong> <strong>de</strong>sta migração.• Contagem <strong>de</strong> <strong>um</strong> projeto <strong>de</strong> melhoria: Este tipo <strong>de</strong> contagem me<strong>de</strong> asfuncionalida<strong>de</strong>s acrescentadas, modificadas ou excluídas <strong>de</strong> <strong>um</strong> projeto <strong>de</strong>melhoria <strong>para</strong> <strong>um</strong> sistema existente.• Contagem <strong>de</strong> <strong>um</strong>a aplicação instalada: Também chamado <strong>de</strong> pontos <strong>de</strong>função instalados ou baseline, me<strong>de</strong> as funcionalida<strong>de</strong>s <strong>de</strong> <strong>um</strong> sistemainstalado, após o término do projeto que originou ou modificou o respectivosistema.3.2.2.2. I<strong>de</strong>ntificar o escopo da contagem e fronteira da aplicaçãoSegundo Vaquez (2008), a fronteira da aplicação correspon<strong>de</strong> à <strong>de</strong>finição dolimite do software que será medido com o seu mundo exterior (usuários e outrasaplicações), em outras palavras, <strong>de</strong>limita on<strong>de</strong> <strong>um</strong>a aplicação termina e outracomeça. A i<strong>de</strong>ntificação da fronteira da aplicação <strong>de</strong>ve ser feita com base no ponto<strong>de</strong> vista do usuário e na distinção das funcionalida<strong>de</strong>s conforme estabelecido nos<strong>processo</strong>s do negócio, e não em consi<strong>de</strong>rações tecnológicas.O escopo <strong>de</strong>fine as funcionalida<strong>de</strong>s que serão incluídas na contagem, e po<strong>de</strong>abranger <strong>um</strong> ou mais sistemas ou apenas parte <strong>de</strong> <strong>um</strong> sistema. Po<strong>de</strong> incluir todas asfuncionalida<strong>de</strong>s disponíveis, todas as funcionalida<strong>de</strong>s que serão utilizadas pelousuário ou apenas alg<strong>um</strong>as funcionalida<strong>de</strong>s específicas, sendo esta mais com<strong>um</strong>em projetos <strong>de</strong> melhoria (VAZQUEZ, SIMÕES, ALBERT, 2008).3.2.2.3. Contar funções do tipo dadosDe acordo com Vazquez, Simões e Albert (2008), as funções do tipo dadocorrespon<strong>de</strong>m às funcionalida<strong>de</strong>s fornecidas ao usuário que aten<strong>de</strong>m suasnecessida<strong>de</strong>s <strong>de</strong> dados internos e externos à aplicação. Elas po<strong>de</strong>m serclassificadas em Arquivo Lógico Interno e Arquivo <strong>de</strong> Interface Externa, e são<strong>de</strong>finidas da seguinte forma:


23• Arquivo Lógico Interno (ALI): grupo <strong>de</strong> dados ou informações <strong>de</strong> controlelogicamente relacionado, reconhecido pelo usuário e mantido <strong>de</strong>ntro dafronteira da aplicação que será medida;• Arquivo <strong>de</strong> Interface Externa (AIE): grupo <strong>de</strong> dados ou informações <strong>de</strong>controle logicamente relacionado, reconhecido pelo usuário e mantido forada fronteira da aplicação que será medida.Para <strong>de</strong>terminar a complexida<strong>de</strong> <strong>de</strong> cada arquivo lógico interno e arquivo <strong>de</strong>interface externa, primeiramente <strong>de</strong>vem ser calculadas as quantida<strong>de</strong>s dos tipos <strong>de</strong>dados e tipos <strong>de</strong> registros <strong>de</strong> cada arquivo.Tipo <strong>de</strong> dado (TD) é <strong>um</strong> campo único e não repetido, reconhecido pelousuário, enquanto que tipo <strong>de</strong> registro (TR) é <strong>um</strong> subconjunto <strong>de</strong> dados, reconhecidopelo usuário, pertencente a <strong>um</strong> ALI ou AIE.Regras <strong>de</strong> contagem <strong>de</strong> Tipos <strong>de</strong> Dados:• Contar <strong>um</strong> tipo <strong>de</strong> dado <strong>para</strong> cada campo único reconhecido pelo usuárioe não repetido, mantido por <strong>um</strong> ALI ou AIE. Um campo reconhecido pelousuário, por exemplo “Data <strong>de</strong> Nascimento”, é consi<strong>de</strong>rado apenas <strong>um</strong> TD,mesmo quando é armazenada logicamente em múltiplos campos (Dia,Mês e Ano).• Quando existe integração entre duas ou mais aplicações, que atualizam ereferenciam o mesmo ALI/AIE, <strong>de</strong>ve ser contado somente os camposutilizados pela aplicação em análise.• Contar <strong>um</strong> tipo <strong>de</strong> dado <strong>para</strong> cada campo solicitado pelo usuário querelacione com outro arquivo lógico (ALI ou AIE). Exemplo: chavesestrangeiras <strong>de</strong> entida<strong>de</strong>s relacionais.Regras <strong>de</strong> contagem <strong>de</strong> Tipos <strong>de</strong> Registros:• Contar <strong>um</strong> tipo <strong>de</strong> registro <strong>para</strong> cada subgrupo <strong>de</strong> <strong>um</strong> ALI ou AIE;• Caso não haja nenh<strong>um</strong> subgrupo, o próprio ALI ou AIE <strong>de</strong>verá ser contadocomo <strong>um</strong> TR.


24Após obter as contagens dos tipos <strong>de</strong> dados e tipos <strong>de</strong> registros, aclassificação com relação à complexida<strong>de</strong> ficará <strong>de</strong> acordo com a Tabela 1:Número <strong>de</strong>Tipos <strong>de</strong>RegistrosNúmero <strong>de</strong> Tipos <strong>de</strong> DadosDe 1 a 19 De 20 a 50 51 ou maisApenas 1 Baixa Baixa MédiaDe 2 a 5 Baixa Média Complexa6 ou mais Média Complexa ComplexaTabela 1 – Complexida<strong>de</strong> funcional dos ALI e AIEFonte: Vazquez, Simões e Albert, 2008Após a <strong>de</strong>terminação da complexida<strong>de</strong> <strong>de</strong> cada função do tipo dado, onúmero <strong>de</strong> pontos <strong>de</strong> função não ajustados é calculado <strong>de</strong> acordo com relação entreo Tipo da Função e sua complexida<strong>de</strong>.Conforme <strong>de</strong>scrito na Tabela 2 a seguir, <strong>um</strong> Arquivo Lógico Interno irácontribuir com 7, 10 ou 15 Pontos <strong>de</strong> Função caso seja <strong>de</strong> complexida<strong>de</strong> baixa,média ou alta, respectivamente. Para <strong>um</strong> Arquivo <strong>de</strong> Interface Externa, o número <strong>de</strong>pontos <strong>de</strong> função será 5, 7 ou 10 respectivamente <strong>para</strong> as complexida<strong>de</strong>s baixa,média ou alta.Tipo <strong>de</strong> Função Baixa Média AltaALI 7 PF 10 PF 15 PFAIE 5 PF 7 PF 10 PFTabela 2 – Contribuição dos pontos <strong>de</strong> função não ajustados das funções do tipo dadoFonte: Vazquez, Simões e Albert, 20083.2.2.4. Contar funções do tipo transaçãoAs funções do tipo transação são as funcionalida<strong>de</strong>s <strong>de</strong> processamento <strong>de</strong>dados da aplicação, fornecidas ao usuário. Elas po<strong>de</strong>m ser classificadas emEntradas Externas, Saídas Externas e Consultas Externas, e são <strong>de</strong>finidas daseguinte maneira, segundo Vazquez, Simões e Albert (2008):• Entrada Externa (EE): É <strong>um</strong> <strong>processo</strong> elementar, ou seja, a menor unida<strong>de</strong><strong>de</strong> ativida<strong>de</strong> significativa <strong>para</strong> o usuário, que processa dados ouinformações <strong>de</strong> controle, recebidos <strong>de</strong> fora da fronteira da aplicação, cuja


25principal função é manter <strong>um</strong> ou mais ALIs ou inclusive modificar ocomportamento do sistema. Exemplo: Janela que permite adicionar,excluir e alterar registros em ALI representam três entradas externas.• Saída Externa (SE): Processo elementar que envia dados ou informações<strong>de</strong> controle <strong>para</strong> fora da fronteira da aplicação, cuja função principal éfornecer <strong>um</strong>a informação ao usuário através da lógica <strong>de</strong> processamento,seja por meio <strong>de</strong> fórmula matemática ou cálculo. Esse <strong>processo</strong> po<strong>de</strong>gerar dados <strong>de</strong>rivados ou manter <strong>um</strong> ou mais ALI. Exemplos <strong>de</strong> SaídasExternas: Relatórios com totalização <strong>de</strong> dados, consultas com cálculos ouapresentação <strong>de</strong> dados <strong>de</strong>rivados, arquivo <strong>de</strong> remessa gerado <strong>para</strong> outraaplicação, informações em formato gráfico, telas <strong>de</strong> login com criptografia.• Consulta Externa (CE): Assim como a Saída Externa, também é <strong>um</strong><strong>processo</strong> elementar que envia dados ou informações <strong>de</strong> controle <strong>para</strong> forada fronteira da aplicação, por meio <strong>de</strong> <strong>um</strong>a simples recuperação <strong>de</strong> dados<strong>de</strong> ALIs ou AIEs. A lógica <strong>de</strong> processamento não <strong>de</strong>ve possuir fórmulasmatemáticas ou cálculos e nenh<strong>um</strong> ALI é mantido durante oprocessamento. Exemplo: Informações em formato gráfico sem que hajacálculos, drop-downs cujos dados sejam recuperados <strong>de</strong> ALI, telas <strong>de</strong>login sem criptografia, menus gerados dinamicamente <strong>de</strong> acordo com<strong>para</strong>metrização da aplicação.Para <strong>de</strong>terminar a complexida<strong>de</strong> funcional <strong>de</strong> cada Entrada Externa, SaídaExterna e Consulta Externa, primeiramente <strong>de</strong>vem ser calculadas as quantida<strong>de</strong>sdos Arquivos Referenciados (AR) e Tipos <strong>de</strong> Dados (TD) e <strong>de</strong> cada funçãotransacional.Arquivo Referenciado (AR) é <strong>um</strong> Arquivo Lógico Interno mantido pela funçãodo tipo transação ou <strong>um</strong> Arquivo <strong>de</strong> Interface Externa lido por <strong>um</strong>a função do tipotransação.Vazquez, Simões e Albert (2008) <strong>de</strong>finem as seguintes regras <strong>de</strong> contagem<strong>para</strong> Arquivo Referenciado:• Contar <strong>um</strong> arquivo referenciado <strong>para</strong> cada ALI mantido;


26• Contar apenas <strong>um</strong> arquivo referenciado <strong>para</strong> cada ALI que seja tantomantido quanto lido;• Contar <strong>um</strong> arquivo referenciado <strong>para</strong> cada ALI ou AIE lido durante oprocessamento;• Arquivos não classificados como ALI ou AIE não <strong>de</strong>vem ser contados.Para contar os Tipos <strong>de</strong> Dados, que correspon<strong>de</strong>m a cada campo nãorepetido reconhecido pelo usuário nas funções do tipo transação, Vazquez, Simõese Albert (2008) <strong>de</strong>screvem as seguintes regras:• Contar <strong>um</strong> tipo <strong>de</strong> dado <strong>para</strong> cada campo não repetido e reconhecido pelousuário, utilizado na execução <strong>de</strong> <strong>um</strong> <strong>processo</strong>;• Contar apenas <strong>um</strong>a vez <strong>um</strong> campo que tanto entra quanto sai pelafronteira da aplicação;• Não contar <strong>um</strong> campo que seja recuperado <strong>de</strong> <strong>um</strong> ALI ou AIE durante <strong>um</strong><strong>processo</strong> elementar, mas não atravessa a fronteira da aplicação;• Um campo que seja <strong>de</strong>rivado do sistema e armazenado n<strong>um</strong> ALI por meio<strong>de</strong> <strong>um</strong> <strong>processo</strong> elementar também não <strong>de</strong>ve ser contado. Ex:I<strong>de</strong>ntificador <strong>de</strong> <strong>um</strong>a tabela, que não é mostrado ao usuário.• Contar <strong>um</strong> único tipo <strong>de</strong> dado <strong>para</strong> o conjunto <strong>de</strong> mensagens (ex:mensagem <strong>de</strong> erro, confirmação <strong>de</strong> execução, etc) que po<strong>de</strong>m serapresentadas ao usuário após o término do processamento.• Contar <strong>um</strong> tipo <strong>de</strong> dado <strong>para</strong> a capacida<strong>de</strong> <strong>de</strong> selecionar <strong>um</strong>a ação a sertomada, mesmo que haja mais <strong>de</strong> <strong>um</strong>a maneira <strong>de</strong> ativar o mesmo<strong>processo</strong>. Exemplo: Deve ser contado <strong>um</strong> único tipo <strong>de</strong> dado <strong>para</strong> a opção<strong>de</strong> salvar <strong>um</strong> registro n<strong>um</strong>a tela <strong>de</strong> cadastro, mesmo quando este<strong>processo</strong> po<strong>de</strong> ser feito clicando no botão “Salvar” ou utilizando <strong>um</strong>a tecla<strong>de</strong> atalho (CTRL + S).• Não contar literais como tipos <strong>de</strong> dados, como por exemplo títulos <strong>de</strong>relatórios, cabeçalhos <strong>de</strong> colunas, textos <strong>para</strong> i<strong>de</strong>ntificação <strong>de</strong> telas ecampos.


27• Não contar variáveis <strong>de</strong> paginação ou campos automáticos gerados pelosistema, como por exemplo contador <strong>de</strong> registros selecionados pelousuário n<strong>um</strong>a grid.Após obter as contagens dos Arquivos Referenciados e Tipos <strong>de</strong> Dados <strong>para</strong>cada função do tipo <strong>de</strong> transação encontrada na aplicação, a classificação comrelação à complexida<strong>de</strong> ficará <strong>de</strong> acordo com a Tabela 3, <strong>para</strong> as Entradas Externase <strong>de</strong> acordo com a Tabela 4, <strong>para</strong> as Saídas Externas e Consultas Externas:Número <strong>de</strong>ArquivosReferenciadosNúmero <strong>de</strong> Tipos <strong>de</strong> DadosDe 1 a 4 De 5 a 15 16 ou mais0 ou 1 Baixa Baixa Média2 Baixa Média Complexa3 ou mais Média Complexa ComplexaTabela 3 – Tabela <strong>de</strong> Complexida<strong>de</strong> <strong>para</strong> Entradas Externas (EE)Fonte: Vazquez, Simões e Albert, 2008Número <strong>de</strong>ArquivosReferenciadosNúmero <strong>de</strong> Tipos <strong>de</strong> DadosDe 1 a 5 De 6 a 19 20 ou mais0 ou 1 Baixa Baixa Média2 ou 3 Baixa Média Complexa4 ou mais Média Complexa ComplexaTabela 4 – Tabela <strong>de</strong> Complexida<strong>de</strong> <strong>para</strong> Saídas Externas (SE) e Consultas Externas (CE)Fonte: Vazquez, Simões e Albert, 2008O valor do número <strong>de</strong> pontos <strong>de</strong> função é calculado <strong>de</strong> acordo com relaçãoentre o Tipo <strong>de</strong> Função e sua complexida<strong>de</strong>, conforme <strong>de</strong>scrito na Tabela 5:Tipo <strong>de</strong> Função Baixa Média AltaEntrada Externa 3 PF 4 PF 6 PFSaída Externa 4 PF 5 PF 7 PFConsulta Externa 3 PF 4 PF 6 PFTabela 5 – Contribuição dos pontos <strong>de</strong> função não ajustados das funções do tipo transaçãoFonte: Vazquez, Simões e Albert, 20083.2.2.5. Determinar o valor do Fator <strong>de</strong> Ajuste


28O Fator <strong>de</strong> Ajuste correspon<strong>de</strong> a <strong>um</strong>a variável calculada com base em 14características gerais <strong>de</strong> sistema, que influenciam a contagem final dos pontos <strong>de</strong>função (VAZQUEZ, SIMÕES, ALBERT, 2008).Segundo Vazquez, Simões e Albert (2008), quando a técnica foi criada aindanão havia as 14 características gerais do sistema <strong>para</strong> gerar o Fator <strong>de</strong> Ajuste. Eleera <strong>de</strong>terminado <strong>de</strong> forma subjetiva, e po<strong>de</strong>ria produzir <strong>um</strong>a variação <strong>de</strong> +-25% nospontos <strong>de</strong> função não ajustados. As 14 características gerais foram introduzidas em1984, e o Fator <strong>de</strong> Ajuste po<strong>de</strong>ria produzir <strong>um</strong>a variação <strong>de</strong> +-35%.Cada característica possui <strong>um</strong> nível <strong>de</strong> influência sobre a aplicação que po<strong>de</strong>variar <strong>de</strong> 0 a 5 a Tabela 6, apresentada a seguir mostra os níveis <strong>de</strong> influência quepo<strong>de</strong>m ser aplicados a cada característica:Nível <strong>de</strong> Influência Descrição0 Nenh<strong>um</strong>a influência1 Pouca influência2 Influência mo<strong>de</strong>rada3 Influência Média4 Influência Significativa5 Gran<strong>de</strong> InfluênciaTabela 6 – Tabela <strong>de</strong> níveis <strong>de</strong> influência das características gerais do sistemaFonte: Vazquez, Simões e Albert, 2008As 14 características gerais do sistema são <strong>de</strong>scritas a seguir:• Comunicação <strong>de</strong> Dados: Descreve o nível <strong>de</strong> comunicação em que osdados ou informações <strong>de</strong> controle da aplicação são enviados e recebidos.Segundo Vazquez, Simões e Albert (2008), os níveis <strong>de</strong> 0 a 3 sãoclassificados <strong>para</strong> aplicações batch, a<strong>um</strong>entando o nível conforme surgealg<strong>um</strong> tipo <strong>de</strong> entrada ou saída <strong>de</strong> informação remota. Aplicações do tipocliente/servidor normalmente <strong>de</strong>vem ser pontuadas com nível 4 e <strong>para</strong>aplicações 3 camadas ou com mais <strong>de</strong> <strong>um</strong> tipo <strong>de</strong> protocolo <strong>de</strong>comunicação pontuam com nível 5.• Processamento Distribuído: Descreve o nível em que o sistematransfere dados entre seus componentes. Segundo Vazquez, Simões eAlbert (2008), <strong>um</strong> sistema <strong>de</strong> <strong>de</strong>sktop isolado, cuja aplicação e o banco <strong>de</strong>dados executam localmente, <strong>de</strong>verá ser pontuado com nível 0. Umsistema N camadas pontuará com 4 e <strong>um</strong> sistema com componentes


29executando em múltiplos servidores ou processadores, sendo executadosdinamicamente <strong>de</strong> acordo com a disponibilida<strong>de</strong> será pontuado com nível5.• Performance: Descreve o nível cujos fatores <strong>de</strong> tempo <strong>de</strong> resposta e taxa<strong>de</strong> transações influenciam o <strong>de</strong>sempenho da aplicação. Para pontuar onível <strong>de</strong> influência <strong>de</strong>ssa característica, a seguinte questão <strong>de</strong>ve serrespondida, em relação ao grau <strong>de</strong> exigência do usuário: quão rápida<strong>de</strong>verá ser a aplicação e quanto isto influenciará o projeto.• Configuração Altamente Utilizada: Trata-se <strong>de</strong> observações quanto aonível <strong>de</strong> utilização <strong>de</strong> recursos computacionais que serão requeridos <strong>para</strong>a execução do sistema, ou seja, o nível <strong>de</strong>sta característica me<strong>de</strong> o nível<strong>de</strong> infra-estrutura requerida <strong>para</strong> utilização do sistema.• Vol<strong>um</strong>e <strong>de</strong> Transações: Trata o nível em que o alto vol<strong>um</strong>e <strong>de</strong>transações influencia o projeto e quanto o vol<strong>um</strong>e <strong>de</strong> transaçõesprocessadas pela aplicação em <strong>um</strong> <strong>de</strong>terminado intervalo <strong>de</strong> tempo afetao projeto.• Entrada <strong>de</strong> Dados Online: Trata o nível em que são efetuadastransações <strong>de</strong> entradas <strong>de</strong> dados na aplicação. Segundo Vazquez,Simões e Albert (2008), quando o sistema processar mais <strong>de</strong> 30% dastransações em entradas <strong>de</strong> dados online essa característica <strong>de</strong>ve serpontuada com nível 5, o que mostra <strong>um</strong>a <strong>de</strong>fasagem <strong>de</strong>sta característicacom a realida<strong>de</strong> atual, já que <strong>para</strong> as aplicações atuais, a maioria dossistemas pontuará com 5.• Eficiência do Usuário Final: Descreve o nível da aplicação em relação àinfluência <strong>de</strong> fatores h<strong>um</strong>anos e usabilida<strong>de</strong> no <strong>de</strong>senvolvimento dosistema.• Atualização Online: Descreve o nível em que os arquivos lógicos internosdo sistema são atualizados <strong>de</strong> forma online.• Complexida<strong>de</strong> <strong>de</strong> Processamento: Descreve o nível em que oprocessamento lógico ou matemático influencia na execução do sistema.• Reusabilida<strong>de</strong>: Trata o nível em que a aplicação ou parte <strong>de</strong>la e o códigofonte foram projetados, <strong>de</strong>senvolvidos e suportados <strong>para</strong> seremreaproveitados em outras aplicações.


30• Facilida<strong>de</strong> <strong>de</strong> Instalação: Trata o nível em relação ao planejamento <strong>de</strong>implementação <strong>de</strong> ferramentas <strong>de</strong> conversão e instalação da aplicação, ese essas ferramentas foram testadas e fornecidas ao usuário.• Facilida<strong>de</strong> <strong>de</strong> Operação: Esta característica <strong>de</strong>screve em que nível aaplicação aten<strong>de</strong> a alguns aspectos operacionais automáticos, tais comoinicialização, segurança e recuperação, com o objetivo <strong>de</strong> minimizar anecessida<strong>de</strong> <strong>de</strong> intervenções manuais, como montagem <strong>de</strong> fitas emanipulação <strong>de</strong> papel, por exemplo.• Múltiplos Locais: Trata o nível em que o sistema foi especificamenteprojetado, <strong>de</strong>senvolvido e suportado <strong>para</strong> diferentes ambientes <strong>de</strong>hardware e software. Exemplo <strong>de</strong> ambientes <strong>de</strong> software a seremanalisados: Sistemas Operacionais Windows, LINUX, etc. Exemplo <strong>de</strong>ambientes <strong>de</strong> hardware: PC/Penti<strong>um</strong> Intel, Computadores Macintosh, etc.• Facilida<strong>de</strong> <strong>de</strong> Mudanças: Trata o nível em que a aplicação foiespecificamente projetada e <strong>de</strong>senvolvida <strong>para</strong> facilitar futurasmodificações em sua lógica <strong>de</strong> processamento e estrutura <strong>de</strong> dados.Após serem <strong>de</strong>terminados os níveis <strong>de</strong> influência das 14 característicasgerais, o fator <strong>de</strong> ajuste (VFA) é calculado com a seguinte fórmula: VFA = (TDI *0,01) + 0,65, on<strong>de</strong> TDI representa o somatório dos níveis <strong>de</strong> influência dascaracterísticas gerais.3.2.2.6. Determinar a contagem <strong>de</strong> Pontos <strong>de</strong> Função não ajustadosOs Pontos <strong>de</strong> Função não ajustados correspon<strong>de</strong>m às funcionalida<strong>de</strong>s dosistema fornecidas ao usuário, sem levar em consi<strong>de</strong>ração os requisitos nãofuncionais do software.O valor total dos pontos <strong>de</strong> função não ajustados <strong>de</strong> <strong>um</strong>a <strong>de</strong>terminadaaplicação é obtido pela somatória dos pontos <strong>de</strong> função estimados <strong>para</strong> as funçõesdo tipo dado (Arquivos Lógicos Internos e Arquivos <strong>de</strong> Interface Externa) e do tipotransação (Entradas Externas, Saídas Externas e Consultas Externas).


313.2.2.7. Calcular o número <strong>de</strong> Pontos <strong>de</strong> Função ajustadosO cálculo dos Pontos <strong>de</strong> Função ajustados é a última etapa do <strong>processo</strong> <strong>de</strong>contagem <strong>de</strong> Pontos <strong>de</strong> Função.De acordo com o IFPUG, existem três tipos <strong>de</strong> contagem <strong>de</strong> Pontos <strong>de</strong>Função ajustados, que variam <strong>de</strong> acordo com o tipo do projeto: projeto <strong>de</strong><strong>de</strong>senvolvimento, projeto <strong>de</strong> melhoria e aplicação (VAZQUEZ, SIMÕES, ALBERT,2008).No estudo <strong>de</strong> caso <strong>de</strong>ste trabalho a aplicação da técnica <strong>de</strong> estimativa porpontos <strong>de</strong> função será em <strong>um</strong> projeto <strong>de</strong> <strong>de</strong>senvolvimento. A fórmula utilizada <strong>para</strong>calcular os pontos <strong>de</strong> função ajustados (PFA) <strong>para</strong> este tipo <strong>de</strong> projeto é a seguinte:PFA = PFNA * VFA, on<strong>de</strong> PFNA é o número <strong>de</strong> pontos <strong>de</strong> função não ajustados eVFA é o valor do fator <strong>de</strong> ajuste, que é obtido conforme a fórmula <strong>de</strong>scrita no tópico3.2.2.5.3.3. Cálculo do Esforço / Produtivida<strong>de</strong>Um Ponto <strong>de</strong> Função é <strong>um</strong>a unida<strong>de</strong> <strong>de</strong> medida abstrata e relativa que contao número <strong>de</strong> funcionalida<strong>de</strong>s entregues ao usuário (VAZQUEZ, SIMÕES, ALBERT,2008). Assim como a medida em metros quadrados do tamanho <strong>de</strong> <strong>um</strong>a casa nãofornece a velocida<strong>de</strong> ou o tempo necessário <strong>para</strong> sua construção, o tamanho emPontos <strong>de</strong> Função não fornece a produtivida<strong>de</strong> ou o <strong>esforço</strong> necessário <strong>de</strong><strong>de</strong>senvolvimento da aplicação que está sendo medida (DEKKERS, 1999). Por essemotivo, o cálculo do <strong>esforço</strong> do projeto po<strong>de</strong> ser feito a partir <strong>de</strong> <strong>um</strong>a média <strong>de</strong>produtivida<strong>de</strong> da equipe <strong>de</strong> <strong>de</strong>senvolvimento, on<strong>de</strong> a produtivida<strong>de</strong> é o número <strong>de</strong>horas gastas <strong>para</strong> implementar <strong>um</strong> ponto <strong>de</strong> função.Segundo Aguiar (2003), existe <strong>um</strong>a iniciativa por parte <strong>de</strong> alg<strong>um</strong>as empresas<strong>de</strong> tentar utilizar indicadores <strong>de</strong> mercado <strong>para</strong> produtivida<strong>de</strong>, <strong>de</strong> acordo com alinguagem utilizada. Porém antes <strong>de</strong> utilizar qualquer indicador obtido do mercado,<strong>um</strong>a questão que <strong>de</strong>ve ser observada <strong>para</strong> que se tenha certeza <strong>de</strong> que o indicadorestá a<strong>de</strong>quado às características do projeto é verificar a compatibilida<strong>de</strong> dos critériosutilizados na elaboração <strong>de</strong>sses indicadores <strong>de</strong> produtivida<strong>de</strong> com os critérios emetodologia adotados pela empresa (VAZQUEZ, SIMÕES, ALBERT, 2008).


32Uma das maiores organizações que mantém <strong>um</strong> banco <strong>de</strong> dados on<strong>de</strong> épossível obter números relacionados à produtivida<strong>de</strong> com pontos <strong>de</strong> função <strong>para</strong>projetos <strong>de</strong> diversos contextos tecnológicos é a ISBSG (Internacional SoftwareBenchmarking Standards Group) (AGUIAR, 2008). Vazquez, Simões e Albert (2008)afirmam, porém, que existe <strong>um</strong>a gran<strong>de</strong> variação nos valores <strong>de</strong> produtivida<strong>de</strong> <strong>para</strong>projetos com características tecnológicas semelhantes, <strong>de</strong>vido a diversos fatores,tais como utilização <strong>de</strong> diferentes ferramentas e ambientes <strong>de</strong> <strong>de</strong>senvolvimento,ausência <strong>de</strong> metodologia <strong>de</strong> <strong>de</strong>senvolvimento, experiência da equipe, tamanho doprojeto, reutilização <strong>de</strong> código, etc. Diante disso po<strong>de</strong>-se concluir que utilizar o valor<strong>de</strong> produtivida<strong>de</strong> a partir <strong>de</strong> indicadores <strong>de</strong> mercado po<strong>de</strong> ser bastante arriscado naestimativa <strong>de</strong> <strong>esforço</strong> <strong>de</strong> projetos.A maneira mais a<strong>de</strong>quada <strong>de</strong> se obter indicadores <strong>de</strong> produtivida<strong>de</strong> <strong>para</strong>calcular o <strong>esforço</strong> em projetos <strong>de</strong> software com pontos <strong>de</strong> função é apurar esseindicador por meio dos próprios projetos <strong>de</strong>senvolvidos na organização. Para isso éessencial que a organização possua <strong>um</strong>a base histórica dos projetos finalizados, <strong>de</strong>forma que seja possível calcular a produtivida<strong>de</strong> média <strong>para</strong> todos os possíveisambientes <strong>de</strong> <strong>de</strong>senvolvimento, contemplando o nível <strong>de</strong> experiência da equipe,linguagens <strong>de</strong> programação, etc. Essa produtivida<strong>de</strong> média será utilizada comopadrão <strong>para</strong> estimativas <strong>de</strong> <strong>esforço</strong> e <strong>de</strong>verá ser periodicamente recalculada,conforme novos projetos forem concluídos (VAZQUEZ, SIMÕES, ALBERT, 2008).


334. EXPERIMENTOS E RESULTADOS4.1. Estudo <strong>de</strong> CasoEste capítulo tem por objetivo <strong>de</strong>monstrar o <strong>processo</strong> <strong>de</strong> estimativa <strong>de</strong> <strong>esforço</strong>utilizado atualmente pela Fábrica <strong>de</strong> Software da empresa TOTVS, unida<strong>de</strong> BeloHorizonte, apresentando <strong>de</strong> forma sucinta sua metodologia <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong>software e seu mo<strong>de</strong>lo <strong>empírico</strong> utilizado <strong>para</strong> estimativa <strong>de</strong> <strong>esforço</strong> dos requisitosdurante a elaboração <strong>de</strong> <strong>um</strong>a especificação técnica.Posteriormente será apresentado <strong>um</strong> exemplo prático <strong>para</strong> <strong>estimar</strong> o <strong>esforço</strong><strong>de</strong> <strong>um</strong> projeto <strong>de</strong> customização, elaborado <strong>de</strong>ntro dos padrões estabelecidos pelametodologia da empresa, e a aplicação ao mesmo projeto da técnica <strong>de</strong> pontos porfunção.4.1.1. Metodologia da Fábrica <strong>de</strong> Software – TOTVS BHA metodologia <strong>de</strong> trabalho da Fábrica <strong>de</strong> Software da unida<strong>de</strong> TOTVS – BeloHorizonte baseou-se nos padrões <strong>de</strong>finidos <strong>para</strong> UML (Unified Mo<strong>de</strong>ling Language),notação <strong>para</strong> mo<strong>de</strong>lagem <strong>de</strong> sistemas orientados a objetos, agregando tambémelementos do PMBOK®, versão 2000, implementado pelo PMI - ProjectManagement Institute.A metodologia foi baseada também em valores culturais da empresa,contempla apenas as fases iniciais do ciclo <strong>de</strong> vida do projeto e abrange 10<strong>processo</strong>s, que são <strong>de</strong>scritos <strong>de</strong> forma macro a seguir:• Levantamento dos Processos a serem Customizados: O Analista <strong>de</strong>Negócios levanta as necessida<strong>de</strong>s <strong>de</strong> customização no cliente e abre <strong>um</strong>asolicitação <strong>de</strong> customização com o <strong>de</strong>talhamento da <strong>de</strong>manda, que seráencaminhada ao Lí<strong>de</strong>r <strong>de</strong> Projetos da Fábrica <strong>de</strong> Software. A solicitação<strong>de</strong> customização é o doc<strong>um</strong>ento formal on<strong>de</strong> <strong>de</strong>verá ser <strong>de</strong>scrito o<strong>de</strong>talhamento da <strong>de</strong>manda <strong>de</strong> customização;


34• Validação Metodológica do Levantamento: O Lí<strong>de</strong>r <strong>de</strong> projetos realiza<strong>um</strong>a validação da solicitação <strong>de</strong> customização, verificando a clareza dotexto e sua objetivida<strong>de</strong>, bem como, eventuais incoerências processuais.Caso a solicitação <strong>de</strong> customização não c<strong>um</strong>pra os pré-requisitosnecessários, será encaminhada <strong>de</strong> volta <strong>para</strong> o Analista <strong>de</strong> Negóciosresponsável pela sua elaboração, acompanhada dos pontos indicadoscomo não-conformida<strong>de</strong>, <strong>para</strong> que seja reavaliada e novamenteencaminhada <strong>para</strong> a Fábrica <strong>de</strong> Software.• Designação do Analista <strong>de</strong> Customização: Este <strong>processo</strong> irá <strong>de</strong>signar oanalista responsável pela elaboração da Especificação <strong>de</strong> Customização.É <strong>um</strong> passo importante, pois marca a entrada formal do projeto na áreaoperacional da Fábrica <strong>de</strong> Software. É importante também <strong>para</strong> aatualização e acompanhamento do cronograma da equipe. O lí<strong>de</strong>r <strong>de</strong>projetos avalia o cronograma da equipe, bem como requisitos técnicos dosAnalistas disponíveis, e indica o mais a<strong>de</strong>quado <strong>para</strong> a tarefa.• Especificação <strong>de</strong> Customização: Neste <strong>processo</strong> será construído odoc<strong>um</strong>ento <strong>de</strong> Especificação <strong>de</strong> Customização (EC) pelo Analista <strong>de</strong>Customização <strong>de</strong>signado, a partir da Solicitação <strong>de</strong> Customização. Estepasso é a elaboração do projeto técnico, on<strong>de</strong> todos os requisitosnecessários <strong>para</strong> o atendimento das necessida<strong>de</strong>s do cliente serãolevantados e analisados. Nesta fase será realizado o cálculo do <strong>esforço</strong>necessário <strong>para</strong> <strong>de</strong>senvolvimento das ativida<strong>de</strong>s <strong>de</strong>scritas naespecificação.• Validação Metodológica da Especificação: Neste <strong>processo</strong> aespecificação <strong>de</strong> customização é validada. Tem por objetivo garantir aqualida<strong>de</strong> e clareza das informações contidas na EC. Além disso, irágarantir que o mo<strong>de</strong>lo da EC seja prático e sempre produtivo, i<strong>de</strong>ntificandoeventuais pontos a serem aperfeiçoados. O Lí<strong>de</strong>r <strong>de</strong> projetos éresponsável por fazer a revisão da especificação <strong>de</strong> customização,validando a clareza do texto e sua objetivida<strong>de</strong>, bem como abrangência doescopo.• Envio <strong>para</strong> Análise Comercial: Esta fase é importante <strong>para</strong> atualizaçãodo cronograma da equipe, liberando o Analista <strong>de</strong> Customização <strong>para</strong>


35outras ativida<strong>de</strong>s, bem como <strong>para</strong> controle <strong>de</strong> quais Especificações foramfeitas e estão no <strong>de</strong>partamento Comercial da empresa. O lí<strong>de</strong>r <strong>de</strong> projetosassina a especificação, atualiza o cronograma e envia a mesma, em meioeletrônico e em papel, <strong>para</strong> o Departamento Comercial, que irá montar aProposta Comercial.• Proposta Comercial: Esta fase irá marcar o momento da composição dosvalores a serem apresentados <strong>para</strong> o cliente. Toda Proposta Comercial<strong>de</strong>verá tomar como base a EC, que conterá os prazos e ativida<strong>de</strong>snecessários <strong>para</strong> a implementação do que foi solicitado. É conhecida anecessida<strong>de</strong>, por parte do Comercial, <strong>de</strong> se ajustarem, eventualmente, osvalores, <strong>de</strong>pen<strong>de</strong>ndo das necessida<strong>de</strong>s dos clientes. Para tal, o Comercial<strong>de</strong>verá alterar o valor base da hora <strong>de</strong> customização, nunca alterando osprazos lá contidos.• Aceite: É nesta fase que o cliente irá <strong>de</strong>cidir sobre a proposta. O consultor<strong>de</strong> vendas apresenta a proposta ao cliente, que irá avaliar e negociar aproposta. Caso o cliente recuse a proposta, o <strong>processo</strong> é finalizado e oatendimento é concluído, constando o motivo da recusa (preço, prazo,etc.), caso o cliente aceite, o Departamento Comercial irá emitir <strong>um</strong> Pedido<strong>de</strong> Softwares e Serviços (PSS), que é o doc<strong>um</strong>ento que garantecomercialmente a execução das ativida<strong>de</strong>s previstas na especificação <strong>de</strong>customização.• Emissão da Or<strong>de</strong>m <strong>de</strong> Serviço: É nesta fase que o DepartamentoComercial irá gerar <strong>um</strong> doc<strong>um</strong>ento do tipo “Pedido <strong>de</strong> Softwares eServiços” (PSS), e encaminhá-lo ao lí<strong>de</strong>r <strong>de</strong> projetos, em meio eletrônico eem papel, <strong>de</strong>vidamente assinado pelo consultor Comercial, bem como aEspecificação <strong>de</strong> Customização com a assinatura do cliente.• Implementação do Projeto <strong>de</strong> Customização: Nesta fase, acontece oinício da implementação do Projeto <strong>de</strong> Customização. Aqui é importanteque os cronogramas sejam atualizados e ocorra o correto arquivamentodos doc<strong>um</strong>entos gerados até o momento. O Lí<strong>de</strong>r <strong>de</strong> projetos irá alocar osanalistas responsáveis pelo projeto (<strong>de</strong>senvolvedor, analista <strong>de</strong> testes,doc<strong>um</strong>entador, etc), e fornecer ao cliente o prazo <strong>de</strong> entrega ecronograma do projeto.


364.1.2. Metodologia do Cálculo do Esforço da Fábrica <strong>de</strong> Software – TOTVS BHO <strong>processo</strong> atual <strong>de</strong> cálculo dos prazos dos projetos <strong>de</strong> customização ocorredurante a etapa <strong>de</strong> “Elaboração da Especificação <strong>de</strong> Customização”, <strong>de</strong>scrita notópico 4.1.1 acima.Atualmente, existe <strong>um</strong>a metodologia <strong>de</strong> trabalho <strong>para</strong> esta ativida<strong>de</strong>, baseadan<strong>um</strong>a matriz <strong>de</strong> tipos <strong>de</strong> requisitos e grau <strong>de</strong> dificulda<strong>de</strong>, on<strong>de</strong> <strong>para</strong> cada situação, ésugerido <strong>um</strong> número <strong>de</strong> horas previsto <strong>para</strong> a implementação <strong>de</strong> tal requisito. Essenúmero <strong>de</strong> horas é gerado a partir <strong>de</strong> dados históricos <strong>de</strong> projetos anteriores, já que,ao contrário das Fábricas <strong>de</strong> Softwares convencionais do mercado, que produzemsoftwares em diversas linguagens <strong>de</strong> programação, diferentes tipos <strong>de</strong> ambiente etecnologia e soluções <strong>para</strong> vários tipos <strong>de</strong> segmentos, os projetos da Fábrica <strong>de</strong>Software do grupo TOTVS tem a peculiarida<strong>de</strong> <strong>de</strong> serem <strong>de</strong>senvolvidosexclusivamente <strong>para</strong> implementar customizações dos seus próprios aplicativosERPs, a partir <strong>de</strong> <strong>um</strong>a ferramenta própria <strong>de</strong> <strong>de</strong>senvolvimento das customizações,<strong>de</strong>nominada SDK <strong>de</strong> customização (Software Development Kit, ou Kit <strong>de</strong>Desenvolvimento <strong>de</strong> Software). Sendo assim, baseado principalmente na basehistórica dos projetos e nos tipos <strong>de</strong> requisitos que po<strong>de</strong>m ser implementados n<strong>um</strong>projeto <strong>de</strong> customização, o mo<strong>de</strong>lo <strong>de</strong>scrito a seguir foi criado pela Fábrica <strong>de</strong>Software <strong>para</strong> cálculo do <strong>esforço</strong> dos projetos.Inicialmente foram levantados todos os tipos <strong>de</strong> ativida<strong>de</strong>s possíveis que <strong>um</strong>projeto <strong>de</strong> customização po<strong>de</strong> conter, chamados <strong>de</strong> Tipos <strong>de</strong> Requisitos, <strong>de</strong>scritosna tabela 7:Tipos <strong>de</strong> RequisitosElaboração da Especificação <strong>de</strong>CustomizaçãoJanela Delphi Win32Janela .Net WinFormJanela .Net WebFormRelatórioProcesso (ex: rotinas <strong>de</strong> cálculos, rotina <strong>de</strong>importação <strong>de</strong> dados)Doc<strong>um</strong>entação Plano <strong>de</strong> TestesDoc<strong>um</strong>entação Manual do UsuárioTestesImplantação da customizaçãoTabela 7 – Tipos dos Requisitos ou Ativida<strong>de</strong>s <strong>de</strong> customização


37Requisitos:Também foi criada <strong>um</strong>a segunda tabela <strong>para</strong> indicar o grau <strong>de</strong> dificulda<strong>de</strong> dosGrau <strong>de</strong> Dificulda<strong>de</strong>BaixoMédioAltoTabela 8 – Graus <strong>de</strong> dificulda<strong>de</strong> dos requisitosFinalmente, foi elaborada <strong>um</strong>a planilha <strong>de</strong>nominada “Matriz <strong>de</strong> Esforço”, apartir do produto cartesiano da tabela dos tipos <strong>de</strong> requisitos pela tabela <strong>de</strong> grau <strong>de</strong>dificulda<strong>de</strong>, on<strong>de</strong> cada valor foi obtido através da média histórica do <strong>esforço</strong> gastoem cada requisito e seu respectivo grau <strong>de</strong> dificulda<strong>de</strong>. Diferentemente da métricapor pontos <strong>de</strong> função, a metodologia adotada pela Fábrica <strong>de</strong> Software da TOTVSrealiza o cálculo em horas, pois torna o <strong>processo</strong> mais prático, já que o tempo <strong>de</strong>resposta <strong>para</strong> elaboração da proposta ao cliente <strong>de</strong>ve ser rápido, e além disso, otreinamento e acompanhamento recebido pelos <strong>de</strong>senvolvedores tornam a equipe<strong>de</strong> <strong>de</strong>senvolvimento bastante homogênea, diminuindo ao máximo divergências nosprazos executados entre <strong>um</strong> e outro <strong>de</strong>senvolvedor.A tabela abaixo mostra a matriz <strong>de</strong> <strong>esforço</strong> atualmente praticada pela Fábrica<strong>de</strong> Software. Tal matriz é periodicamente retroalimentada, no mínimo <strong>um</strong>a vez aoano, baseada na média histórica dos projetos executados durante <strong>um</strong> <strong>de</strong>terminadoperíodo.Tipo do Requisito Dificulda<strong>de</strong>Baixo (Horas)Dificulda<strong>de</strong>Médio (Horas)Dificulda<strong>de</strong>Alto (Horas)Janela Delphi Win32 12 24 36Janela .Net WinForm 16 32 56Janela .Net WebForm 40 80 120Processo (rotinas <strong>de</strong> 16 32 48cálculos, execução <strong>de</strong>transações, etc)Relatório 16 24 32Doc<strong>um</strong>entação Plano <strong>de</strong> 2 8 20TestesDoc<strong>um</strong>entação Manual do 4 12 20UsuárioHomologação 4 20 40Implantação dacustomização16 40 80Tabela 9 – Matriz <strong>de</strong> Esforço


38A partir da Matriz <strong>de</strong> Esforço apresentada na tabela 9, o Analista <strong>de</strong>Customização, após elaborar a Especificação <strong>de</strong> Customização, com os requisitos<strong>de</strong>vidamente <strong>de</strong>talhados, elabora a planilha <strong>de</strong> ativida<strong>de</strong>s, com os prazos estimados<strong>para</strong> cada tarefa prevista na especificação. Por ser <strong>um</strong> mo<strong>de</strong>lo <strong>empírico</strong> e baseadoem expertise, o Analista tem autonomia e liberda<strong>de</strong> <strong>para</strong> ajustar os prazos, <strong>de</strong>acordo com sua experiência adquirida em projetos anteriores. A próxima seção iráexemplificar <strong>um</strong>a situação em que o ajuste do prazo <strong>de</strong> <strong>um</strong> requisito foi necessário.4.1.3. Estudo <strong>de</strong> caso – exemplo práticoPara avaliar a métrica utilizada pela Fábrica <strong>de</strong> Software, será <strong>de</strong>scrito aseguir <strong>um</strong> exemplo real <strong>de</strong> <strong>um</strong> projeto <strong>de</strong> customização, <strong>de</strong> <strong>um</strong> cliente que possui osmódulos <strong>de</strong> faturamento (compras e vendas), controle <strong>de</strong> estoque, financeiro econtábil dos aplicativos da linha RM Corpore da empresa TOTVS, no qual ametodologia foi aplicada na íntegra, tendo sido concluído e entregue <strong>de</strong>ntro dosprazos estabelecidos, com <strong>avaliação</strong> positiva do cliente e sendo portantoconsi<strong>de</strong>rado <strong>um</strong> caso <strong>de</strong> sucesso.4.1.3.1. Síntese do problemaFoi verificada pelo cliente a necessida<strong>de</strong> <strong>de</strong> estabelecer preços diferenciados<strong>para</strong> cada embalagem dos produtos fornecidos pela empresa. Um produto vendidoem sua unida<strong>de</strong> básica (KG) po<strong>de</strong> ter variados preços <strong>de</strong>pen<strong>de</strong>ndo da embalagemescolhida.Atualmente o cadastro <strong>de</strong> produtos do cliente possui diversos registros <strong>para</strong>cada produto, ou seja, cada embalagem é <strong>um</strong> produto, e isso tem trazido problemasporque as constantes transferências no controle <strong>de</strong> estoque tornam-se poucopráticas.Para resolver o problema foi proposto <strong>um</strong> <strong>processo</strong> customizado pelo qualcada produto po<strong>de</strong>rá ser cadastrado apenas <strong>um</strong>a vez na base <strong>de</strong> dados, e nocadastro <strong>de</strong> cada produto será possível informar as diversas embalagensrelacionadas ao mesmo, com o respectivo preço. Desta forma será possível


39trabalharmos com apenas <strong>um</strong>a quantida<strong>de</strong> real <strong>de</strong> estoque <strong>para</strong> <strong>um</strong> <strong>de</strong>terminadoproduto.Requisitos a serem implementados:• Criação <strong>de</strong> <strong>um</strong>a tela customizada, chamada a partir da tela <strong>de</strong> visão <strong>de</strong>produtos, <strong>para</strong> que sejam cadastrados os tipos <strong>de</strong> embalagens <strong>de</strong> <strong>um</strong><strong>de</strong>terminado produto, e os respectivos preços. Essa informação seráarmazenada em <strong>um</strong>a tabela customizada.• Criar <strong>um</strong>a tela customizada, chamada a partir da tela <strong>de</strong> item <strong>de</strong>movimento, <strong>para</strong> que o usuário informe a quantida<strong>de</strong> <strong>de</strong> cada tipo <strong>de</strong>embalagem <strong>para</strong> o produto que está sendo inserido no movimento.Não faz parte do escopo do projeto:• Elaboração ou alteração <strong>de</strong> qualquer relatório.4.1.3.2. Mo<strong>de</strong>lo <strong>de</strong> Solução• Casos <strong>de</strong> Uso e DetalhamentoO diagrama <strong>de</strong> caso <strong>de</strong> uso apresentado na Figura 2 foi mo<strong>de</strong>lado peloAnalista <strong>de</strong> Customização, e os casos <strong>de</strong> usos correspon<strong>de</strong>ntes ao projetoque será implementado serão <strong>de</strong>talhados nos tópicos seguintes.


40Figura 2 – Casos <strong>de</strong> Uso mo<strong>de</strong>lados pelo Analista <strong>de</strong> Customização a partir dos requisitos4.1.3.2.1. Processo “Cadastrar as Embalagens e os respectivos preços por produto”• Fluxograma do Processo (Diagrama <strong>de</strong> Ativida<strong>de</strong>s)Figura 3 – Diagrama <strong>de</strong> Ativida<strong>de</strong>s do Caso <strong>de</strong> Uso “Cadastrar os Embalagens e os respectivospreços por produto”• Descrição do Processo


411. Na tela <strong>de</strong> visão <strong>de</strong> produtos do RM Nucleus, após o usuáriocadastrar <strong>um</strong> produto, ele vai selecioná-lo e clicar no botãocustomizado;2. É apresentada <strong>um</strong>a tela <strong>para</strong> o usuário informar os tipos <strong>de</strong>embalagens que po<strong>de</strong>m ser vendidas com o produtoselecionado e o respectivo preço <strong>para</strong> cada embalagem;3. Após informar as embalagens e preços do produto, o usuário<strong>de</strong>verá clicar em salvar e os dados serão armazenados natabela ZPRECOPRODUTO.• Detalhamento <strong>de</strong> CálculosNão existem cálculos a serem <strong>de</strong>talhados.• Detalhamento <strong>de</strong> Processos EspecíficosNão existem <strong>processo</strong>s específicos a serem <strong>de</strong>talhados.• ProtótiposFigura 4 – Botão Customizado da Visão <strong>de</strong> ProdutosA tela apresentada na Figura 4 pertence ao sistema original e correspon<strong>de</strong> àvisão dos produtos cadastrados no sistema. A tela customizada (mostrada na Figura


425) será acionada a partir do botão em <strong>de</strong>staque na Figura 4, on<strong>de</strong> o usuário <strong>de</strong>veráinformar os diferentes preços por tipo <strong>de</strong> embalagem.Figura 5 – Cadastro Customizado <strong>de</strong> embalagens por produto• Dicionário <strong>de</strong> dadosTabela ZPRECOPRODUTONome Tipo DescriçãoCODCOLIGADA INTEIRO Chave seqüencial databela <strong>de</strong> integração.IDPRD INTEIRO Indica o status doregistroDESCRICAOEMBALAGEM ALFANUMERICO(40) Indica a operação aexecutar. No caso dosMeios <strong>de</strong> Pagamento,a única operaçãopossível será Inserção.Caso haja necessida<strong>de</strong><strong>de</strong> alteração nos meios<strong>de</strong> pagamento, <strong>de</strong>veráser feito manualmentea partir da tela <strong>de</strong>movimentos do RMNucleus.MULTIPLOQTDE INTEIRO Múltiplo <strong>de</strong> quantida<strong>de</strong>da unida<strong>de</strong> <strong>de</strong> medidaPRECO REAL Preço do produto narespectiva embalagemTabela 10 – Estrutura da tabela ZPRECOPRODUTO


434.1.3.2.2. Processo “Inserir Tipos <strong>de</strong> Embalagens X Quantida<strong>de</strong> por item <strong>de</strong>movimento”• Fluxograma do ProcessoFigura 6 – Diagrama <strong>de</strong> Ativida<strong>de</strong> do Caso <strong>de</strong> Uso “Inserir Tipos <strong>de</strong> Embalagens X Quantida<strong>de</strong> poritem <strong>de</strong> movimento”• Descrição do Processo (Diagrama <strong>de</strong> Ativida<strong>de</strong>s)1. Ao cadastrar <strong>um</strong> novo movimento, o usuário clica em inserir <strong>um</strong>novo item;2. A tela <strong>de</strong> edição <strong>de</strong> itens <strong>de</strong> movimento é mostrada, o usuárioseleciona o produto e logo <strong>de</strong>pois clica no botão customizado;3. Uma nova tela customizada é acionada e o usuário <strong>de</strong>verá fazera seleção <strong>de</strong> quais embalagens daquele produto farão parte domovimento e a quantida<strong>de</strong> <strong>de</strong> cada embalagem;4. O usuário clica no botão salvar e o <strong>processo</strong> customizado irásomar a quantida<strong>de</strong> informada das embalagens e preencher ocampo quantida<strong>de</strong> no cadastro do item, e o preço unitário será


44preenchido pelo cálculo da média do valor total das embalagenspela quantida<strong>de</strong>.5. O usuário salva o item <strong>de</strong> movimento e volta <strong>para</strong> a tela <strong>de</strong>edição <strong>de</strong> movimentos, po<strong>de</strong>ndo assim inserir <strong>um</strong> novo item oufinalizar o movimento.• Detalhamento <strong>de</strong> CálculosPara que o produto apareça em <strong>um</strong> único item <strong>de</strong> movimento o <strong>processo</strong>customizado irá calcular a quantida<strong>de</strong> e o preço do item da seguinte maneira:Suponhamos que o usuário vai cadastrar <strong>um</strong> item no movimento <strong>de</strong> venda <strong>de</strong><strong>um</strong> <strong>de</strong>terminado produto, na tela customizada ele escolhe <strong>um</strong> vasilhame <strong>de</strong> 10Kg,cujo preço é R$88,00 e dois vasilhames <strong>de</strong> 1Kg, cujo preço <strong>de</strong> cada <strong>um</strong> é R$10,00:1 x Vasilhame 10Kg = R$88,002 x Vasilhames 2Kg = R$20,00Desta forma o <strong>processo</strong> customizado irá preencher automaticamente oscampos quantida<strong>de</strong> e valor total pelos valores informados na tela customizada, e opreço unitário será preenchido pela divisão do valor total pela quantida<strong>de</strong> total.Valor Total: R$108,00Quantida<strong>de</strong>: 12KgPreço Unitário = 108 / 12 = R$9,00• Detalhamento <strong>de</strong> Processos EspecíficosAo informar as quantida<strong>de</strong>s dos tipos <strong>de</strong> embalagens <strong>para</strong> o produto queestá sendo inserido, o sistema automaticamente vai mostrar o preço total <strong>de</strong> acordocom o preço informado no cadastro customizado <strong>de</strong> embalagens <strong>de</strong> produtos,porém, caso seja necessário, o preço po<strong>de</strong>rá ser modificado pelo usuário <strong>de</strong>ntro dopróprio movimento.• Protótipo


45Figura 7 – Botão Customizado no cadastro <strong>de</strong> Itens <strong>de</strong> MovimentoA tela apresentada na Figura 7 pertence ao sistema original e correspon<strong>de</strong> àtela <strong>de</strong> edição <strong>de</strong> itens <strong>de</strong> movimentos <strong>de</strong> venda. A tela customizada será acionadaa partir do botão em <strong>de</strong>staque nessa figura, on<strong>de</strong> o usuário <strong>de</strong>verá informar osdiferentes preços por tipo <strong>de</strong> embalagem. Os campos “Quantida<strong>de</strong>” e “PreçoUnitário” da tela <strong>de</strong> edição <strong>de</strong> itens <strong>de</strong> movimento serão preenchidosautomaticamente, após o usuário selecionar as quantida<strong>de</strong>s das embalagens doitem e clicar no botão OK, conforme protótipo apresentado na Figura 8.Figura 8 – Tela <strong>de</strong> Quantida<strong>de</strong> <strong>de</strong> Vasilhames por produto


464.1.3.3. Elaboração da Planilha <strong>de</strong> ativida<strong>de</strong>s e Tempos estimadosPara elaborar os prazos, o Analista <strong>de</strong> Customização <strong>de</strong>screve as ativida<strong>de</strong>sdo projeto organizando a tabela <strong>de</strong> ativida<strong>de</strong>s por fase, <strong>de</strong>finidas no ciclo <strong>de</strong><strong>de</strong>senvolvimento: Elaboração da Especificação, Implementação, Testes,Doc<strong>um</strong>entação e Implantação.Na fase <strong>de</strong> implementação são adicionadas as ativida<strong>de</strong>s <strong>de</strong>talhadas naseção “Mo<strong>de</strong>lo <strong>de</strong> Solução” da Especificação <strong>de</strong> Customização. No exemplo <strong>de</strong>scritoneste trabalho, as ativida<strong>de</strong>s do projeto são “Cadastrar as Embalagens e osrespectivos preços por produto” e “Inserir Tipos <strong>de</strong> Embalagens X Quantida<strong>de</strong> poritem <strong>de</strong> movimento”. Desta forma, a planilha <strong>de</strong> ativida<strong>de</strong>s fica composta da seguintemaneira:Ativida<strong>de</strong>sProjeto “Preços <strong>de</strong> Produtos pela embalagem”Especificação da AplicaçãoLevantamento das necessida<strong>de</strong>sElaboração da Especificação <strong>de</strong>talhadaImplementaçãoTela <strong>para</strong> informar preço por embalagem dosprodutosTela <strong>para</strong> informar a quantida<strong>de</strong> por embalagemdo produto que está sendo inserido no movimentoHomologaçãoElaboração do Plano <strong>de</strong> TestesTestes <strong>de</strong> SistemaDoc<strong>um</strong>entaçãoElaboração do Manual do UsuárioImplantaçãoInstalação da customização no clienteTOTALTabela 11 – Planilha <strong>de</strong> ativida<strong>de</strong>s do projeto <strong>de</strong> customizaçãoApós ter estruturado as ativida<strong>de</strong>s previstas no projeto, o analista irá entãoaplicar a matriz <strong>de</strong> <strong>esforço</strong> apresentada na Tabela 9 da seção 4.1.2 <strong>de</strong>stamonografia, informando o grau <strong>de</strong> dificulda<strong>de</strong> e o tipo <strong>de</strong> cada requisito especificado,e então os prazos são preenchidos, <strong>de</strong> acordo com os valores informados na matriz<strong>de</strong> <strong>esforço</strong>. As ativida<strong>de</strong>s da fase <strong>de</strong> Especificação da Aplicação ocorrem antes dageração da planilha <strong>de</strong> ativida<strong>de</strong>s, sendo assim, o Analista já tem o conhecimento


47através <strong>de</strong> relatório das horas trabalhadas na respectiva fase. Neste projeto, foramgastas 8 horas em reuniões <strong>de</strong> levantamento do escopo do projeto e mais 32 horas<strong>para</strong> análise da solução e elaboração da especificação técnica. Por outro lado, asfases <strong>de</strong> Implementação, Homologação, Doc<strong>um</strong>entação e Implantação têm seusrespectivos prazos calculados a partir da matriz <strong>de</strong> <strong>esforço</strong>.Ativida<strong>de</strong>sTipo doRequisitoGrau <strong>de</strong>dificulda<strong>de</strong>TempoPrevisto(Horas)Projeto “Preços <strong>de</strong> Produtos pelaembalagem”Especificação da AplicaçãoLevantamento das necessida<strong>de</strong>sElaboração da Especificação<strong>de</strong>talhadaImplementaçãoTela <strong>para</strong> informar preço porembalagem dos produtosTela <strong>para</strong> informar a quantida<strong>de</strong> porembalagem do produto que estásendo inserido no movimentoHomologaçãoElaboração do Plano <strong>de</strong> TestesElaboração daEspeficicaçãoElaboração daEspeficicaçãoJanela Win32DelphiJanela Win32DelphiDoc<strong>um</strong>entaçãoPlano <strong>de</strong>Testes- 8- 32Baixo 12Baixo 12Baixo 2Testes <strong>de</strong> Sistema Homologação Baixo 4Doc<strong>um</strong>entaçãoElaboração do Manual do UsuárioBaixo 4ImplantaçãoInstalação da customização noclienteDoc<strong>um</strong>entaçãoManual UsuárioImplantação Baixo 16TOTAL 90Tabela 12 – Tabela <strong>de</strong> apropriação do <strong>esforço</strong> <strong>para</strong> cada ativida<strong>de</strong>Por ser <strong>um</strong> mo<strong>de</strong>lo <strong>empírico</strong> <strong>de</strong> estimativa, baseado principalmente naexperiência adquirida do próprio Analista, o mesmo tem flexibilida<strong>de</strong> <strong>para</strong> ajustar osprazos, caso julgue que os valores apresentados na matriz <strong>de</strong> <strong>esforço</strong> estãodivergentes do <strong>esforço</strong> médio <strong>de</strong> <strong>um</strong>a <strong>de</strong>terminada ativida<strong>de</strong>, <strong>de</strong>vido ao grau <strong>de</strong>complexida<strong>de</strong> e experiência em projetos anteriores, semelhantes ao que está sendoespecificado. Sendo assim, neste estudo <strong>de</strong> caso, o Analista optou por reduzir ashoras “sugeridas” pela Matriz <strong>de</strong> <strong>esforço</strong> nas ativida<strong>de</strong>s <strong>de</strong> Implementação por saberque o tempo a ser gasto será bastante inferior ao que está previsto na Matriz <strong>de</strong>


48Esforço, dada à simplicida<strong>de</strong> das telas a serem implementadas. O tempo previsto <strong>de</strong>Implantação foi reduzido, pois a instalação e o entendimento do produto a serentregue são bastante simples.Após os ajustes terem sido feitos, a planilha teve seu prazo total modificado,conforme a tabela abaixo, e então o Analista finaliza a Especificação <strong>de</strong>Customização, contemplando a <strong>de</strong>scrição completa da solução a ser <strong>de</strong>senvolvida,bem como os prazos das ativida<strong>de</strong>s. A partir daí o fluxo é seguido, <strong>de</strong> acordo com asetapas da metodologia da Fábrica <strong>de</strong> Software, conforme apresentado no tópico4.1.1 <strong>de</strong>sta monografia.Ativida<strong>de</strong>sTipo doRequisitoGrau <strong>de</strong>dificulda<strong>de</strong>TempoPrevisto(Horas)Projeto “Preços <strong>de</strong> Produtos pela embalagem”Especificação da AplicaçãoLevantamento das necessida<strong>de</strong>s Elaboração daEspeficicaçãoElaboração da Especificação <strong>de</strong>talhada Elaboração daEspeficicaçãoImplementaçãoTela <strong>para</strong> informar preço porJanela Win32embalagem dos produtosDelphiTela <strong>para</strong> informar a quantida<strong>de</strong> por Janela Win32embalagem do produto que está sendo Delphiinserido no movimentoHomologaçãoElaboração do Plano <strong>de</strong> TestesDoc<strong>um</strong>entaçãoPlano <strong>de</strong>Testes- 8- 32Baixo 8*Baixo 8*Baixo 2Testes <strong>de</strong> Sistema Homologação Baixo 4Doc<strong>um</strong>entaçãoElaboração do Manual do UsuárioBaixo 4Doc<strong>um</strong>entaçãoManual UsuárioImplantaçãoInstalação da customização no cliente Implantação Baixo 4*TOTAL 70*Tabela 13 – Tabela com os prazos modificados empiricamente pelo analistaNa próxima seção será apresentado o cálculo <strong>de</strong> pontos <strong>de</strong> função <strong>para</strong> omesmo projeto.4.1.3.4. Aplicando a técnica <strong>de</strong> Pontos <strong>de</strong> Função


49O tipo da contagem a ser feita será a contagem <strong>de</strong> projeto <strong>de</strong><strong>de</strong>senvolvimento, pois se trata <strong>de</strong> <strong>um</strong> projeto novo, que será concebido a partir dosrequisitos levantados.Embora seja <strong>um</strong> projeto <strong>de</strong> customização <strong>de</strong> <strong>um</strong> sistema já existente, aestimativa <strong>de</strong>verá ser focada somente no módulo a ser <strong>de</strong>senvolvido, pois éexatamente a parte que ainda não se conhece o tamanho e <strong>esforço</strong> <strong>para</strong>implementação. Sendo assim, escopo da contagem limita-se ao tamanho do projetoque será implementado. O produto que originou a <strong>de</strong>manda <strong>de</strong> customização, ouseja, o software original que será customizado, não será consi<strong>de</strong>rado na contagem<strong>de</strong> pontos <strong>de</strong> função. As entida<strong>de</strong>s nativas do ERP que são influenciadas pelomódulo customizado serão classificadas como Arquivos <strong>de</strong> Interface Externa.A partir dos requisitos especificados serão i<strong>de</strong>ntificadas as funções <strong>de</strong> dados(Arquivos Lógicos Internos e Arquivos <strong>de</strong> Interface Externa) e posteriormente asfunções <strong>de</strong> transação (Entradas Externas, Saídas Externas e Consultas Externas).O primeiro passo <strong>para</strong> a contagem das funções <strong>de</strong> dados consiste emi<strong>de</strong>ntificar arquivos lógicos internos (ALIs). Neste caso po<strong>de</strong>mos consi<strong>de</strong>rar o“Cadastro <strong>de</strong> preços por embalagens” <strong>um</strong> ALI, pois é <strong>um</strong> grupo <strong>de</strong> dadosreconhecido pelo usuário e é mantido <strong>de</strong>ntro da fronteira da aplicação.Para saber a complexida<strong>de</strong> do ALI i<strong>de</strong>ntificado <strong>de</strong>verão ser en<strong>um</strong>erados osregistros lógicos e os itens <strong>de</strong> dados do mesmo. O cadastro <strong>de</strong> preços porembalagens será armazenado n<strong>um</strong>a tabela única ZPRECOPRODUTO, queinicialmente conterá apenas 5 campos. Baseado na Tabela 1 da Seção 3.2.2.3,i<strong>de</strong>ntificamos que o ALI – Cadastro <strong>de</strong> Preços por embalagens possui apenas <strong>um</strong>registro lógico e 5 itens <strong>de</strong> dados, sendo classificado portanto com complexida<strong>de</strong>BAIXA.A seguir serão i<strong>de</strong>ntificados os Arquivos <strong>de</strong> Interface Externa (AIE). Com basena especificação <strong>de</strong> customização do estudo <strong>de</strong> caso, po<strong>de</strong>mos i<strong>de</strong>ntificar doisArquivos <strong>de</strong> Interface Externa: Cadastro <strong>de</strong> Produtos e Cadastro <strong>de</strong> Movimentos.Esses dois cadastros, reconhecidos pelo usuário, mantidos <strong>de</strong>ntro da aplicaçãonativa, sendo apenas referenciado pela customização que será implementada, sãoclassificados com complexida<strong>de</strong> ALTA, pois são entida<strong>de</strong>s com mais <strong>de</strong> 6 registroslógicos cada, e mais <strong>de</strong> 30 itens <strong>de</strong> dados cada.Desta forma obtemos a seguinte pontuação das funções <strong>de</strong> dados, conformeapresentado na tabela 14:


50Funções <strong>de</strong> Baixa Média Alta PFDadosALI 1 (*7) - - 7AIE - - 2 (*10) 20Tabela 14 – Contagem das Funções <strong>de</strong> DadosTerminada a etapa <strong>de</strong> i<strong>de</strong>ntificação das funções <strong>de</strong> dados, serão i<strong>de</strong>ntificadasentão as funções <strong>de</strong> transações: Entradas Externas, Saídas Externas e ConsultasExternas.O <strong>processo</strong> “Cadastrar os preços por embalagens” correspon<strong>de</strong> a <strong>um</strong>aentrada externa (EE), porém, <strong>para</strong> <strong>de</strong>terminar sua complexida<strong>de</strong> será necessáriocalcular o número <strong>de</strong> arquivos lógicos referenciados (ALR) pela EE e a quantida<strong>de</strong><strong>de</strong> elementos <strong>de</strong> dados da EE. Neste caso, o arquivo lógico referenciado pelocadastro dos preços por embalagens será o ALI atualizado pela EE, ou seja, o“Cadastro <strong>de</strong> preços por embalagens” e ainda o AIE lido no processamento da EE,que é o próprio “Cadastro <strong>de</strong> produtos”, possuindo portanto 2 ALR.O número <strong>de</strong> dados referenciados <strong>para</strong> a EE “Cadastrar os preços porembalagens” será o número total <strong>de</strong> campos reconhecidos pelo usuário, ou chavesque são atualizadas pela EE. Com base na Especificação po<strong>de</strong>m ser i<strong>de</strong>ntificados 5itens <strong>de</strong> dados referenciados, que correspon<strong>de</strong>m aos campos da tabelaZPRECOVENDA, e a este número é somado <strong>um</strong> botão <strong>de</strong> exclusão que tambéminterfere na entrada externa “cadastrar os preços por embalagens”. Por conter 2 ALRe 6 itens <strong>de</strong> dados referenciados, a EE tem complexida<strong>de</strong> MÉDIA, conforme indicadopela Tabela <strong>de</strong> Complexida<strong>de</strong> <strong>para</strong> Entradas Externas, mostrada na Tabela 3 daSeção 3.2.2.3.Outra entrada externa i<strong>de</strong>ntificada na aplicação será a “Inserção daQuantida<strong>de</strong> <strong>de</strong> Vasilhames por produto no item <strong>de</strong> movimento”. Esta EE possui 2arquivos lógicos relacionados (cadastro <strong>de</strong> preços por embalagens e cadastro <strong>de</strong>itens <strong>de</strong> movimento), e possui apenas 3 itens <strong>de</strong> dados referenciados (Embalagem,quantida<strong>de</strong> e valor). Neste caso esta entrada externa terá complexida<strong>de</strong> BAIXA,conforme indicado na Tabela 3 da Seção 3.2.2.3.Segundo a Especificação da Customização, o sistema <strong>de</strong>verá fazer <strong>um</strong>cálculo, retornando o preço unitário médio do produto, durante o cadastro dos itens<strong>de</strong> movimento. Este cálculo correspon<strong>de</strong> a <strong>um</strong>a Saída Externa, pois é <strong>um</strong> <strong>processo</strong>


51elementar que envia dado <strong>para</strong> fora da fronteira da aplicação. Possui 2 arquivoslógicos relacionados: “Cadastro <strong>de</strong> preços por embalagens” e o “Cadastro <strong>de</strong> Itens<strong>de</strong> Movimento”. Os itens <strong>de</strong> dados referenciados são os campos reconhecidos pelousuário que geram o <strong>processo</strong> elementar (campos embalagem, quantida<strong>de</strong> e valortotal) e o(s) campo(s) reconhecidos pelo usuário que saem da aplicação (camposquantida<strong>de</strong> e preço unitário). Portanto esta Saída Externa possui 2 arquivos lógicosreferenciados e 5 itens <strong>de</strong> dados referenciados, e, baseado na Tabela 4 da Seção3.2.2.3, possui complexida<strong>de</strong> BAIXA.Neste projeto não foi i<strong>de</strong>ntificada nenh<strong>um</strong>a consulta externa. Sendo assimforam obtidas as seguintes pontuações das funções <strong>de</strong> transações:Funções <strong>de</strong> Baixa Média Alta PFtransaçõesEE 1 (*3) 1 (*4) - 7SE 1 (*4) - - 4CE - - - 0Tabela 15 – Contagem das Funções do tipo transaçãoTotal <strong>de</strong> pontos <strong>de</strong> função não ajustados (PFNA) = PF (Funções <strong>de</strong> dados) +PF (Funções <strong>de</strong> transações).PFNA = 38Segundo o <strong>processo</strong> <strong>de</strong> cálculo <strong>de</strong> pontos <strong>de</strong> função, a próxima etapa écalcular os fatores <strong>de</strong> ajustes, <strong>de</strong> acordo com as 14 características gerais <strong>de</strong>sistemas, que avaliam a funcionalida<strong>de</strong> geral da aplicação que será <strong>de</strong>senvolvida.Após avaliar o critério <strong>para</strong> cada característica, <strong>de</strong>scrito no capítulo 3 <strong>de</strong>stamonografia, obteve-se o seguinte resultado <strong>para</strong> os fatores <strong>de</strong> ajustes, conformeapresentado na Tabela 16 a seguir:Característica GeralGrau <strong>de</strong>InfluênciaComunicação <strong>de</strong> dados 4Processamento <strong>de</strong> Dados Distribuído 3Desempenho 0Carga <strong>de</strong> máquina 0Vol<strong>um</strong>e <strong>de</strong> transações 3Entrada <strong>de</strong> dados online 5


52Eficiência do usuário final 3Atualização online 3Complexida<strong>de</strong> <strong>de</strong> processamento 0Reusabilida<strong>de</strong> 1Facilida<strong>de</strong> <strong>de</strong> Instalação 1Facilida<strong>de</strong> <strong>de</strong> Operação 0Múltiplos Locais 2Facilida<strong>de</strong> <strong>de</strong> Alteração 0Grau <strong>de</strong> influência total 25Tabela 16 – Contagem dos níveis <strong>de</strong> influênciaA partir do grau <strong>de</strong> influência total, será calculado o valor do fator <strong>de</strong> ajuste,através da fórmula VFA = (NIT * 0,01) + 0,65.VFA = (25 * 0,01) + 0,65 = 0,90Uma vez calculados os PF não ajustados e o fator <strong>de</strong> ajuste, é possívelcalcular os PFs ajustados (PFA). Para projetos <strong>de</strong> <strong>de</strong>senvolvimento, o cálculo é dadopor PF ajustados = PFNA * VFAPF Ajustados = 38 * 0,9 = 34,2Com base na técnica <strong>de</strong> estimativa por pontos <strong>de</strong> função, o projeto <strong>de</strong>steestudo <strong>de</strong> caso possui, portanto, 34,2 pontos <strong>de</strong> função.4.1.3.5. Cálculo do EsforçoComo dito no capítulo 3, não existe <strong>um</strong>a produtivida<strong>de</strong> pré-<strong>de</strong>finida <strong>para</strong>pontos <strong>de</strong> função. O cálculo da produtivida<strong>de</strong> varia <strong>de</strong> acordo com <strong>um</strong>a série <strong>de</strong>fatores que interferem no <strong>esforço</strong> <strong>para</strong> implementação <strong>de</strong> cada ponto <strong>de</strong> função.Neste estudo <strong>de</strong> caso o cálculo do <strong>esforço</strong> será feito pela quantida<strong>de</strong> <strong>de</strong>pontos <strong>de</strong> função ajustados multiplicado pela taxa <strong>de</strong> produtivida<strong>de</strong>, on<strong>de</strong> a taxa <strong>de</strong>produtivida<strong>de</strong> correspon<strong>de</strong> à quantida<strong>de</strong> <strong>de</strong> horas necessárias <strong>para</strong> implementação<strong>de</strong> <strong>um</strong> ponto <strong>de</strong> função.Como não há <strong>um</strong>a base histórica <strong>de</strong> produtivida<strong>de</strong> média por pontos <strong>de</strong>função nos projetos <strong>de</strong> customização da Fábrica <strong>de</strong> Software da TOTVS, será


53utilizada <strong>um</strong>a taxa inicial <strong>de</strong> produtivida<strong>de</strong> <strong>de</strong> 10 Horas/Pontos <strong>de</strong> Função, obtidapelo ISBSG <strong>para</strong> linguagens <strong>de</strong> programação <strong>de</strong> 4ª geração, que é a classificaçãoda linguagem utilizada neste estudo <strong>de</strong> caso (ISBSG apud VAZQUEZ, SIMÕES,ALBERT, 2008, p.42).Baseado nessa taxa <strong>de</strong> produtivida<strong>de</strong>, o cálculo do <strong>esforço</strong> em horas <strong>para</strong>implementação da customização em análise ficará da seguinte maneira:Esforço = PF Ajustados x Produtivida<strong>de</strong>, on<strong>de</strong> E = 34,2 * 10, totalizando assim342 Horas.Segundo Vazquez, Simões e Albert (2008), <strong>para</strong> <strong>estimar</strong> o prazo total doprojeto <strong>de</strong> software, <strong>de</strong>ve ser ainda calculado o <strong>esforço</strong> <strong>para</strong> as ativida<strong>de</strong>s <strong>de</strong>levantamento <strong>de</strong> requisitos, elaboração da especificação, testes, doc<strong>um</strong>entação eimplantação. Normalmente este cálculo é feito adicionando-se <strong>um</strong> percentual sobreas ativida<strong>de</strong>s <strong>de</strong> <strong>de</strong>senvolvimento do projeto, por meio <strong>de</strong> <strong>um</strong> <strong>esforço</strong> médioempregado em cada ativida<strong>de</strong>.Como a ativida<strong>de</strong> <strong>de</strong> estimativa do <strong>esforço</strong> do projeto <strong>de</strong> customização ocorresomente após o levantamento e a elaboração da especificação, serão somadas ao<strong>esforço</strong> total do projeto as horas utilizadas e apontadas pelo analista nessas duasativida<strong>de</strong>s: 8 horas <strong>para</strong> a ativida<strong>de</strong> <strong>de</strong> levantamento dos requisitos e 32 horas <strong>para</strong>a ativida<strong>de</strong> <strong>de</strong> elaboração da Especificação <strong>de</strong> Customização.Além disso, serão aplicados os seguintes percentuais <strong>para</strong> cada ativida<strong>de</strong> dociclo <strong>de</strong> vida do projeto, não contempladas na contagem <strong>de</strong> pontos <strong>de</strong> função dosistema, conforme a Tabela 17 a seguir:Ativida<strong>de</strong>s do Ciclo <strong>de</strong> Vida % adicionalDoc<strong>um</strong>entação Plano <strong>de</strong> Testes 5Doc<strong>um</strong>entação Manual do Usuário 5Testes 15Implantação da customização 10Percentual Total 25Tabela 17 – Apropriação dos percentuais <strong>de</strong> <strong>esforço</strong> <strong>de</strong> acordo com a ativida<strong>de</strong> do ciclo <strong>de</strong> vidaO <strong>esforço</strong> total do projeto <strong>de</strong> customização, originado a partir da contagem <strong>de</strong>pontos <strong>de</strong> função ficará portanto com <strong>um</strong> total <strong>de</strong> 501 Horas, conforme <strong>de</strong>talhado naTabela 18:


54Ativida<strong>de</strong>sTempoPrevisto(Horas)Projeto “Preços <strong>de</strong> Produtos pela embalagem”Especificação da AplicaçãoLevantamento das necessida<strong>de</strong>s 8Elaboração da Especificação <strong>de</strong>talhada 32Implementação 342HomologaçãoElaboração do Plano <strong>de</strong> Testes 17Testes <strong>de</strong> Sistema 51Doc<strong>um</strong>entaçãoElaboração do Manual do Usuário 17ImplantaçãoInstalação da customização no cliente 34TOTAL 501Tabela 18 – Planilha <strong>de</strong> Horas do Projeto baseado em Pontos <strong>de</strong> Função


555. CONSIDERAÇÕES FINAIS5.1. Análise dos ResultadosFoi mostrada por meio <strong>de</strong> <strong>um</strong> estudo <strong>de</strong> caso a utilização <strong>de</strong> <strong>um</strong> <strong>processo</strong><strong>empírico</strong> <strong>de</strong> estimativa <strong>de</strong> software, implantado junto com <strong>um</strong>a metodologia <strong>de</strong><strong>de</strong>senvolvimento <strong>de</strong> projetos <strong>de</strong> customização da Fábrica <strong>de</strong> Software do GrupoTOTVS, unida<strong>de</strong> Belo Horizonte. Além da <strong>de</strong>monstração da metodologia utilizada<strong>para</strong> estimativas, também foi aplicado ao mesmo projeto o <strong>processo</strong> <strong>de</strong> contagens<strong>de</strong> pontos <strong>de</strong> função, técnica amplamente utilizada e aceita no mercado <strong>de</strong> software.Diante do que foi <strong>de</strong>monstrado no estudo <strong>de</strong> caso, po<strong>de</strong>mos concluir que atécnica <strong>de</strong> estimativa por pontos <strong>de</strong> função po<strong>de</strong> ser aplicada nos projetos <strong>de</strong>customização, a partir dos requisitos a serem implementados. Porém ao utilizar <strong>um</strong>ataxa <strong>de</strong> produtivida<strong>de</strong> inicial <strong>para</strong> cálculo do <strong>esforço</strong> do projeto, foi verificado que aquantida<strong>de</strong> <strong>de</strong> horas previstas <strong>para</strong> o projeto ficou sete vezes maior do que o prazoreal do mesmo: pelo <strong>processo</strong> <strong>empírico</strong> utilizado na Fábrica <strong>de</strong> Software foramestimadas 70 horas, enquanto que a estimativa <strong>de</strong> <strong>esforço</strong> baseada nos pontos <strong>de</strong>função do mesmo projeto, obteve-se <strong>um</strong> valor total <strong>de</strong> 501 horas.Para que o cálculo do <strong>esforço</strong> dos projetos <strong>de</strong> customização seja feito a partirda contagem <strong>de</strong> pontos <strong>de</strong> função, <strong>de</strong>ve ser feita <strong>um</strong>a adaptação na taxa <strong>de</strong>produtivida<strong>de</strong> por pontos <strong>de</strong> função <strong>para</strong> esses projetos, refinando essa taxa a cadaprojeto concluído, <strong>de</strong> acordo com a base histórica das horas executadas eapontadas nas ativida<strong>de</strong>s, até que se obtenha <strong>um</strong>a taxa <strong>de</strong> produtivida<strong>de</strong> <strong>de</strong>ntro darealida<strong>de</strong> dos projetos <strong>de</strong> customização.A técnica <strong>de</strong> estimativa por pontos <strong>de</strong> função tem o objetivo <strong>de</strong> obter otamanho do software, com <strong>um</strong>a unida<strong>de</strong> <strong>de</strong> medida padrão, bastante utilizada pelomercado <strong>de</strong> software, on<strong>de</strong> a partir <strong>de</strong>sta métrica, a empresa contratante po<strong>de</strong> cotare licitar com diferentes fornecedores, qual o custo, prazo e tecnologia a ser utilizadano projeto. No caso dos projetos <strong>de</strong> customização nos produtos da linha RM daempresa TOTVS, a situação é o oposto <strong>de</strong> outros projetos <strong>de</strong> software, pois somentea Fábrica <strong>de</strong> Software da própria empresa <strong>de</strong>tém a tecnologia que permiteimplementar as customizações <strong>de</strong>sses produtos. Por isso, o mo<strong>de</strong>lo <strong>de</strong> estimativaimplantado pela fábrica é mais eficiente <strong>para</strong> seus projetos, <strong>de</strong>vido ao amplo


56conhecimento e domínio sobre as soluções a serem implementadas, e a altaprodutivida<strong>de</strong> do <strong>processo</strong> <strong>de</strong> estimativa utilizado pela empresa.Conclui-se que embora seja <strong>um</strong>a técnica bastante utilizada e possa seraplicável aos projetos <strong>de</strong> customização, não seria recomendável implantá-la nametodologia da Fábrica <strong>de</strong> Software, pois o estudo <strong>de</strong> caso mostrou que o <strong>processo</strong><strong>empírico</strong> utilizado pela TOTVS está bastante maduro e aten<strong>de</strong> à realida<strong>de</strong> dosprojetos da empresa, e não há razões <strong>para</strong> substituí-lo.No entanto, ressalta-se que toda e qualquer metodologia não <strong>de</strong>ve ser vistacomo <strong>um</strong> meio <strong>para</strong> enrijecer e burocratizar <strong>processo</strong>s, ao contrário, <strong>de</strong>ve ser <strong>um</strong>abússola, que aponta <strong>um</strong>a direção, indicando, inclusive, caminhos alternativos. Ametodologia é “viva”, po<strong>de</strong> e <strong>de</strong>ve ser alterada, visando <strong>um</strong>a maior produtivida<strong>de</strong> eracionalida<strong>de</strong>.


576. REFERÊNCIASAGUIAR, Maurício. A Produtivida<strong>de</strong> <strong>de</strong> Projetos <strong>de</strong> Desenvolvimento. 2003.Disponível em: . Acesso em 19 mar. 2009.ANDRADE, Ednéia Leonor Pereira <strong>de</strong>. Pontos <strong>de</strong> Caso <strong>de</strong> Uso e Pontos <strong>de</strong>Função na gestão <strong>de</strong> estimativa <strong>de</strong> tamanho <strong>de</strong> projetos <strong>de</strong> software orientados aobjetos. 2004. 132f. Dissertação (Mestrado em Gestão do Conhecimento eTecnologia da Informação) – Universida<strong>de</strong> Católica <strong>de</strong> Brasília, Brasília, 2004.DEKKERS, Carol A.. Ponto <strong>de</strong> Função e Medidas – O que é <strong>um</strong> Ponto <strong>de</strong>Função? Tradução <strong>de</strong> Mauricio Aguiar. 1999. Disponível em:. Acesso em15 mar. 2009.HAZAN, Cláudia. SIME: Uma Ferramenta <strong>de</strong> Estimativa <strong>de</strong> Projetos <strong>de</strong>Software. SERPRO. Rio <strong>de</strong> Janeiro, 2006.MARTINS JUNIOR, Joaquim. Como escrever trabalhos <strong>de</strong> conclusão <strong>de</strong>curso: instruções <strong>para</strong> planejar e montar, <strong>de</strong>senvolver, concluir, redigir e apresentartrabalhos monográficos e artigos. 2ª edição, Editora Vozes, Petrópolis-RJ, 2008.PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS. Pró-Reitoria<strong>de</strong> Graduação. Sistema <strong>de</strong> Bibliotecas. Padrão PUC Minas <strong>de</strong> normalização: normasda ABNT <strong>para</strong> apresentação <strong>de</strong> trabalhos científicos, teses, dissertações emonografias. Belo Horizonte, 2007. Disponível em: . Acesso em: 13 mai. 2008Project Management Institute, Inc. A Gui<strong>de</strong> to The Project Management Bodyof Knowledge. 3ª Edição, 2004 (edição traduzida pelo PMI/MG).


58PROSPECTO Preliminar <strong>de</strong> Distribuição Pública Primária e Secundária <strong>de</strong>Ações Ordinárias <strong>de</strong> Emissão da TOTVS S.A. 2006. Disponível em. Acesso em 14 mar. <strong>de</strong> 2009.VAZQUEZ, C.E.; SIMÕES, G.S.; ALBERT, RM. Análise <strong>de</strong> Pontos <strong>de</strong> Função:Medição, Estimativas e Gerenciamento <strong>de</strong> Projetos <strong>de</strong> Software. 8ª Edição, EditoraÉrica Ltda, São Paulo, 2008.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!