Nothing Special   »   [go: up one dir, main page]

Academia.eduAcademia.edu

MINISTÉRIO DO DESENVOLVIMENTO, INDÚSTRIA E COMÉRCIO EXTERIOR SECRETARIA EXECUTIVA SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO GERAL DE MODERNIZAÇÃO E INFORMÁTICA

MINISTÉRIO DO DESENVOLVIMENTO, INDÚSTRIA E COMÉRCIO EXTERIOR SECRETARIA EXECUTIVA SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO GERAL DE MODERNIZAÇÃO E INFORMÁTICA Guia de Contagem de Pontos de Função para Sistemas de Business Intelligence - BI e Sistemas Transacionais do MDIC Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 CAPÍTULO I MANUAL DE CONTAGEM EM PONTO DE FUNÇÃO 2 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Histórico de Revisão Data 18/03/2015 Versão 1.0.0 Descrição  Elaboração do Manual. Autor Amilton Lobo Aristóteles Benício Camilla Bonfim Fernando Santos Paulo Mazali Sebastião Filho CGMI SECEX CGMI CGMI Infraero CGMI 3 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Sumário 1 Introdução 8 2 Objetivos 9 3 Premissas 10 4 Entendimento da Técnica 10 4.1 Definição do Tipo de Contagem 10 4.2 Identificação do Escopo e da Fronteira 11 4.2.1 Escopo da Contagem 4.2.2 Fronteira da Aplicação 4.3 Identificação de Processos Elementares 11 11 11 4.3.1 Entradas Externas (EE) 11 4.3.1.1 Entradas Batch e On-line 12 4.3.1.1.1 Funções On-line com Processamento Batch – Item aplicável apenas para sistemas transacionais 12 4.3.1.1.2 Funções Executadas em Modo on-line e Batch – Item aplicável apenas para sistemas transacionais 12 4.3.1.1.3 Funções Batch sem Dados Negociais Cruzando a Fronteira 13 4.3.1.2 Manutenção Evolutiva de Cadastros com Funcionalidades de Inclusão, Alteração, Exclusão e Reinclusão de Registros – Item aplicável apenas para sistemas transacionais 13 4.3.1.3 Telas com Campos Habilitados ou Desabilitados – Item aplicável apenas para sistemas transacionais 13 4.3.2 Consultas (Consultas Externas ou Saídas Externas) 14 4.3.2.1 Consultas Implícitas – Item aplicável apenas para sistemas transacionais 15 4.3.2.2 Consultas com Filtros Diferentes e Mesmas Saídas 16 4.3.2.3 Consultas com Filtros Iguais e com Saídas Diferentes 16 4.3.2.4 Consultas com Múltiplas Mídias 16 4.3.2.5 Consulta em Vários Arquivos Físicos 16 4.3.2.6 Consulta em Arquivo Físico Único com Vários Blocos de Informação 17 4.3.2.7 Consulta para Enviar Informações para outra Aplicação – Item aplicável apenas para sistemas transacionais 17 4.3.2.8 Funcionalidade de Login – Item aplicável apenas para sistemas 4 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 transacionais 18 4.3.2.9 Paginação Simples 18 4.3.2.10 Paginação que Envolve Lógica de Processamento 18 4.3.2.11 Relatórios com Gráficos 19 4.4 Funcionalidades Chamadas a partir de Várias Aplicações ou Fronteiras – Item aplicável apenas para sistemas transacionais 20 4.4.1 Navegação entre Aplicações e Chamada Funções de outras Aplicações 4.4.2 Chamada Remota a uma Funcionalidade 4.4.3 Acesso a Dados de Funcionalidades de outras Aplicações 4.5 Alteração de Rotina Complementar a Vários Processos Elementares 20 20 21 21 4.6 Identificação de Funções de Dados 22 4.6.1 Dados de Negócio 22 4.6.2 Dados de Referência 23 4.6.3 Dados de Código 23 4.6.4 Alteração de Lista de Valores Válidos – Domínio (Inclusão/Exclusão de Valores) 24 4.7 Arquivos Lógicos Compartilhados 24 4.7.1 Arquivos Lógicos Internos 4.7.2 Tabelas Corporativas (Área Comum) 4.7.3 Conceito de Mudança Estrutural em ALI/AIE para Projetos de Melhoria 4.8 Contagem de Funções para Conversão de Dados 25 25 4.9 Condições para Quebra de Unicidade do Processo Elementar 26 4.10 24 25 4.9.1 Quebra da Unicidade por Ordenação de Campos Restrições ou Avanços Tecnológicos 26 27 4.10.1 Rolagem de Tela e Abas 27 5 Manutenção de Software 5.1 Manutenção Adaptativa 27 27 5.1.1 Funcionais 28 5.1.2 Não funcionais 28 5.1.2.1 Redesenvolvimento de Software em outra Plataforma – Item aplicável apenas para sistemas transacionais 28 5.1.2.2 Atualização de Plataforma – Item aplicável apenas para sistemas transacionais 29 5.1.2.2.1 Aplicações sem Documentação ou com Documentação 5 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Incompleta 29 5.1.2.2.2 Aplicações com Documentação de Requisitos Completa 29 5.1.2.3 Atualização em Textos de Mensagens Exibidas ao Usuário 30 5.1.2.4 Atualização em Páginas Estáticas de Intranet, Internet ou Portal – Item aplicável apenas para sistemas transacionais 30 5.1.2.5 Múltiplas Mídias 31 5.1.2.6 Documentação de Sistemas Legados 32 5.1.2.7 Desenvolvimento de Funcionalidades para Code Data 32 5.1.2.8 Recuperação de Arquivos Code Data 33 5.2 Manutenção Corretiva 33 5.2.1 Correção de Erros (bug) 5.2.1.1 Aplicação sem Documentação, Desatualizada ou Incompleta e sem Redocumentação de Requisitos 5.2.1.2 Aplicação sem Documentação, Desatualizada ou Incompleta e com Redocumentação de Requisitos 5.2.1.3 Aplicação com Documentação Completa 5.2.2 Apuração Especial 5.2.2.1 Correção de Dados 5.2.2.2 Geração de Relatórios 5.2.3 Verificação de Erros 5.3 Manutenção Perfectiva 33 34 34 35 35 35 36 37 37 5.3.1 Mudanças de Interface (Camada de Apresentação) 37 5.3.1.1 Alteração de Elementos na Interface 38 5.3.1.2 Modificação de Layout 38 5.3.1.3 Manutenção em Portais Dinâmicos – Item aplicável apenas para sistemas transacionais 39 5.3.1.4 Manutenção de Componentes de Portais Dinâmicos – Item aplicável apenas para sistemas transacionais 40 5.4 Manutenção Adaptativa (Evolutiva) x Manutenção Corretiva 41 6 Atividades sem Contagem de Pontos de Função 41 6.1 Mapeamento de Processos de Negócio 41 6.2 Administração de Dados 41 6.3 Administração da Ferramenta 42 6.4 Treinamentos 42 6.4.1 Treinamento para Implantação 6.4.2 Treinamentos Especialistas 6.5 Documentação Inicial do Projeto 42 42 42 6 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC 6.6 Consultoria 7 Diretrizes Específicas Versão 1.0 Data de Impressão 01/04/15 15:04:31 43 43 7.1 Premissas para Contagens Estimadas de Projeto de Desenvolvimento43 7.1.1 Identificação de Code Datas 7.1.2 Imprimir/Anexar/Selecionar Arquivo 7.1.3 “Aprovar/Reprovar”, “Ligar/Desligar” e Similares 7.1.4 Consultas Implícitas 7.2 Utilização dos Itens Não Mensuráveis – INM 43 43 44 44 45 7.3 Fator de Ajuste 45 7.4 Padronização 45 7.4.1 Nomenclatura 7.4.2 Planilha 7.5 Política de Auditoria 45 46 46 7.5.1 Divergências 7.6 Considerações de Mudança de Requisitos - Exemplo 46 47 7.7 Redocumentação 49 7.8 Processo de Revisão do Guia de Contagem 49 7.8.1 7.8.2 Revisão para Correção de Inconsistências e Situações não Previstas 49 Revisão para Adoção de Novas Versões do CPM [2] 50 8 Apurações Especiais [10] 50 9 Referências Bibliográficas 53 7 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Guia de Contagem de Pontos de Função para Sistemas de Business Intelligence - BI e Sistemas Transacionais do MDIC 1 Introdução O Tribunal de Contas da União (TCU) se pronunciou apontando o Ponto de Função (PF) como sendo a unidade mais adequada para determinar o tamanho de qualquer sistema de informação. O MDIC alinhado com a IN04 [7], que instrui que a contratação de serviços de Tecnologia da Informação – TI pela Administração Pública Federal direta, autárquica e fundacional seja feita usando métricas, indicadores e valores. Ela também adota a técnica de Análise de Pontos de Função – APF como unidade de medida para apoiar o acompanhamento e controle do processo de desenvolvimento e manutenção de software. A APF, técnica normatizada, defendida e divulgada pelo International Funcion Point Users Group – IFPUG, visa medir o tamanho de um software em termos significativos para os seus usuários, com base na visão de negócio. O ponto de função – PF é a unidade utilizada para tal fim e busca em um número ponderar os requisitos funcionais de armazenamento e processamento de uma aplicação. As regras, procedimentos e práticas de contagem estão definidos no Counting Practices Manual – CPM [2]. O método de APF do IFPUG é um padrão ISO e está em conformidade com a ISO/IEC 14143-1. O propósito é medir o tamanho funcional e não o tamanho técnico. O tamanho técnico, ou seja, não funcional deve ser tratado como uma medida separada. É importante ressaltar que a técnica de APF foi concebida como uma medida de tamanho funcional para projetos de desenvolvimento e de manutenção evolutiva ou melhoria (enhancement) de software. No entanto, os projetos de software não estão limitados a isso. Assim, torna-se essencial a definição de métodos para o dimensionamento de tamanho de projetos de manutenção (maintenance) baseados em Pontos de Função para que estes possam ser avaliados e gerenciados com base em uma métrica, conforme a instrução normativa supracitada. Para melhor aproveitamento da técnica, é importante uma interpretação por parte da organização para utilização do CPM [2]. Logo, esse guia serve como orientação adicional que possibilita uma menor curva de aprendizado de novos profissionais de contagem, aumento da consistência entre as contagens realizadas por diferentes profissionais, maior convergência entre as contagens, melhor comunicação entre a organização e empresas contratadas e esclarecimento de pontos omissos do 8 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC CPM [2]. 2 Objetivos Este documento tem como propósito apresentar um guia de contagem de Pontos de Função aderente ao CPM [2], além de definir os tipos de projetos de manutenção e uma sistemática para dimensionar o tamanho de tais projetos fundamentando na técnica de APF. O IFPUG reconhece que alguns tipos de manutenção, onde os requisitos funcionais não são alterados e não são passíveis de medição pela técnica, conforme o CPM [2]. Faz menção às definições do Institute of Electrical and Electronics Engineers Inc. – IEEE [1] que define três categorias de manutenção:  Manutenções adaptativas: Uma manutenção adaptativa é qualquer modificação do produto de software, realizada depois de entregue, para mantê-lo utilizável em um ambiente modificado ou mutável. Provê melhorias necessárias para acomodar mudanças no ambiente no qual o produto de software deve operar. Estas mudanças são aquelas que devem ser feitas para que o sistema permaneça integrado com um ambiente mutável. Exemplo: O sistema operacional deve ser evoluído e algumas alterações devem ser  realizadas para acomodar o novo sistema operacional. Manutenções corretivas: Uma manutenção corretiva é qualquer modificação reativa de um produto de software, realizada depois de entregue, para corrigir problemas descobertos. A modificação repara o produto de software para satisfazer os requisitos do sistema. Estão relacionados  a términos anormais de processamento (abends), comportamentos inesperados do sistema ou apresentação de resultados incorretos. Manutenções perfectivas: Uma manutenção perfectiva é qualquer modificação do produto de software, realizada depois de entregue, para melhorar usabilidade e manutenibilidade. Proveem melhorias (improvements) para os usuários, melhorias na documentação dos programas e recodificação para melhorar usabilidade, manutenibilidade e outras características não funcionais do software. Quando se trata de manutenção, a APF mede apenas os projetos de melhoria realizados para atender alterações em requisitos funcionais definidos pelo usuário. Desta forma, manutenções adaptativas, corretivas e perfectivas que não alteram requisitos funcionais definidos pelo usuário não são passíveis de medição conforme a técnica de APF. Apesar destas manutenções não serem passíveis de medição conforme a APF, o MDIC entende que existem tais demandas e que seu tamanho deve ser dimensionado. Neste guia de contagem, a MDIC 9 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 apresenta um entendimento de como medir tais projetos de manutenção para fins de faturamento. É apenas uma equiparação ao Ponto de Função. O guia de contagem apresenta ainda um entendimento conforme a realidade do MDIC para aplicação da técnica de APF, utilizando como base o CPM [2]. 3 Premissas A concepção deste guia utiliza as seguintes premissas:      Fundamentado nos conceitos, regras e definições apresentadas no CPM [2], versão 4.3.1 mantido pelo IFPUG; É aplicado a profissionais que já possui conhecimento da técnica de APF; Não se sobrepõe condições pré-fixadas em contratos entre o MDIC e empresas contratadas para o desenvolvimento e/ou manutenção de software; A cada nova versão do CPM publicado pelo IFPUG, a cada demanda não prevista, este guia pode ser revisto e as alterações devem ser discutidas entre o MDIC e empresas contratadas; Alinhado com a Metodologia de Desenvolvimento de Sistemas do MDIC – MDS [8]; 4 Entendimento da Técnica Esta seção tem como propósito apresentar o entendimento do CPM [2] para aplicação no MDIC. 4.1 Definição do Tipo de Contagem O CPM [2] define três tipos de contagem de Ponto de Função, a saber: Projeto de Desenvolvimento: Este tipo de contagem mede a funcionalidade entregue ao usuário na primeira instalação do software, quando o projeto estiver completo.  Projeto de Melhoria (Enhancement): Este tipo de contagem mede as modificações em uma aplicação já existente que adicione, altere ou exclua funções entregues ao usuário  quando o projeto estiver completo. Aplicação: Este tipo de contagem está relacionado à aplicação instalada. Representa a baseline da contagem de Ponto de Função de uma aplicação, ou seja, é uma medida das funções atuais providas ao usuário. Obs.: Não conta Itens não mensuráveis e conta/paga AIE. No entanto, projetos de manutenção de software devem ser classificados conforme definições apresentadas no item 5 deste guia. 10 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 4.2 Identificação do Escopo e da Fronteira Uma contagem de Pontos de Função se inicia pela definição do propósito da contagem. O propósito de uma contagem de Pontos de Função é fornecer uma resposta a um problema de negócio. Após a definição do propósito, deve-se identificar o escopo e a fronteira da contagem descrita nas subseções seguinte. 4.2.1 Escopo da Contagem No escopo, são definidas quais são as funcionalidades objeto de determinada contagem. O escopo da contagem é determinado pelo propósito da contagem. Identifica os sistemas, as aplicações ou seus componentes que serão dimensionados. Um escopo de contagem pode conter mais de uma aplicação. No entanto, a contagem de Pontos de Função é realizada separadamente considerando cada fronteira de aplicação. 4.2.2 Fronteira da Aplicação A fronteira da aplicação indica o limite lógico entre o sistema que está sendo medido e o usuário. É uma interface conceitual entre a aplicação (interno) e o mundo do usuário (externo). Depende da visão do usuário da aplicação. Uma visão de usuário representa uma descrição formal das necessidades de negócio do usuário na linguagem do usuário, ou seja, é uma descrição das funções de negócio, independente de considerações técnicas ou de implementação. 4.3 Identificação de Processos Elementares Um processo elementar é a menor unidade de atividade identificada pelo usuário. O processo elementar deve ser autocontido e deixar a aplicação em um estado consistente. Os processos elementares são representados pelas Funções de Transação e classificados em: Entrada Externa, Consulta Externa e Saída Externa. 4.3.1 Entradas Externas (EE) Uma Entrada Externa é um processo elementar que processa dados ou informações de controles vindos de fora da fronteira da aplicação. A sua principal intenção é manter um ALI e/ou alterar o comportamento do sistema. A seguir são descritas as diretrizes para contagem de algumas funcionalidades desse tipo, as quais apresentam características próprias. 11 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC 4.3.1.1 Entradas Batch e On-line Quanto a funcionalidades batch e on-line, é necessário definir algumas considerações, baseando-se nas regras de contagem do CPM [2]: 4.3.1.1.1 Funções On-line com Processamento Batch – Item aplicável apenas para sistemas transacionais Alguns sistemas possuem funcionalidades on-line com processamento bastante pesado. Assim, na visão do usuário todo processo é on-line, mas na prática, os dados são gravados por processos batch. Nestes casos, seguindo a visão do usuário, as funções batch não são contadas separadamente, ou seja, o processamento batch faz parte da função on-line. Exemplo: O cliente realiza um DOC em um caixa eletrônico. Essa transação só será efetivada após as 16h, que é o momento que uma rotina batch irá processar todas as transações de DOCs. O processo elementar Efetuar DOC é único e só é completo após a execução da rotina batch. 4.3.1.1.2 Funções Executadas em Modo on-line e Batch – Item aplicável apenas para sistemas transacionais Em alguns sistemas, pode-se observar a opção para o usuário de executar uma função on-line ou em modo batch. Exemplo: suponha a função “excluir processos inativos” no Sistema de Controle de Processo. Esta função pode ser realizada de forma manual pelo usuário em modo on-line. No entanto, a funcionalidade em modo batch exclui, automaticamente, todos os processos com a situação de inativo a mais de 1 (um) ano. Já a rotina de modo on-line permite a exclusão de processos inativos em período informado pelo usuário. Neste caso, apesar das funções on-line e batch possuírem o mesmo propósito: excluir processos devem ser contadas separadamente por possuírem lógica de processamento distinta. As funções executadas em modo batch e modo on-line constituem dois processos elementares distintos. A contagem de Pontos de Função será baseada nos critérios de unicidade de funções (Entrada Externa, Consulta Externa e Saída Externa) do CPM [2], ou seja, se estes processos possuírem os mesmos arquivos referenciados, os mesmos itens de dados e a mesma lógica de 12 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 processamento serão contados apenas uma vez. A entrada de dados em modo batch ou on-line não caracteriza uma lógica de processamento do CPM [2]. É necessário o atendimento a uma lógica de processamento do CPM [2] para justificar a contagem separada. 4.3.1.1.3 Funções Batch sem Dados Negociais Cruzando a Fronteira Alguns sistemas possuem funcionalidades batch que não possuem dados negociais cruzando a fronteira da aplicação. Exemplo: funcionalidade para exclusão de clientes inativos da base de dados, funcionalidade para atualização de saldos de contas correntes. Nestes casos, a funcionalidade existe para atender requisitos funcionais do usuário e devem ser contadas como Entradas Externas. No entanto, como não existem dados negociais cruzando a fronteira da aplicação, conta-se 1 DER (tipo de dado) para a capacidade de iniciar o processo e quantos ALRs forem necessários para completar o processo elementar. 4.3.1.2 Manutenção Evolutiva de Cadastros com Funcionalidades de Inclusão, Alteração, Exclusão e Reinclusão de Registros – Item aplicável apenas para sistemas transacionais Devem ser observados quais processos elementares realmente estão sendo alterados. Algumas vezes, as manutenções em cadastros desse tipo não contemplam a operação de exclusão, portanto esta não deve ser contada como um processo alterado, salvo quando há alteração ou de campo que seja chave de registro ou inclusão ou exclusão de arquivo referenciado ou de alguma lógica de processamento específica. A reinclusão é uma funcionalidade solicitada pelo usuário que permite que registros previamente excluídos sejam recuperados. Assim, constitui um processo elementar distinto da alteração. A operação de reinclusão deverá ser contada em manutenções evolutivas que modifiquem os arquivos referenciados ou os itens de dados ou a lógica de processamento, segundo as regras de unicidade de funções do CPM [2]. 4.3.1.3 Telas com Campos Habilitados ou Desabilitados – Item aplicável apenas para sistemas transacionais Para facilitar a inclusão de dados ou para garantir a integridade dos dados informados, 13 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 diversos artifícios técnicos podem ser utilizados. Um deles é habilitar ou desabilitar campo na tela dependendo de uma informação informada em outro campo. Cadastro de Funcionário DADOS PESSOAIS Nome: Telefone: Endereço: Estado Civil: Casado Solteiro INFORMAÇÃO DO CÔNJUGE Se o usuário informar a opção solteiro, o sistema desabilita os campos de “INFORMAÇÃO DO CONJUGE” Nome: Telefone: Regime de casamento: SALVAR CANCELAR Figura 1 - Tela de exemplo "Campos habilitados ou desabilitados" Exemplo: No sistema de recursos humanos, no momento de inserir um funcionário, foi implementada um controle de tela onde: se o usuário selecionar a opção de “Estado Civil” como “Casado”, o sistema permanece com os campos de “INFORMAÇÃO DE CÔNJUGE” habilitados para preenchimento, porém se o usuário selecionar a opção “Estado Civil” como “Solteiro”, o sistema desabilita esses campos para preenchimento. O fato de o usuário informar ou não as informações de cônjuge não gera uma quebra na unicidade do processo elementar “Inserir funcionário”. O processo elementar deve ser mensurado somando as informações de cônjuge e as de funcionários para determinar a quantidade de DER deste. 4.3.2 Consultas (Consultas Externas ou Saídas Externas) Existem dois conceitos definidos no CPM [2] para Consultas:  A Saída Externa (SE) é um processo elementar que envia dados para fora da fronteira da aplicação e sua principal intenção é apresentar informação ao usuário por meio de lógica de processamento adicional à recuperação de dados ou informações de controle. Sua lógica de processamento deve conter no mínimo uma fórmula matemática ou cálculo ou ainda criar dado derivado. Esse processo pode manter um ou vários arquivos lógicos ou alterar o comportamento do sistema. 14 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC  A Consulta Externa (CE) é um processo elementar que envia dados para fora da fronteira da aplicação e sua principal intenção é apresentar informação ao usuário por meio da recuperação de dados ou informações de controle. Sua lógica de processamento não envolve fórmula matemática, nem cálculo, não cria dado derivado, nenhum arquivo lógico é mantido durante o processo e o comportamento do sistema também não é alterado. 4.3.2.1 Consultas Implícitas – Item aplicável apenas para sistemas transacionais Consultas implícitas são consultas que exibem os dados de um registro para alterações, exclusões ou reinclusões. Essa consulta implícita só deve ser contada se ela não tiver sido considerada anteriormente em outra funcionalidade, a qual tenha a mesma lógica de processamento, os mesmos arquivos referenciados e itens de dados na tela. Exemplo: “Consulta Implícita da alteração de Contratos” e “Consulta de Contratos – Detalhes”. Se estas duas consultas possuírem a mesma lógica de processamento, os mesmos arquivos referenciados e os mesmos itens de dados, devem ser contadas apenas uma vez. Padrão: para melhor entendimento da documentação de contagem, as funcionalidades que se enquadrem como consultas implícitas devem ser documentadas da seguinte maneira: “Consulta implícita da alteração de ‘NOME DA ENTIDADE’”, onde “NOME DA ENTIDADE” é o nome da entidade de negócio ao qual a consulta implícita irá buscar informações para alteração. Alteração Contrato de Aeroportos FILTROS PARA CONTRATO Nome do Contrato: Contrato de TI Sigla: CONTI/2010 Data inicial: 01/01/2010 Tipo de Contrato: Externo ALTERAR Data final: 31/12/2012 CANCELAR Figura 2 - Tela de exemplo de "Consulta implícita" Exemplo: Para o exemplo apresentado na figura acima, seria documentado um processo elementar de Consulta Externa com o nome “Consulta implícita de alteração de Contratos”. 15 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 4.3.2.2 Consultas com Filtros Diferentes e Mesmas Saídas Uma vez identificado o processo elementar de consulta, seguindo as regras de contagem do CPM [2], este é classificado em CE ou SE. Assim, devem ser aplicadas as regras de unicidade do CPM [2] para verificar se estas devem ser ou não contadas. As consultas que possuem os mesmos itens de dados e arquivos referenciados, mas possuam filtros diferentes devem ser consideradas Consultas ou Saídas Externas distintas. Um filtro distinto é uma lógica de processamento distinta - “Dados são filtrados e selecionados através da utilização de critérios”, portanto estas funções são únicas e devem ser contadas. 4.3.2.3 Consultas com Filtros Iguais e com Saídas Diferentes Estas consultas constituem processos elementares distintos e segundo as regras de unicidade de Consultas Externas e Saídas Externas do CPM [2] devem ser contadas separadamente porque possuem itens de dados distintos – saídas diferentes. Assim, se a aplicação tiver duas consultas com filtros iguais e saídas diferentes, estas devem ser contadas separadamente. 4.3.2.4 Consultas com Múltiplas Mídias As consultas impressas ou geradas em formatos distintos (txt, word, excel, pdf), caso envolvam os mesmos arquivos referenciados, os mesmos itens de dados e a mesma lógica de processamento das consultas mostradas em tela, serão consideradas apenas uma Consulta Externa ou Saída Externa. Deve-se ressaltar que esse assunto não é tratado no CPM 4.3.1 [2]. O White Paper [11] publicado pelo IFPUG aponta que cada organização irá definir o uso ou não o conceito de múltiplas mídias como parte do tamanho funcional em pontos de função. O MDIC não considera múltiplas mídias como quebra de unicidade do processo elementar. Este caso será tratado como manutenção perfectiva, conforme descrito no item 5.1.2.5 deste documento. 4.3.2.5 Consulta em Vários Arquivos Físicos Neste caso, é importante analisar qual é o processo elementar. Processos elementares distintos são funcionalidades distintas, a menos que não atendam os critérios de unicidade da APF. 16 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 É importante destacar que o processo elementar é a menor unidade de atividade significativa para o usuário, sendo autocontido e deixando a aplicação em um estado consistente. Exemplo 1: O usuário solicita uma consulta com dados de credores, ordens bancárias e empenhos de um determinado órgão ou unidade gestora. Essa consulta deve trazer o resultado em três arquivos separadamente. Se estes arquivos forem idênticos, ou seja, possuir a mesma lógica de processamento, os mesmos arquivos referenciados e itens de dados, então deve ser considerado apenas um processo elementar, apesar da distinção de arquivos. Caso contrário, se estes arquivos forem diferentes – lógica de processamento distinta ou arquivos referenciados distintos ou ainda itens de dados diferenciados – são considerados 3 processos elementares. 4.3.2.6 Consulta em Arquivo Físico Único com Vários Blocos de Informação Essa consulta deve ser considerada apenas um processo elementar, quando o arquivo contiver vários blocos de informação e for requisito de usuário que o processo somente estará completo quando houver a disponibilidade de todos os blocos dentro do arquivo, ou seja, os blocos contêm informações vinculadas. É importante destacar que se a solicitação for extrair informações desvinculadas e, por considerações técnicas, o usuário solicita que estas informações sejam agrupadas em um mesmo arquivo, não se deve considerar apenas um processo elementar. Cada extração, neste caso, deve ser considerada um processo elementar distinto. Exemplo: Um arquivo de remessa do banco é disponibilizado com informações de conta a pagar e conta a receber. Foi utilizado apenas um arquivo físico por razões técnicas, porém para o negócio trata-se de duas visões distintas. Logo, tem-se dois processos elementares de Consultas / Saídas Externas. 4.3.2.7 Consulta para Enviar Informações para outra Aplicação – Item aplicável apenas para sistemas transacionais Em algumas situações, é necessário o desenvolvimento de um componente que permita a consulta de informações do sistema em tempo real para integração com outras aplicações. Exemplo: O desenvolvimento de um webservice em uma aplicação “A”, possibilitando 17 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão CGMI/SPOA/SE/MDIC 01/04/15 15:04:31 que outra aplicação “B” possa utilizar este webservice para permitir a consulta de informações ao usuário. Para a aplicação “A”, o webservice desenvolvido deverá ser contado como uma Consulta Externa ou Saída Externa, pois sua principal intenção é enviar dados ou informações de controle para fora da fronteira da aplicação, ou seja, para outra aplicação. Para a aplicação “B”, o webservice consultado também será uma Consulta Externa ou Saída Externa, pois sua principal intenção é referenciar dados ou informações de controle da aplicação “A”. 4.3.2.8 Funcionalidade de Login – Item aplicável apenas para sistemas transacionais Funcionalidades de login devem ser consideradas um processo elementar classificado como uma saída externa (SE), quando apresentarem criptografia em sua lógica de processamento, caso somente recupere informações deve ser classificado como uma Consulta Externa (CE). 4.3.2.9 Paginação Simples Geralmente em relatórios extensos, é necessária a utilização de paginação para melhor usabilidade do documento principalmente depois de impresso. A simples paginação do documento para esse fim não deve ser considerada para avaliação da funcionalidade em Consulta Externa ou Saída Externa. 4.3.2.10 Paginação que Envolve Lógica de Processamento Algumas funcionalidades, geralmente em grids (tabelas), o usuário solicita uma paginação para entender o resultado de uma consulta. Costuma ser especificada a quantidade de registros encontrados em relação à quantidade de registros existentes. Esta paginação, quando especificada pelo usuário, pode ser considerada para avaliação da funcionalidade em Consulta Externa ou Saída Externa. 18 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Consulta de Contratos para Aeroportos FILTROS PARA CONTRATO Nome do Contrato: Sigla: Data inicial: Data final: Tipo de Contrato: PESQUISAR CANCELAR FILTROS PARA CONTRATO Nome do Contrato Sigla Data inicial Data final Tipo de Contrato Contrato de TI CONTI/2010 01/01/2010 31/12/2012 Interno Resultado da pesquisa: 1 registro encontrado de 125 registros do possíveis. Página 1 de 1. Figura 3 - Tela de exemplo de "Paginação que envolve lógica de processamento" Exemplo: O sistema de contratos apresenta uma funcionalidade de consulta de contratos (vide figura 3) para apresentar o resultado da consulta. O usuário especificou que deveria aparecer uma linha de resumo da consulta, que apresenta a quantidade de registros retornados e a quantidade dos possíveis registros a serem pesquisados. Para esta situação, a paginação com essa análise da consulta pode ser utilizada para avaliação da funcionalidade em Consulta Externa ou Saída Externa. 4.3.2.11 Relatórios com Gráficos Funções transacionais que contenham gráficos que apenas recuperam dados na tela devem ser consideradas como Consulta Externa, a simples geração de gráfico não é suficiente para determinar que foi efetuado cálculo ou derivou algum dado, isso é uma solução técnica [4 – página 103]. Caso o relatório apresente a mesma informação em diversos tipos de gráficos, por exemplo, pizza, barras, linhas etc em momentos diferentes, cada gráfico deve ser considerado um processo elementar distinto, pois existe uma quebra na lógica de processamento de cada um destes. 19 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 4.4 Funcionalidades Chamadas a partir de Várias Aplicações ou Fronteiras – Item aplicável apenas para sistemas transacionais 4.4.1 Navegação entre Aplicações e Chamada Funções de outras Aplicações A navegação entre aplicações não é contada como processo elementar da aplicação de origem (aplicação que chama a funcionalidade). A navegação apenas é considerada quando a aplicação de origem chama uma funcionalidade de outra aplicação por meio de tecla de função, menu, link etc. Observe que, no caso de navegação, há um link que leva o usuário para a outra aplicação executar completamente a funcionalidade. Se a aplicação em questão recupera dados de funcionalidades de outras aplicações e as retorna para o usuário, não se trata de navegação e então a funcionalidade deve ser contada. Ou ainda, se a aplicação em questão passa parâmetros para outra aplicação executar a funcionalidade, este caso também não deve ser considerado navegação. O envio de parâmetros para outras aplicações é considerado um processo elementar – envio de dados para outra aplicação. No entanto, a contagem da funcionalidade depende do atendimento às regras de contagem de Consulta Externa ou Saída Externa. Exemplo 1: O sistema de empréstimo utiliza o sistema corporativo de cadastro de clientes. Portanto, apesar do sistema de empréstimo ter um link para cadastrar o cliente, este requisito funcional não faz parte do sistema de empréstimo e sim do sistema de clientes. Deve ser considerado na contagem do sistema de empréstimo apenas a função de dados cliente como AIE (Arquivo de Interface externa), não devendo considerar a função transacional de cadastro de cliente como EE do sistema de empréstimo. Exemplo 2: O sistema de empresas utiliza a funcionalidade de pesquisa de municípios do sistema corporativo. Portanto, apesar do sistema de empresa ter um link para esta funcionalidade de pesquisa, este requisito funcional não faz parte do sistema de empresa e sim do sistema corporativo. 4.4.2 Chamada Remota a uma Funcionalidade Se uma funcionalidade em uma aplicação “A” envia dados para outra aplicação “B” processá-los e armazená-los, então a funcionalidade em “B” não será contada no escopo da aplicação “A”. Neste caso, a funcionalidade de “A” é o envio de dados para “B” podendo ser classificada como uma CE ou SE. Deve-se contar como itens de dados da função CE ou SE, os dados que cruzam a fronteira da aplicação “A”. Em “B” a funcionalidade é uma EE. 20 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Deve-se contar como itens de dados da EE, os dados que cruzam a fronteira da aplicação “B”. Exemplo: O sistema de estatísticas recebe arquivos das empresas aéreas contendo informações estatísticas sobre os voos realizados pelas empresas em determinado período. A funcionalidade de importação destes arquivos para o sistema de estatística deve ser considerada Entrada Externa. Os arquivos enviados pelas empresas aéreas devem ser contados CE ou SE para os sistemas destas empresas. 4.4.3 Acesso a Dados de Funcionalidades de outras Aplicações Se uma funcionalidade em uma aplicação “A” acessa dados de outra aplicação “B”, por meio de uma funcionalidade em “B”, em vez de acessar um arquivo (AIE) diretamente, esses dados serão considerados um AIE da aplicação que requereu os dados, desde que esse grupo de dados seja originalmente recuperado de um arquivo lógico em “B” e não seja gravado em um ALI de “A”. Se o dado for gravado também em um ALI de “A” por meio de processamento adicional que não seja somente uma cópia estática, somente se contará esse ALI. De fato, um grupo de dados não pode ser contado como ALI e AIE. Caso ocorra leitura de dados de arquivo de outra aplicação para validação de dados da aplicação em questão, então o AIE deve ser contado. É importante observar que, se uma funcionalidade em uma aplicação “A” acessa dados de outra aplicação “B”, os dados serão considerados um AIE da aplicação “A”, independente da forma tecnológica utilizada para o acesso. Exemplo 1: Se a aplicação “A” estiver utilizando uma view da aplicação “B” que faz acesso a vários arquivos lógicos da aplicação “B”, cada arquivo lógico utilizado será considerado um AIE para a aplicação “A”. Não se pode considerar a view como um arquivo lógico, pois é apenas uma forma de implementação. Exemplo 2: Se a aplicação “A” estiver utilizando um webservice da aplicação “B” que faz acesso a vários arquivos lógicos da aplicação “B”, cada arquivo lógico utilizado será considerado um AIE para a aplicação “A”. Não se pode considerar o webservice como um arquivo lógico, pois é apenas uma forma de implementação. 4.5 Alteração de Rotina Complementar a Vários Processos Elementares 21 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC A alteração de uma rotina (que não seja um processo elementar) compartilhada por vários processos elementares dentro da mesma aplicação, a qual lhes serve de complemento, será considerada alteração em todos os processos elementares daquela aplicação que a utilizam porque a rotina faz parte da implementação do processo elementar. Exemplo: A alteração da rotina de acionamento de evento deverá ser contada como alteração em todos os documentos que acionem aquele evento. Ex.: Funcionalidades que enviam e-mail. 4.6 Identificação de Funções de Dados O CPM [2] define três tipos de dados e a forma como são considerados na Contagem de Ponto de Função de uma aplicação. Os dois primeiros atendem a requisitos funcionais de usuário e o terceiro a requisitos técnicos. 4.6.1 Dados de Negócio Esses dados representam a informação central trazida do modelo conceitual da aplicação. Representam as entidades de negócio da aplicação, ainda que não se tenha necessariamente uma relação um para um entre os grupos desses dados (Arquivos Lógicos) e as entidades de negócio. As áreas funcionais da aplicação armazenam e recuperam essas informações em atendimento a requisitos de usuário e, por atenderem a requisitos funcionais, devem ser contados como funções de dados. Inserção de Contratos para Aeroportos DADOS DO CONTRATO Nome do Contrato: Contrato de Infraestrutura de Tecnologia Sigla: COTI/2010/2015 Data inicial: 01/01/2010 Tipo de Contrato: COD - TIPO Data final: 01/01/2010 Informação de domínio: “I” – Interno e “E” - Externo SALVAR CANCELAR Figura 4 - Tela de exemplo de dados de negócio Exemplo: A tabela utilizada para armazenar informações de contratos, conforme figura acima, certamente será um dado de negócio para a aplicação de gestão de contratos e deve ser mensurada como função de dados. 22 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC 4.6.2 Data de Impressão Dados de Referência Esse tipo de dados está ligado ao processamento de regras de negócio. Armazenam grande parte das regras de negócio relacionadas às funções de negócio e servem para “suportar” as atividades principais do usuário no sistema. Esses dados normalmente são mantidos por usuários de negócio. Sua alteração está ligada diretamente à alteração nas regras de negócio da aplicação e, por darem suporte a regras de negócios, são também contados como funções de dados. Exemplo: Tabela de alíquota de imposto de renda para sistema de folha de pagamento. 4.6.3 Dados de Código Também conhecidos como dados de lista ou dados de tradução, servem para converter informações de sistema não familiares ao usuário em algo reconhecido, tais como a substituição de um código (identificação de um registro numa base de dados) por seu título ou nome. É utilizado também para restringir valores válidos para um determinado campo de uma funcionalidade. Como atende a requisitos técnicos, esse tipo de dado não é contado como função de dado e as transações que os consultam ou atualizam também não são contadas como funções transacionais. Verificar o item 5.1.2.7 deste documento para mensurar funcionalidades desenvolvidas para manutenção de code data. Inserção de Contratos para Aeroportos DADOS DO CONTRATO Nome do Contrato: Contrato de Infraestrutura de Tecnologia Sigla: COTI/2010/2015 Data inicial: 01/01/2010 Data final: 01/01/2010 AEROPORTO RESPOSÁVEL PELO CONTRATO Aeroporto: COD - AEROPORTO Regional: COD - REGIONAL Combobox carregado através de uma lista estática de aeroportos. Após selecionar um aeroporto, a combobox de regionais é preenchida para o aeroporto selecionado, através de uma lista estática de regionais. SALVAR CANCELAR Figura 5 - Tela de exemplo de "code data" Exemplo: Sistemas que utilizam informações de aeroporto e regionais, conforme exemplo da figura acima, onde essas informações sejam essencialmente estáticas, mantidas em um 23 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC banco de dados por razões técnicas (para facilitar a manutenção ou garantir a integridade dos dados informados). Essas informações são consideras code data. Caso essas informações estejam armazenadas em uma área comum ou outro sistema, esse repositório não pode ser mensurado como Arquivo Lógico para a aplicação nem tão pouco os processos elementares desenvolvidos para referenciar estas informações. Nestes casos, verificar o item 5.1.2.7 deste documento para mensurar funcionalidades desenvolvidas para manutenção de code data. 4.6.4 Alteração de Lista de Valores Válidos – Domínio (Inclusão/Exclusão de Valores) Muitos sistemas utilizam listas de valores válidos, que são code data por definição. A mera decodificação de um novo código não será considerada alteração da lógica de processamento, portanto não deverá ser contada em um projeto de melhoria. De fato, a inclusão de itens não pode ser contada como uma manutenção evolutiva. Assim, tal demanda será contada como uma manutenção corretiva de atualização de dados conforme item 5.2.2.1 deste documento. Inserção de Contratos para Aeroportos DADOS DO CONTRATO Nome do Contrato: Contrato de Infraestrutura de Tecnologia Sigla: COTI/2010/2015 Data inicial: 01/01/2010 Tipo de Contrato: COD - TIPO Data final: 01/01/2010 Informação de domínio: “I” – Interno e “E” - Externo SALVAR CANCELAR Figura 6 - Tela de exemplo de "lista de valores válidos" Exemplo: Conforme apresentado na figura acima, a inclusão de um novo “Tipo de Contrato” ou alteração de um dos itens se enquadra na situação descrita neste item. 4.7 Arquivos Lógicos Compartilhados 4.7.1 Arquivos Lógicos Internos Um ALI será considerado compartilhado se for atualizado por mais de uma aplicação e a sua complexidade será definida individualmente em cada fronteira pelos itens de dados atualizados e referenciados em cada fronteira específica. 24 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC 4.7.2 Versão 1.0 Data de Impressão 01/04/15 15:04:31 Tabelas Corporativas (Área Comum) Em projetos de desenvolvimento ou de melhoria, as tabelas corporativas serão contadas como funções de dados – Arquivo Lógico Interno (ALI) para as fronteiras que o mantém ou Arquivo de Interface Externa (AIE) para as demais fronteiras que as referenciam. Nas demais fronteiras, essas tabelas serão contadas também como arquivos referenciados para as funções transacionais. 4.7.3 Conceito de Mudança Estrutural em ALI/AIE para Projetos de Melhoria Sempre que houver uma mudança estrutural por necessidade do negócio do usuário em um ALI/AIE, este deverá ser contado como função de dados alterada em um projeto de melhoria. Mudança estrutural é toda inclusão ou exclusão de campo de um arquivo lógico ou alteração de suas características (alteração de tipo de campo – numérico para alfanumérico etc.). Simples alterações de valores válidos em um ALI não serão consideradas mudanças estruturais. Exemplo: Se um campo aceitava os valores 1, 2 e 3 e passa a aceitar também o valor 4, isto não será considerada uma mudança estrutural. Portanto, não é contado como um projeto de melhoria. Tal demanda será mensurada como uma manutenção corretiva de atualização de dados, conforme item 5.2.2.1 deste documento. Mudanças estruturais que reflitam em mudança de lógica de processamento, tal como mudança em validações nas funcionalidades, estas funcionalidades serão consideradas funcionalidades alteradas em um projeto de melhoria. 4.8 Contagem de Funções para Conversão de Dados No CPM [2] existe a diretriz para a contagem de função de conversão de dados em projetos de desenvolvimento e de melhoria, assim essas funcionalidades de conversão de dados deverão ser contadas. Funcionalidades de conversão consistem em funções fornecidas apenas na instalação para converter dados e/ou atender outros requisitos de conversão especificados pelo usuário, tais como relatórios especiais de conversão. Exemplo: se uma aplicação de Recursos Humanos (RH) estava em uso e uma nova aplicação é 25 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 instalada para substituir a aplicação anterior, os usuários desejam que as informações dos funcionários sejam convertidas e carregadas dentro da nova aplicação. O requisito de conversão especificado pelo usuário é para transferir os dados atuais dos funcionários para o novo sistema de RH. Os requisitos de conversão são contados como Entradas Externas, de acordo com as diretrizes do CPM [2]. Os arquivos do antigo sistema que está sendo substituído não devem ser contados como Arquivos de Interface Externa (AIEs) da nova aplicação. 4.9 Condições para Quebra de Unicidade do Processo Elementar Conforme o CPM [2], um processo elementar é a menor unidade de atividade que tem significado para o(s) usuário(s), deve ser autocontido e deixar o negócio da aplicação que está sendo contada em um estado consistente. Para que ocorra a quebra da unicidade do processo elementar, é necessário que pelo menos uma das três situações abaixo ocorra:    A lógica de processamento é diferente das lógicas executadas em outros processos elementares da aplicação. O grupo de dados identificado é diferente dos grupos identificados em outros processos elementares da aplicação. Os ALIs ou AIEs referenciados são diferentes dos arquivos referenciados em outros processos elementares da aplicação. De fato, a unicidade do processo elementar é um dos pontos mais polêmicos entre os especialistas e foco de diversas discussões na área. Esta sessão tem o objetivo de respaldar o entendimento sobre a quebra da unicidade do processo elementar em algumas situações polêmicas e já bastante discutidas no meio. 4.9.1 Quebra da Unicidade por Ordenação de Campos Em projeto de desenvolvimento, duas consultas com ordenações diferentes ou edição de dados (formatação de dados) diferentes contam apenas uma vez. No entanto, em um projeto de manutenção, a demanda do cliente de alteração em uma ordenação de uma consulta existente é contada como funcionalidade alterada, porque a lógica de processamento de ordenação será modificada. As demandas de alteração na disposição dos campos na tela ou de edição de dados (formatação) devem ser tratadas como manutenções perfectivas, conforme detalhado no item 5.3 deste documento. Existem também situações de consultas em que o usuário pode selecionar o campo que 26 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 será utilizado para ordenação dos resultados da consulta. Nestes casos, deve ser contado um único processo elementar, porque a lógica de processamento de ordenação não é suficiente para quebrar a unicidade do processamento elementar. No entanto, em um projeto de melhoria, se o usuário solicitar uma nova opção de ordenação nesta consulta, esta será contada como funcionalidade alterada, porque a lógica de processamento de ordenação será modificada. 4.10 Restrições ou Avanços Tecnológicos 4.10.1 Rolagem de Tela e Abas Quando uma aplicação não fornecer explicitamente esses recursos e for utilizado outro artifício para simular esta característica, o acesso às diversas seções dos dados ou a rolagem de telas não deverão ser considerados processos elementares distintos. Considerar-se-á sempre a funcionalidade que provê todo o conjunto dos dados solicitados pelo usuário, independente da forma de visualização na consulta. Deve-se ressaltar que a contagem de Pontos de Função é baseada na identificação do processo elementar e não na implementação do mesmo. Assim, se uma consulta for mostrada em uma tela com rolagem ou abas, esta será contada apenas uma vez. No entanto, em alguns casos as abas em uma tela são implementações de processos elementares distintos. Assim, nestes casos devem-se contar todos os processos elementares distintos. 5 Manutenção de Software Esta seção tem como propósito descrever os diversos tipos de projetos de manutenção e mostrar uma solução para o seu dimensionamento em Pontos de Função, visto que o CPM [2] não contempla projetos de manutenção (maintenance), mas apenas o de melhoria (enhancement). Costumam ser chamados de Itens Não Mensuráveis – INM. 5.1 Manutenção Adaptativa Segundo o padrão IEEE [1], manutenção adaptativa é definida como: modificação de um produto de software concluído após a entrega para mantê-lo funcionando adequadamente em um ambiente mutável. Uma manutenção adaptativa pode envolver mudanças em requisitos funcionais ou não funcionais 27 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 (qualidade ou técnico) da aplicação. Assim, serão divididas em manutenções adaptativas de requisitos funcionais e não funcionais. 5.1.1 Funcionais As manutenções adaptativas que envolvem requisitos funcionais são consideradas pela APF como Projeto de Melhoria (enhancement). Estão associados às mudanças em requisitos funcionais da aplicação, ou seja, a inclusão, alteração ou exclusão de funcionalidades em aplicações em produção. Nestes casos, deve-se aferir o tamanho em Pontos de Função conforme definições, regras e fórmulas para Projetos de Melhoria (enhancement) definidos no CPM [2]. 5.1.2 Não funcionais As manutenções adaptativas envolvem requisitos não funcionais, ou seja, requisitos de qualidade ou técnicos que não são medidos pela técnica de APF. Seguem os seguintes tipos de manutenção adaptativa nesta categoria:  Redesenvolvimento de software em outra plataforma;  Atualização de plataforma;  Atualização em textos de mensagens exibidas ao usuário;  Atualização em páginas estáticas de intranet, internet ou portal;  Múltiplas mídias;  Documentação de sistemas legados;  Desenvolvimento de funcionalidades para code data. 5.1.2.1 Redesenvolvimento de Software em outra Plataforma – Item aplicável apenas para sistemas transacionais São considerados nesta categoria projetos que precisam ser migrados para outra plataforma. Exemplo: Um sistema legado em COBOL precisa ser redesenvolvido em JAVA. Tais demandas costumam surgir de sistemas legados, que frequentemente encontramse sem documentação ou com uma documentação desatualizada. Logo, estes projetos serão considerados como novos projetos de desenvolvimento, pois terão que passar por todo ciclo de desenvolvimento. Neste caso, os projetos devem utilizar as definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. 28 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC 5.1.2.2 Atualização de Plataforma – Data de Impressão Item aplicável apenas para sistemas transacionais São consideradas nesta categoria demandas para atualização em uma aplicação existente ou parte dela para executar em versões mais atuais de browsers (ex: versão atual do Internet Explorer, Mozila, Firefox etc.), de linguagens de programação (ex: versão mais atual do Delphi) ou de banco de dados (ex: versão mais atual do Oracle). Também são consideradas nesta categoria aplicações Web desenvolvidas para executar em Internet Explorer que precisam executar também em browser em software livre. Nesta categoria, foram observadas demandas dos seguintes tipos: 5.1.2.2.1 Aplicações sem Documentação ou com Documentação Incompleta Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 80% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. As funções de conversão de dados, se aplicável, devem ser consideradas em 100%. Deve-se destacar que além da adequação das funcionalidades em questão a documentação também deve ser atualizada. INM = (PFf * 0,80) + PFc Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas PFc: Total de Pontos de Função das funções para conversão de dados 5.1.2.2.2 Aplicações com Documentação de Requisitos Completa Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 60% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. As funções de conversão de dados, se aplicável, devem ser consideradas em 100%. Deve-se destacar que somente serão adequadas as funcionalidades em questão e que a documentação não precisa ser atualizada. 29 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 INM = (PFf * 0,60) + PFc Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas PFc: Total de Pontos de Função das funções para conversão de dados 5.1.2.3 Atualização em Textos de Mensagens Exibidas ao Usuário São consideradas nesta categoria as demandas de alteração no texto de mensagens apresentadas ao usuário, desde que estas mensagens não façam parte de ALI’s ou AIE’s. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 10% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. Não será contemplada a documentação das funcionalidades nas demandas desta categoria. INM = PFf * 0,10 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.1.2.4 Atualização em Páginas Estáticas de Intranet, Internet ou Portal – Item aplicável apenas para sistemas transacionais São manutenções em páginas estáticas de Portais, Intranets ou Websites. Exemplo: páginas de Ajuda, Perguntas mais Frequente (FAQ) ou páginas institucionais estáticas. A demanda consiste na publicação de páginas. Nestes casos, considera-se 50% dos Pontos de Função das consultas desenvolvidas. Cada página é contada como uma consulta. As consultas são consideradas Consultas Externas Simples (3 PF). 30 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 INM = P * 1,5 Onde: INM: Valor em Pontos de Função do Item Não Mensurável P: Total de páginas incluídas e/ou alteradas Por exemplo: alteração de página de estilo, criação de página html, atualização de menu, atualização de texto ou banner em páginas html existentes. As demandas de criação de Logomarcas ou identidade visual ou outras demandas de criação de Arte, associadas à área de Comunicação Social não são enquadradas nessa categoria. As demandas de portais dinâmicos, construídos por meio de gerenciador de conteúdo também não são contempladas nessa categoria. Esse item é categorizado em 5.3.1.3. 5.1.2.5 Múltiplas Mídias Há situações em que o cliente solicita uma consulta ou relatório com apresentação de dados em tela, com opções para geração deste relatório em outras mídias e/ou formatos de apresentação (ex: pdf, excel, txt etc.). Vale lembrar que quando houver diferença nos itens de dados, arquivos referenciados e/ou lógica de processamento, cada camada de apresentação deve ser contada como um processo elementar diferenciado. Neste caso existe quebra na unicidade do processo elementar, de acordo com os critérios do CPM [2]. No entanto, nos casos em que não há quebra na unicidade do processo elementar, existe um esforço que é necessário para o desenvolvimento de cada camada de apresentação. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade principal e considera 50% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. Vale ressaltar que deve ser calculado para cada mídia e/ou formado adicionado. INM = PFp * 0,50 31 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFp: Total de Pontos de Função da funcionalidade principal 5.1.2.6 Documentação de Sistemas Legados São demandas de documentação ou atualização de documentação de sistemas legados. Para este tipo de demanda, será considerada somente documentação de requisitos. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 30% destas, conforme definições, regras e fórmulas para Projetos de Desenvolvimento definidas no CPM [2]. INM = PFf * 0,30 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas Caso a demanda seja a geração de artefatos além dos requisitos, deve-se considerar um percentual mais alto de 40% a 50%, dependendo dos artefatos a serem gerados. Neste caso, o MDIC avaliará o percentual a ser adotado. 5.1.2.7 Desenvolvimento de Funcionalidades para Code Data Demandas de desenvolvimento de funcionalidades consideradas code data (Dados de Código) pela técnica não são mensuráveis em pontos de função. Também não são mensurados os processos elementares que consultam ou mantém estes arquivos. No entanto, existe um esforço de custo e prazo para o desenvolvimento destas funcionalidades. Para mensuração deste esforço, considera-se 50% dos pontos de função para as funções transacionais envolvidas (inclusão, alteração, exclusão e consulta). Para cada função transacional, será considerada complexidade Simples. A função de dados não deve ser mensurada. INM = PFf * 0,50 32 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.1.2.8 Recuperação de Arquivos Code Data No caso de criação ou alteração de consultas para preencher dados recuperados de arquivos code data, para exibição em componentes combo-box, list-box e similares, considera-se 30% para cada função transacional de consulta, considerando-se a complexidade simples. INM = PFf * 0,30 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.2 Manutenção Corretiva Uma manutenção corretiva é qualquer modificação reativa de um produto de software, realizada depois de entregue, para corrigir problemas descobertos. Identificamos os seguintes tipos de manutenção corretiva:    Correção de erros (bug); Apuração especial; Verificação de erros. Manutenções corretivas devem observar os prazos e condições de garantias estabelecidas em contrato, para definir se serão cobradas ou não. 5.2.1 Correção de Erros (bug) Mesmo com a execução de atividades de garantia da qualidade, o cliente pode identificar defeitos na aplicação entregue. As manutenções corretivas para correção de erros (bugs) devem levar em consideração a documentação do sistema disponível e os artefatos a serem mantidos. Seguem as fórmulas a serem consideradas: 33 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 INM = FI * PF_ALTERADO Onde: INM: Valor em Pontos de Função do Item Não Mensurável FI: Fator de Impacto   50% quando estiver fora da garantia e a correção for feita pela mesma empresa que desenvolveu a funcionalidade. 75% quando estiver fora da garantia e a correção for feita por empresa diferente daquela que desenvolveu a funcionalidade. As demandas de manutenção corretiva não contemplam atualização de documentação da funcionalidade corrigida, pois este Guia considera que, normalmente, a manutenção corretiva não se refere a erros de requisitos. Caso seja erro em requisitos, essa demanda deve ser tratada como projeto de Melhoria. Quando o sistema não estiver na garantia, esta manutenção deverá ser cobrada do cliente e medida para tal. A estimativa e dimensionamento de tamanho de projetos de manutenção corretiva em Pontos de Função devem levar em consideração a documentação do sistema disponível e os artefatos a serem mantidos. 5.2.1.1 Aplicação sem Documentação, Desatualizada ou Incompleta e sem Redocumentação de Requisitos Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 80% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. INM = PFf * 0,80 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.2.1.2 Aplicação sem Documentação, Desatualizada ou Incompleta e com Redocumentação de Requisitos Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 100% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. Deve-se destacar que além da correção das funcionalidades, a documentação do projeto deve ser atualizada. 34 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 INM = PFf * 0,25 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.2.1.3 Aplicação com Documentação Completa Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 60% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. Deve-se destacar que haverá correção e/ou atualização da documentação do sistema. INM = PFf * 0,60 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.2.2 Apuração Especial São funcionalidades executadas apenas uma vez para correção de problemas de dados. Identificamos os seguintes tipos para apuração especial:    Correção de Dados; Relatório de Verificação de Correção de Dados; Geração de Relatórios. 5.2.2.1 Correção de Dados Uma apuração especial para correção de dados é um projeto para geração de procedimentos de atualização da base de dados. Deve-se destacar que estas funções são executadas apenas uma vez, não fazendo parte da aplicação, visando à correção de dados incorretos na base de dados. Esta correção geralmente é oriunda de um erro na aplicação que gerou dados inconsistentes ou errôneos. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades para correção da base de dados e considera 30% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. 35 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Deve-se destacar que geralmente estas funcionalidades serão consideradas Entradas Externas, levando em conta o conceito de funcionalidade para conversão de dados. INM = PFf * 0,30 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas Exemplo: Por algum motivo, a aplicação não executou um procedimento para cálculo de anuênio no sistema de Recursos Humanos. O usuário após emitir um relatório verificou que os valores não estavam corretos para um determinado funcionário. Após análise, identificou que a rotina não foi executada por um problema no ambiente e não existe problema com a rotina. No entanto, existem dados incorretos na aplicação, que devem ser corrigidos por um script que será executado uma única vez para atualizar os dados nas tabelas. Análise de PF: para técnica de APF, não existiu alteração funcional na aplicação, porém foi necessário gerar um script para essa correção. Para efeito de mensuração, deve-se verificar o script utilizado e considerar as ações (Insert, Delete e Update) como processos elementares classificados como Entradas Externas – EE, onde as tabelas envolvidas serão Arquivos Lógicos Referenciados – ALR e os atributos envolvidos serão Tipo de Dados Elementar – DER para o processo elementar EE. 5.2.2.2 Geração de Relatórios Uma apuração especial para geração de relatórios é um projeto para geração de relatórios em uma ou mais mídias para o usuário. Estas demandas costumam surgir da necessidade de extração de dados para outras aplicações. Deve-se destacar que estas funções são executadas apenas uma vez, não fazendo parte da aplicação. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades desenvolvidas e considera 40% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. INM = PFf * 0,40 36 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.2.3 Verificação de Erros São consideradas verificações de erro as demandas referentes a todo comportamento anormal ou indevido apontado pelo cliente nos sistemas aplicativos. Neste caso, a equipe de desenvolvimento se mobilizará para encontrar a(s) causa(s) do problema ocorrido. Se for constatado erro de sistema, a demanda será atendida como Manutenção Corretiva – Correção de erros (bug). Não constatado erro na aplicação ou verificado que o sistema está apresentando o comportamento de acordo com as regras de negócio definidas e homologadas pelo usuário, deve-se aferir o tamanho em Pontos de Função, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2], das funcionalidades impactadas pela verificação e considera 15% destas. INM = PFf * 0,15 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.3 Manutenção Perfectiva Uma manutenção perfectiva é qualquer modificação do produto de software realizada depois de entregue, para melhorar usabilidade e manutenibilidade. Proveem melhorias (improvements) para os usuários, melhorias na documentação dos programas e recodificação para melhorar usabilidade, manutenibilidade e outras características não funcionais do software. Identificados os seguintes tipos de manutenção perfectiva:  Mudanças de interface (camada de apresentação). 5.3.1 Mudanças de Interface (Camada de Apresentação) Uma manutenção de interface (camada de apresentação) é qualquer modificação na camada de apresentação da aplicação. Identificamos os seguintes tipos de manutenção corretiva: 37 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC o Alteração de elementos na interface; o Modificação de layout; o Manutenção em Portais Dinâmicos. Versão 1.0 Data de Impressão 01/04/15 15:04:31 5.3.1.1 Alteração de Elementos na Interface São consideradas nesta categoria as demandas associadas a alterações de elementos da interface, como: o Alterações em literais em telas ou relatórios; o Mudanças em posições de campos de telas ou relatórios; o Alterações no logotipo de empresa; o Mudanças em fontes de letras, cores de letras, tamanho de letras, negrito, sublinhado, itálico etc.; o Variáveis de paginação tais como: página x de y, apresentando x-x’ de y registros; o Mudança no logotipo da empresa. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 20% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. Deve-se destacar que haverá correção e/ou atualização da documentação do sistema. INM = PFf * 0,20 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.3.1.2 Modificação de Layout São consideradas nesta categoria as demandas associadas à alteração de layout de telas ou relatórios, como: o Divisão ou junção de telas; o Adequação do sistema para novo padrão visual. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 35% destas, conforme definições, regras e fórmulas para Projetos de Melhoria definidas no CPM [2]. Deve-se destacar que haverá correção e/ou atualização da documentação do sistema. 38 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 INM = PFf * 0,35 Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.3.1.3 Manutenção em Portais Dinâmicos – Item aplicável apenas para sistemas transacionais Portais dinâmicos são criados por meio de gerenciadores de conteúdos, como por exemplo: Joomla. Nestes casos, são feitas analogias à técnica de ponto de função. Sempre deve ser refletida a visão do usuário.   Se a página tem como intenção principal mostrar informações na tela, deve-se considerar como uma Consulta Externa Simples. Se a página irá armazenar alguma informação ou enviar alguma informação, deve-se considerar como uma Entrada Externa Simples. Não será considerado nenhum ALI ou AIE [13] [14]. Nestes casos, deve-se aferir o tamanho em Pontos de Função da funcionalidade ou das funcionalidades impactadas e considera 100% destas. INM = PFf Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas Seguem alguns exemplos: 1. Alteração no componente “Hora de Viajar” na página inicial do MDIC: na visão do usuário, será mostrado uma nova imagem na tela principal. o CE Simples (3 pontos) o INM = PFf o INM = 3,00 2. Criação do formulário “Encaminhar e-mail de dúvidas” no Portal do MDIC. o EE Simples (3 pontos) 39 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC o INM = PFf o INM = 3,00 Versão 1.0 Data de Impressão 01/04/15 15:04:31 2. Alteração no componente menu em todas as páginas: na visão do usuário, serão mostrados novos menus em todas as páginas. o CE Simples (3 pontos) - item em questão (componente) – item 5.3.1.4 o 3 Páginas Testadas x 3 (CE Simples) - item 5.4.1.1 o INM = 3 + (3 x 3) x 0,20 o INM = 3 + 9 x 0,2 o INM = 3 + 1,8 o INM = 4,80 OBS1: A quantidade de páginas a serem testadas por amostragem fica a critério do MDIC. No caso de não ter explicitada esta informação, assume a quantidade igual a uma página testada. OBS2: Não existe diferenciação entre inclusão, exclusão ou alteração de itens do portal, será sempre considerado o ponto de função “cheio” da funcionalidade. OBS3: Quando vários itens incidirem na mesma página, contar apenas uma única vez, assim como se deve contar apenas um teste por página, não importando o número de itens testados. 5.3.1.4 Manutenção de Componentes de Portais Dinâmicos – Item aplicável apenas para sistemas transacionais Em alguns casos são demandadas manutenções em componentes específicos de uma aplicação e estes são reusados por várias funcionalidades da aplicação. Por exemplo, suponha uma mudança em uma rotina de validação de um CPF usada em várias funcionalidades de cadastro. Se considerarmos o método de contagem de projetos de melhoria do CPM – Manual de Prática de Contagem, seriam contadas todas as funcionalidades impactadas por esta mudança. No entanto, este guia propõe que o componente, o qual deverá ser testado, seja considerado um processo elementar independente e contado como uma funcionalidade [12]. Além disso, as funcionalidades da aplicação que necessitem de teste devem ser requisitadas pela contratante e dimensionadas por meio da métrica Pontos de Função de Testes proposta na seção 5.4.1.1. 40 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 INM = PFf Onde: INM: Valor em Pontos de Função do Item Não Mensurável PFf: Total de Pontos de Função das funcionalidades impactadas 5.4 Manutenção Adaptativa (Evolutiva) x Manutenção Corretiva Para aplicações sem documentação ou com a documentação desatualizadas, onde não fique clara a evidência de ser erro ou evolução, que apresentem alteração ou inclusão de novas regras de negócio ou que seja identificada a quebra de unicidade do processo elementar, será considerada manutenção evolutiva. Demandas que precisem ajustar uma linha de código que já existia sem adicionar tratamento adicional ou novos critérios, considerará manutenção corretiva conforme proposto no item 5.2. 6 Atividades sem Contagem de Pontos de Função O processo de desenvolvimento possui várias atividades que devem ser consideradas como um projeto separado, levando-se em conta as horas realizadas. As atividades a seguir não fazem parte do desenvolvimento de software, logo não podem ser medidas em Ponto de Função. Devem ser medidas por tempo de esforço. 6.1 Mapeamento de Processos de Negócio Encontram–se nesta categoria as demandas de elaboração de documentação contendo o mapeamento de processos de negócio de uma organização ou de parte de uma organização. Estes serviços são geralmente executados por consultores especialistas em BPM (Business Process Modeling). 6.2 Administração de Dados Este serviço requer uma equipe de DBAs ou de ADs com um número de profissionais definido 41 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 pelo MDIC, dedicada para atender as demandas associadas à definição e manutenção do modelo de dados de negócio do cliente. Esta equipe fica disponível em horário acordado com o cliente para atendimento das demandas. Assim, estes serviços não possuem contagem de Ponto de Função associada. É importante ressaltar que as atividades de banco de dados associadas ao projeto de desenvolvimento ou de manutenção, como preparação de ambiente (testes, homologação, implantação), desempenhadas pelos DBAs da equipe de desenvolvimento, devem ser consideradas dentro do projeto específico em questão. Caso contrário, não possui contagem em Pontos de Função. 6.3 Administração da Ferramenta Este serviço requer uma equipe de DBAs ou de ADs com um número de profissionais definido pelo MDIC, dedicada para atender as demandas associadas à definição e manutenção das ferramentas utilizadas no Ministério. Esta equipe fica disponível em horário acordado com o cliente para atendimento das demandas. Assim, estes serviços não possuem contagem de Ponto de Função associada. 6.4 Treinamentos 6.4.1 Treinamento para Implantação São demandas de treinamentos sobre utilização do sistema a ser implantado para os gestores e usuários. O esforço deste serviço deve ser considerado separadamente da estimativa de esforço derivada da contagem de Ponto de Função. Devem ser calculadas as horas dos consultores que estarão realizando atividades de preparação e execução de treinamentos. Em alguns casos, pode ocorrer também o deslocamento do instrutor a ser contabilizado no custo. 6.4.2 Treinamentos Especialistas Encontram-se nesta categoria as demandas de treinamentos em linguagens de programação, ferramentas de gestão, processos, modelos da qualidade, métricas etc. Estes serviços são executados por consultores, especialistas no assunto em questão. Devem ser consideradas as horas de consultoria para preparação e execução do curso e o custo do deslocamento do instrutor, se for o caso. 6.5 Documentação Inicial do Projeto A contagem de pontos de função somente pode ser iniciada com uma documentação mínima do 42 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC sistema, que apresente o escopo e funcionalidades que farão parte do projeto ou demanda. Com esta documentação mínima, é possível realizar uma contagem estimada do sistema. Conforme a MDS[8] do MDIC, o resultado desta documentação mínima seria os artefatos: Termo de Abertura, Plano de Projeto, Documento de Visão e Documento de Requisitos. Caso a demanda, por algum motivo, não siga tais metodologias adotadas, é importante que algum documento apresente de forma clara as funcionalidades e o escopo desta. 6.6 Consultoria Os serviços de apoio destinado à análise de regras de negócio a serem implementadas em soluções de TI que necessitem de profissionais especialistas da contratada. Exemplo: consultoria em Métricas e consultoria em governança de TI. Estas demandas não possuem contagem de PF associada. 7 Diretrizes Específicas 7.1 Premissas para Contagens Estimadas de Projeto de Desenvolvimento No momento das contagens estimadas dos projetos de desenvolvimento, normalmente não se tem detalhamento suficiente para estabelecer algumas funções de dados e transacionais. Com isso, o MDIC adotou, de outros Órgãos, regras que facilitem a contagem estimada, de forma a aproximar do que será contado ao final, por meio da contagem detalhada. 7.1.1 Identificação de Code Datas Serão consideradas code datas funcionalidades que tenham nomes como: “Tipo de...”, “Classificação de ...” e semelhantes, salvo nos casos que seja comprovada a existência de um ALI ou AIE. 7.1.2 Imprimir/Anexar/Selecionar Arquivo Funcionalidades do tipo “Imprimir...”, “Anexar...” e “Selecionar Arquivo” serão consideradas como parte de um processo elementar da aplicação que está sendo contada, salvo nos casos que seja comprovada a quebra de unicidade. Por exemplo, uma funcionalidade de “Cadastrar Contrato”, que permita anexar a cópia do contrato 43 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 digitalizado. A funcionalidade de “Anexar contrato digitalizado” faz parte do processo de “Cadastrar Contrato”. 7.1.3 “Aprovar/Reprovar”, “Ligar/Desligar” e Similares Para funcionalidades do tipo “Aprovar/Reprovar”, “Ligar/Desligar”, “Ativar/Desativar”, “Liberar/Bloquear” e similares, cada par será contado com uma única EE, salvo nos casos que seja comprovada a quebra de unicidade. 7.1.4 Consultas Implícitas Sempre levar em conta as consultas implícitas que geralmente estão associadas às funcionalidades de alteração, exceto nos casos em que essa consulta é uma funcionalidade especificada (um “Detalhar” por exemplo) e exceto nos casos de code data. Não confundir “Consultar” ou “Detalhar” (de carregar informações de um registro específico) com “Listar” ou “Pesquisar” (exibir uma lista de registros). 7.1.5 Cálculo do Projeto de Desenvolvimento Projeto de Desenvolvimento é um projeto para desenvolver e entregar a primeira versão de um software. Seu tamanho funcional é a medida das funcionalidades entregues aos usuários no final do projeto. Também considera-se as funcionalidades de conversão de dados. Segue a fórmula de cálculo utilizada no dimensionamento de projeto de desenvolvimento de software: PF_DESENVOLVIMENTO = PF_INCLUIDO + PF_CONVERSÃO Não será contabilizado o PF_CONVERSÃO quando for caracterizado um esforço maior para esta atividade. Esses casos devem ser tratados como projeto separados de migração de dados. 7.1.6 Projeto de Migração de dados Os projetos de Migração de dados devem ser contados como um novo projeto de desenvolvimento de um sistema, seguindo a fórmula abaixo: 44 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 PF_CONVERSÃO = PF_INCLUIDO Um projeto de migração deve contemplar minimamente: os ALI mantidos pela migração, as Entradas Externas – Considerando as cargas de dados no ALI – e, caso seja solicitado pelo usuário, os relatórios gerenciais das cargas, que serão contados como Saídas Externas. Todas as contagens de PF dever ser realizadas com bases nas funcionalidades requisitadas e recebidas pelos usuários. 7.2 Utilização dos Itens Não Mensuráveis – INM Os Itens Não Mensuráveis – INM não devem fazer parte do tamanho funcional da aplicação. O tamanho dos INM deve ser utilizado para remunerar o esforço de demandas que não são mensuráveis pela técnica. Padrão: sempre que apresentar o resultado de uma contagem, deixar claro o tamanho funcional e o tamanho dos INM, de forma separada. Exemplo: o tamanho funcional em PF é 250 PF. O tamanho dos INM em PF é 34 PF. O tamanho a ser faturado em PF para Ordem de Serviço é 284 PF. Resultado em Pontos de Função para Ordem de Serviço XXX Tamanho Funcional da Aplicação em PF 250 PF Tamanho dos Itens Não Mensuráveis em PF 34 PF PF faturáveis da Ordem de Serviço 284 PF 7.3 Fator de Ajuste O MDIC irá trabalhar com Fator de Ajuste = 1, ou seja, não será aplicado nenhum fator de ajuste ao valor final da contagem. 7.4 Padronização 7.4.1 Nomenclatura 45 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 As planilhas de contagem de ponto de função deverão ser armazenadas no repositório do projeto informado pelo MDIC, em uma pasta chamada “Controle / Métricas / Contagem de Ponto de Função”. A nomenclatura de cada arquivo será: o “Ano_NumOS_APF_Estimada/Detalhada.xls”.  Exemplo:   o 7.4.2 2014_00001_001_0001_APF_Estimada.xls; 2014_00001_001_0001_APF_Detalhada.xls; “Ano_NumOS_relatorioAfericaoPF_MDIC”.  Exemplo:  2014_00001_001_0001_relatorioAfericaoPF_MDIC.xls; Planilha Ao utilizar a planilha de contagem de ponto de função, devem ser apresentadas apenas as abas para cada caso, conforme: o Aba "Informações": sempre irá aparecer; o Aba "Resumo dos Resultados": sempre irá aparecer; o Aba "Desenvolvimento ou Aplicação": apenas para contagens do tipo “Projeto de Desenvolvimento” ou “Aplicação (Baseline)”; o Aba "Melhoria": apenas para contagens do tipo “Projeto de Melhoria”; o Aba "Itens Não Mensuráveis (INM)": não irá aparecer caso não existam itens não mensuráveis na contagem; o Aba "Apuração de PF Estimada": estão em desuso e não deverão aparecer; o Aba "Apuração de PF Detalhada": estão em desuso e não deverão aparecer. OBS: As abas que não estiverem sendo usadas, conforme citado acima, deverão estar ocultas. 7.5 Política de Auditoria Cada contagem de ponto de função será aferida pela empresa de aferição, se houver, e aprovada pelo MDIC. O MDIC realizará auditorias nas contagens realizadas pelas contratadas, sempre que achar necessário e periodicamente, por amostragem. 7.5.1 Divergências Em caso de divergências, o MDIC deve buscar resolver o problema com a equipe de 46 Versão 1.0 Guia Contagem de Pontos de Função para Business Data de Impressão Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC métricas da(s) contratada(s). Em caso de impasse, deve-se buscar uma consultoria externa e imparcial entre as partes para solução do impasse. 7.6 Considerações de Mudança de Requisitos - Exemplo Para tratar o dimensionamento das mudanças de requisitos, será utilizada a tabela de distribuição de esforço por disciplina, visando definir o valor agregado ao projeto após a conclusão de cada disciplina. Disciplina Percentual de esforço Levantamento de Requisitos 20% Planejamento 15% Desenvolvimento/Teste 44% Homologação 8% Implantação 8% Gerência de Projetos 5% Tabela 1 – Percentual de esforço por disciplina no ciclo de vida. Em projetos de software, são bastante comuns as mudanças de requisitos no decorrer do projeto ou da demanda de manutenção. É durante o levantamento/especificação da demanda ou do requisito que os usuários e os analistas de requisitos adquirem mais conhecimento sobre o negócio ou demanda. O CPM [2] denomina este fenômeno de Scope Creep. Como não se podem congelar os requisitos, é preciso gerenciá-los de forma efetiva. Uma mudança de requisito gera retrabalho da equipe de desenvolvimento, aumentando assim o esforço e o custo do projeto. Para calcular o tamanho faturável das funcionalidades que sofreram mudança nos requisitos, devem ser somadas as disciplinas que foram executadas, sendo que, as disciplinas de Gerenciamento de Projeto e Gerenciamento de Configuração e Mudança devem ser consideradas proporcionalmente. Assim, segue seguinte fórmula: Tf = PFf * P 47 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Onde: T: Tamanho faturável PFf: Total de Pontos de Função das funcionalidades impactadas P: Somatório do percentual das disciplinas executadas. Neste somatório, devem-se calcular proporcionalmente as disciplinas de Gerenciamento de Projetos e Gerenciamento de Configuração e Mudança. Exemplo: Suponha um relatório de clientes foi demandado e que no final da fase de implementação foi solicitada a exibição de uma nova informação no mesmo relatório. A equipe de desenvolvimento terá um retrabalho de várias fases do ciclo de vida. Assim, o tamanho dessa mudança deve ser calculado da seguinte maneira:   Tamanho do relatório de clientes (Requisitos Originais) o Função: Saída Externa o Complexidade: Média o Contribuição: 5PF Tamanho do relatório de clientes (Requisitos Alterados) o Função: Saída Externa o Complexidade: Média o Contribuição: 5PF O tamanho da funcionalidade relatório de clientes (Requisitos Alterados) será considerado 100% do PF. Para o tamanho da funcionalidade do relatório de clientes (Requisito Original) será definido da seguinte forma: Disciplinas executadas Percentual de esforço Levantamento de Requisitos 23% Planejamento 14% Desenvolvimento/Teste 36% Total de Disciplinas executadas: 73% Tabela 2 - Disciplinas executadas para o requisito original 48 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Assim, aplicando a fórmula para o exemplo, tem-se o seguinte resultado: Tf = 5 * 0,73 = 3,65 PF Logo, para o faturamento seria considerado conforme expresso na tabela 3. Descrição Tamanho faturável Relatório de Clientes (Requisitos Originais) 5 PF Relatório de Clientes (Requisitos Alterados) 3,65 PF Total de PF Faturável: 8,65 PF Tabela 3 - Demonstrativo de PF Faturáveis 7.7 Redocumentação Em diversas partes deste documento, é citada a expressão “redocumentação”. Essa redocumentação será base apenas para sistemas legados que não possuem documentação criada ou atualizada. Será considerada apenas a parte de requisitos e seus respectivos artefatos previstos na MDS [8]. 7.8 Processo de Revisão do Guia de Contagem 7.8.1 Revisão para Correção de Inconsistências e Situações não Previstas A revisão deste guia será feita sempre que verificarem inconsistências entre uma definição do CPM [2] e uma regra constante deste documento e situações não previstas neste guia. Para situações não previstas neste guia, dever-se-á recorrer ao MDIC que decidirá pela atualização deste guia ou do contrato em vigor. Sempre que necessário, o MDIC poderá alterar o texto do Guia de Contagem, a fim de evitar duplicidades no entendimento, bem como melhorias. As contratadas devem seguir este Guia e, em casos omissos, seguir o Roteiro de Métrica do SISP versão 2.0 ou superior, o Manual de Práticas de Contagem do IFPUG – CPM 49 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão CGMI/SPOA/SE/MDIC 01/04/15 15:04:31 versão 4.3 ou superior, nesta ordem, com autorização prévia do MDIC. Nos projetos de DW, as contratadas devem seguir este Guia e, em casos omissos, seguir o Guia de Contagem de Ponto de Função do SISP para Projetos de Data Warehouse. 7.8.2 Revisão para Adoção de Novas Versões do CPM [2] A adoção de nova versão do CPM como referência para este Guia de Contagem não será imediata à sua publicação. Nesse caso, deverá haver uma avaliação da nova versão pelo MDIC para se decidir sobre a atualização do guia. 8 Apurações Especiais [10] 8.1 Apuração Especial São funcionalidades executadas apenas uma vez para: corrigir problemas de dados incorretos na base de dados das aplicações ou atualizar dados em bases de dados de aplicações, detalhados na subseção 8.1.1; gerar um relatório específico ou arquivo para o usuário por meio de recuperação de informações nas bases da aplicação, detalhados na subseção 8.1.2. A subseção 8.1.3 considera os casos de reexecução de uma apuração especial. Caso a apuração seja de correção de dados devido a erros de funcionalidades de aplicações desenvolvidas pela contratada, observar as cláusulas contratuais com relação a garantias e prazos de correção. Recomenda-se fortemente ao órgão contratante sempre solicitar formalmente para a empresa contratada o armazenamento do script para permitir posterior reexecução. Cabe ressaltar que o órgão deve avaliar a complexidade das demandas típicas de apuração especial, podendo utilizar um percentual redutor nas fórmulas descritas nas subseções seguintes. Por exemplo, o redutor percentual pode ser aplicado em função da complexidade das demandas, documentação demandada e/ou do processo de desenvolvimento utilizado. 8.1.1 Apuração Especial – Base de Dados Este tipo de apuração especial é um projeto que inclui a geração de procedimentos para atualização da base de dados. Deve-se destacar que estas funções são executadas apenas uma vez, não fazendo parte da aplicação, visando a correção de dados incorretos na base de dados da aplicação ou atualização em função de modificação da estrutura de dados, por exemplo inclusão de valor “sim” ou “não” no campo “indicador de matriz” referente ao CNPJ. Normalmente, nesse tipo de atualização são afetados múltiplos registros. Nestes casos, considera-se a contagem de pontos de função das funcionalidades desenvolvidas. Geralmente, estas funcionalidades são classificadas como 50 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Entradas Externas. Nesse caso, como artefato de homologação da demanda, deve ser gerado um relatório para validação do usuário. É importante ressaltar que as funções de dados associadas aos dados atualizados não devem ser contadas, considerando que não há mudanças nas estruturas dos Arquivos Lógicos Internos. Foram identificados três tipos de Apuração Especial - Base de Dados, cujas fórmulas de cálculo são apresentadas a seguir: a) Atualização de Dados sem Consulta Prévia PF_APURAÇÃO_BD = PF_INCLUÍDO b) Consulta Prévia sem Atualização Em alguns casos de Apuração Especial – Base de Dados, o usuário solicita uma consulta prévia das informações. Deve-se ressaltar que essa consulta deve ser realizada antes da construção da funcionalidade, não se trata de homologação. A consulta prévia não é definida pela empresa contratada, obrigatoriamente essa deve ser solicitada pelo órgão contratante para a avaliação da viabilidade de implementar a Apuração Especial - Base de Dados. De fato, é uma prática interessante para evitar informações errôneas na base de produção dos sistemas. Esta consulta prévia, classificada como Consulta Externa ou Saída Externa deve ser dimensionada considerando-se o tamanho da funcionalidade em questão, conforme a fórmula abaixo: PF _CONSULTA_PRÉVIA = PF_INCLUÍDO c) Atualização de Dados com Consulta Prévia Caso a Apuração Especial - Base de Dados seja solicitada após uma demanda de consulta prévia, deve-se aplicar um fator de 60% na fórmula de contagem da Apuração Especial - Base de Dados, seguindo a fórmula abaixo. PF_APURAÇÃO_BD_PÓS_CONSULTA_PRÉVIA = PF_INCLUÍDO x 0,60 8.1.2 Apuração Especial – Geração de Relatórios Este tipo de apuração especial é um projeto que inclui a geração de relatórios em uma ou mais mídias para o usuário. Em alguns casos, são solicitadas extrações de dados e envio dos dados para outros sistemas. Caso, neste envio de dados, sejam requisitadas atualizações no sistema de origem, então essas funções transacionais são Saídas Externas, devido à atualização do Arquivo Lógico Interno. Deve-se destacar que essas funções são executadas apenas uma vez, não fazendo 51 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 parte da aplicação. Nestes casos, considera-se contagem de pontos de função das funcionalidades desenvolvidas. Frequentemente, estas funcionalidades são classificadas como Saídas Externas. Também podem ser classificadas como Consultas Externas, caso não possuam cálculos ou criação de dados derivados. É importante ressaltar que as funções de dados associadas aos dados atualizados não devem ser contadas, considerando que não há mudanças nas estruturas dos Arquivos Lógicos. PF_APURAÇÃO_RELATÓRIOS = PF_INCLUÍDO 8.1.3 Apuração Especial – Reexecução Em alguns casos, a empresa contratante pode ter interesse em executar uma apuração especial mais de uma vez. Nestes casos, ela deve solicitar formalmente à contratada o armazenamento do script executado. Desta forma, se for solicitada a reexecução de uma apuração especial, esta deve ser dimensionada com a aplicação de um fator redutor de 10% na contagem de pontos de função da apuração especial em questão, da seguinte maneira: PF_REEXECUÇÃO_APURAÇÃO = PF_NÃO_AJUSTADO x 0,10 O percentual de multiplicação proposto no item acima é estimado, podendo ser reajustado conforme avaliação da base histórica dos serviços realizados no órgão ou entidade. 8.2 Atualização de Dados Em alguns casos, as demandas de correção de problemas em base de dados estão associadas a atualizações manuais (de forma interativa), diretamente no banco de dados em um único registro, e que não envolvem cálculos ou procedimentos complexos. São exemplos desse tipo de demanda, a atualização do valor de um campo de uma tabela cadastrado erroneamente ou a exclusão de um registro de uma tabela. Nestes casos, a aferição do tamanho em Pontos de Função deve considerar 10% do PF de uma Entrada Externa e os Tipos de Dados da Entrada Externa são todos os TD considerados na funcionalidade – campos atualizados e campos utilizados para a seleção do registro. PF_ATUALIZAÇÃO_BD = PF_INCLUÍDO x 0,10 52 Versão 1.0 Guia Contagem de Pontos de Função para Business Data de Impressão Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Deve-se ressaltar que neste tipo de demanda não há gestão de configuração (armazenamento de script, versionamento, etc) das atualizações. Caso a contratante identifique a necessidade de realização de gestão de configuração das atualizações no banco de dados, então a demanda será classificada como Apuração Especial - Base de Dados (subseção 8.1.1). O percentual de multiplicação proposto acima é estimado, podendo ser reajustado conforme avaliação da base histórica dos serviços realizados no órgão ou entidade. 9 Referências Bibliográficas [1] IEEE Computer Society. IEEE Standard for Software Maintenance. IEEE Std. 1219 1998. [2] IFPUG. Counting Practices Manual – CPM. Version 4.2.1, January, 2005. [3] JONES, C. Estimating Software Costs. Second Edition, Mc Graw Hill, 2007. [4] VAZQUEZ, C. et. al. Análise de Pontos de Função: medição, estimativas e gerenciamento de projetos de software. 7ª Edição, Editora Érica, 2007. [5] IFPUG. Framework for Functional Sizing. Version 1.0, September, 2003. [6] MORRIS, P. Counting “Non-Functional” Requirements when they are implemented as Software. Version 2.2, October 2006. http://www.totalmetrics.com [7] TCU. Instrução Normativa Nº 4, de 19 de maio de 2008, expedida pela SECRETARIA DE LOGÍSTICA E TECNOLOGIA, em vigor desde 02 de janeiro de 2009. [8] MDIC, Metodologia de Desenvolvimento de Software do MDIC, Versão 1.0. [9] IFPUG. Considerations for Counting with Multiple Media. Release 1.1, April 15, 2010. [10] SISP, Roteiro de Métricas de Software do SISP versão 1.0, em http://www.sisp.gov.br/dotlrn/clubs/grupodetrabalhometricas/file-storage/view/Roteiro_de_ Metricas_de_Software_do_SISP_-_v1.0.pdf [11] SISP, Mensagem no Fórum sobre “Manutenção em Portal Dinâmico”, em http://www.sisp.gov.br/dotlrn/clubs/grupodetrabalhometricas/forums/message- 53 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC view?message_id=13428226 [12] Infraero, Parecer Técnico de Métricas do Sistema Portal, versão 1.0.0, em http://svn.infranet.gov.br/do-prti-tisi2/Base Historica de Pontos de Funcao/3.Execucao/Documentos Criados/Parecer Tecnico de Metricas/Portal/Menu/Menu_ParecerTecnicoMetricas_21fev2011.docx 54 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 CAPÍTULO II GUIA DE ANÁLISE DE PONTO DE FUNÇÃO PARA DATA WAREHOUSE Versão 1.0 55 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Histórico de Revisão Data 18/03/2015 Versão 1.0 Descrição Elaboração do Guia. Autor Amilton Lobo Aristóteles Benício Camilla Bonfim Fernando Santos Paulo Mazali Sebastião Filho CGMI SECEX CGMI CGMI Infraero CGMI 56 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 Sumário 1. Introdução............................................................................................................ 59 2. Cenário – Métricas de Software ......................................................................... 59 3. Objetivos Principais da Contagem de Pontos de Função [4].......................... 59 4. Como Contar? - Procedimentos de Contagem [4] ........................................... 60 5. Visão Geral da Contagem de PF Comparativa entre Sistemas e DW ............. 61 5.1 Visão Geral da Contagem de PF para Sistemas .................................. 61 5.2 Visão Geral da Contagem de PF para Data Warehouse ...................... 62 6. Definição da forma de Contagem para Data Warehouse ................................. 63 6.1 Para a contagem Estimada .................................................................... 64 A contagem de pontos de função é realizada em três momentos:........................ 64  Contagem Estimada: tem por objetivo mapear os requisitos iniciais do projeto nos processos elementares da APF. Neste momento é possível identificar as funções de dados e as transações de dados iniciais e, para cada um deles a pontuação é pré-definida da seguinte forma: NESMA .......................................... 64 o o o o o ALI  7 PF ................................................................................................... 64 AIE  5 PF ................................................................................................... 64 EE  4 PF .................................................................................................... 64 CE  4 PF.................................................................................................... 64 SE  5 PF .................................................................................................... 64 O quadro abaixo também representa as definições que serão assumidas pelo MDIC para a contagem estimada:......................................................................... 65 QA = QUALIDADE ................................................................................................ 65  Contagem Detalhada: tem por objetivo mapear todos os requisitos do projeto 57 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 para que se possa fazer a contagem detalhada da APF e está detalhada no item 6.2 deste guia........................................................................................................ 66  Contagem da Aplicação: tem por objetivo, obter a contagem final de PF após a conclusão do projeto, ou seja, após a sua implantação. .................................... 66 6.2 Contagem Detalhada .............................................................................. 66 6.2.1 Contar as Funções de Dados - ALI ................................................... 66 6.2.2 Contar as Funções de Dados - AIE ................................................... 71 6.2.3 Itens que não representam Funções de Dados ............................... 74 Esta seção visa esclarecer itens que não devem ser contados como funções de dados e que, portanto, não serão contados em projetos de Data Warehouse. .... 74 6.2.4 Contar as Funções Transacionais .................................................... 75 6.2.4.1 Contar as Funções Transacionais – Entrada Externa (EE) ............ 75 6.2.4.1.1 Contar as Funções Transacionais – Entrada Externa (EE) – Funções de Controle .......................................................................................... 76 6.2.4.2 Contar as Funções Transacionais – Consulta Externa (CE) e Saída Externa (SE) ......................................................................................................... 80 7 Fórmula [6] .................................................................................................. 85 Esta tabela representa também outros itens que podem ocorrer durante o projeto de Data Warehouse e que serão tratados, na maioria dos casos, como desenvolvimento/manutenção e que não tem como classificá-los como função ou transação de dado. ................................................................. 86 58 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Contagem de PF para DW 1. Introdução Este guia tem como objetivo orientar a contagem de APF para sistemas de BI para as equipes envolvidas no desenvolvimento e manutenção de Data Warehouses e Data Marts. No entanto, é preciso que a equipe tenha conhecimento prévio da contagem APF para entendimento da aplicabilidade dos conceitos. Para o desenvolvimento deste material foram consultados guias da NESMA e IFPUG, dentre outros, que contém orientações quanto a aplicabilidade da contagem para Data Warehouse. O documento também faz uma breve descrição do cenário de fábrica de software na atual conjuntura dos contratos de desenvolvimento de softwares realizada pelo governo. Em seguida são apresentadas as regras aplicadas para data warehouse, sendo que o entendimento do cálculo das respectivas complexidades são baseadas nas normas de contagem de pontos de função. E por último, como o MDIC ainda não possui base histórica para contagem de pontos de função de Data Warehouse, este guia se encontra em processo de amadurecimento, podendo sofrer modificações ao longo dos projetos. 2. Cenário – Métricas de Software A contratação de serviços de fábrica de software no serviço público deve utilizar métricas no planejamento da aquisição e no gerenciamento do contrato, com restrições ao uso da métrica de esforço homem-hora. Com isto, os órgãos passaram a observar a Instrução Normativa 04 (IN04) publicada pelo MPOG/SLTI que recomenda o uso de métricas em contratos de software. O TCU em seus acórdãos também tem recomendado a utilização da métrica de Pontos de Função (PF) em contratos de prestação de serviços de desenvolvimento e manutenção de software [4]. 3. Objetivos Principais da Contagem de Pontos de Função [4] A contagem de pontos de função tem como objetivos principais:   Medir a funcionalidade requisitada e recebida pelo usuário, isto quer dizer que considera a visão do usuário; Medir projetos de desenvolvimento e manutenção evolutiva independente da tecnologia utilizada; 59 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC   Data de Impressão Ser simples o suficiente para minimizar o trabalho adicional envolvido no processo de medição; Prover uma medida consistente entre vários projetos e organizações. 4. Como Contar? - Procedimentos de Contagem [4] 1.Determinar o Tipo de Contagem 2.Determinar o Escopo da Contagem e a Fronteira da Aplicação 3.1.Contar Funções de Dados 4.Determinar os PF Não Ajustados 3.2.Contar Funções Transacionais 5.Calcular PF Ajustados Os procedimentos de contagem acima são válidos para desenvolvimento de sistemas e de Data Warehouse. Procedimento Tipo de Contagem Escopo da Contagem e Fronteira da Aplicação Contar Funções de Dados Descrição    Contagem Projeto de Desenvolvimento Contagem Projeto de Melhoria Contagem da Aplicação Escopo define as funcionalidades que devem ser incluídas. Fronteira é a interface conceitual entre a aplicação “Interna” e o mundo do usuário “externo”. Representa a funcionalidade fornecida para o usuário relativa aos requisitos de dados Internos (Arquivos Lógicos Internos – ALI) e Externos (Arquivos de Interface Externa – AIE) a Aplicação. 60 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Contar Funções Compreende a contagem dos elementos denominados Entrada Externa Transacionais (EE), Saída Externa (SE) e Consulta Externa (CE). São 14 fatores que podem influenciar o desenvolvimento ou manutenção. Determinar o Pode aumentar no máximo em até 35% o tamanho. Fator de Ajuste O TCU em um dos seus acórdãos não recomenda a utilização do Fator de Ajuste na Contagem de Pontos de Função. Calcular PF Deve-se verificar as fórmulas que levam em consideração os PF Não Ajustados Ajustados e o seu Fator de Ajuste. 5. Visão Geral da Contagem de PF Comparativa entre Sistemas e DW 5.1 Visão Geral da Contagem de PF para Sistemas CE – Consulta Externa SE – Saída Externa APLICAÇÃO Arquivos Lógicos Internos (ALI) Outras Aplicações EE – Entrada Externa Arquivos de Interface Externa (AIE) 61 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC 5.2 Data de Impressão 01/04/15 15:04:31 Visão Geral da Contagem de PF para Data Warehouse Sistemas Origem de Dados Arquivos Interface Externa (AIE) Data Mart/ Data Warehouse Arquivos Lógicos Internos (ALI) SE ou CE – (OLAP) Representam os relatórios, painéis, cubos e camada semântica feitos pela ferramenta OLAP. EE – Entrada Externa Processo de ETL Processos de Automação ETL 62 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 6. Definição da forma de Contagem para Data Warehouse Procedimento Descrição Para projetos de Data Warehouse também tem que se definir se trata de um projeto de Desenvolvimento, Melhoria ou se será feita a contagem da Aplicação. Tipo de Contagem    Contagem Projeto de Desenvolvimento Contagem Projeto de Melhoria Contagem da Aplicação OBS.: são consideradas somente as melhorias evolutivas. As melhorias corretivas, adaptativas e perfectivas não são consideradas no processo de contagem e serão tratados como itens não mensuráveis.  por exemplo, compreende as “Questões dos usuários”, definidas Escopo da em documento próprio que abrange, de forma geral, a necessidade Contagem e do usuário na qual são relacionadas as medidas do seu negócio e as Fronteira da Aplicação O Escopo para o Data Warehouse do MDIC, para desenvolvimento,  respectivas visões (dimensões). A Fronteira da Aplicação do Data Warehouse compreende os assuntos ou Data Marts do projeto do Data Warehouse. 63 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC 6.1 Versão 1.0 Data de Impressão 01/04/15 15:04:31 Para a contagem Estimada A contagem de pontos de função é realizada em três momentos:  Contagem Estimada: tem por objetivo mapear os requisitos iniciais do projeto nos processos elementares da APF. Neste momento é possível identificar as funções de dados e as transações de dados iniciais e, para cada um deles a pontuação é pré-definida da seguinte forma: NESMA o ALI  7 PF o AIE  5 PF o EE  4 PF o CE  4 PF o SE  5 PF 64 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 O quadro abaixo também representa as definições que serão assumidas pelo MDIC para a contagem estimada: Tipos APF Contagem no DW ** 1 ALI para cada dimensão. ALI da Modelagem Dimensional ** 1 ALI para cada fato. ** 1 ALI de QA para cada ALI de tabela de dimensão. ** 1 ALI de QA para cada ALI de tabela fato. AIE ** Se ão o tados os AIE’s vi dos dos siste as de o ige contagem estimada. EE ** 1 EE para cada ALI de tabela de Dimensão e um EE para cada ALI de tabela Fato. Alé das EE dos ALI’s de ta ela de di e são e ta ela fato have á ta é EE’s efe e te aos p o essos de automação, da seguinte forma: ** 1 EE de automação para cada ALI de tabela de dimensão ; ** 1 EE de automação para cada ALI de tabela fato; ** 1 EE de automação geral O tamanho funcional de cada processo de automação será de 4PF. SE ue são possíveis de ide tifi a du a te a ** 1 para cada cubo ou camada semântica criado a ser consultado por usuários finais. Será considerado na contagem estimada a relação de cubos vislumbrados durante o levantamento. ** 1 para cada relatório e gráfico do dashboard a ser disponibilizado de acordo com o levantamento. CE ** 1 para cada relatório a ser disponibilizado, do tipo consulta, de acordo com o levantamento. QA = QUALIDADE 65 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC   Versão 1.0 Data de Impressão 01/04/15 15:04:31 Contagem Detalhada: tem por objetivo mapear todos os requisitos do projeto para que se possa fazer a contagem detalhada da APF e está detalhada no item 6.2 deste guia. Contagem da Aplicação: tem por objetivo, obter a contagem final de PF após a conclusão do projeto, ou seja, após a sua implantação. 6.2 Contagem Detalhada 6.2.1 Contar as Funções de Dados - ALI As funções de dados estão associadas aos requisitos de dados internos e externos. As Funções de dados são classificadas em Arquivos Lógicos Internos (ALI) ou Arquivos de Interface Externa (AIE).[6] Um ALI é um grupo de dados ou informações de controle logicamente relacionados, identificável pelo usuário e mantido dentro da fronteira da aplicação. A intenção primária de um ALI é armazenar dados mantidos através de um ou mais processos elementares da aplicação que está sendo contada. [6] Em um modelo de dados multi dimensional, Esquema Estrela, são reconhecidos dois tipos de entidades: Tabelas Fato e Tabelas Dimensão. [6] As Tabelas Fato mantidas por um ou mais processos de ETL devem ser contadas como um Arquivo Lógico Interno. As Tabelas Dimensão mantidas por um ou mais processos de ETL também devem ser contadas como Arquivos Lógicos Internos. [6] Algumas Tabelas Dimensão não chegam diretamente na Tabela Fato, sendo consideradas níveis hierárquicos ou hierarquias de uma outra Dimensão. Observe a quantidade de níveis hierárquicos na Dimensão, observe se estes níveis são tratados de forma diferente (por exemplo, diferença no tratamento dos atributos). As hierarquias devem ser consideradas Registros Lógicos da Dimensão que se relaciona diretamente com a tabela Fato. Caso não existam níveis hierárquicos ou subgrupos de dados dentro da dimensão, considere apenas um Registro Lógico. [6] 66 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Algumas vezes, o usuário requer a combinação de tabelas Fatos gerando uma outra Tabela Fato ou uma estrutura de agregação, visando apoiar a geração de consultas do mesmo. Em alguns casos, a estrutura de agregação pode ser formada por uma Tabela Fato e Tabelas Dimensão. A estrutura de agregação é contada como Arquivo Lógico Interno. [6] Contar as Funções de Dados e Suas Complexidades ** Obs.: 1) as regras para definição de registro lógico e tipo de dado seguem a proposta APF 2) As regras valem para o tipo de modelagem Star Schema ou Snow Flake Função ALI Tipo Dimensão Descrição Reg.Lóg. (RL) Tipo de Dado (TD) O que não se conta Para cada dimensão da modelagem conta-se 1 * * Para dimensão hierárquica ** Conta-se 1 tipo de dado ** A dimensão que esteja em mais de uma fato é (um) ALI. conta-se 1 (um) RL para cada para cada atributo da contada somente uma vez. [1] hierarquia. [1], [2] dimensão. * * Para Dimensão não ** Atributos para controle hierárquica conta-se 1 (um) RL. de histórico e auditoria das [1], [2] dimensões são contados. ** Atributo de Chave Surrogate Key – são contados. ALI Fato ** Para cada fato da modelagem consta-se 1 ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado (um) ALI. fato. para cada atributo da fato. ** Atributos para controle de histórico e auditoria das tabelas fato são contados. ** Atributo de Chave Surrogate Key – são contados. 67 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Contar as Funções de Dados e Suas Complexidades ** Obs.: 1) as regras para definição de registro lógico e tipo de dado seguem a proposta APF 2) As regras valem para o tipo de modelagem Star Schema ou Snow Flake Função ALI Tipo Descrição Reg.Lóg. (RL) Tipo de Dado (TD) Fatos ** Será contado 1 ALI para cada fato de ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado Agregadas agregação que for reconhecida pelo usuário. [3] fato de agregação. para cada atributo da fato ** Será contado 1 ALI para cada fato de de agregação. agregação criada para melhorar a performance ** Atributos para controle de consulta aos dados, como forma de de histórico e auditoria das remunerar o esforço. agregadas são contados. O que não se conta ** Atributo de Chave Surrogate Key – são contados. ALI View ** A necessidade de criação das Views terão ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado ** Views criadas com o objetivo de representar diferentes que ser analisadas sob a visão do usuário. View. para cada atributo da papéis, tais como exemplo, aeroporto origem e aeroporto View. destino não serão contadas, pois elas representam um ALI já existente, que no caso é o aeroporto. ALI Tabela Ponte A tabela Ponte, de certa forma funciona como ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado ** Atributo de Chave - Surrogate Key - (representam uma tabela fato. tabela ponte. para cada atributo da auto-numeração) Neste caso será contada como 1 ALI. tabela ponte. ** Atributos para controle de histórico e auditoria das tabelas ponte. 68 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Contar as Funções de Dados e Suas Complexidades ** Obs.: 1) as regras para definição de registro lógico e tipo de dado seguem a proposta APF 2) As regras valem para o tipo de modelagem Star Schema ou Snow Flake Função ALI Tipo Descrição Reg.Lóg. (RL) Tipo de Dado (TD) O que não se conta Tabela Fato ** As fatos criadas para armazenar o histórico ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado ** Atributo de Chave - Surrogate Key - (representam Histórica de dados também deverão ser contadas. Ou fato. para cada atributo da fato. auto-numeração). seja, 1 ALI para cada fato histórica. ** Atributos para controle de histórico e auditoria das tabelas fato. ALI Arquivo de São arquivos mantidos durante o processo de ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado Qualidade de extração, transformação e carga (ETL) dos arquivo de qualidade de dados. para cada atributo do Dados (QA) dados das tabelas de dimensão e das tabelas [5] fato. São subprodutos do processo de ETL e arquivo de QA. que são encaminhados para os usuários avaliar a consistência dos dados nos sistemas origem. ** Será contado 1 ALI para cada arquivo de qualidade de dados. ALI Tabelas para São tabelas criadas pela equipe de DW para ** Conta-se 1 (um) RL para cada ** Conta-se 1 tipo de dado controle realizar controles, tais como gerenciar o tabela de Controle. para cada atributo da processo de carga ou alguma outra forma de tabela de controle. administração. ** Conta-se 1 ALI para cada tabela. 69 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Contar as Funções de Dados e Suas Complexidades ** Obs.: 1) as regras para definição de registro lógico e tipo de dado seguem a proposta APF 2) As regras valem para o tipo de modelagem Star Schema ou Snow Flake Função ALI Tipo Descrição Reg.Lóg. (RL) Tipo de Dado (TD) Tabelas ** Todas as tabelas de dimensão, inclusive as ** Considerar as mesmas regras ** Considerar as mesmas CODE-DATA que podem ser consideradas como CODE- de ALI de tabela de dimensão regras de ALI de tabela de DATA, serão contadas, pois no Data deste guia. dimensão deste guia. O que não se conta Warehouse parte-se do princípio que todo usuário entende que toda e qualquer dimensão é uma visão importante para o negócio. CODE-DATA = EX. ESTADO, MUNICÍPIO. 70 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC 6.2.2 Data de Impressão 01/04/15 15:04:31 Contar as Funções de Dados - AIE Um AIE é um grupo de dados ou informações de controle logicamente relacionados, identificado pelo usuário e referenciado pela aplicação, porém mantido dentro da fronteira de outra aplicação. A intenção primária de um AIE é armazenar dados referenciados por um ou mais processos elementares dentro da fronteira que está sendo contada. Isto significa que um AIE contado para uma aplicação deve ser um ALI em outra aplicação. [6] Para identificar os Arquivos de Interface Externa, deve-se analisar os processos de ETL. Caso exista leitura de dados de outras aplicações para validação de informações durante as cargas de dados, estas tabelas que são Arquivos Lógicos Internos de outras aplicações e são apenas lidas pelo DW, devem ser contadas como Arquivos de Interface Externa. [6] AIE Sistema Origem ALI Leitura Processo de ETL Carga Data Warehouse 71 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Em alguns casos, o usuário com receio de perder dados das aplicações de origem, requisita que os dados dos sistemas de origem sejam copiados para uma área de armazenamento de dados operacional (Operational Data Store – ODS) do DW. Nestes casos os dados são copiados do sistema transacional de origem para a ODS. Assim, quando os dados da ODS são apenas uma cópia dos dados do sistema de origem, os dados do sistema de origem serão contados como Arquivo de Interface Externa. Posteriormente, os dados são integrados dentro de um novo Arquivo Lógico Interno (tabela Fato ou tabela Dimensão). [6] ALI AIE Sistema Origem Leitura Processo de ETL Cópia ODS Leitura Processo de ETL Carga Data Warehouse Geralmente, os dados do DW provenientes de outras aplicações, denominadas de aplicações de origem dos dados, são armazenados em uma base de dados temporária, denominada Data Staging Area (DSA). Assim, os dados são importados da aplicação de origem para a DSA e então, em outro processo de integração, importa os dados da DSA para as tabelas Fato e Dimensão do DW. Observe que a utilização da DSA é uma solução técnica, portanto não tem contagem de Pontos de Função. No entanto, é importante ressaltar que em alguns casos, o usuário deseja realizar consultas e emitir relatórios diretamente os dados da DSA. Nesses casos, as funcionalidades da DSA serão consideradas na contagem de Pontos de Função. Os dados da DSA serão contados como Arquivos Lógicos Internos. As cargas de dados serão contadas como Entradas Externas e as consultas e relatórios serão contados como Consultas Externas ou Saídas Externas. [6] ALI AIE Sistema Origem Leitura Processo de ETL Cópia Área de Staging Leitura Processo de ETL Carga Data Warehouse 72 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Contar as Funções de Dados e Suas Complexidades ** Obs.: 1) as regras para definição de registro lógico e tipo de dado seguem a proposta APF 2) As regras valem para o tipo de modelagem Star Schema ou Snow Flake Função AIE Tipo Descrição Tabelas dos São grupos de dados ou informações de Sistemas Origem [4] Reg.Lóg. (RL) Tipo de Dado (TD) ** Deve-se seguir as orientações ** Deve-se seguir as controle especificado pelo usuário logicamente do IFPUG (CPM – Manual de orientações do IFPUG relacionado, cuja manutenção é efetuada Contagem de Pontos de (CPM – Manual de dentro da fronteira de outra aplicação. Função) quanto a determinação Contagem de Pontos de ** Também iremos considerar como AIE outros de contagem de registro lógico Função) quanto a tipos de arquivos que são mantidos por AIE, por se tratar de uma determinação de usuários e que são fonte do DW, tais como modelagem entidade contagem de tipo de dado planilhas eletrônicas, etc. relacionamento. para AIE, por se tratar de (CONTA A ENTIDADE LÓGICA uma modelagem entidade LIDA) relacionamento. (CONTA O que não se conta O CAMPO LIDO) AIE Tabelas ** Conta-se um AIE para cada tabela do(s) ** Considerar as mesmas regras ** Considerar as mesmas CODE-DATA sistema(s) origem lida, copiada ou de AIE deste guia. regras de AIE deste guia. referenciada como fonte de dados para o Data Mart, inclusive CODE-DATA. 73 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC 6.2.3 Data de Impressão Itens que não representam Funções de Dados Esta seção visa esclarecer itens que não devem ser contados como funções de dados e que, portanto, não serão contados em projetos de Data Warehouse. Tipo NA Descrição Não conte o mesmo grupo de dados como ALI Reg.Lóg. (RL) Tipo de Dado (TD) O que não se conta NA NA ** Não é contada NA NA ** Não é contada NA NA ** Não é contada NA NA ** Não é contada ou AIE. NA Não conte duas vezes o mesmo grupo de dados, por exemplo uma Tabela Dimensão que esteja modelada em duas estrelas do DW. NA As hierarquias das Tabelas Dimensão devem ser contadas como Registros Lógicos e não como ALI. Por exemplo: Departamento e Setor. Tabelas de Tabelas de repositório das ferramentas OLAP Repositório ou ETL não são contadas, mesmo que o usuário tenha necessidade de visualizá-las, pois, são desenvolvidas e mantidas pelas ferramentas, portanto, não são desenvolvidas pela equipe de Data Warehouse. 74 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Tipo Descrição Tabelas da Tabelas criadas para auxiliar o processo de área de transformação dos dados, não são contadas, Staging ou pois tratam-se de soluções técnicas. Reg.Lóg. (RL) NA Data de Impressão Tipo de Dado (TD) NA O que não se conta ** Não é contada temporárias 6.2.4 Contar as Funções Transacionais A contagem das funções transacionais se inicia com a identificação de processos elementares. Um processo elementar é a menor unidade de atividade identificada pelo usuário. O processo elementar deve ser uma transação completa em si mesma, auto-contido e deixar a aplicação em um estado consistente. Uma vez identificado o processo elementar, deve-se identificar se este deve ser contado como uma função transacional. As funções transacionais: Entrada Externa (EE), Consulta Externa (CE) e Saída Externa (SE). [6] 6.2.4.1 Contar as Funções Transacionais – Entrada Externa (EE) A Entrada Externa é um processo elementar que processa dados ou informação de controle que vem de fora da fronteira da aplicação. A sua principal intenção é manter um Arquivo Lógico Interno (ALI) e/ou alterar o comportamento do sistema. [6] Em Projetos de Data Warehouse geralmente existem funcionalidades de cargas de dados nas tabelas do DW. Estas tabelas são denominadas de tabelas fato e tabelas dimensão em um modelo multidimensional em um diagrama estrela. As funcionalidades de carga de dados são classificadas como Entradas Externas. Para contar as funções transacionais deve-se para cada ALI considerar ao menos uma EE. [6] Deve ser contada uma Entrada Externa para cada carga de dados na Tabela Fato. Deve-se ressaltar que a carga inicial de dados nas tabelas Fato também é contada separadamente como uma Entrada Externa, sendo uma função de Conversão de Dados. [6] Conte uma Entrada Externa para cada inclusão de novas informações nas Tabelas Dimensão, mesmo as contadas como Registros Lógicos. Frequentemente, a atualização nos registros da Dimensão ocorre por adição de dados, assim não são contadas Entradas Externas para alteração de dados. Deve-se ressaltar que a carga inicial de dados nas tabelas Dimensão também deve ser contada 75 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 separadamente como uma Entrada Externa, sendo uma função de Conversão de Dados. Caso exista uma funcionalidade para exclusão de dados, esta será contada como Entrada Externa. Em geral, conta-se uma Entrada Externa para cada Registro Lógico da Tabela Dimensão. [6] O DW pode ter como fonte de dados vários sistemas. Assim, os dados de uma Tabela Fato ou de uma Tabela Dimensão podem ser carregados de vários sistemas de origem. Geralmente, o processamento dos dados de cada arquivo proveniente desses sistemas é diferente dos demais. Portanto, conta-se uma Entrada Externa para cada carga de dados de um sistema de origem distinta. [6] Obs.: Na carga automática não se aplica o descrito nos dois parágrafos anteriores. OBS.: em relação aos dois últimos parágrafos deve-se contar Entrada Externa para inclusão ou alteração ou de fontes distintas caso tenha necessidade de desenvolvimento de um processo de ETL para cada uma destas situações. Se o processo elementar for, por exemplo, manter um ALI de tabela de dimensão e no mesmo processo for realizado extrações de fontes distintas e ainda inclusão/alteração, terá que ser considerado somente uma Entrada Externa de dimensão. As cargas de dados em Estrutura de Agregação também são contadas como uma Entrada Externa. [6] 6.2.4.1.1 Contar as Funções Transacionais – Entrada Externa (EE) – Funções de Controle Como um dos propósitos do Data Warehouse é o de disponibilizar dados históricos, as funções de limpeza de dados são usualmente incorporadas na área de controle do DW, por exemplo guardar 60 meses de dados históricos. Esta função de limpeza é contada como uma Entrada Externa. [6] Os dados utilizados para gerenciar o DW podem ser, por exemplo: datas nas quais uma funcionalidade inclui dados em uma tabela fato a partir dos dados de um sistema de origem, a quantidade de registros adicionados, a quantidade de registros rejeitados, ou parâmetros utilizados para o processamento. Os processos elementares da aplicação devem ler e editar esses metadados. Estas funções 76 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão CGMI/SPOA/SE/MDIC 01/04/15 15:04:31 não são identificadas pelo usuário final. No entanto, estes mecanismos de controle devem ser criados para o DW, sendo consideradas pelo perfil administrador. Assim, estas funcionalidades devem ser contadas, caso sejam desenvolvidas. [6] Contar as Funções TRANSACIONAIS e suas Complexidades Função EE Tipo Descrição Arquivo Referenciado (AR) Item de Dado (TD) O que não se conta Extração, ** Para cada ALI de tabela de ** Conte um AR para cada ALI (tabelas de ** Conta-se todos os ** Não conte EEs separadas para cada passo do processo transformação dimensão e tabela fato são dimensão e tabelas fato) ou AIE (tabelas do atributos (TD) de todos de carga (Ex.: uma EE de extração, uma EE de e carga (ETL) contadas como uma EE, ou seja, o sistema origem) lido/mantido durante o os AR (arquivos transformação, uma EE de carregamento), uma vez que processo completo de carga de processo de carga. referenciados) no todos os três são requeridos para completar o processo cada um deles é considerado como ** Conta-se um AR para cada arquivo de processo de carga elementar. [1] uma EE. qualidade de dados (QA) mantido durante o completo da tabela de ** Para EE em DW não se conta TD (Item de dado) para ** Os processos elementares que processo de carga. [5] dimensão ou tabela capacidade de enviar mensagem. Esta regra não se aplica, mantém a tabela de dimensão ou ** Se dentro do mesmo processo de carga fato que são lidos e pois no processo de ETL a mensagem já está incorporada tabela fato que exige o de uma fato ou dimensão for mantido mantidos pelo na ferramenta de ETL. desenvolvimento separado de alguma tabela de controle, também terá processo. ** Para EE em DW não se conta TD (Item dedado) para processos de ETL para inclusão, que ser contado como um AR. capacidade de especificar uma ação (clique, botão “OK”). alteração, exclusão ou de extração ** No processo de extração das fatos, cada Esta regra não se aplica, pois no processo de ETL a ação já fontes de dados distintas terão que dimensão lida para realizar o processo de está incorporada na ferramenta de ETL. ser considerados como Entradas lookup deve ser contada como um AR. Externas(EE) distintas. 77 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Contar as Funções TRANSACIONAIS e suas Complexidades Função EE Tipo Descrição Arquivo Referenciado (AR) Item de Dado (TD) Extração, ** Para cada ALI de tabela de ** Deve-se seguir as orientações do item ** Deve-se seguir as transformação dimensão e para cada ALI de tabela anterior (Extração, transformação e carga orientações do item e carga (ETL) – fato são contadas como uma EE de (ETL)). anterior (Extração, Carga Inicial. carga inicial, ou seja, a EE de carga transformação e carga [5] inicial é considerada como uma (ETL)). O que não se conta NÃO SE APLICA NO CASO DE AUTOMAÇÃO DE ETL. função de conversão de dados. EE Extração, ** O processo de ETL das tabelas ** Conta-se um AR para cada tabela ponte ** Conta-se todos os ** Não conte EEs separadas para cada passo do processo transformação pontes e agregadas criadas para ou de agregação. atributos (TD) de todos de carga (Ex.: uma EE de extração, uma EE de e carga (ETL) performance serão contadas cada ** Se dentro do mesmo processo de carga os AR (arquivos transformação, uma EE de carregamento), uma vez que - Tabela Ponte uma como EE. de uma fato, dimensão ou ponte, for referenciados) no todos os três são requeridos para completar o processo e tabelas ** O processo de ETL das tabelas mantido alguma tabela de controle, também processo de carga elementar. Agregadas [6] de dimensão consideradas como terá que ser contado com um AR. completo da tabela de ** Para EE em DW não se conta TD (Item dedado) para CODE-DATA, serão contadas cada ** Conte um AR para cada ALI ou AIE agregação ou tabela capacidade de enviar mensagem. Esta regra não se aplica, uma como EE. (tabelas do sistema origem) lido durante o ponte, que são lidos e pois no processo de ETL a mensagem já está incorporada processo de carga. mantidos pelo na ferramenta de ETL. ** No processo de extração das fatos, cada processo. ** Para EE em DW não se conta TD (Item dedado) para dimensão lida para realizar o processo de capacidade de especificar uma ação(clique, botão “OK”). lookup deve ser contada como um AR. Esta regra não se aplica, pois no processo de ETL a ação já ** Conte somente um AR para cada ALI está incorporada na ferramenta de ETL. tanto mantido quanto lido. 78 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Contar as Funções TRANSACIONAIS e suas Complexidades Função EE Tipo Descrição Extração, ** Os Jobs ou processos/scripts que transformação fazem o e carga (ETL) – encadeamento/automatização de Processos de todos os processos de carga dos Automação [5] Data Marts, o MDIC irá assumir Arquivo Referenciado (AR) Item de Dado (TD) NA NA O que não se conta que o tamanho funcional destes processos são de 4PF, ou seja, de complexidade média, por não possuir base histórica. [5] EE Extração, ** Os dados utilizados para ** Seguir as mesmas orientações da EE de ** Seguir as mesmas ** Seguir as mesmas orientações da EE de inclusão de transformação gerenciar o DW podem ser, por inclusão de dados. orientações da EE de dados. e carga (ETL) – exemplo: datas nas quais uma Editar dados funcionalidade inclui dados em uma de controle tabela fato a partir dos dados de um (metadados) sistema de origem, a quantidade de do ETL. [6] registros adicionados, a quantidade inclusão de dados. de registros rejeitados, ou parâmetros utilizados para o processamento. Os processos elementares da aplicação devem ler e editar esses metadados. 79 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Versão 1.0 Data de Impressão 01/04/15 15:04:31 6.2.4.2 Contar as Funções Transacionais – Consulta Externa (CE) e Saída Externa (SE) As funções transacionais associadas aos requisitos do usuário de Consulta de informações são as Consultas Externas e as Saídas Externas, definidas a seguir. [6] A Saída Externa é um processo elementar que envia dados para fora da fronteira da aplicação, e sua principal intenção é apresentar informação ao usuário por meio de lógica de processamento adicional à recuperação de dados ou informações de controle. Sua lógica de processamento deve conter no mínimo uma fórmula matemática ou cálculo, ou ainda criar dado derivado. Esse processo pode manter um ou vários arquivos lógicos ou alterar o comportamento do sistema. [6] A Consulta Externa é um processo elementar que envia dados para fora da fronteira da aplicação, e sua principal intenção é apresentar informação ao usuário por meio da recuperação de dados ou informações de controle. Sua lógica de processamento não envolve fórmula matemática, nem cálculo, não cria dado derivado, nenhum arquivo lógico é mantido durante o processo e o comportamento do sistema também não é alterado. [6] Em Aplicações de Data Warehouse existem requisitos para geração de relatórios usando as ferramentas. Os relatórios requisitados pelo usuário e implementados pela equipe de desenvolvimento são contados como Saídas Externas. Em alguns casos específicos, quando a geração dessas consultas não possuir lógicas de processamento de cálculos ou criação de dados derivados, esta funcionalidade deve ser contada como Consulta Externa. [6] Os relatórios gerados pelo usuário por meio da ferramenta OLAP não são contados, porque não constituem um requisito do usuário para a equipe de desenvolvimento. [6] A geração do Universo (também denominado Cubo ou Contexto de Análise OU Camada Semântica) deve ser contada como uma Saída Externa. Poderá haver universos por estrela (uma Tabela Fato e suas respectivas Dimensões), bem como universos com mais de uma estrela (mais de uma tabela fato e suas respectivas dimensões. Os Arquivos Referenciados serão as Tabela Fato e cada Tabela Dimensão, identificada como Arquivo Lógico Interno, e os tipos de dados serão os atributos de todos os Arquivos Referenciados (Tabela 80 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Fato e Dimensão) e as métricas associadas, desconsiderando os atributos repetidos. Em alguns casos específicos, quando a geração do Universo não possuir lógicas de processamento de cálculos ou criação de dados derivados, esta funcionalidade deve ser contada como Consulta Externa. [6] Contar as Funções TRANSACIONAIS e suas Complexidades Função CE Tipo Descrição Arquivo Referenciado (AR) Item de Dado (TD) O que não se conta Relatórios ** Representam relatórios que ** Conta-se um AR para cada dimensão ** Conta-se um item de ** List-box ou combos não são contadas como consulta Gerenciais que apresentam listas, somente, e/ou fato lidos durante a consulta externa. dado para cada campo externa, pois são funcionalidades incorporadas pelas não possuem apresentadas em forma de tabela. São arquivos referenciados do tipo ALI. reconhecido pelo ferramentas OLAP. cálculo OU ** Serão contadas como consulta usuário e que não é ** Não são contadas qualquer tipo de consultas elaboradas DADO externa se forem desenvolvidas e repetido. pela área usuária. DERIVADO – disponibilizadas no ambiente ** TD para mensagem ** Para CE em DW não se conta TD (Item dedado) para (Relatórios corporativo do Data Warehouse. e TD para ação só capacidade de enviar mensagem. Esta regra não se aplica, OLAP) serão contados caso a pois a mensagem já está incorporada na ferramenta OLAP. [1],[3],[4] ferramenta OLAP ** Para CE em DW não se conta TD (Item dedado) para permita o capacidade de especificar uma ação(clique, botão “OK”). desenvolvimento Esta regra não se aplica, pois a ação já está incorporada na destas ferramenta de OLAP. funcionalidades, pois caso contrário não serão contados (vide “O que não se conta”) 81 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão CGMI/SPOA/SE/MDIC 01/04/15 15:04:31 Contar as Funções TRANSACIONAIS e suas Complexidades Função CE Tipo Descrição Arquivos de QA ** Representam arquivos que (Qualidade de apresentam listas da qualidade de Dados) [5] dados que são geradas durante o processo de carga (ETL). Arquivo Referenciado (AR) ** Conta-se um AR para cada ALI de QA lidos durante a consulta externa. Item de Dado (TD) O que não se conta ** Conta-se um item de ** Para CE em DW não se conta TD (Item dedado) para dado para cada campo capacidade de enviar mensagem. Esta regra não se aplica, contido no arquivo de pois os arquivos de QA não possuem esta característica. QA. ** Para CE em DW não se conta TD (Item dedado) para ** Estas listas são subprodutos do capacidade de especificar uma ação(clique, botão “OK”). processo de ETL de Data Esta regra não se aplica, pois os arquivos de QA não Warehouse possuem esta característica. ** Cada arquivo de QA (Qualidade de Dados) será contado como 1 (uma) consulta externa, caso seja recuperado do ALI QA e não haja cálculo. [5] SE Camada ** Representa a camada que será ** Conta-se um AR para cada tabela de ** Conte um item de ** Para SE em DW não se conta TD (Item dedado) para Semântica utilizada pelo usuário para dimensão e tabela fato ou tabela ponte dado para cada capacidade de enviar mensagem. Esta regra não se aplica, e/ou desenvolvimento das suas lido/referenciado/mantido na camada atributo que ficará pois a mensagem já está incorporada na ferramenta OLAP. Cubos [4] consultas/relatórios, bem como pela semântica/cubo. disponível para o ** Para SE em DW não se conta TD (Item dedado) para equipe. Obs.: se há um mesmo ALI usuário na camada capacidade de especificar uma ação(clique, botão “OK”). ** Se as funções de metadados desempenhando papéis diferentes, o ALI é semântica ou no cubo. Esta regra não se aplica, pois a ação já está incorporada na foram desenvolvidas para apoiar um contado somente uma vez. Ex.: país de usuário do aplicativo, então conte origem e país de destino. ferramenta de OLAP. um EE para cada função única mantendo os metadados. 82 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão CGMI/SPOA/SE/MDIC 01/04/15 15:04:31 Contar as Funções TRANSACIONAIS e suas Complexidades Função SE Tipo Descrição Arquivo Referenciado (AR) Item de Dado (TD) O que não se conta Arquivos de QA ** Representam arquivos que ** Conta-se um AR para cada ALI de QA ** Conta-se um item de ** Para SE em DW não se conta TD (Item dedado) para (Qualidade de apresentam listas da qualidade de lidos/mantidos durante a saída externa. dado para cada campo capacidade de enviar mensagem. Esta regra não se aplica, Dados) [5] dados que são geradas durante o contido no arquivo de pois os arquivos de QA não possuem esta característica. processo de carga (ETL). QA. ** Para SE em DW não se conta TD (Item dedado) para ** Estas listas são subprodutos do capacidade de especificar uma ação(clique, botão “OK”). processo de ETL de Data Esta regra não se aplica, pois os arquivos de QA não Warehouse possuem esta característica. ** Cada arquivo de QA (Qualidade de Dados) será contado como 1 (uma) saída externa, caso haja atualização do ALI de QA ou consolidação dos dados. [5] 83 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC Data de Impressão 01/04/15 15:04:31 Contar as Funções TRANSACIONAIS e suas Complexidades Função SE Tipo Descrição Arquivo Referenciado (AR) Item de Dado (TD) O que não se conta Relatórios ** Para o Data Warehouse são ** Conte um AR para cada dimensão ou ** Conte um Item de ** List-box ou combos não são contadas como consulta Gerenciais consideradas também como saídas fato (ALIs) lido durante o processamento de dado não repetido, externa, pois são funcionalidades incorporadas pelas contendo externas os relatórios e painéis Saída Externa. para cada campo ferramentas OLAP. cálculos ou gerenciais especificados durante a reconhecido pelo ** Não são contados como TD os atributos utilizados nos derivações etapa de levantamento. usuário que será cálculos, e que não SÃO disponibilizados nos relatórios de (Relatórios ** Considere um processo recuperado ou gerado saída. OLAP ou elementar para cada relatório do pelo processo ** Para SE em DW não se conta TD (Item dedado) para Painéis) [1], [4] negócio ou painel solicitado. elementar. capacidade de enviar mensagem. Esta regra não se aplica, ** TD para mensagem pois a mensagem já está incorporada na ferramenta OLAP. e TD para ação só ** Para SE em DW não se conta TD (Item dedado) para serão contados caso a capacidade de especificar uma ação(clique, botão “OK”). ferramenta OLAP Esta regra não se aplica, pois a ação já está incorporada na permita o ferramenta de OLAP. desenvolvimento ** Não são contados “literais”, tais como logo, título do destas relatório, etc. funcionalidades, pois ** a contagem de Pontos de Função é baseada na caso contrário não identificação do processo elementar e não na serão contados (vide implementação do mesmo. Assim, se uma consulta for “O que não se conta”) mostrada em uma tela com rolagem ou abas, esta será contada apenas uma vez. No entanto, em alguns casos as abas em uma tela são implementações de processos elementares distintos. Assim, nestes casos devem-se contar todos os processos elementares distintos. 84 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence CGMI/SPOA/SE/MDIC 7 Data de Impressão 01/04/15 15:04:31 Fórmula [6] O tamanho do projeto de desenvolvimento ou de manutenção deve ser dimensionado de acordo com as fórmulas abaixo:      Desenvolvimento de um Novo DW: PF = PF_Incluído + PF_Conversão (Projeto de Desenvolvimento - CPM 4.3) Manutenção Evolutiva: Consiste na inclusão, alteração ou exclusão de funcionalidades em uma aplicação de Data Warehouse implantada. PF= PF_incluido + PF_Alterado + PF_Excluido + PF_Conversão (Projeto de Melhoria – CPM 4.3) Manutenção Corretiva: Correção de erros em funcionalidades de aplicações existentes. PF = PF_Alterado x 0,70 Manutenção Superficial: Correção de Problemas na Interface (exemplo: alteração de fonte de caracteres, cores de telas, logotipos, reposicionamento de botões na tela). PF = PF_Alterado x 0, 10 Manutenção Adaptativa: Adequação de funcionalidades às mudanças de negócio. Essa manutenção está associada aos requisitos não funcionais. Deve-se contar os PF_Alterados das funcionalidades impactadas pela mudança. O tamanho é  aferido com base na fórmula: PF = PF_Alterado x 0,30. Atuação em Bases de Dados: Consiste em extrações de dados ou atualizações de dados de Bases de dados em sistemas em produção. Seguem as fórmulas: Extração de Dados: PF = PF_Incluido x 0,60; Alteração de Dados em Produção: PF=  PF_Incluido x 0,30; Intervenção em Base de Dados: PF_Incluído x 0,10 Redocumentação de DW existentes: PF = PF_Incluido x 0,30 85 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence Data de Impressão 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Esta tabela representa também outros itens que podem ocorrer durante o projeto de Data Warehouse e que serão tratados, na maioria dos casos, como desenvolvimento/manutenção e que não tem como classificá-los como função ou transação de dado. Item Tipo Impacto Descrição (ETL, OLAP, Banco Dados) Customização OLAP OLAP OLAP Deverá seguir o padrão de contagem para desenvolvimento/manutenção do IFPUG/MDIC. Manter o ambiente OLAP e ETL OLAP OLAP Implica em criar usuários e perfis para acesso a ETL ETL ferramenta OLAP e ETL. O MDIC é administrador do ambiente de ETL e, portanto, irá absorver a manutenção dos usuários e perfis de acesso. Configuração integração OLAP OLAP AD/LDAP x OLAP Customização ETL - SISP Deverá seguir o padrão de contagem para desenvolvimento/manutenção do IFPUG/MDIC. ETL ETL Deverá seguir o padrão de contagem para desenvolvimento/manutenção do IFPUG/MDIC. 86 Versão 1.0 Guia Contagem de Pontos de Função para Business Intelligence 01/04/15 15:04:31 CGMI/SPOA/SE/MDIC Item Tipo Data de Impressão Impacto Descrição (ETL, OLAP, Banco Dados) Migração de ferramenta ETL ETL Processos de ETL Implica em refazer o processo de ETL, neste caso deverá seguir as regras de EE de ETL definido no item 6.2 deste guia e dos itens não mensuráveis da tabela 1. Migração de Banco de Dados Adicionar Campos em Dimensões e Fatos Banco Banco Banco Deverá seguir o padrão de contagem para Processos de ETL desenvolvimento/manutenção do IFPUG/MDIC. Banco Deverá seguir o padrão de contagem para Processo de ETL desenvolvimento/manutenção do IFPUG/MDIC. OLAP 87