Escolar Documentos
Profissional Documentos
Cultura Documentos
________________________________________________________________________
________________________________________________________________________
Presidente da Repblica
Luiz Incio Lula da Silva
________________________________________________________________________
________________________________________________________________________
Sumrio
1. Introduo..........................................................................................................................7 2. Objetivo..............................................................................................................................8 3. Contagem de Pontos de Funo.......................................................................................8 3.1 Determinar Propsito, Tipo, Escopo e Fronteira de Contagem .................................9 3.2 Funes de Dados e Funes Transacionais...........................................................10 3.3 Clculo de Pontos de Funo....................................................................................11 4. Itens No Mensurveis ...................................................................................................13 4.1 Projeto de Melhoria....................................................................................................13 4.2 Projetos de Migrao de Dados................................................................................17 4.3 Manuteno Corretiva...............................................................................................17 4.4 Redesenvolvimento de Projetos em outra Plataforma..............................................19 4.5 Atualizao de Plataforma.........................................................................................19 4.6 Manuteno em Interface..........................................................................................20 4.7 Adaptao de Funcionalidades a Requisitos No Funcionais..................................20 4.8 Apurao Especial.....................................................................................................21 4.8.1 Apurao Especial Base de Dados.....................................................................21 4.8.2 Apurao Especial Gerao de Relatrios..........................................................22 4.8.3 Apurao Especial Reexecuo..........................................................................22 4.9 Atualizao de Dados................................................................................................23 4.10 Manuteno em Pginas Estticas de Intranet, Internet ou Portal.........................23 4.11 Manuteno de Documentao de Sistemas Legados...........................................23 4.12 Verificao de Erros.................................................................................................24 4.13 Pontos de Funo de Teste.....................................................................................24 4.14 Manuteno de Componentes................................................................................25 5. Estimativas de Projetos de Software...............................................................................25 5.1 Contagem Estimativa de Pontos de Funo (CEPF)................................................28 5.2 Estimativa de Esforo de Projetos de Software........................................................32 5.2.1 Distribuio de Esforo por Fase do Projeto..........................................................33 5.3 Estimativa de Prazo de Projetos de Software...........................................................33 5.4 Alocao de Equipe ao Projeto.................................................................................36 5.5 Mtodo para Estimativa de Custo.............................................................................36 5.6 Estimativa de Recursos Computacionais..................................................................37 6. Consideraes para Contagem de Pontos de Funo....................................................37 6.1 Consideraes sobre Mudana de Requisitos..........................................................37 6.2 Consideraes sobre Projetos Cancelados..............................................................38 6.3 Consideraes sobre Reduo de Cronograma ......................................................39 6.4 Fator de Criticidade de Solicitao de Servio..........................................................39 7. Contagem de Pontos de Funo com Mltiplas Mdias e Dados de Cdigo..................40 7.1 Cenrio 1: Mesmos dados apresentados em tela e impressos................................41 7.2 Cenrio 2: Mesmos dados de sada como dados em arquivo e relatrio impresso. 41 7.3 Cenrio 3: Mesmos dados de entrada batch e on-line.............................................42 7.4 Cenrio 4: Mltiplos canais de entrega da mesma funcionalidade...........................42 7.5 Cenrio 5: Relatrios em Mltiplos Formatos...........................................................42 7.6 Dimensionamento de Dados de Cdigo....................................................................42
Roteiro de Mtricas de Software do SISP 5
________________________________________________________________________ 8. Atividades Sem Contagem de Pontos de Funo...........................................................43 9. Processo de Reviso do Roteiro de Contagem..............................................................45 9.1 Reviso para Correo de Inconsistncias e Situaes no previstas....................45 9.2 Reviso para Adoo de Novas Verses do CPM....................................................45 10. Concluso......................................................................................................................45 Referncias Bibliogrficas...................................................................................................46 Anexo I Portaria SLTI/MP N 31, de 29 novembro de 2010.............................................47 Anexo II Formalizao Simples de Requisitos Projetos de Manuteno Pequenos (< 100 PF) ................................................................................................................................48 Anexo III Modelo de Documento de Contagem de Pontos de Funo Projetos de Manuteno Pequenos (< 100 PF).....................................................................................53
ndice de Figuras
Figura 1: Procedimento de Contagem de Pontos de Funo...............................................9 Figura 2: Processo de Estimativas de Projetos de Software [Hazan, 2008].......................26 Figura 3: Modelo Lgico da Anlise de Pontos de Funo.................................................29 Figura 4: Relao entre a Estimativa de Prazo e de Esforo..............................................34
ndice de Tabelas
Tabela 1: Contribuio Funcional dos Tipos Funcionais......................................................11 Tabela 2: Identificao dos Arquivos Lgicos Internos da Aplicao..................................30 Tabela 3: Identificao dos Arquivos de Interface Externa da Aplicao............................30 Tabela 4: Identificao das Entradas Externas da Aplicao..............................................31 Tabela 5: Identificao das Consultas Externas da Aplicao............................................31 Tabela 6: Identificao das Sadas Externas da Aplicao.................................................32 Tabela 7: Distribuio de Esforo por Macro Atividades do Projeto....................................33 Tabela 8: Expoente t por tipo de Projeto..............................................................................35 Tabela 9: Estimativa de Prazo de Projetos menores que 100 PF.......................................35
________________________________________________________________________
1. Introduo
Diversas instituies, pblicas e privadas, tm utilizado a mtrica de Pontos de Funo (PF) nas estimativas e dimensionamento de tamanho funcional de projetos de software devido aos diversos benefcios de utilizao da mtrica, destacando: regras de contagem objetivas e independncia da soluo tecnolgica utilizada. importante ressaltar que a Instruo Normativa IN04 SLTI/MPOG 2010 recomenda o uso de mtricas em solues de software, restringindo o uso da mtrica de esforo homem-hora. Os Acrdos do Tribunal de Contas da Unio (TCU) recomendam a utilizao da mtrica Pontos de Funo No Ajustados em contratos de prestao de servios de desenvolvimento e manuteno de sistemas. O Manual de Prticas de Contagem de Pontos de Funo (CPM 4.3) [IFPUG, 2010], publicado pelo International Function Point Users Group (IFPUG), define as regras de contagem de Pontos de Funo. importante ressaltar que a mtrica de Pontos de Funo foi concebida como uma medida de tamanho funcional para projetos de desenvolvimento e de melhoria (manuteno evolutiva) de software. No entanto, os projetos de software no esto limitados a projetos de desenvolvimento e de melhoria. Desta forma, torna-se essencial a definio de mtricas para dimensionar o tamanho de outros tipos de projetos de manuteno, os quais so itens no mensurveis pelo manual de prtica de contagem do IFPUG. Alm disso, a contagem de Pontos de Funo baseada no projeto lgico da aplicao (logical design) e nas fases iniciais do ciclo de vida do software, o documento de requisitos para a estimativa e elaborao do plano do projeto um documento inicial de requisitos, por exemplo: Documento de Viso ou algum outro tipo de especificao elaborada pelo analista de negcios. Assim, torna-se importante o estabelecimento de mtodos para estimar o tamanho funcional dos projetos de software nas fases iniciais do ciclo de vida. Outro ponto a ser destacado a importncia da definio de mtodos para gerao de estimativas de prazo e custo dos projetos de software a partir do tamanho estimado do projeto. importante frisar que o Manual de Prticas de Contagem (CPM) um documento que se destina a mensurar o tamanho funcional de projetos de software, no tendo por objetivo principal suportar contratos de fbrica de software. Assim, torna-se necessrio criar roteiros complementares, contemplando questes no abordadas pelo manual do IFPUG, mas vivenciadas pelos rgos e entidades do SISP. Este documento encontra-se organizado da seguinte maneira: o captulo 1 apresenta a motivao para a elaborao do documento e a sua organizao; o captulo 2 mostra os objetivos aos quais este documento se prope; o captulo 3 apresenta diretrizes para a Contagem de Pontos de Funo de projetos de desenvolvimento e de melhoria; o captulo 4 define os tipos de projetos de manuteno de software no mensurveis pelo Manual de Prticas de Contagem (CPM), assim como mtricas baseadas em Pontos de Funo para o dimensionamento desses itens no mensurveis; captulo 5 define um processo de estimativas de projetos de software aderente s melhores prticas do CMMI nvel 2; o captulo 6 apresenta algumas consideraes importantes sobre utilizao de mtricas para dimensionar as mudanas de requisitos e reduo de cronograma; o captulo 7 estabelece diretrizes para contagem de Mltiplas Mdias e de Dados de Cdigo
Roteiro de Mtricas de Software do SISP 7
________________________________________________________________________ (Code Data); o captulo 8 apresenta algumas atividades que no devem ser consideradas nas Contagens de Pontos de Funo; o captulo 9 apresenta o processo de reviso deste guia de contagem; finalmente, o captulo 10 conclui o documento, apresentando sugestes para trabalhos futuros.
2. Objetivo
Este documento tem como objetivo principal apresentar um roteiro de mtricas, com base nas regras de contagem de Pontos de Funo do Manual de Prticas de Contagem (CPM 4.3), para todos tipos de projetos de desenvolvimento e de manuteno de sistemas. O propsito promover o uso de mtricas objetivas em contratos de prestao de servios de desenvolvimento e manuteno de sistemas. Alm da contagem de Pontos de Funo, este roteiro apresenta um processo de estimativas com base na mtrica Pontos de Funo, aderente ao modelo CMMI, visando apoiar as organizaes nas estimativas de tamanho, custo, prazo e esforo de seus projetos desenvolvidos internamente ou contratados. O documento foi construdo baseando-se no Roteiro SERPRO de Mtricas para Contratos de Software. Tambm foram consultados outros roteiros de rgos que j utilizam a mtrica Pontos de Funo em contratos de software. A proposta inicial do Roteiro foi submetida ao Grupo de Trabalho de Mtricas do SISP, o qual contribuiu com sugestes de melhoria. Em seguida, as propostas foram analisadas em reunio com especialistas em mtricas de rgos e entidades do SISP para a elaborao da verso 1.0 do Roteiro. A implantao de um processo de medies de software e a mudana do modelo de contratao de software com base na mtrica homem-hora para o novo paradigma de contratao com base na mtrica Pontos de Funo requer uma mudana cultural. Este Roteiro tem como propsito apoiar os rgos e entidades do SISP nessa mudana cultural. Desta forma, duas premissas foram consideradas na elaborao desse Roteiro: Simplicidade: Este Roteiro deve ser simples para incentivar os rgos e entidades do SISP a utilizar a mtrica Pontos de Funo como medida padro no estabelecimento de contratos de fbrica de software. Consistncia: Este Roteiro deve definir critrios objetivos visando prover a consistncia no uso de mtricas em contratos de fbrica de software. Ou seja, dois profissionais ao aplicar o Roteiro no dimensionamento de um projeto de software devem obter o mesmo resultado.
________________________________________________________________________ Assim, a APF tem como objetivo medir o que o software faz, por meio de uma avaliao padronizada dos requisitos de negcio do sistema. O Manual de Prticas de Contagem (CPM) [IFPUG, 2010], apresenta as regras de contagem de Pontos de Funo de Projetos de Desenvolvimento, Projetos de Melhoria e Aplicaes Implantadas. A Figura 1 ilustra o procedimento de contagem de Pontos de Funo, descrito nas sees seguintes.
Identificar o Propsito da Contagem Identificar o Tipo de Contagem Determinar o Escopo da Contagem Determinar a Fronteira da Aplicao
requisitos
funcionais
Contar Funes de Dados Calcular Tamanho Funcional Contar Funes Transacionais Documentar e Reportar a Contagem
10
________________________________________________________________________ Complexidade Tipo Funcional Arquivo Lgico Interno (ALI) Arquivo de Interface Externa (AIE) Entrada Externa (EE) Sada Externa (SE) Consulta Externa (CE) Baixa 7 PF 5 PF 3 PF 4 PF 3 PF Mdia Alta 10 PF 15 PF 7 PF 4 PF 5 PF 4 PF 10 PF 6 PF 7 PF 6 PF
________________________________________________________________________ migrao de dados. Observao1: Funo Alterada Uma funo de dados (Arquivo Lgico Interno ou Arquivo de Interface Externa) considerada alterada quando houver incluso ou excluso de tipo de dados. Tambm considerada alterada se algum tipo de dado sofrer mudana de tamanho (nmero de posies) ou tipo de campo (por exemplo: mudana de numrico ou alfanumrico), caso a mudana decorra de alterao de regra de negcio. Uma funo transacional (Entrada Externa, Consulta Externa e Sada Externa) considerada alterada, quando a alterao contemplar: Mudana de tipos de dados; Mudana de arquivos referenciados; Mudana de lgica de processamento.
O CPM 4.3 define lgica de processamento como requisitos especificamente solicitados pelo usurio para completar um processo elementar. Esses requisitos devem incluir as seguintes aes: Validaes so executadas; Frmulas matemticas e clculos so executados; Valores equivalentes so convertidos; Dados so filtrados e selecionados atravs da utilizao de critrios; Condies so analisadas para verificar quais so aplicveis; Um ou mais ALIs so atualizados; Um ou mais ALIs e AIEs so referenciados; Dados ou informaes de controle so recuperados; Dados derivados so criados atravs da transformao de dados existentes, para criar dados adicionais; O comportamento do sistema alterado; Preparar e apresentar informaes para fora da fronteira; Receber dados ou informaes de controle que entram pela fronteira da aplicao; Dados so reordenados. Observao 2: Outros Tipos de Funes Alteradas Este Roteiro considera funo alterada, qualquer mudana em funcionalidades da aplicao devido s mudanas de Regras de Negcio. Por exemplo, uma funcionalidade de cadastro implicava na incluso de um telefone do gerente. Devido a mudanas no processo de negcio, a funcionalidade deve sofrer uma manuteno adaptativa para cadastrar dois telefones do gerente. Desta forma, o Roteiro considera esta funo como uma Entrada Externa alterada, PF_ALTERADO em um Projeto de Melhoria, mesmo que no exista mudana de lgica, mudana de Tipos de Dados e mudana de arquivos
Roteiro de Mtricas de Software do SISP 12
________________________________________________________________________ referenciados. Sero tratadas como manutenes adaptativas apenas as manutenes que implicarem exclusivamente em mudanas em requisitos no funcionais. Se uma mesma funcionalidade tiver mudanas em requisitos funcionais e no funcionais, esta deve ser contada apenas uma vez, como funo alterada em um Projeto de Melhoria. Observao 3: Migrao de Dados PF_CONVERSO As caractersticas do esforo de desenvolvimento ou de melhoria de um sistema so bastante diferentes daquelas do esforo de migrao de dados, exigindo habilidades diferentes e geralmente resultando em equipes distintas para esses dois tipos de tarefas. Devido a isso, fortemente recomendado que os projetos de migrao de dados sejam tratados como objetos separados dos projetos de desenvolvimento e de melhoria e tenham precificao prpria. Dessa forma, este Roteiro recomenda suprimir o PF_CONVERSO das frmulas de desenvolvimento e de melhoria e considerar estas funcionalidades como um projeto de migrao de dados, que ser dimensionado como um novo projeto de desenvolvimento, conforme a seo 4.2 deste documento. O captulo seguinte define mtricas para tratar os itens no mensurveis pelo CPM, ou seja os demais tipos de projetos de manuteno de software.
4. Itens No Mensurveis
O Manual de Prticas de Contagem (CPM) no contempla todos os tipos de projetos de manuteno, apenas o de Melhoria. Este captulo tem como propsito descrever os diversos projetos de manuteno e definir mtricas baseadas nas regras de contagem de Pontos de Funo do CPM para seu dimensionamento. Quanto documentao de projetos de manuteno pequenos (menores que 100 PF), deve-se registrar a solicitao e documentar os requisitos do projeto de manuteno e da aplicao impactada pela demanda, de forma detalhada, visando apoiar a contagem de Pontos de Funo da demanda. importante tambm documentar as estimativas e a contagem de Pontos de Funo. O Anexo II e Anexo III apresentam, respectivamente, um modelo de Documento de Requisitos e um modelo de Documento de Contagem de Pontos de Funo para projetos de manuteno de pequeno porte (menores que 100 PF).
________________________________________________________________________ esto associadas aos requisitos no funcionais da aplicao. Um projeto de melhoria consiste em demandas de criao de novas funcionalidades (grupos de dados ou processos elementares), demandas de excluso de funcionalidades (grupos de dados ou processos elementares) e demandas de alterao de funcionalidades (grupos de dados ou processos elementares) em aplicaes implantadas em produo. Segue a Frmula de Contagem de Pontos de Funo de Projetos de Melhoria. PF = PF_INCLUIDO + (0,40 x PF_EXCLUIDO) + (FI x PF_ALTERADO) Definies: PF_INCLUDO = Pontos de Funo associados s novas funcionalidades que faro parte da aplicao. PF_ALTERADO = Pontos de Funo associados s funcionalidades existentes na aplicao que sero alteradas no projeto de manuteno. PF_EXCLUDO = Pontos de Funo associados s funcionalidades existentes na aplicao que sero excludas no projeto de manuteno. FI = Fator de Impacto pode variar de 50% a 100% de acordo com o seguinte: Funcionalidade de sistema desenvolvida ou mantida por meio de um projeto de melhoria pela empresa contratada : FI = 50% Funcionalidade de sistema no desenvolvida ou mantida por meio de um projeto de melhoria pela empresa contratada com documentao atualizada: FI = 75% Funcionalidade de sistema no desenvolvida ou mantida por meio de um projeto de melhoria pela empresa contratada sem documentao atualizada: FI =100%. A contratada deve redocumentar a funcionalidade mantida, gerando a documentao completa da mesma, aderente ao processo de software da contratante. Tendo em vista que o FI equivale incluso de funcionalidade, se houver uma nova demanda de projeto de melhoria na funcionalidade em questo, ser considerado que a contratada desenvolveu a funcionalidade. Observe que o percentual de 100% apenas ser considerado na primeira demanda de projeto de melhoria em cada funcionalidade.
Os percentuais de multiplicao propostos so estimados, podendo ser reajustados conforme avaliao da base histrica dos servios realizados no rgo ou entidade. Os rgos e entidades que j possuem base histrica de projetos concludos com Contagem Detalhada de Pontos de Funo e um processo de desenvolvimento implantado com documentao das aplicaes a serem mantidas, podem utilizar o mtodo de Contagem de Pontos de Funo de Projetos de Melhoria publicado pela NESMA Netherlands Software Metrics Users Association no documento "Function Point Analysis for Software Enhancement Guidelines" [NESMA, 2009]. Para o clculo dos Pontos de Funo Includos, Alterados e Excludos, segue as frmulas estabelecidas abaixo [NESMA, 2009]:
14
________________________________________________________________________ PF_INCLUIDO = QPI; PF_EXCLUIDO = QPE x 0.40; PF_FD_ALTERADO = FD-QPA x FFD, sendo FFD entre 0,25 e 1,00, conforme tabela abaixo (para funes de dados); PF_FT_ALTERADO = FT-QPA x FFT, sendo FFT entre 0,25 e 1,50, conforme tabela abaixo (para funes transacionais); PF_ALTERADO = PF_FD_ALTERADO + PF_FT_ALTERADO. Onde: QPI = Quantidade de Pontos de Funo includos; QPE = Quantidade de Pontos de Funo excludos; PF_FD_ALTERADO = Pontos de Funo alterados para Funes de Dados; PF_FT_ALTERADO = Pontos de Funo alterados para Funes Transacionais; FD-QPA = Quantidade de Pontos de Funo alterados em funes de dados; FT-QPA = Quantidade de Pontos de Funo alterados em funes transacionais; FFD = Fator de impacto de alteraes em funes de dados; FFT = Fator de impacto de alteraes em funes transacionais. O clculo dos fatores de impacto so obtidos atravs dos percentuais de alteraes conforme abaixo: a) Funes de Dados: Percentual de alteraes em funes de dados: PFD = QTDA / QTDT x 100; QTDA = Quantidade de Tipos de Dados Alterados; QTDT = Quantidade de Tipos de Dados Totais na Funo Original. Com o valor obtido em PFD, procura-se na tabela qual o valor do fator de impacto:
Fator de Impacto em Funes de Dados Alteradas (FFD) PFD Fator de Impacto (FFD) Entre 0 e 33% 0,25 Entre 33% e 66% 0,5 Entre 66% e 100% 0,75 Maior que 100% 1
15
________________________________________________________________________ b) Funes Transacionais: Percentual alteraes em funes transacionais (PFT1) = QTDA / QTDT x 100; Percentual alteraes em funes transacionais (PFT2) = QFTRA / QFTRT x 100; QTDA = Quantidade de Tipos de Dados Alterados; QTDT = Quantidade de Tipos de Dados Totais na Funo Original; QARA = Quantidade de Arquivos Referenciados Alterados; QART = Quantidade de Arquivos Referenciados Totais na Funo Original.
Fator de Impacto em Funes Transacionais Alteradas (FFT) PFT2 / PFT1 Entre 0% e 33% Entre 33% e 66% Entre 66% e 100% Maior que 100% Entre 0% e 66% 0,25 0,5 0,75 1 Entre 66% e 100% 0,5 0,75 1 1,25 Maior que 100% 0,75 1 1,25 1,5
Caso FFT seja maior que 1, recomenda-se reconsiderar a melhoria. Observao Importante Embora este mtodo seja utilizado por algumas organizaes, importante ressaltar que em algumas simulaes realizadas com base no mtodo da NESMA os resultados ficaram inconsistentes. Exemplo 1: Suponha uma aplicao com leitura de um Arquivo de Interface Externa com leitura de 2 Tipos de Dados (nome, taxa). Na manuteno, o usurio solicita a leitura de um novo Tipo de Dados, por exemplo uma Sigla. Ento, considerando o mtodo NESMA, a contagem de PF da funo de dados seria a seguinte: Aplicao Implantada : AIE: Taxa RL:1 TD:2 - 5 PF Manuteno: incluso do TD Sigla PFD = QTDA / QTDT x 100 PFD = (1 / 2) X 100 = 50% FFD = 0,5 PF_ALTERADO = 5 x 0,5 = 2,5 PF Exemplo 2: Suponha uma aplicao com leitura de um Arquivo de Interface Externa com leitura de 47 Tipos de Dados. Na manuteno, o usurio solicita a leitura de um novo Tipo de Dados, por exemplo uma Sigla. Ento, considerando o mtodo NESMA, a contagem de PF da funo de dados seria a seguinte: Aplicao Implantada : AIE: Taxa RL:1 TD:47 - 5 PF
16
________________________________________________________________________ Manuteno: incluso do TD Sigla PFD = QTDA / QTDT x 100 PFD = (1 / 47) X 100 = 2,1 % FFD = 0,25 PF_ALTERADO = 5 x 0,25 = 1,25 PF Observe que o esforo para a alterao foi o mesmo ou superior na Aplicao do exemplo 2. No entanto, pelo mtodo da NESMA, a contagem de PF do exemplo 2 a metade (1,25 PFs) da contagem de PF do exemplo 1 (2,5 PFs). Alm disso, nos casos de ausncia de documentao atualizada da Contagem Detalhada de Pontos de Funo da aplicao implantada, a operacionalizao da contagem de Pontos de Funo de projetos de melhoria por esse mtodo pode ser bastante trabalhosa. Assim, considerando a inconsistncia do mtodo, suas dificuldades de operacionalizao e o fato de que na prtica observado que o esforo para alterao de uma funcionalidade depende do conhecimento da equipe sobre a aplicao implantada e da qualidade da sua documentao e do seu cdigo, este Roteiro no recomenda o uso do mtodo sem base histrica de projetos e documentao atualizada e prope o uso dos mesmos fatores de impacto levando em conta a familiaridade com o cdigo e a qualidade da documentao.
________________________________________________________________________ Quando o sistema em produo tiver sido desenvolvido pela contratada, a manuteno corretiva ser do tipo Garantia, conforme prazos e demais clusulas do contrato em questo. Caso no exista clusula contratual de Garantia, deve ser considerada a garantia de seis meses, preconizada por lei (Cdigo do Consumidor). Quando o sistema no tiver sido desenvolvido pela contratada, dever ser estimado e calculado o tamanho do projeto de manuteno corretiva. A estimativa e dimensionamento de tamanho de projetos de manuteno corretiva em Pontos de Funo devem levar em considerao a documentao do sistema disponvel e os artefatos a serem mantidos. Seguem as frmulas a serem consideradas: a) Aplicao com documentao completa Nestes casos, a aferio do tamanho em Pontos de Funo da funcionalidade ou das funcionalidades corrigidas considera 60% do PF_ALTERADO, seguindo os conceitos do CPM 4.3, mostrados na seo 4.1. Deve-se ressaltar que no h necessidade de correo da documentao do sistema, apenas dos artefatos associados correo do cdigo. PF = PF_ALTERADO x 0,60
b) Aplicao sem documentao ou com documentao desatualizada ou documentao incompleta e sem redocumentao de requisitos Nestes casos, a aferio do tamanho em Pontos de Funo da funcionalidade ou das funcionalidades corrigidas considera 70% do PF_ALTERADO, observando os conceitos do CPM 4.3, apresentados na seo 4.1. PF = PF_ALTERADO x 0,70 c) Aplicao sem documentao ou com documentao desatualizada ou incompleta ou completa e com redocumentao de requisitos Nestes casos, a aferio do tamanho em Pontos de Funo da funcionalidade ou das funcionalidades corrigidas considera 80% do PF_ALTERADO, seguindo os conceitos do CPM 4.3, apresentados na seo 4.1. Deve-se destacar que alm da correo das funcionalidades em questo e da documentao do projeto de manuteno corretiva realizado, a documentao das funcionalidades deve ser atualizada pela contratada. PF = PF_ALTERADO x 0,80 Em todos os trs itens acima, os percentuais de multiplicao so estimados, podendo ser reajustados conforme avaliao da base histrica dos servios realizados no
Roteiro de Mtricas de Software do SISP 18
________________________________________________________________________
Nos dois itens acima, os percentuais de multiplicao so estimados, podendo ser reajustados conforme avaliao da base histrica dos servios realizados no rgo ou entidade.
20
________________________________________________________________________ PF = PF_ALTERADO x 0,70 b) Adaptao de funcionalidades com necessidade de redocumentao Nestes casos, a aferio do tamanho em Pontos de Funo da funcionalidade ou das funcionalidades que sofreram impacto deve considerar 80% do PF_ALTERADO, seguindo os conceitos do CPM 4.3, apresentados na seo 4.1. Deve-se destacar que alm da adequao das funcionalidades em questo e da documentao do projeto de manuteno adaptativa realizado, a documentao das funcionalidades deve ser atualizada. PF = PF_ALTERADO x 0,80 Nos dois itens acima, os percentuais de multiplicao so estimados, podendo ser reajustados conforme avaliao da base histrica dos servios realizados no rgo ou entidade.
21
________________________________________________________________________ Em alguns casos de Apurao Especial Atualizao de dados, o usurio solicita uma consulta prvia das informaes atualizadas para validao. De fato, uma prtica interessante para evitar informaes errneas na base de produo dos sistemas. Esta Consulta Prvia, classificada como Consulta Externa ou Sada Externa deve ser dimensionada, considerando-se 60% do tamanho da funcionalidade em questo, conforme a frmula abaixo: PF = PF_NO_AJUSTADO x 0,60 4.8.2 Apurao Especial Gerao de Relatrios Uma apurao especial um projeto que inclui a gerao de relatrios em uma ou mais mdias para o usurio. Em alguns casos, so solicitadas extraes de dados e envio dos dados para outros sistemas. Caso neste envio de dados sejam requisitadas atualizaes no sistema de origem, ento estas funes so Sadas Externas, devido atualizao do Arquivo Lgico Interno. Deve-se destacar que estas funes so executadas apenas uma vez, no fazendo parte da aplicao. Nestes casos, considera-se contagem de Pontos de Funo das funcionalidades desenvolvidas. Frequentemente, estas funcionalidades so classificadas como Sadas Externas. Tambm podem ser classificadas como Consultas Externas, caso no possuam clculos ou criao de dados derivados. importante ressaltar que as funes de dados associadas aos dados atualizados no devem ser contadas, considerando que no h mudanas nas estruturas dos Arquivos Lgicos. PF = PF_NO_AJUSTADO 4.8.3 Apurao Especial Reexecuo Em alguns casos a empresa contratante pode ter interesse em executar uma apurao especial mais de uma vez. Nestes casos, ela deve solicitar formalmente contratada o armazenamento do script executado. Desta forma, se for solicitada a reexecuo de uma apurao especial, esta deve ser dimensionada com aplicao de um fator considerando 10% na contagem de Pontos de Funo da apurao especial em questo, da seguinte maneira: PF = PF_NO_AJUSTADO x 0,10 O percentual de multiplicao proposto no item acima estimado, podendo ser reajustado conforme avaliao da base histrica dos servios realizados no rgo ou entidade.
22
________________________________________________________________________
________________________________________________________________________ 20% dos Pontos de Funo da aplicao em questo, conforme a frmula abaixo. PF = PF_NO_AJUSTADO x 0,20 Caso a demanda seja a gerao de artefatos de documentao de todas as fases do processo de desenvolvimento, deve-se considerar um percentual mais alto de 30% a 50%, dependendo dos artefatos a serem gerados. As premissas utilizadas devem ser conforme clusulas contratuais e documentadas no documento de estimativas do projeto. O percentual de multiplicao proposto acima estimado, podendo ser reajustado conforme avaliao da base histrica dos servios realizados no rgo ou entidade.
________________________________________________________________________ A contagem de PFT deve considerar o seguinte [NESMA, 2009]: Determinar o tamanho em Pontos de Funo de cada funo de dados ou transacional envolvida no teste. Calcular o tamanho em Pontos de Funo de todas as funes de dados ou transacionais envolvidas no teste.
A converso do PFT em Ponto de Funo deve ser feita de acordo com a frmula abaixo: PF = PFT x 0,20 importante ressaltar que as funes testadas consideradas no PFT devem ser documentadas. Observe que estas funes faro parte do escopo do projeto de manuteno.
25
________________________________________________________________________
Estimar Tamanho
Estimar Cronograma
Estimar Custo Estimar Recursos Computacionais Crticos Analisar e Aprovar Estimativas Acompanhar Estimativas Calibrar e Melhorar o Processo
Documentar Estimativas e Premissas Documentar Acompanhamento Documentar Resultados finais e Lies Aprendidas
Figura 2: Processo de Estimativas de Projetos de Software [Hazan, 2008] O principal insumo (artefato de entrada) para um processo de estimativas o documento de requisitos. Como as estimativas devem ser realizadas no incio do processo de desenvolvimento de software, ento, o artefato utilizado um documento inicial de requisitos, por exemplo: Documento de Viso ou Formalizao Simples de Requisitos. O estimador deve analisar os requisitos para garantir a qualidade e ento estimar o tamanho do projeto de software. O prximo passo a derivao das estimativas de esforo, prazo (cronograma), custo (oramento) com base na estimativa de tamanho e nos dados histricos de projetos concludos da organizao, assim como o estabelecimento da estimativa de recursos computacionais crticos e dos recursos da equipe a ser alocada ao projeto. Neste ponto, as principais estimativas foram geradas e precisam ser documentadas. As premissas e suposies utilizadas na gerao das estimativas, dentre outras: complexidade do projeto, plataforma de desenvolvimento, tipo do projeto, percentual de evoluo de requisitos, tambm devem ser documentadas [Hazan, 2008]. A realizao das estimativas por um analista de mtricas que no atue na equipe
Roteiro de Mtricas de Software do SISP 26
Estimar Esforo
________________________________________________________________________ do projeto, constitui uma prtica recomendada. O analista de mtricas deve analisar tambm a consistncia da documentao utilizada na estimativa. No decorrer do processo de desenvolvimento, as estimativas devem ser acompanhadas conforme o refinamento dos requisitos. O projeto deve ser reestimado aps a fase de requisitos, quando for gerada a especificao de casos de uso, e sempre que ocorrerem mudanas significativas nos requisitos funcionais ou no funcionais. Quando o projeto concludo, deve-se aferir e documentar o tamanho, prazo, custo, esforo e recursos realizados, assim como outros atributos relevantes do projeto, visando a coleta de dados para a melhoria do processo de estimativas. As lies aprendidas tambm devem ser documentadas [Hazan, 2008]. Portanto, para os contratos de projetos de software, baseados na mtrica Pontos de Funo, as estimativas devem ser realizadas em trs marcos do processo de desenvolvimento de software, a saber:
Estimativa inicial: realizada aps o fechamento do escopo do projeto. Geralmente baseada em um documento inicial de requisitos, por exemplo Documento de Viso. Constitui uma boa prtica a previso de evoluo de requisitos, especialmente em projetos de desenvolvimento de mdio ou grande porte. Nessa etapa importante destacar os seguintes conceitos na rea de estimativas: Uma Estimativa obtida por meio de uma atividade tcnica, utilizando mtodos de estimativas. No deve sofrer interferncias polticas. A Meta um desejo, em funo de necessidades de negcio, estabelecida politicamente. Um Compromisso um acordo da gerncia com as equipes tcnicas para alcanar uma meta [Parthasarathy,2007]. Em um cenrio ideal os resultados da estimativa atendem as metas de negcio. Quando este cenrio no real, fundamental a reduo de escopo do projeto, de modo que a meta se adapte aos resultados da estimativa. Contagem de Pontos de Funo de Referncia: realizada aps o aceite dos requisitos. Geralmente, leva em considerao a Especificao dos Casos de Uso e Regras de Negcio da aplicao. Contagem de Pontos de Funo Final: realizada aps a homologao da aplicao. Esta contagem leva em considerao as funcionalidades efetivamente entregues para o usurio pela aplicao.
Para fins de faturamento, que realizado durante o desenvolvimento, deve-se considerar a Contagem de Referncia e posteriormente considerar os ajustes no faturamento aps a Contagem Final. importante ressaltar que as mudanas de requisitos tambm sero consideradas no tamanho projeto a ser faturado, conforme descrito no captulo 6. Alm disso, se estas mudanas forem significativas, maiores que a evoluo de requisitos (scope creep) prevista na estimativa inicial, o prazo do projeto deve ser reestimado. Toda mudana de requisito deve passar por uma anlise de impacto entre contratante e contratada. As sees seguintes apresentam os mtodos de estimativas de tamanho, prazo, custo e esforo a serem utilizados nos projetos de software em contratos.
27
________________________________________________________________________
Contagem de Pontos de Funo: significa medir o tamanho do software por meio do uso das regras de contagem do IFPUG [IFPUG, 2010]; Estimativa de Pontos de Funo: significa fornecer uma avaliao aproximada do tamanho de um software utilizando mtodos diferentes da Contagem de Pontos de Funo do IFPUG.
O mtodo CEPF visa aferir o tamanho em PF de maneira simplificada, com base no conhecimento dos requisitos iniciais do projeto. Inicialmente, os requisitos funcionais iniciais documentados nas propostas comerciais, nos documentos de viso, formalizao simples de requisitos ou em qualquer especificao inicial do sistema do usurio so mapeados nos tipos funcionais da Anlise de Pontos de Funo: Arquivo Lgico Interno (ALI), Arquivo de Interface Externa (AIE), Entrada Externa (EE), Consulta Externa (CE) e Sada Externa (SE) (Figura 1). Posteriormente, os Pontos de Funo so associados a cada funo identificada, baseando-se nas tabelas de complexidade e de contribuio funcional do CPM (Tabela 1). O estimador deve realizar uma leitura no documento inicial de requisitos, buscando informaes relevantes para a identificao de processos elementares. O processo elementar definido como a menor unidade de atividade significativa para o usurio. O processo elementar deve ser completo em si mesmo, independente e deixar a aplicao em um estado consistente [IFPUG, 2010]. Em outras palavras, os processos elementares so funes transacionais independentes, isto , funes sequenciais pertencem a um mesmo processo elementar e funes independentes constituem processos elementares diferentes.
28
________________________________________________________________________
Documentao do Software
Mapeando em nmeros
Figura 3: Modelo Lgico da Anlise de Pontos de Funo Uma vez identificado o processo elementar, o estimador deve buscar o entendimento deste para classific-lo em Entrada Externa, Consulta Externa ou Sada Externa. Adicionalmente, o estimador deve descobrir os dados associados ao processo elementar, visando a determinao da complexidade funcional da funo identificada. Caso no seja possvel a identificao da complexidade da funcionalidade em questo, recomenda-se a utilizao da complexidade Mdia. Na anlise do processo elementar tambm so identificados os grupos de dados lgicos da aplicao, que so classificados como Arquivos Lgicos Internos ou Arquivos de Interface Externa. Caso no seja possvel a identificao da complexidade da funo de dados em questo, recomenda-se a utilizao da complexidade Simples. importante ressaltar que se o estimador identificar mais de um Registro Lgico no Arquivo Lgico Interno, recomenda-se utilizar a complexidade Mdia. A seguir so apresentadas dicas para ajudar no mapeamento dos requisitos funcionais da aplicao nos tipos funcionais da APF. As necessidades e funcionalidades especificadas para o projeto, contidas no documento inicial de requisitos, devem ser enquadradas em uma das seguintes tabelas: Tabela 2 - Contagem dos Arquivos Lgicos Internos (ALIs): Banco de Dados Lgico da Aplicao (tabelas e arquivos mantidos pela aplicao). Consideraes: Identifique os grupos de dados lgicos de aplicao nos modelos de dados ou diagrama de classes ou a partir dos requisitos funcionais, descritos nos documentos de requisitos (Documento de Viso, Relao de Casos de Uso, etc.). No considere arquivos fsicos, arquivos de ndices, arquivos de trabalho e tabelas de relacionamento sem atributos prprios (tabelas que existem para quebrar o relacionamento m x n e apenas transportam as chaves estrangeiras). As entidades fracas tambm no so consideradas um ALI. Se possvel, tente descobrir os atributos lgicos, campos reconhecidos pelo usurio, e subgrupos de dados existentes para obter a
Roteiro de Mtricas de Software do SISP 29
________________________________________________________________________ complexidade funcional, segundo as regras de contagem do CPM. Caso no seja possvel, a experincia tem mostrado que a maioria dos ALIs dos sistemas so de complexidade Simples. N ALIs Simples: N ALIs Mdio: N ALIs Complexo: Total PF: Tabela 2: Identificao dos Arquivos Lgicos Internos da Aplicao Tabela 3 - Contagem de Arquivos de Interface Externa (AIEs): Banco de Dados de outras Aplicaes, apenas referenciados pela aplicao que est sendo estimada (tabelas e arquivos mantidos por outra aplicao). Consideraes: Identifique os grupos de dados lgicos de outras aplicaes referenciados pela aplicao que est sendo estimada. Frequentemente, o referenciamento de dados ocorre para a validao de informaes em cadastros ou consultas. Algumas vezes, relatrios ou consultas referenciam dados externos de outras aplicaes, tambm considerados AIEs. No so considerados arquivos fsicos, arquivos de ndice, arquivos de trabalho, tabelas de relacionamento sem atributos prprios e entidades fracas. Geralmente, os AIEs dos sistemas possuem a classificao de complexidade Simples, porque so considerados para a determinao da complexidade funcional do AIE apenas os atributos referenciados pela aplicao que est sendo contada. N AIEs Simples: N AIEs Mdio: N AIEs Complexo: Total PF: Tabela 3: Identificao dos Arquivos de Interface Externa da Aplicao Tabela 4 - Contagem de Entradas Externas (EEs): Funcionalidades que mantm os Arquivos Lgicos Internos (ALIs) ou alteram o comportamento da aplicao. Consideraes: Identifique as funcionalidades de manuteno de dados. Conte separadamente a incluso, alterao e excluso de dados, isto , cada funo independente de incluso ou alterao ou excluso deve ser contada separadamente. A aplicao possui funes de entrada de dados que alteram o comportamento dela, por exemplo: processamentos batch, ou processamento de informaes de controle? Caso positivo, estas funes tambm devem ser identificadas como Entradas Externas. Se voc no possui conhecimento sobre o processo elementar (funcionalidade
Roteiro de Mtricas de Software do SISP 30
X 7 PF X 10 PF X 15 PF
X 5 PF X 7 PF X 10 PF
________________________________________________________________________ analisada), considere as Entradas Externas identificadas com complexidade Mdia. N EEs Simples: N EEs Mdia: N EEs Complexa: Total PF: Tabela 4: Identificao das Entradas Externas da Aplicao Tabela 5 - Contagem de Consultas Externas (CEs): funcionalidades que apresentam informaes para o usurio sem a utilizao de clculos ou algoritmos. So os processos elementares do tipo l - imprime, l - apresenta dados, incluindo consultas, relatrios, gerao de arquivos pdf, xls, downloads, entre outros. Consideraes: Voc est desenvolvendo uma funo para apresentar informaes para o usurio: uma consulta, relatrio, listbox, download, gerao de um arquivo, gerao de arquivo pdf, xls? Esta funo no possui clculos ou algoritmos para derivao dos dados referenciados nem altera um Arquivo Lgico Interno, nem muda o comportamento do sistema? Caso positivo, estas funes devem ser identificadas como Consultas Externas. Se voc no possui conhecimento sobre o processo elementar (funcionalidade analisada), considere as Consultas Externas com complexidade Mdia. N CEs Simples: N CEs Mdia: N CEs Complexa: Total PF: Tabela 5: Identificao das Consultas Externas da Aplicao Tabela 6 - Contagem de Sadas Externas (SEs): Funcionalidades que apresentam informaes para o usurio com utilizao de clculos ou algoritmos para derivao de dados ou atualizao de Arquivos Lgicos Internos ou mudana de comportamento da aplicao. So as consultas ou relatrios com totalizao de dados, relatrios estatsticos, grficos, gerao de arquivos com atualizao log, downloads com clculo de percentual, entre outros. Consideraes: Voc est desenvolvendo uma funcionalidade para apresentar informaes para o usurio: uma consulta ou relatrio com totalizao de dados, etiquetas de cdigo de barras, grficos, relatrios estatsticos, download com percentual calculado, gerao de arquivo com atualizao de log? Caso positivo, estas funes devem ser identificadas como Sadas Externas. Observe que esta funo deve ter clculos ou algoritmos para processar os dados referenciados nos arquivos lgicos ou atualizar campos (normalmente indicadores) nos arquivos ou mudar o comportamento da aplicao. Caso no haja conhecimento da aplicao de APF ou sobre o processo
Roteiro de Mtricas de Software do SISP 31
X 3 PF X 4 PF X 6 PF
X 3 PF X 4 PF X 6 PF
________________________________________________________________________ elementar (funcionalidade analisada), considere as Sadas Externas com complexidade Mdia. N SEs Simples: N SEs Mdia: N SEs Complexa: Total PF: Tabela 6: Identificao das Sadas Externas da Aplicao A Estimativa de tamanho do projeto em PF deve ser gerada totalizando-se os PF obtidos nas Tabelas 2, 3, 4, 5 e 6. A frmula de contagem ou de estimativa de Pontos de Funo para Projetos de Desenvolvimento a seguinte: PF_DESENVOLVIMENTO = PF_NO_AJUSTADO Observao: O PF_CONVERSO foi suprimido da frmula. Nesse Roteiro recomendado que o projeto de migrao seja tratado como um novo projeto de desenvolvimento. Portanto, este deve ser estimado separadamente. X 4 PF X 5 PF X 7 PF
32
________________________________________________________________________ Cada rgo ou entidade dever possuir sua prpria tabela de produtividade para cada linguagem, considerando-se sempre dados histricos dos projetos j realizados. 5.2.1 Distribuio de Esforo por Fase do Projeto O prximo passo a definio da distribuio de esforo pelas macro atividades do projeto, visando definir o valor agregado ao projeto aps cada fase do ciclo de vida (Tabela 7).
Macro Atividades do Processo de Desenvolvimento de Software Engenharia de Requisitos Design, Arquitetura Implementao Testes Homologao Implantao Percentual de esforo (%) 25% 15% 40% 10% 5% 5%
Tabela 7: Distribuio de Esforo por Macro Atividades do Projeto A Tabela 7 uma sugesto de distribuio de esforo em projetos tpicos, no entanto, em se tratando de um projeto com caractersticas especficas, estes percentuais devem ser alterados para o projeto em questo. Nesses casos, o estimador deve justificar, com observaes no documento de estimativas, as premissas utilizadas para a alterao dos percentuais. Os contratos estabelecidos devem determinar o processo de desenvolvimento a ser seguido com percentual de esforo por fases.
33
________________________________________________________________________
Figura 4: Relao entre a Estimativa de Prazo e de Esforo O mtodo utilizado para estimar o prazo dos projetos (Td) baseado na frmula de Capers Jones [Jones, 2007]. A frmula de Capers Jones estima o prazo, baseando-se no tamanho do projeto em Pontos de Funo, da seguinte maneira:
Td = V t
Onde: Td: prazo de desenvolvimento V: tamanho do projeto em Pontos de Funo t: o expoente t definido de acordo com a Tabela 8
34
Expoente t
0,32 a 0,33 0,34 a 0,35 0,36
Tabela 8: Expoente t por tipo de Projeto importante destacar que o mtodo s funciona para projetos com mais de 100 PF. Caso o projeto seja menor, o prazo deve ser obtido por meio da definio de prazo mximo por tamanho funcional com base em dados histricos do rgo, conforme a Tabela 9. Tamanho do Projeto At 10 PF De 11 PF a 20 PF De 21 PF a 30 PF De 31 PF a 40 PF De 41PF a 50 PF De 51 PF a 60 PF De 61 PF a 70 PF De 71 PF a 85 PF De 86 PF a 99 PF Prazo mximo (em dias teis) 10 dias 20 dias 30 dias 40 dias 50 dias 60 dias 70 dias 88 dias 104 dias
Tabela 9: Estimativa de Prazo de Projetos menores que 100 PF O prazo calculado considera todo o ciclo de vida do projeto, desde a fase de requisitos at a implantao. Assim, caso a estimativa tenha sido realizada ao final da fase de requisitos, descontar do prazo restante o tempo gasto com a fase de requisitos. Caso seja necessrio receber o projeto em um prazo menor que o calculado, recomenda-se propor um processo de desenvolvimento incremental, priorizando funcionalidades em cada iterao de acordo com a necessidade dele. Caso, ainda assim, a estimativa no atenda s necessidades do cliente, ento pode-se reduzir o Td em at 25%, observando-se a Regio Impossvel. No entanto, quanto mais perto da Regio
Roteiro de Mtricas de Software do SISP 35
________________________________________________________________________ Impossvel, o esforo e o custo do projeto aumentam de maneira exponencial. Assim, de um modo geral, a reduo de prazo de 10% implica no aumento de esforo de 20%; a reduo de prazo de 20% implica no aumento de esforo de 50%; a reduo de prazo de 25% implica em um aumento de esforo de 70%. No recomendada a reduo de prazo em mais de 20%. Os percentuais de aumento de esforo so estimados, podendo ser reajustados conforme avaliao da base histrica dos servios realizados no rgo ou entidade. Na seo seguinte abordada a questo da distribuio de esforo e alocao de pessoas ao projeto em questo.
36
________________________________________________________________________
Nome do Recurso Computacional: [considere exclusivamente hardware: micro, perifrico, expanso de memria, rea em disco, banda de rede, etc] Descrio: Responsvel pela Disponibilizao: Data Limite: Parmetros: [caractersticas do recurso: quantidade, perfil, configurao, etc] Tipo do Recurso: [D: recurso para ambiente de Desenvolvimento; P: recurso para ambiente de Produo; H: recurso para ambiente de Homologao] Custo (Opcional): [Custo do recurso computacional. No considerar custos de processamento ou custos operacionais de produo.]
Caso o projeto a ser desenvolvido no possua nenhum recurso computacional crtico, deve ser registrado no documento de estimativas que o projeto no possui nenhum recurso computacional crtico.
________________________________________________________________________ aplicando-se a CEPF, foi obtido o tamanho de 200 PF, ento o tamanho estimado do projeto considerado de 270 PF (200 + 35%), utilizando-se a premissa de evoluo de requisitos em 35%. Esta premissa deve ser documentada. Uma mudana de requisito gera retrabalho da equipe de desenvolvimento, aumentando assim o esforo e o custo do projeto. Por exemplo, suponha um relatrio de clientes em que no final da fase de implementao foi solicitada a exibio de uma nova informao. A equipe de desenvolvimento ter um retrabalho de vrias fases do ciclo de vida. Para tratar o dimensionamento das mudanas de requisitos torna-se importante definir a distribuio de esforo pelas macroatividades do projeto, visando definir o valor agregado ao projeto aps cada fase do ciclo de vida. A Tabela 7 estabelece os percentuais por atividade de forma a permitir a contagem de mudana conforme o estgio do projeto. Esta distribuio percentual de esforo deve ser definida no contrato de software. Por exemplo, suponha um relatrio de clientes em que no final da fase de implementao foi solicitada a exibio de uma nova informao. A equipe de desenvolvimento ter um retrabalho de vrias fases do ciclo de vida. Assim, o tamanho dessa mudana deve ser calculado da seguinte maneira: -Tamanho do relatrio de clientes (original) SE M 5 PF -Tamanho do relatrio de clientes (alterado) SE M 5 PF O requisito alterado ser considerado 100% do PF, supondo que este ser entregue ao cliente sem passar por novas alteraes. Para o requisito original ser considerado o seguinte: Engenharia de Requisitos 25% Design, Arquitetura 15% Implementao 40% Assim, o tamanho da mudana de 4 PF (5 PF x 80% = 4 PF).
________________________________________________________________________
Deve-se ressaltar que no possvel uma reduo de prazo maior que 25%, devido aos clculos de Regio Impossvel e ainda, conforme nos aproximamos da Regio Impossvel, o esforo e o custo do projeto aumentam de maneira exponencial. Como os riscos da reduo de cronograma tambm so altos, no recomendada a reduo de cronograma. Deve-se tentar priorizar funcionalidades trabalhando com o ciclo de vida incremental. Caso o contrato seja baseado em preo por Pontos de Funo, este aumento de esforo ser refletido na contagem de PF. Assim, um aumento de esforo de 20% implica em aumento de 20% no custo de PF; aumento de esforo de 50% implica em aumento de 50% no custo de PF; o aumento de esforo de 70% implica em aumento de 70% no custo de PF.
39
________________________________________________________________________
Canal: tambm refere-se a mdia. Mltiplos canais sinnimo de mltiplas midias. Mdia: descreve a maneira que os dados ou informaes se movimentam para dentro e para fora de uma fronteira de aplicao, por exemplo, apresentao de dados em tela, impressora, arquivo, voz. Este termo utilizado para incluir, dentre outros: diferentes plataformas tcnicas e formatos de arquivos como diferentes mdias. Mltiplas Mdias: quando a mesma funcionalidade entregue em mais de uma mdia. Frequentemente, somente uma mdia requisitada para um usurio especfico em um determinado momento, por exemplo consulta de extrato bancrio via internet como oposto a consulta de extrato bancrio via terminal do banco. Multi-Mdia: quando mais de uma mdia necessria para entregar a funo, por exemplo, uma nova notcia publicada na Internet que apresentada em vdeo e texto. Observe que a notcia completa s apresentada para o usurio se ele ler o texto e assistir o vdeo. Abordagem Single Instance: esta abordagem no reconhece que a mdia utilizada na entrega da funo transacional uma caracterstica de diferenciao na identificao da unicidade da funo transacional. Se duas funes entregam a mesma funcionalidade usando mdias diferentes, elas so consideradas a mesma
40
Abordagem Multiple Instance: esta abordagem especifica que o tamanho funcional obtido no contexto do objetivo da contagem, permitindo uma funo de negcio ser reconhecida no contexto das mdias que so requisitadas para a funcionalidade ser entregue. A abordagem multiple instance reconhece que a mdia para entrega constitui uma caracterstica de diferenciao na identificao da unicidade da funo transacional.
Os cenrios descritos nas sees seguintes no representam uma lista completa de situaes de mltiplas mdias. O entendimento destes exemplos facilitar o entendimento de outros cenrios envolvendo mltiplas mdias. Este Roteiro deve ser atualizado considerando a publicao de novas diretrizes do IFPUG e novos cenrios que emergiro nas contagens de PF dos projetos dos rgos e entidades do SISP.
7.2 Cenrio 2: Mesmos dados de sada como dados em arquivo e relatrio impresso
Uma aplicao grava dados em um arquivo de sada e imprime um relatrio com informaes idnticas s gravadas no arquivo. Nesses casos, sugere-se que se utilize a abordagem single instance considerando que os dados impressos e os dados apresentados no arquivo de sada sejam idnticos e que a ferramenta de desenvolvimento apoie a gerao dessas mltiplas sadas. Assim, apenas uma funcionalidade ser includa na contagem de Pontos de Funo. Caso as lgicas de processamento da gerao do arquivo de sada e do relatrio em papel sejam distintas, o processo elementar no nico e portanto a funcionalidade ser contada duas vezes. E ainda, se a gerao das mltiplas sadas no seguirem o padro da ferramenta de desenvolvimento e tiverem que ser customizadas para o cliente, ento ser utilizada a abordagem multiple instance. Observe que a abordagem multiple instance considera que dados idnticos esto sendo entregues em mais de um tipo de mdia e a contagem de PF incluir todas as instncias de tipos de mdia. Neste cenrio, duas funes so contadas gerao de
Roteiro de Mtricas de Software do SISP 41
________________________________________________________________________ acontece, elas no sero contadas. Entretanto, caso seja justificadamente necessrio manter estas informaes, elas sero consideradas requisitos funcionais do usurio. Assim, caso sejam requisitados Casos de Uso e a implementao de funcionalidades para manter tais tabelas, elas sero contadas como dados de negcio (Arquivo Lgico Interno).
________________________________________________________________________ comercial para atendimento das demandas. Assim, estes servios no possuem contagem de PF associada. importante ressaltar que as atividades de banco de dados associadas ao projeto de desenvolvimento ou de manuteno, por exemplo, preparao de ambiente (testes, homologao, implantao), desempenhadas pelos DBAs da equipe de desenvolvimento, j esto consideradas dentro do projeto de software, no cabendo cobrana adicional. Anlise de Soluo: Servio de apoio destinado anlise de regras de negcio implementadas em solues de TI. Estas demandas no possuem contagem de PF associada. Consultoria: Servio de apoio destinado anlise de regras de negcio a serem implementadas em solues de TI realizado por consultores especialistas da contratada. As demais modalidades de consultoria tambm podem ser enquadradas neste item, por exemplo, Consultoria em Mtricas. Estas demandas no possuem contagem de PF associada. Outras atividades contidas em um processo de software devem ser gerenciadas dentro do projeto de desenvolvimento ou de manuteno, no entanto o esforo deve ser considerado separadamente da estimativa de esforo derivado da contagem de Pontos de Funo. Estas atividades tambm devem ser precificadas a parte. So elas: Treinamento para Implantao: so demandas de treinamentos sobre utilizao do sistema a ser implantado para os gestores de soluo do cliente e usurios. O esforo deste servio deve ser considerado separadamente da estimativa de esforo derivada da contagem de PF. O preo deste servio deve ser calculado, levando-se em conta o preo da hora dos consultores da contratada que estaro realizando atividades de preparao de treinamento e de instrutoria. Em alguns casos, pode ocorrer tambm o deslocamento do instrutor, que tambm deve ser cobrado do contratante. Deve-se ressaltar que este treinamento para implantao pode ser definido na modalidade de EaD, sendo tratado como um projeto de treinamento a parte. O esforo deste considerado dentro do projeto de EaD que no faz parte do projeto de desenvolvimento ou manuteno em questo. Especificao de Negcio: esta atividade a primeira atividade a ser executada em uma demanda de projeto de desenvolvimento e/ou de manuteno. O objetivo desta atividade gerar a Especificao da demanda. O principal produto gerado nesta atividade o artefato: Documento de Viso do Projeto (DV), que deve ser validado pelo contratante, por meio da assinatura do termo de aceite. Alm do DV podem ser gerados outros documentos, tais como: atas de reunio, documento de requisitos no funcionais e glossrio da especificao de negcio. O esforo desta atividade deve ser considerado separadamente da estimativa de esforo derivada da contagem de PF. importante ressaltar que esta atividade de responsabilidade dos Analistas de Negcios da empresa contratante, de acordo com a Instruo Normativa (IN 04). No entanto, por falta de pessoal, alguns rgos e entidades tm contratado estas atividades, que antecedem a fase de requisitos primeira fase do processo de software e devem ser faturadas em horas de consultoria.
Roteiro de Mtricas de Software do SISP 44
________________________________________________________________________ Nesta atividade, deve ser gerado um Documento de Viso (DV) ou outro documento de requisitos de negcios, Documento de Requisitos no funcionais e Glossrio (opcional). O DV o artefato utilizado como insumo para o Planejamento do Projeto - estimativa de tamanho funcional (em Pontos de Funo) do projeto e para o processo de desenvolvimento - atividade de Engenharia de Requisitos do processo de desenvolvimento de software.
10. Concluso
Este documento apresentou um Roteiro para o dimensionamento de tamanho de todos os tipos de projetos de software da contratante, visando a aderncia de todos os projetos desenvolvidos na instituio ao processo de Planejamento de Projetos de nvel 2 do CMMI e s diretrizes da Instruo Normativa IN04. A estimativa de tamanho utiliza a mtrica de Pontos de Funo No Ajustados como unidade de medida, conforme recomendado nos Acrdos do Tribunal de Contas da Unio (TCU). importante ressaltar que o uso de mtricas em contrato de software uma excelente prtica, visando proporcionar uma gesto efetiva dos contratos com base em dados quantitativos e objetivos. A implantao desta modalidade de contrato implica na definio de processos de gesto de requisitos e de gesto de projetos baseados nas melhores prticas dos modelos de Qualidade de Software. Outro ponto a ser destacado a implantao de um Escritrio de Mtricas com Servidores capacitados para realizar contagens de Pontos de Funo e Estimativas. Estes Servidores sero responsveis pela reviso das contagens de Pontos de Funo e Estimativas realizadas pelo Escritrio de Mtricas da empresa contratada e pela manuteno do Roteiro de Mtricas do rgo. Como trabalho futuro recomenda-se a reviso e atualizao deste roteiro sempre que se verificar inconsistncia entre alguma definio do IFPUG, seja publicada em verses futuras do CPM ou em White Paper, ou quando for detectado um novo tipo de servio associado ao desenvolvimento de software no previsto neste trabalho.
Roteiro de Mtricas de Software do SISP 45
________________________________________________________________________
Referncias Bibliogrficas
[Boehm, 2009] BOEHM, B.W. Software Cost Estimation With COCOMO II. Prentice Hall, New Jersey, 2009. [Dekkers, 2003] DEKKERS, C. Measuring the logical or functional Size of Software Projects and Software Application. Spotlight Software, ISO Bulletin May 2003, pp10-13. [Hazan, 2008] HAZAN, C. Anlise de Pontos de Funo: Uma Aplicao nas Estimativas de Tamanho de Projetos de Software. Engenharia de Software Magazine, Edio 2, Devmedia, pp.25-31. [IEEE,1998] IEEE Computer Society. IEEE Standard for Software Maintenance. IEEE Std 1219, 1998. [Meli, 1999] MELI, R.; SANTILLO, L. Function Point Estimation Methods: A Comparative Overview. Proceedings of FESMA 99, Amsterdam, Netherlands, October 1999, pp. 271-286. [IFPUG,2009] IFPUG. Considerations for Counting with Multiple Media. Release 1.0, September, 2009. [IFPUG,2010] IFPUG. Counting Practices Manual. Version 4.3, January, 2010. [Jones, 2007] JONES, C. Estimating Software Costs. Second Edition, Mc Graw Hill, 2007. [NESMA, 2009] NESMA. Function Point Analysis for Software Enhancement Guidelines. Version 2.2.1, 2009 [Parthasarathy,2007] PARTHASARATHY, M. A. Practical Software Estimation: function point methods for insourced and outsourced projects. Addison Wesley, New York, 2007. [Roetzheim, 2005] ROETZHEIM, W. Estimating and Managing Project Scope for New Development. CrossTalk, Vol. April, 2005. [SERPRO, 2008] SERPRO. Mtodos para Estimativa de Projetos de Software Baseado em Pontos de Funo. Relatrio do Grupo de Trabalho para Definio da Utilizao de Pontos de Funo nos Servios de Desenvolvimento e Manuteno de Sistemas. 2008. [Sommerville, 2007] SOMMERVILLE, I. Software Engineering. Pearson Education Limited, 8th Edition, 2007. [Vazquez, 2010] VAZQUEZ, C. E.; SIMES, G. S.; ALBERT, R. M. Anlise de Pontos de Funo: Medio, Estimativas e Gerenciamento de Projetos de Software. 9 Edio. Editora rica, So Paulo.
46
________________________________________________________________________
47
________________________________________________________________________
Anexo II Formalizao Simples de Requisitos Projetos de Manuteno Pequenos (< 100 PF)
Dados Gerais
Nmero da OS Nome do Sistema Mantido Tecnologia Adotada Data do Incio do Servio DD/MM/AAAA
48
________________________________________________________________________
Identificao da Manuteno
Tipo Melhoria Criao de Novas Funcionalidades Melhoria Alterao de Funcionalidades Melhoria Excluso de Funcionalidades Migrao de Dados Corretiva Funcionalidade no Prazo de Garantia (sem custo) Corretiva Funcionalidade No Desenvolvida pela Contratada ou fora do prazo de garantia Redesenvolvimento de Projeto em outra plataforma Atualizao de Plataforma Manuteno em Interface (Cosmtica) Adaptao de Funcionalidades a Requisitos No Funcionais Apurao Especial Base de Dados Apurao Especial Base de Dados Consulta Prvia Apurao Especial Emisso de Relatrio Apurao Especial Reexecuo Atualizao de Dados Manuteno de Pginas Estticas em Intranet / Portal / Internet Manuteno de Documentao de Sistemas Legados Verificao de erros (Anlise e Soluo de Problemas) Pontos de Funo de Testes (Execuo de Testes em funcionalidades no mantidas) Manuteno em Componentes Foi demandada a redocumentao da funcionalidade mantida? Sim No
Descrio dos Requisitos de Manuteno (para cada funcionalidade alterada, utilizar um quadro) a) Tabelas Modificadas pela Manuteno
Nome da Tabela A Tabela atualizada por alguma funcionalidade da aplicao: Sim A Tabela atualizada por outra aplicao: Sim A Tabela foi: Includa Alterada No Excluda No
50
________________________________________________________________________ Houve mudana na regra de negcio (validaes, lgica de processamento, regras de clculo)? Sim No
c) Consultas Afetadas pela Manuteno Considere a tela de parmetros e a de resultados da consulta como apenas uma nica Consulta. Caso a consulta seja do tipo lista e consulta detalhes, considere como funes independentes e preencha quadros diferentes.
Nome da Consulta Total de Campos da Consulta Tabelas Acessadas Total de Campos Afetados = Total de Campos Calculados ou Totalizadores = Existe atualizao de dados (log, indicador...) Sim Campos Includos/Alterados/Excludos No
Houve mudana na regra de negcio (validaes, lgica de processamento, regras de clculo, campos de filtro)? Sim No
________________________________________________________________________ d) Relatrios Afetados pela Manuteno Considere a tela de parmetros e a de resultados do relatrio como apenas um nico Relatrio.
Nome do Relatrio Total de Campos no Relatrio Tabelas Acessadas Total de Campos Afetados = Total de Campos Calculados ou Totalizadores = Existe atualizao de dados (log, indicador...) Sim Campos Includos/Alterados/Excludos No
Houve mudana na regra de negcio (validaes, lgica de processamento, regras de clculo, campos de filtro)? Sim No
52
________________________________________________________________________
Anexo III Modelo de Documento de Contagem de Pontos de Funo Projetos de Manuteno Pequenos (< 100 PF) Documento de Contagem de Pontos de Funo de Projetos de Manuteno Pequenos
Cliente:
Histrico da Reviso
Data Verso Descrio Autor Aprovador
Nome Projeto: Nmero da OS: Responsvel pela Contagem: Descrio da Solicitao de Mudana: Descrio da Atividade Contagem PF Tipo de Manuteno / Total PF
Observaes Relevantes: Conforme a tabela de atividades acima, o total de Pontos de Funo realizados no Projeto _____ na OS _________ de _____ PF No Ajustados.
53