Este documento fornece uma introdução sobre análise de pontos de função, incluindo como medir o tamanho funcional de software usando esta técnica. Apresenta os conceitos-chave de requisitos funcionais, processos elementares e funções de dados e transação, que são utilizados na contagem de pontos de função.
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
Web aula 49 - Utilizando Análise de Pontos de Função em Projetos Ágeis
1. Web aula 49: Utilizando
análise de pontos de função
em projetos ágeis
2. 20182018
OLÁ
• Bacharel em Ciência da Computação pela Unifenas, 2004.
• Especialista em Melhoria em Processo de Software pela
UFLA, 2006.
• Especialista em Gestão de Projetos, IETEC, 2013.
• Especialista em Análise de Pontos de Função pelo IFPUG
desde 2013.
• Experiência na contagem de mais de 30.000 PF.
• Atuação de mais de 15 anos no mercado de TI como
desenvolvedor, analista de sistemas, analista de requisitos,
gerente de projetos e líder de equipe.
• Fundador da Super9a Consultoria em Métricas e
Requisitos de Software, 2015
3. 201820182018
“Medir é o primeiro passo para controlar e
eventualmente promover melhorias. Se você não
pode mensurar algo, você não pode entendê-lo. Se
você não consegue capturá-lo, você não consegue
controlá-lo. Se você não consegue controlá-lo, você
não consegue melhorá-lo.”, H. James Harrington.
4. 20182018
INTRODUÇÃO
• Segundo Peter Drucker, pai da administração moderna, "Se você não
pode medir, não pode gerenciar".
• Sem informações não é possível gerenciar de forma efetiva os
projetos, com software não é diferente.
• O gerenciamento, através de informações de métricas, traz maior
assertividade e previsibilidade na gestão do escopo, custo e
cronograma.
5. 20182018
PROCESSOS DE MEDIÇÃO
• Unidades de medição foram uma das primeiras ferramentas
inventadas pelo homem;
• Ao longo da história da humanidade as unidades de medida eram
criadas e adaptadas de acordo com a necessidade dos povos;
• É sabido que desde 3000-1500 A.C já existiam métodos de medição
7. 20182018
MÉTRICAS DE SOFTWARE
• Existem as métricas orientadas a tamanho e a funcionalidade
• Das métricas mais orientada a tamanho a KLOC é mais famosa;
• Das métricas orientada a função temos a Análise de Pontos de Função e
Pontos por Caso de uso
9. 20182018
APF – ANÁLISE DE PONTOS DE FUNÇÃO
• É uma técnica criada em meados de 1970 por Allan Albrecht que visa
mensurar o tamanho funcional de um software;
• Essa técnica é mantida desde 1986 pelo International Function Point
Users Group (IFPUG) que tem aprimorado continuamente o método
original.
• O IFPUG também mantém o Manual de Práticas de Contagem que se
encontra na versão 4.3.1 desde 2010;
• Mede o software quantificando as tarefas e serviços (isto é,
funcionalidade) que o software fornece ao USUÁRIO,
primordialmente com base no projeto lógico
10. 20182018
APF – ANÁLISE DE PONTOS DE FUNÇÃO
• É independente de tecnologia e metodologia de processo de
desenvolvimento de software.
• É um padrão de mercado utilizado por várias instituições pelo mundo;
• Brasil é um dos países que mais possuem membros certificados.
11. 20182018
OBJETIVOS DA APF
• medir a funcionalidade implementada no software, que o usuário
solicita e recebe;
• a funcionalidade impactada pelo desenvolvimento, melhoria e
manutenção de software, independentemente da tecnologia utilizada
na implementação.
12. 20182018
PODE SER UTILIZADA PARA...
• Dar suporte à análise de qualidade e produtividade.
• Estimar o custo e recursos requeridos para o desenvolvimento, melhoria e
manutenção do software.
• Fornecer um fator de normalização para a comparação de software.
• Determinar o tamanho de um pacote de aplicação adquirido, por meio do
dimensionamento funcional de todas as funções incluídas no mesmo.
• Ajudar os usuários a determinar o beneficio provido por um pacote de
aplicação para a sua organização, por meio do dimensionamento funcional
das funções que correspondam especificamente aos seus requisitos.
13. 20182018
REQUISITO
• Existem diferentes definições encontradas na literatura técnica para
requisitos:
• Um requisito é uma característica do sistema ou a descrição de algo que o
sistema é capaz de realizar para atingir os seus objetivos;
• As descrições das funções e restrições são os requisitos do sistema;
• Um requisito é uma propriedade que o software deve exibir para resolver
algum problema no mundo real;
• Uma condição ou uma capacidade que deve ser alcançada ou estar presente
em um sistema para satisfazer um contrato, padrão, especificação ou outro
documento formalmente imposto...
14. 20182018
REQUISITOS FUNCIONAIS
• São requisitos diretamente ligados a funcionalidade do software,
descrevem as funções que o software deve executar.Alguns exemplos
são:
• O software deve permitir o cadastro de clientes;
• O software deve permitir a geração de relatórios sobre o desempenho de
vendas no semestre;
• O software deve permitir o pagamento das compras através de cartão de
crédito.
15. 20182018
REQUISITOS NÃO FUNCIONAIS
• São requisitos que expressam condições que o software deve atender
ou qualidades específicas que o software deve ter. Em vez de informar o
que o sistema fará, os requisitos não-funcionais colocam restrições no
sistema.Alguns exemplos são:
• Desempenho;
• Usabilidade;
• Confiabilidade;
• Segurança;
• Disponibilidade;
• Manutenção;
• Tecnologias envolvidas;
18. 20182018
COMPATIBILIDADE DE APF E METOLOGIAS
ÁGEIS
• Como dito no início, a APF foca na visão do usuário, portanto, não está
vinculada a tecnologia e metodologia de desenvolvimento de software;
• As metodologias ágeis focam na entrega contínua de sistema através
do conceito de agregar valor ao usuário (visão do usuário);
• As metodologias ágeis trabalham com o conceito de estória de
usuário que contém os requisitos do usuário e critérios de aceitação;
• Sendo assim, o ágil é totalmente compatível com APF e não requer
qualquer mudança no processo de contagem.
20. 20182018
APFVS. MÉTRICAS ÁGEIS
• A APF não tem qualquer vínculo com métricas ágeis.
• As métricas ágeis não focam em medir o tamanho do sistema;
• As métricas ágeis como lead time, throughtput tem foco em esforço;
• As métricas ágeis, como story points, não são padronizadas e carregam
alto nível de subjetividade;
• Gráfico de burndown mostra a quantidade de story points que foram
realizados e quanto faltam para sua conclusão (previsto vs. Realizado);
21. 20182018
APFVS. MÉTRICAS ÁGEIS
• A APF permite realização de benchmark entre projetos com as
mesmas características em função sua padronização;
• APF é uma das métricas de software mais difundidas no mundo e
atende tanto projetos de características ágeis, quanto projetos
utilizando outras metodologias.
29. 20182018
OBTER A DOCUMENTAÇÃO DISPONÍVEL
• 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.
• Deve ser obtida documentação suficiente para conduzir a contagem
de pontos de função.
• Na ausência de documentação, o acesso aos analistas do
negócio/assunto deve ser providenciado.
30. 20182018
A DOCUMENTAÇÃO PODE SER
• Especificação de requisitos
• Estória de usuários
• Modelos de dados/objetos
• Diagramas de classes
• Diagramas de fluxos de dados
• Casos de uso
• Descrições de procedimentos,
formatos de relatórios
• Manuais de usuário
• Protótipo
32. 20182018
ESCOPO
• Uma contagem de pontos de função é conduzida a fim de fornecer
uma resposta para uma questão de negócio, sendo a questão de
negócio que determina o propósito da contagem.
• O propósito determina o tipo de contagem:
• projeto de desenvolvimento
• projeto de melhoria
• contagem de uma aplicação ou linha de base
• O propósito e tipo de contagem tem impacto direto na definição do
escopo da contagem: determina quais funcionalidades serão objeto da
contagem.
33. 20182018
FRONTEIRA
•A fronteira é uma interface conceitual entre o
software em análise e seus usuários;
•Define o que é externo a aplicação
•Atua como uma ‘membrana’ através da qual os dados
processados pelas transações (EEs, SEs e CEs) passam
para dentro e para fora da aplicação
34. 20182018
FRONTEIRA
• Envolve os dados lógicos mantidos pela aplicação (ALIs)
• Auxilia na identificação dos dados lógicos referenciados mas não
mantidos pela aplicação (AIEs)
• Depende da visão externa do negócio do usuário da aplicação.
• É independente de considerações de técnicas e/ou implementação.
36. 20182018
FUNÇÕES DE DADOS
• As funções de dados satisfazem os Requisitos Funcionais do Usuário
referentes a armazenar e/ou referenciar dados: interna e
externamente.
• Os dados armazenados também devem seguir visão do usuário, ou
seja, como ele enxerga e não a partir de definições técnicas;
• As funções de dados são mais facilmente identificáveis utilizando-se um
modelo lógico de dados;
37. 20182018
CLASSIFICANDO ARQUIVOS LÓGICOS
•Os arquivos lógicos são classificados como :
• Arquivo Lógico Interno (ALI) quando este é mantido pela aplicação
sendo contada.
• Arquivo de Interface Externa (AIE) quando referenciado, mas não
mantido, pela aplicação sendo medida. Deve ser identificado como um
ALI em uma ou mais outras aplicações.
40. 20182018
FUNÇÕES DE TRANSAÇÃO
• As funções de transação satisfazem os Requisitos Funcionais do
Usuário que processam dados através das lógicas de processamento.
• Toda a funcionalidade de transação, dentro do escopo da contagem
deve ser avaliada, a fim de identificar cada processo elementar único.
• Exemplos: pesquisar usuário, fazer login, gerar relatório mensal de
vendas, excluir pedido, etc.
41. 20182018
IDENTIFICANDO UM PROCESSO ELEMENTAR
• Identificar os processos elementares através da decomposição dos
requisitos do usuário nas menores unidades de negócio.
• Exemplo: O sistema deve permitir manter dados de usuários.
• O termo "manter" geralmente significa um CRUD, por tanto,
identificaríamos os processos elementares candidatos:
• cadastrar usuário
• editar dados de usuário
• pesquiar usuário
• excluir usuário
42. 20182018
REQUISITOS PARA SER UM PROCESSO
ELEMENTAR
• Existem 4 questionamentos que todo processo elementar deve
responder de forma afirmativa para que seja efetivamente classificado
como tal:
1. É significativo para o usuário;
2. Constitui uma transação completa;
3. É autocontida;
4. Deixa o negócio da aplicação contada em um estado consistente.
43. 20182018
AS 13 LÓGICAS DE PROCESSAMENTO
1. Validações são executadas.
2. Fórmulas e cálculos matemáticos são executados.
3. Valores equivalentes são convertidos.
4. Dados são filtrados e selecionados segundo critérios especificados para
comparar vários conjuntos de dado.
5. Condições são analisadas para determinar as aplicáveis.
6. Um ou mais ALIs são atualizados.
7. Um ou mais ALIs ou AIEs são referenciados.
44. 20182018
AS 13 LÓGICAS DE PROCESSAMENTO
8. Dados ou informações de controle são recuperados.
9. Dados derivados são criados a partir de transformação dos dados
existentes, com o objetivo de criar dados adicionais.
10. É alterado o comportamento da aplicação.
11. Preparar e apresentar informaçõeş fora da fronteira.
12. Existe a capacidade de receber dados e informações de controle que
entram pela fronteira da aplicação.
13. Classificar ou arrumar um conjunto de dados.
46. 20182018
ENTRADA EXTERNA – EE
• Tem lógica de processamento para receber dados ou informações de
controle que entrem pela fronteira da aplicação.
• Deve ter uma das duas inteções primárias:
• manter um ou mais ALIs, ou
• alterar o comportamento da aplicação
• Exemplos: cadastrar usuário, editar usuário, excluir usuário, aprovar
pedido.
47. 20182018
CONSULTA EXTERNA – CE
• Tem intenção primária de apresentar informações ao usuário e
obrigatoriamente referenciar uma função de dados para recuperar
dados ou informações de controle;
• Não possuir lógica de processamento adicional;
• Exemplos: consultar usuários, pesquisar pedidos realizados, combo de
usuários ativos.
48. 20182018
SAÍDA EXTERNA – SE
• Tem intenção primária de apresentar informações ao usuário e incluir
pelo menos uma das seguintes formas de lógica de processamento:
• cálculos matemáticos são executados;
• um ou mais ALIs são atualizados;
• dados derivados são criados;
• o comportamento da aplicação̧ é alterado
• Exemplos: gerar relatório com total de vendas do mês, ler mensagem
(quando é alterado o status da mensagem para lido), calcular juros de
pagamento vencido, calcular frete.
51. 20182018
ESTIMATIVAS
• Quando começamos um projeto é muito comum ouvir:
• Quanto vai custar esse projeto?
• Qual a data de entrega?
•Veremos que com uso de APF podemos responder
essas perguntas e outras mais.
52. 20182018
ESTIMATIVAS
• Estimar significa utilizar o mínimo de tempo e esforço para se obter
um valor aproximado dos pontos de função do projeto de software
investigado” [Meli, 1999]
• A contagem estimada significa fornecer uma avaliação aproximada do
tamanho de um software utilizando métodos diferentes da contagem
de pontos de função do IFPUG.
• A contagem de pontos de função padrão IFPUG, para ser realizada,
deve ser feita com a documentação do projeto;
53. 201820182018
Se documentação, assim como o software,
somente é entregue ao fim das
sprints/iterações, como é possível saber ou
estimar o tamanho de um
backlog/sistema/sprint/iteração usando pontos
de função?
54. 20182018
NESMA
• A NESMA é um associação de métricas Holandesa que tem atuação
semelhante ao IFPUG, porém abordagem diferente;
• A NESMA criou dois métodos para medir aplicações em pontos de
função nas fases iniciais dos projetos:
• Contagem Indicativa
• Contagem estimada
• A NESMA também desenvolveu uma abordagem para contagem de
projetos de melhoria.
55. 20182018
CONTAGEM INDICATIVA
• Determina-se a quantidade de funções de dados (ALIs e AIEs)
• Calcula-se o total de pontos de função da seguinte forma:
• Tamanho Funcional (PF) = (35 x número de ALIs) + (15 x número de AIEs)
• Portanto, o tamanho funcional é baseado somente na quantidade de
arquivos lógicos existentes(ALIs e AIEs).
• O método APF Indicativa é baseado na suposição de que existem em média
aproximadamente três EEs (para incluir, alterar, e excluir dados do ALI), duas
SEs e uma CE para cada ALI, e aproximadamente uma SE e uma CE para
cada AIE.
56. 20182018
CONTAGEM ESTIMADA
• Determinam-se todas as funções de todos os tipos (ALI,AIE, EE, SE,
CE) através da documentação disponível ou entrevista com usuários
• As funções de dados (ALI,AIE) têm sua complexidade funcional
avaliada como baixa
• Funções de transação (EE, SE, CE) são avaliadas como de complexidade
média
58. 20182018
Estória de Usuário
• ComoVENDEDOR, preciso cadastrar um produto para que eu possa
utilize-lo nas vendas;
• ComoVENDEDOR, preciso poder consultar o preço de um produto
para que eu possa informar ao cliente;
61. 20182018
Contagem
• ComoVENDEDOR, preciso cadastrar um produto para que eu possa
utilize-lo nas vendas;
• Arquivo lógico “produto”
• Tipo de registro: produto
• Tipo de dado: Código, descrição, preço
• Complexidade Baixa: 7 PF
• Processo elementar “cadastrar produto”
• Arquivo lógico referenciado “produto”;
• Dado elementar referenciado: Código do produto, descrição, preço, commando
e mensagem
• Complexidade baixa: 3 PF
62. 20182018
Contagem
• ComoVENDEDOR, preciso poder consultar o preço de um produto
para que eu possa informar ao cliente;
• Processo elementar “consultar preço/pesquisar produto”
• Arquivo lógico referenciado “produto”;
• Dado elementar referenciado: Código do produto, descrição, preço, commando
e mensagem
• Complexidade baixa: 3 PF
64. 20182018
O SISP
• As instituições públicas são as que mais trabalham com APF;
• Instrução Normativa SLTI/MP N° 4, de 11 de setembro de 2014,
recomenda o uso de métricas em contratos de projetos de software
• Quem lida diariamente com projetos, sabe que existem uma gama de
situações que não são cobertas pelo CPM.
• Muitas outras instituições usam o Roteiro do SISP como benchmark
para elaborar os seus próprios roteiros;
• O Roteiro do SISP não muda a forma como a contagem é feita, mas
apresenta uma normatização para alguns cenários.
65. 20182018
TIPOS DE CONTAGEM
• Melhoria
• Projeto de migração de dados
• Manutenção corretiva
• Mudança de plataforma
• Atualização de versão
• Manutenção de interface
• Adaptação de funcionalidades sem alteração de requisitos
• Apuração especial
• Desenvolvimento, manutenção e publicação de páginas estáticas de intranet, internet ou
portal
• Manutenção de documentação de sistemas legados
• Verificação de erros
• Componente interno reutilizável
• Contagem de múltiplas mídias
66. 20182018
PROJETO DE MELHORIA
• No padrão IFPUG, quando é feita uma melhoria, as funcionalidades são
recontadas.
• O SISP bebeu da fonte da NESMA que define um fator de impacto
para funcionalidades que foram objeto de melhoria.
• Diferente do NESMA que o fator de impacto é calculado, no SISP é
aplicado um fator de impacto de 50% nas funções de dados ou
transacionais que foram impactadas pela melhoria.
• Ainda há um fator de impacto de 30% para funcionalidades excluídas –
padrão IFPUG é contabilizada a funcionalidade normalmente.
67. 20182018
• O SISP também apresenta
como é feita a composição de 1
PF por disciplina
• Com isso é possível contratar,
estimar e remunerar por
disciplina
• Somente documentação é
definido um fator de impacto
de 15%.
COMPOSIÇÃO DO PF
Subtítulo
Engenharia de
Requisitos
25%
Design/Arquitet
ura
10%
Implementação
40%
Testes
15%
Homologação
5%
Implantação
5%
PONTO DE FUNÇÃO
Engenharia de Requisitos Design/Arquitetura
Implementação Testes
Homologação Implantação