O processo de contagem de pontos de função é integrado à avaliação SNAP. Apesar disso, ele pode ser usado de maneira completamente independente conforme o propósito. O processo de contagem de pontos de função é composto pelas seguintes sete etapas:
- Reunir a documentação disponível.
- Determinar propósito, escopo, fronteiras e partições.
- Identificar requisitos como funcionais, não funcionais ou mistos.
- Medir as funções de dados.
- Medir as funções de transação.
- Calcular o tamanho funcional.
- Documentar e reportar.
Visão geral do processo de contagem de pontos de função
O diagrama a seguir oferece uma visão geral da medição de software do IFPUG com as etapas do processo de contagem de pontos de função (APF) e da avaliação não funcional de software (SNAP). Porque a APF pode ser usada completamente em separado da avaliação SNAP, cobrimos apenas os elementos nessas etapas relevantes para o processo de contagem de pontos de função neste artigo.
Obtenha o Cartão de Referência em Análise de Pontos de Função (APF) e SNAP em sua versão PDF. Ou, se preferir, solicite sua cópia impressa
Reunir a documentação disponível
A medição pela APF tem o objetivo de ser simples e baseada na visão do usuário, por isso a documentação de suporte a uma contagem de pontos de função deve descrever a funcionalidade entregue pelo software ou a funcionalidade impactada pelo projeto de software medido.
Determinar propósito, escopo, fronteiras e partições
Propósito da medição
Toda a medição é um meio e não um fim em si mesmo, por isso o objetivo é deixar bem claro o que se pretende atingir nesta etapa com a contagem a ser feita. Determinar qual o problema que se pretende resolver com ela. Isso é fundamental, porque o desenvolvimento das etapas seguintes depende diretamente desse propósito.
Tipo de Medição
Há três tipos de contagem de pontos de função. A diferença no procedimento adotado entre esses tipos de contagem está nas fórmulas aplicadas na etapa para Calcular o Tamanho Funcional. Por isso, é importante você as conhecer.
- projeto de desenvolvimento: mede todas as funções entregues ao final da primeira Release da aplicação e eventuais funções de conversão de dados.
- projeto de melhoria: mede as funções alteradas, incluídas e excluídas e eventuais funções de conversão de dados.
- aplicação ou (baseline): mede as funções de um software instalado.
Fronteira da aplicação
A medição funcional é feita em uma perspectiva externa do usuário, por isso é necessário uma referência de “fronteira” para determinar o que é externo ao usuário ou interno à aplicação.
A fronteira da aplicação é a interface conceitual entre o software e o usuário. portanto, ela não depende de aspectos técnicos e depende de uma visão de negócio. Ela delimita o software e o mundo externo, portanto ela é um elemento essencial para a correta identificação das funções do tipo dado e transação nas etapas seguintes.
Escopo da medição
Como pode se ver pelos passos anteriores, um caso de medição para uma mesma aplicação terá um conjunto específico de funcionalidades incluídas na medição conforme o propósito. Por isso a medição define o conceito de escopo da contagem, que define quais funcionalidades farão parte da contagem de pontos de função.
Identificar requisitos como funcionais, não funcionais ou mistos
Porque um requisito pode conter ambos aspectos funcionais e não funcionais, o requisito terá o tamanho funcional, medido em pontos de função, e o tamanho não funcional, medido em pontos SNAP. Ou seja, tais requisitos deveriam ser decompostos em seus componentes funcionais e não funcionais, e a segregação deveria ser alinhada entre ambas as equipes de desenvolvedores e clientes.
Medir funções de dados
As funções do tipo dado representam requisitos de armazenamento do usuário. São classificadas em:
- Arquivos Lógicos Internos (ALI): grupos de dados logicamente relacionados (do ponto de vista do usuário) e mantidos pela própria aplicação.
- Arquivos de Interface Externa (AIE): grupos de dados logicamente relacionados (do ponto de vista do usuário) e apenas referenciados de outras aplicações.
Nesta etapa, são identificados todos os ALI / AIE da aplicação conforme o propósito da medição. As complexidades são determinadas com base em dois parâmetros (tipos de dado e tipos de registro) e; associada a cada complexidade existe uma quantidade de pontos de função correspondente.
Medir funções de transação
As funções do tipo transação representam requisitos de processamento do usuário. São classificadas em:
- Entradas Externas (EE): transações com o objetivo de atualizar arquivos lógicos internos ou modificar o comportamento do sistema.
- Consultas Externas (CE): transações que representam simples recuperação de dados de arquivos lógicos internos e/ou arquivos de interface externa.
- Saídas Externas (SE): transações com o objetivo de apresentação de informação, porém envolvendo lógica de processamento adicional a uma consulta externa.
Nesta etapa, são identificadas todas as transações da aplicação conforme o propósito da medição. Suas complexidades são determinadas com base em dois parâmetros (tipos de dado e arquivos referenciados) e; associada a cada complexidade existe uma quantidade de pontos de função correspondente.
Calcular o tamanho funcional
Com a identificação, classificação e determinação da contribuição de cada função à medição, o cálculo final dos pontos de função consiste basicamente em realizar um somatório dos pontos de função identificados conforme o propósito. Por isso, existem fórmulas específicas para cada tipo de contagem:
- Projeto de Desenvolvimento: DFP = ADD + CFP, onde:
DFP é a contagem de pontos de função do projeto de desenvolvimento;
ADD é o tamanho das funções a serem entregues ao usuário pelo projeto de desenvolvimento;
CFP é o tamanho da funcionalidade de conversão
- Projeto de Melhoria: EFP = ADD + CHGA + CFP + DEL, onde:
EFP é a contagem de pontos de função do projeto de melhoria;
ADD é o tamanho das funções incluídas pelo projeto de melhoria;
CHGA é o tamanho das funções alteradas pelo projeto de melhoria;
CFP é o tamanho da funcionalidade de conversão;
DEL é o tamanho das funções excluídas pelo projeto de melhoria.
- Aplicação: AFP = ADD, onde:
AFP é a contagem de pontos de função da aplicação;
Documentar e reportar
O resultado final da medição é um número expresso em uma unidade. No entanto, se esse número for questionado, então toda análise deve ser refeita quando não há registros das conclusões da análise. Por isso, a contagem de pontos de função deve ser documentada, registrando todas as informações anteriores (o propósito, o tipo da contagem, o escopo, a fronteira da aplicação, etc.).
Casos do processo de contagem de pontos de função aplicado
Embora o processo definido ser fundamental para medição, nada substitui a sua aplicação para consolidar como ele funciona. Para isso, além do caso apresentado na capa deste artigo, você pode encontrar outro caso com a medição do aplicativo de contatos do Google aqui.
E a aplicabilidade da APF com SCRUM, DevOps, desenvolvimento contínuo entre outros contexto de desenvolvimento ágil?
Sobre esse tema, recomendamos o registro de uma entrevista realizada pela FATTO e de um painel mantido pelo IIBA/SP.