Análise de Pontos de Função Cristiane Oliveira Novembro/2014 www.aprendavirtual.com Sobre o instrutor • CFPS – Certified Function Point Specialist (2006/2009). • Mestre em Sistemas e Computação. • Pós graduada em Sistemas de Informação com ênfase em Componentes Distribuídos e Web. • Analista de Desenvolvimento da Desenbahia, atuando como Administradora de Dados e coordenadora de projetos. www.aprendavirtual.com Roteiro • Métricas de Software - Por que medir software? - Técnicas para mensuração de tamanho • Análise de Pontos de Função - Conceitos gerais - Etapas de Pontuação - Atividade Prática I (resolução durante a apresentação dos conceitos) • Estudo de Caso - Atividade Prática II (resolução e debate) www.aprendavirtual.com Métricas de Software: necessárias ou não? www.aprendavirtual.com Métricas • “Quando se pode medir aquilo sobre o qual se está falando e expressá-lo em números, sabe-se alguma coisa sobre o mesmo; mas quando não se pode medi-lo, quando não se pode expressá-lo em números, o conhecimento que se tem é de um tipo inadequado e insatisfatório; este pode ser o começo do conhecimento, mas dificilmente alguém terá avançado em suas ideias para o estágio da ciência.” PRESSMAN apud Lorde Kelvin,2005 www.aprendavirtual.com Métricas • Vamos pensar... – Como se contrata a construção de uma estrada? – Como se compra uma casa? – Como se contrata o desenvolvimento de software? – Como se compra um software? www.aprendavirtual.com Métricas • O gerenciamento de projetos deve ser auxiliado pela utilização de uma métrica que permita a mensuração de um projeto e, consequentemente, a geração de sua estimativa de prazo, custo e recursos. • “Não se pode gerenciar o que não se pode medir.” DE MARCO, 1982 www.aprendavirtual.com Como medir software? • Passo 1: Definir o que será medido: – Tamanho – Complexidade do software – Qualidade do produto • Passo 2: Definir a técnica a ser usada – Linhas de código (KLOC) – Análise de Pontos de Função www.aprendavirtual.com Análise de Pontos de Função www.aprendavirtual.com Análise de Pontos de Função • A Análise de Pontos de Função (APF) é um método padronizado para medição de sistemas, o qual visa estabelecer uma medida de tamanho do software. • Utilizada por instituições públicas e privadas para: – Estimar o custo e recursos requeridos para o desenvolvimento, melhoria e manutenção do software – Estabelecer um fator de normalização para a comparação de softwares www.aprendavirtual.com Um breve histórico • 1979 – APF foi criada por Allan J. Albrecht (IBM). • 1986 – Surgiu o IFPUG (International Function Point Users Group). • 1988 – Lançado o Function Point Counting Practices Manual. • 1998 – Nasceu o BFPUG (Brazilian Function Point Users Group) • 1990 a 2010 - Novas versões do CPM (Counting Practices Manual) lançadas. – Versão atual: 4.3.1 (Jan/2010), em conformidade com a ISO/IEC 14143-1:2007 (Information technology - Software Measurement - Functional Size Measurement – Definition of Concepts) www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Reunir documentação disponível • Documentação deve descrever a funcionalidade entregue pelo software. • Exemplos de documentação: – Requisitos – Casos de Uso – Modelos de dados/objetos, Diagramas de Classes – Layout de relatórios e telas – Manuais de Usuários • Se não houver documentação, consulte um especialista no negócio. www.aprendavirtual.com Na prática... Sistema de Pesquisa (PESQ) – Documentação disponível www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Determinar Escopo e Fronteira • Passo 01: Identificar o propósito da contagem • Exemplos: – Tamanho de uma release específica de software. – Tamanho de toda uma aplicação • Passo 02: Identificar o escopo da contagem: – Contagem em Projetos de Desenvolvimento – Contagem em Projetos de Melhoria – Contagem de uma Aplicação www.aprendavirtual.com Determinar Escopo e Fronteira • Projeto de Desenvolvimento: – Mede as funcionalidades entregues com a primeira versão do software. – Escopo: Funções construídas e as funções de conversão de dados • Projeto de Melhoria: – Mede as modificações em uma aplicação existente (inclusão, alteração ou exclusão de funções). – Escopo: Inclui as funções incluídas, alteradas e excluídas, assim como as funções de conversão de dados www.aprendavirtual.com Determinar Escopo e Fronteira • Aplicação: – Cálculo efetuado através da pontuação das funcionalidades existentes em uma dada versão de uma aplicação. – Também conhecido como baseline ou tamanho funcional instalados, inicia quando o projeto de desenvolvimento é finalizado e é atualizado sempre que um projeto de melhoria alterar funções da aplicação. – Escopo: Depende do propósito • Apenas as funções usada pelo usuário. • Todas as funções disponibilizadas www.aprendavirtual.com Determinar Escopo e Fronteira • Passo 03: Identificar a fronteira da aplicação – A fronteira consiste em uma espécie de “membrana“ que separa o software a ser mensurado das demais aplicações. – Define o que é externo e interno em relação a aplicação pontuada. – Depende da visão externa do usuário da aplicação. – É independente de considerações técnicas ou de implementação. www.aprendavirtual.com Determinar Escopo e Fronteira Exemplo de Fronteira da Aplicação Financeiro Recursos Humanos Controle Patrimonial www.aprendavirtual.com Determinar Escopo e Fronteira • Exemplo: O Sistema Acadêmico possui três módulos: Controle das Mensalidades, Controle de Matrículas e Controle dos Docentes. Como esse sistema será pontuado? São três sistemas diferentes ou um único? #ficaadica: Pode-se utilizar as especificações do sistema, o diagrama de contexto ou o diagrama de casos de usos para determinar a fronteira da aplicação. www.aprendavirtual.com Na prática... Sistema de Pesquisa (PESQ) – Escopo e Fronteira da Aplicação www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Medir Funções de Dados • As Funções de Dados representam a funcionalidade oferecida ao usuário para satisfazer requisitos de dados internos e externos. • Uma Função de Dado pode ser classificada como: – Arquivos Lógicos Internos (ALI) – Arquivos de Interface Externa (AIE) • O termo arquivo refere-se ao agrupamento lógico de dados e não a estrutura física dos mesmos. www.aprendavirtual.com Medir Funções de Dados • ALI (Arquivo Lógico Interno): – Grupo de dados ou informações de controle logicamente relacionados, reconhecido pelo usuário, mantido dentro da fronteira da aplicação. – A intenção primária de um ALI é armazenar dados mantidos por um ou mais processos elementares da aplicação. www.aprendavirtual.com Medir Funções de Dados • Informações de controle: – São dados que influenciam um processo elementar. Especificam o que, quando ou como os dados serão processados. – Exemplo: O Departamento Financeiro da empresa Xinguilingue estabeleceu um ciclo para o pagamento de seus funcionários. Como essa informação de periodicidade afeta o processo de pagamento dos funcionários, deve ser considerada uma informação de controle. www.aprendavirtual.com Medir Funções de Dados • Processo Elementar: – Menor unidade de atividade que tem significado para o usuário. – Constituiu uma transação completa. – Auto contida – Deve deixar o negócio da aplicação em um estado consistente. www.aprendavirtual.com Medir Funções de Dados • Exemplo de Processo Elementar: – Os requisitos do usuário para adicionar um empregado incluem informações sobre salário e de seus dependentes. – Somente quando as informações de dependente e de salário são adicionadas o empregado pode ser criado. – Nesse caso, o processo elementar é “Cadastrar empregado” e não somente “cadastrar dependentes” ou “cadastrar salário”, pois estes não são autossuficientes. www.aprendavirtual.com Medir Funções de Dados • Exemplos de ALIs: – Em um Sistema de Controle Acadêmico, dados de alunos, turmas, disciplinas, docentes. – Em um Sistema de Administração de Condomínios, dados de condôminos. – Em um Sistema de Controle de Biblioteca, dados de livros, empréstimos. www.aprendavirtual.com Medir Funções de Dados • AIE (Arquivo de Interface Externa): – Grupo de dados ou informações de controle logicamente relacionados, reconhecido pelo usuário, referenciados pela aplicação que está sendo contada, porém mantido dentro da fronteira de outra aplicação. – A intenção primária de um AIE é armazenar dados referenciados através de um ou mais processos elementares dentro da fronteira da aplicação contada. – Um AIE contado para uma aplicação deve ser um ALI em outra aplicação. www.aprendavirtual.com Medir Funções de Dados • Exemplos de AIEs: – Em um Sistema de Controle Acadêmico, dados de livros, pagamento de boletos financeiros (mantidos pelo Sistema de Controle de Biblioteca e Sistema Financeiro, respectivamente) . – Em um Sistema de Controle de Biblioteca, dados de alunos (mantidos pelo Sistema de Controle Acadêmico). www.aprendavirtual.com Medir Funções de Dados • Passo 01: Identificar as funções de dados. • Passo 02: Classificar cada função de dado como um ALI ou um AIE. • Passo 03: Determinar a complexidade dos ALI ou AIE e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Dados • Passo 01: Identificar as funções de dados: 1. Identificar no escopo da contagem todos os dados e informações de controle logicamente relacionados e reconhecidos pelo usuário. 2. Excluir entidades que não são mantidas por nenhuma aplicação 3. Agrupar entidades relacionadas que são dependentes 4. Excluir as entidades classificadas como Dados de código 5. Excluir entidades que não contém atributos necessários para o usuário 6. Remover entidades associativas que contém atributos adicionais não necessários para o usuário e entidades associativas que contém apenas chaves estrangeiras. www.aprendavirtual.com Na prática... Sistema de Pesquisa (PESQ) - Medir Funções de Dados www.aprendavirtual.com Medir Funções de Dados • Tipos de Entidades de Dados: – Dados de Negócio (Business Data). • Dados relacionados ao negócio da aplicação propriamente dita. Exemplo: Dados de Cliente, Paciente, Alunos – Dados de Referência (Reference Data). • Dados que dão “suporte” às regras de negócio Exemplo: Dados de Moeda, Salários pagos por cargo www.aprendavirtual.com Medir Funções de Dados • Tipos de Entidades de Dados: – Dados de Código (Code Data). • Fornecem uma lista de valores válidos que um atributo descritivo pode ter. • Nem sempre são especificados pelo usuários – muitas vezes são identificados pelo desenvolvedor. • Caso típico: tabelas de domínio, criadas por normalização. • Exemplo: Situação do cliente, Tipo de pagamento. www.aprendavirtual.com Medir Funções de Dados Vamos pensar... Será que todos esses tipos de dados podem ser ALIs? Tipo de Dados É um ALI? Dados de Negócio SIM Dados de Referência SIM Dados de Código NÃO www.aprendavirtual.com Medir Funções de Dados • Passo 01: Identificar as funções de dados. • Passo 02: Classificar cada função de dado como um ALI ou um AIE. • Passo 03: Determinar a complexidade dos ALI ou AIE e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Dados • Passo 02: Classificar cada função de dado como um ALI ou AIE: – ALI: • Mantido pela aplicação que está sendo mantida – AIE: • Referenciado, mas não mantido, pela aplicação que está sendo mantida • ALI de outra aplicação. www.aprendavirtual.com Medir Funções de Dados • Beleza!! Já identifiquei todos os ALIs e AIEs. • Mas... Eles são todos iguais? Têm o mesmo peso? Como sei quantos pontos cada arquivo possui? www.aprendavirtual.com Medir Funções de Dados • Passo 01: Identificar as funções de dados. • Passo 02: Classificar cada função de dado como um ALI ou um AIE. • Passo 03: Determinar a complexidade dos ALI ou AIE e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Dados • Fator de Complexidade de um ALR: – É a classificação de cada função. As possíveis classificações são: BAIXA, MÉDIA OU ALTA. – A avaliação da complexidade é baseada na quantidade de Tipo de Dados Elementares (DERs) e de Tipo de Registros Elementares (RLRs). www.aprendavirtual.com Medir Funções de Dados • Tipos de Dados Elementares (DERs): – Consiste em cada elemento de dado único, não repetido e reconhecido pelo usuário. – Exemplo: Em um ALR chamado Paciente, existem dados de RG, CPF, nome, data de admissão. Nesse caso, temos: • ALR = 1 (Aluno) • DER = 4 (RG, CPF,nome e data de admissão) www.aprendavirtual.com Medir Funções de Dados • Tipos de Dados Elementares (DERs): – Contar um DER para cada campo único, reconhecido pelo usuário e não repetido, mantido ou recuperado pela função de dados Exemplo: Contar apenas um DER para os 12 campos valor Mensal Orçado. Conte um DER adicional para identificar o mês aplicável. – Contar apenas os DERs que estão sendo usados pela aplicação medida. Exemplo: Demais dados mantidos pelo Lattes sobre as Áreas de Conhecimentos não são DERs do PESQ www.aprendavirtual.com Medir Funções de Dados • Tipos de Dados Elementares (DERs): – Contar um DER para cada parte do dado requisitado pelo usuário para estabelecer um relacionamento com outra função de dado. Casos de chave estrangeiras Exemplo: Funcionário e Cargo. – Revisar os atributos relacionados para determinar se eles estão agrupados e contados como um simples DER ou se são contados como DERs múltiplos. Exemplo: Endereço www.aprendavirtual.com Medir Funções de Dados • Tipos de Registros Elementares (RLRs): – Subgrupo de elementos de dados, reconhecido pelo usuário, dentro de um ALI ou AIE. – Dividem-se em dois subgrupos: • Obrigatório (deve usar pelo menos um no processo elementar) • Opcional (tem a opção de usar um ou nenhum dos subgrupos durante o processo elementar) – Cada subgrupo de dados equivale a um RLR. Se um ALR não tiver subgrupos de dados, conta-se um único RLR. www.aprendavirtual.com Medir Funções de Dados • Tipos de Registros Elementares (RLRs): • Exemplo: Em um Sistema de Recursos Humanos, para cadastrar um empregado é necessário informar o nome, endereço, telefone. O empregado pode ou não ter dependentes, sendo necessário armazenar informações destes quando pertinente. • Nesse caso temos: – Empregado – 1 RLR – Dependente - 1 RLR – Pontuação Final: 1 ALR com 2 RLRs. www.aprendavirtual.com Medir Funções de Dados • Tabela de Complexidade 1 a 19 DERs 20 a 50 DERs 51 ou + DERs 1 RLR Baixa Baixa Média 2 a 5 RLRs Baixa Média Alta 6 ou + RLRS Média Alta Alta www.aprendavirtual.com Medir Funções de Dados • Contribuição da Complexidade nos Pontos Complexidade Funcional Peso nos ALI Peso nos AIE Baixa 7 5 Média 10 7 Alta 15 10 www.aprendavirtual.com Medir Funções de Dados • Treinando um pouco... – Seja o ALR Paciente, atualizado pelo Sistema de Administração Hospitalar, formado pelas seguintes informações: • Nome do paciente • Data de nascimento • Data de entrada no hospital Como calcular a pontuação? www.aprendavirtual.com Medir Funções de Dados • Determinando os DERs e RLRs: – DERs = 3 – RLRs = 1 • Consultando as tabelas, conclui-se que: – É um ALI de complexidade Baixa. – Logo, contribui com 7 pontos na pontuação. www.aprendavirtual.com Medir Funções de Dados • Passo 01: Identificar as funções de dados. • Passo 02: Classificar cada função de dado como um ALI ou um AIE. • Passo 03: Determinar a complexidade dos ALI ou AIE e sua contribuição para o tamanho funcional. www.aprendavirtual.com Na prática... Sistema de Pesquisa (PESQ) - Medir Funções de Dados www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Medir Funções de Transações • Processo elementar que oferece funcionalidade ao usuário para processar dados. • Podem ser: – Entradas Externas (EE) – Saídas Externas (SE) – Consultas Externas (CE) www.aprendavirtual.com Medir Funções de Transações • Entradas Externas: – Processo elementar que processa dados ou informações de controle que vêm de fora da fronteira da aplicação. – A intenção primária de uma EE é manter um ou mais ALI e/ou alterar o comportamento do sistema. www.aprendavirtual.com Medir Funções de Transações • Exemplos de Entradas Externas: – Inserir dados de aluno. – Excluir paciente. – Importar arquivo de pagamentos efetuados em um dia. – Rotina de atualização do valor do triênio de um funcionário. www.aprendavirtual.com Medir Funções de Transações • Não devem ser consideradas Entradas Externas: – Chamadas repetidas a uma entrada de dados já pontuada (a funcionalidade deve ser contada uma única vez por aplicação). – “Refresh” ou cancelamento de dados em uma tela. – Ordenação de dados em uma tela. – Mensagens que necessitam confirmação do usuário. www.aprendavirtual.com Medir Funções de Transações • Consultas Externas: – Processo elementar que envia dados ou informações de controle para fora da fronteira da aplicação. – A intenção primária de uma CE é apresentar informações ao usuário através de uma simples recuperação de dados ou informações de controle. www.aprendavirtual.com Medir Funções de Transações • Exemplos de Consultas Externas: – Consulta dados de Clientes. – Relatório de Pacientes internados em um dado dia. – Lista de todos os Municípios (em um Combo Box). – Consulta dados de um determinado Professor. www.aprendavirtual.com Medir Funções de Transações • Não devem ser consideradas Consultas Externas: – Relatórios ou arquivos enviados para outra aplicação idênticos, apenas com valores diferentes. – Cancelamento de uma determinada operação. – Reordenamento de campos em uma tela. www.aprendavirtual.com Medir Funções de Transações • Saídas Externas: – Processo elementar que envia dados ou informações de controle para fora da fronteira da aplicação. – A intenção primária de uma SE é apresentar informações ao usuário através da lógica de processamento que não seja apenas a recuperação dos dados ou informações de controle. www.aprendavirtual.com Medir Funções de Transações • Exemplo de Saídas Externas: – Relatório de total de clientes devedores. – Arquivo listando todos os pacientes internados em um dado dia, somando o valor da conta de cada um. – Gráficos que mostrem a quantidade de alunos matriculados em uma disciplina ao longo do tempo. www.aprendavirtual.com Medir Funções de Transações • Não devem ser consideradas Saídas Externas: – Relatórios ou arquivos enviados para outra aplicação idênticos, apenas com valores diferentes. – Relatórios ou arquivos enviados para outra aplicação que não possuem dados derivados, cálculos ou fórmulas e não mantêm um ALI dentro da aplicação enviando dados. – “Refresh” ou cancelamento de dados na tela. – Reordenamento de campos em uma tela www.aprendavirtual.com Medir Funções de Transações • #ficaadica – Uma SE deve, obrigatoriamente, executar uma das ações abaixo: • • • • Alterar o comportamento do sistema, Manter um ou mais ALIs, Efetuar cálculos matemáticos Criar dados derivados – Uma CE não pode executar qualquer uma das ações acima – Todas as funções de Transações podem efetuar validações de dados, assim como reclassificá-los ou reorganizá-los. www.aprendavirtual.com Medir Funções de Transações • Resumo das funções realizadas pelas EEs, CEs e SEs Função Tipo de Função de Transação EE SE CE Alterar o comportamento do sistema IP F N/A Manter um ou mais ALI IP F N/A Apresentar a informação ao usuário F IP IP IP – Intenção primária F – É uma função, mas não é a intenção primária N/A - Não é permitida www.aprendavirtual.com Medir Funções de Transações • Lógica de processamento: – Qualquer um dos requisitos especificamente solicitados pelo usuário para completar um processo elementar: • • • • Validações Execução de fórmulas matemática e cálculos Conversão de valores equivalentes Filtro e seleção de dados através de critérios especificados pelo usuário • Análise de condições para determinar quais são aplicáveis • Atualização e/ou referência a ALI/AIE • Criação de dados derivados www.aprendavirtual.com Medir Funções de Transação • Passo 01: Identificar cada processo elementar • Passo 02: Determinar o processo elementar único. • Passo 03: Classificar .as Funções de Transação como Entradas Externas, Consultas Externas ou Saídas Externas • Passo 04: Determinar a complexidade funcional de cada Função de Transação e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Transação • Passo 01: Identificar cada processo elementar – Compor e/ou decompor os requisitos funcionais do usuário até a menor unidade de atividade que satisfaça os itens: • Significativo para o usuário • Constitui uma transação completa • É auto contido • Deixa o negócio da aplicação em um estado consistente. – Exemplo: Incluir um funcionário e seus dependentes www.aprendavirtual.com Na prática... Sistema de Pesquisa (PESQ) - Medir Funções de Transação www.aprendavirtual.com Medir Funções de Transação • Passo 01: Identificar cada processo elementar • Passo 02: Determinar o processo elementar único. • Passo 03: Classificar .as Funções de Transação como Entradas Externas, Consultas Externas ou Saídas Externas • Passo 04: Determinar a complexidade funcional de cada Função de Transação e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Transação • Passo 02: Determinar processos elementares únicos – Quando comparado a um Processo Elementar (PE) já identificado, contar dois PEs se eles: • Requerem o mesmo conjunto de DERs; • Requerem o mesmo conjunto de RLRs; • Requerem o mesmo conjunto de lógicas de processamento para completar o processo elementar www.aprendavirtual.com Medir Funções de Transação • Passo 01: Identificar cada processo elementar • Passo 02: Determinar o processo elementar único. • Passo 03: Classificar .as Funções de Transação como Entradas Externas, Consultas Externas ou Saídas Externas • Passo 04: Determinar a complexidade funcional de cada Função de Transação e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Transação • Passo 03: Classificar cada processo elementar como Entrada Externa (EE), Consulta Externa (CE) ou Saída Externa (SE) – Respeitar a intenção primária de cada processo elementar: – Considerar as diversas formas de lógica de processamento e suas aplicabilidades (obrigatório, opcional e proibida) www.aprendavirtual.com Medir Funções de Transação • Passo 01: Identificar cada processo elementar • Passo 02: Determinar o processo elementar único. • Passo 03: Classificar as Funções de Transação como Entradas Externas, Consultas Externas ou Saídas Externas • Passo 04: Determinar a complexidade funcional de cada Função de Transação e sua contribuição para o tamanho funcional. www.aprendavirtual.com Medir Funções de Transação • Há há!!! Agora já sei! • Assim como os tipos dados, as transações possuem pontos, pesos diferentes. Estou certo? www.aprendavirtual.com Medir Funções de Transação • Passo 04: Determinar a complexidade funcional de cada Função de Transação e sua contribuição para o tamanho funcional. – Semelhante ao conceito visto para Funções Tipo Dados. – Pode ser: Baixa, Média ou Alta. – A avaliação da complexidade é baseada na quantidade de Tipos de Arquivos Referenciados (ALR) e na quantidade de Tipo de Dados Elementares (DERs). www.aprendavirtual.com Medir Funções de Transação • Tipos de Arquivos Referenciados (ALRs): – Função de dados lida e/ou mantida pela função de transação. – Pode ser: • Um ALI lido ou mantido por uma função de transação ou • UM AIE lido por uma função de transação www.aprendavirtual.com Medir Funções de Transação • Tipos de Dados Elementares (DERs): – Contar um DER para cada campo único reconhecido pelo usuário, que cruza a fronteira durante o processamento da função de transação. – Contar apenas um DER por função de transação para a habilidade de enviar uma mensagem de resposta de aplicação mesmo que sejam mensagens múltiplas – Contar apenas um DER por função de transação para a habilidade de iniciar ações mesmo que haja múltiplos meios para realizá-la. www.aprendavirtual.com Medir Funções de Transação • Tipos de Dados Elementares (DERs): – Não contar como DER: • Literais como título de relatório, títulos de coluna, dentre outros • Selos gerados automaticamente pelo sistema como atributo de data e hora • Variável de paginação, números de página e informações de posicionamento www.aprendavirtual.com Medir Funções de Transação • Tipos de Dados Elementares (DERs): – Não contar como DER : • Ajudas de navegação (“anterior”, “próximo,” dentre outros) • Atributos gerados dentro da fronteira da aplicação e armazenados em um ALI sem sair da fronteira da aplicação • Atributos obtidos ou referenciados de um ALI/AIE para a participação em processamento sem sair da fronteira www.aprendavirtual.com Medir Funções de Transação • Definição da Complexidade para EE 1 a 4 TD 5 a 15 TD 16 ou + TD 0 ou 1 ALR Baixa Baixa Média 2 ALR Baixa Média Alta 3 ou + ALR Média Alta Alta www.aprendavirtual.com Medir Funções de Transação • Definição da Complexidade para SE/CE 1 a 5 TD 6 a 19 TD 20 ou + TD 0 ou 1 ALR Baixa Baixa Média 2 a 3 ALR Baixa Média Alta 4 ou + ALR Média Alta Alta www.aprendavirtual.com Medir Funções de Transação • Definição dos pesos sobre a Complexidade Baixa Média Alta EE 3 4 6 SE 4 5 7 CE 3 4 6 www.aprendavirtual.com Medir Funções de Transação • Treinando um pouco: – O Sistema de Administração Hospitalar, a pedido do usuário, deverá incluir, alterar, excluir e consultar os dados relacionados a paciente. O ALR de Paciente é composto pelos campos: • Nome do paciente • Data de nascimento • Data de entrada no hospital Como calcular a pontuação? www.aprendavirtual.com Medir Funções de Transação Análise das transações existentes nesse requisito: 3 EEs (uma para inclusão, alteração e outra para exclusão). 1 CE Determinação dos ALR e DERs: ALR = 1 DERs= 4 Análise da complexidade de cada funcionalidade, de acordo com a tabela: 3 EE Baixas 1 CE Baixa www.aprendavirtual.com Medir Funções de Transação • Definição dos pesos sobre a Complexidade Tipo Complexidade Função Funcional Complexidade Total EE 3Bx3 9 CE 1Bx3 3 SE 0 0 Total Pontos 12 www.aprendavirtual.com Medir Funções de Transação • Passo 01: Identificar cada processo elementar • Passo 02: Determinar o processo elementar único. • Passo 03: Classificar .as Funções de Transação como Entradas Externas, Consultas Externas ou Saídas Externas • Passo 04: Determinar a complexidade funcional de cada Função de Transação e sua contribuição para o tamanho funcional. www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Calcular Tamanho Funcional • O objetivo e escopo da contagem deverão ser considerados na seleção e utilização da fórmula apropriada para calcular o tamanho funcional • Projeto de Desenvolvimento: DFP = ADD + CFP • Onde: – DFP = Contagem de Pontos de Função de Desenvolvimento – ADD = Tamanho das funções a serem entregues ao usuário – CFP = tamanho das Funcionalidades de Conversão www.aprendavirtual.com Calcular Tamanho Funcional • Aplicação: AFP = ADD • Onde: – AFP = Contagem de Pontos de Função da Aplicação – ADD = Tamanho das funções a serem entregues ao usuário www.aprendavirtual.com Calcular Tamanho Funcional • Projeto de Melhoria: EFP = ADD + CHGA + CFP + DEL • Onde: – EFP = Contagem de Pontos de Função do projeto de Melhoria – ADD = Tamanho das funções incluídas pelo projeto de Melhoria • CHGA = Tamanho das funções alteradas pelo projeto de Melhoria • CFP = Tamanho das Funcionalidades de Conversão • DEL = Tamanho das funções excluídas pelo projeto de Melhoria www.aprendavirtual.com Calcular Tamanho Funcional • Tamanho Funcional de uma aplicação após Projeto de Melhoria: AFPA= (AFPB + ADD + CHGA) – (CHGB + DEL) • Onde: – AFPA = Contagem dos pontos da aplicação após o projeto de Melhoria – AFPB= Contagem dos pontos da aplicação antes do projeto de Melhoria – ADD = Tamanho das funções incluídas pelo projeto de Melhoria • CHGA = Tamanho das funções alteradas pelo projeto de Melhoria • CHGB = Tamanho das funções alteradas pelo projeto de Melhoria • DEL = Tamanho das funções excluídas pelo projeto de Melhoria www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Documentar e reportar • Documentar cada etapa do processo de contagem – Propósito e Tipo da Contagem – Escopo e Fronteira da Aplicação – Funções de Dados e Funções de Transação, bem como o número de pontos atribuído a cada uma – Resultado da contagem – Informações que auxiliem no posterior entendimento da contagem • A prática de reportar os resultados das contagens de Pontos de Função permitirá que os leitores identifiquem o padrão com o qual as mesmas mantém conformidade. www.aprendavirtual.com Processo de Medição Reunir a documentação disponível Determinar Escopo e a Fronteira da Contagem Medir Funções de Dados Medir Funções de Transação Calcular tamanho funcional Documentar e reportar www.aprendavirtual.com Referências Bibliográficas • Manual de Práticas de Contagem de Pontos de Função. International Function Point Users Group (IFPUG), 2010. • SOMMERVILLE, Ian. Engenharia de Software, 2011. 9ª Edição. Makron Books. • VAZQUEZ, Carlos; SIMÕES, Guilherme; ALBERT, Renato. Análise de Pontos de Função: Medição, Estimativas e Gerenciamento de Projetos de Software. 13ª ed, Editora Érica, 2013. • IFPUG - International Function Point Users Group (www.ifpug.org) • BFPUG – Brazilian Function Point Users Group (www.bfpug.com.br). www.aprendavirtual.com Análise de Pontos de Função Cristiane Oliveira Novembro/2014 www.aprendavirtual.com