Buscar

1 COMPILADO Medidas do Esforco no Desenvolvimento de Software COMPLETO AULAS RESUMOS REVISAO PROVAS AV1 AV2 AV3 SaibaMais EXTRAS Graduacao Dados Programacao Gestao Tecnologia da Informacao

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 1586 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 1586 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 1586 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Medidas do Esforço no
Desenvolvimento de Software
Aula 1
Prof. Horácio Ribeiro
Objetivos da disciplina:
Medidas do Esforço de Desenvolvimento de Software
A disciplina apresenta os conceitos usados 
para se medir e estimar o software. 
As formas de medir, estimar, acompanhar 
um projeto, e como estabelecer parâmetros 
para futuros projetos são apresentadas 
nesta cadeira. 
Apresentar as formas de se medir e estimar 
o software. 
Não se pode gerenciar o que não se pode medir.
Medidas do Esforço de Desenvolvimento de Software
Fazer software é fazer engenharia
Metodologias como ITIL, CMMI, MPS-BR e outras, colocam as 
métricas e medições como práticas fundamentais para a gestão 
e, na maioria delas, como classificadoras da maturidade. 
Os conceitos apresentados permitirão que você estime o esforço 
e prazo necessário para se desenvolver, estimar (prazos, custos e 
esforços) e manter um software.
Medidas do Esforço de Desenvolvimento de Software
Conceito de Métrica
Quando desejamos comparar ou acompanhar alguma 
característica de um objeto ou processo definimos uma 
métrica
Uma métrica é um conceito que nos permite fazer 
comparações
Especificar uma métrica de forma correta, definindo sua forma 
de medir, sua aplicabilidade no projeto e suas limitações na 
tomada de decisões Nos permitirá comparar softwares.
Também estimar prazos, esforço e custos antes de se realizar o 
projeto.
Uma métrica mal especificada pode conduzir a decisões de 
baixa qualidade.
Utilidade das métricas em software:
•Comparar dimensões de softwares diferentes a partir de
métricas.
•Identificar a partir de medidas ações eficazes e eficientes em
projetos que podem ser estabelecidas como padrões.
•definir a linguagem e estrutura de projeto
características de uma Métrica
• Uma métrica é uma definição do que se deseja conhecer, ou 
acompanhar em um produto, seu consumo ou sua produção.
• Para se definir uma métrica deve-se considerar alguns aspectos:
- As métricas devem ser simples de entender e de serem
utilizadas para verificar atingimento de objetivos e para
subsidiar processos de tomada de decisão. 
- As métricas devem ser objetivas visando reduzir ou minimizar a
influência do julgamento pessoal na coleta, cálculo e análise dos
resultados. 
• - O valor da informação obtido como resultado das medições deve
exceder o custo de coletar, armazenar e calcular as métricas. 
• Uma métrica deve conter:
– Nome(representativo) da métrica
– Objetivo da métrica
– Descrição da métrica
– Sistema de medidas
– Forma de se obter a medida
• Nome da métrica
– Deve ser representativo
exemplo: entendibilidade
• Objetivo da métrica
- para que se está definindo esta métrica
(utilidade)
exemplo: medir-se a capacidade de se entender um código 
de programa
• Descrição da métrica
- como se determina a métrica 
• Descrição da métrica
- como se determina a métrica 
Exemplo: consiste em se contar o número de linhas de 
comentários, ou linhas que contenham comentários 
diretamente no código fonte escrito pelo programador
• Sistema de medidas
que sistema devera ser usada para se medir
exemplo: contagem usando números inteiros 
• Formas de medidas
como será feita a medida
exemplo: a medida deverá ser feita diretamente no código que 
for aprovado para compilação 
• Medida:
Medida é diferente de métrica
uma medida é um valor tomado segundo a 
definição de uma métrica 
exemplo: 32 linhas de comentários
1,73 metros de altura
21,3 Gbytes de memória
• Medidas pode ser:
a - diretas:
quando é feita diretamente no processo ou 
objeto
exemplo: O total de linhas de código, no final do projeto, é 
12345 linhas de código objeto.
a altura do prédio é de 18,40 metros 
• Medidas pode ser:
b - medidas indiretas: quando são feitas 
utilizando cálculo a partir de outras medidas:
exemplo: o diâmetro da terra é..... Kms
a distância até o sol é de.....
altura de um prédio baseado em cálculo:
A ??? B
c
d
• Suponha a métrica:
nome: 
complexidade ciclomática
descrição : 
serve pra medir a complexidade do software considerando o 
numero de caminhos lógicos Adicionado de uma unidade
Formas de medir: 
contar o número de expressões lógicas
Unidade: contagem
Como medir: 
contagem no código quando terminado
• A desvantagem da medida direta é que se 
mede no acontecido(depois de pronto).
– “o leite já esta derramado”
• A medida indireta pode ser usada em fases 
de planejamento.
– por isto usa-se plantas em engenharia
– desenhos de circuitos elétricos
• Exercício
utilizar uma definição de métrica
• Código do programa
• Ex#include <stdbool.h>
• inline void troca(int* a, int* b)
• {
• int aux = *a;
• *a = *b;
• *b = aux;
• }
• void bubbleSort (int *primeiro, int *ultimo) 
• {
• bool naoTrocou;
• int *posAtual;
• for (; ultimo > primeiro; --ultimo)
• {
• naoTrocou = true;
• for (posAtual = primeiro; posAtual < ultimo; ++posAtual)
• {
• if (*posAtual > *(posAtual+1))
• {
• troca (posAtual, posAtual+1);
• naoTrocou = false;
• }
• }
• if (naoTrocou) return;
• }
• }
• Código do programa
• Ex#include <stdbool.h>
• inline void troca(int* a, int* b)
• {
• int aux = *a;
• *a = *b;
• *b = aux; Temos 4 instruçoes com expressoes lógicas
• }
• void bubbleSort (int *primeiro, int *ultimo) portanto a resposta é 4 + 1 = 5
• {
• bool naoTrocou; o algoritmo é de complexidade ciclomática de cinco
• int *posAtual;
• for (; ultimo > primeiro; --ultimo) 
• {
• naoTrocou = true;
• for (posAtual = primeiro; posAtual < ultimo; ++posAtual)
• {
• if (*posAtual > *(posAtual+1))
• {
• troca (posAtual, posAtual+1);
• naoTrocou = false;
• }
• }
• if (naoTrocou) return;
• }
• }
• O que medir no software????
– uso de memória?
– tempo de execução?
– número de linhas?
• adotado pela maioria dos estudiosos e 
profissionais foi o número de linhas de 
codigo (line of code ) loc e que se tratando de 
mil linhas estabelece o kloc
• A maioria das métricas eram feitas a partir 
desta medida direta KLOC.
Problemas com a medida baseada em 
KLOC
-O KLOC é uma medida direta, portanto é feita sobre
o fenômeno. E, só podemos contar as linhas de um
software após ele ter terminado.
- Alguns contestam o KLOC por que não privilegia a
boa programação (mais eficiente) ou o uso de
linguagens mais eficientes. Além disto o
acompanhamento de projetos com métricas baseadas
no KLOC compara projetos de características
diferentes nas especificações de funcionalidades e na
sua forma de implementar.
Problemas com a medida baseada em 
KLOC
- LOC conta linhas em qualquer linguagem
independente de sua produtividade, portanto as
comparações não têm sentido.
-
Desafio
-Como medir o software antes de ser
implementado. Definir alguma coisa, como as
“plantas de engenharia” que permita fazer medidas
ainda na fase de projeto, sem a existência da obra.
É este tipo de ferramenta que se necessita para a
gerência e acompanhamento da construção do
software.
????????????????
Desafio
-Fazer modelagem de situações, e a partir das
especificações de funcionalidade, tomar
decisões de projeto do futuro software, estudar
alguns aspectos de gerenciais.
- Comparar projetos de uma forma uniforme.
- Fazer estimativas baseado em registros mais
uniformizados que permitam melhores estimativas,
passou a ser um desafio para os gerentes e
pesquisadores da área de software.
A Solução :
Proposta por Albrecht em 1974.
Apesar de se ainda usar KLOC para algumas 
medidas. Hoje se usa uma métrica chamada PONTO 
FUNÇÃO (PF),
Mas isto é assunto para a nossa próxima aula
Atenção:O seu livro texto tem vários exemplos 
de métricas baseadas em KLOC para 
as mais diversas funcionalidades. 
Estude e faça os exercícios propostos.
Até a próxima aula
Medidas do Esforço no Desenvolvimento de Software
Aula 2
Prof. Horácio Ribeiro
Objetivos da aula:
- Aprender de forma sucinta o modelo de 
Albrecht 
-- Relacionar os conceitos envolvidos na 
proposta de Albrecht,
- Aprender os conceitos em estudo de casos
a partir de um DFD
- Aprender a usar o modelo para um caso e 
uso
- Converter PF em KLOC
- Identificar as limitações do modelo 
DESAFIO:
Modelo de medida indireta que permitisse 
planejar e decidir.
• Albretch em 1974 após estudado mais 5000 
softwares
• É um modelo baseado na funcionalidade 
necessária.
PRINCIPIO:
- Identificar características de um sistema e 
mapear estas características na 
funcionalidade do software definida na 
especificação.
- Albretch identificou que as funcionalidades se 
refletiam nos seguintes seguintes aspectos:
entradas – saídas – consultas – arquivos e 
interfaces
• CONSTRUÇÃO DA FUNÇÃO:
-O Principio é construir uma função que mapeie um número
real.
- O número real representa uma quantidade de medida da
funcionalidade que foi chamado de PONTO FUNÇÃO
- Esta função foi construída por ajuste, baseado em dados
observados em outros softwares. Este método de construir
uma função por observação é muito comum na engenharia
• Elementos da funcionalidade
• Tabela de contagem
• Exemplo de contagem
• Identificação dos elementos
• Aplicando na tabela com software simples
tem-se:
• Definiu que a forma de desenvolver o sistema 
pode provar variações na medida da 
funcionalidade.
• Analisou 14 fatores que podem influenciar na 
medida da funcionalidade
• Estes fatores, alguns subjetivos, são avaliados
com uma nota de zero a cinco, por um 
conjunto de especialistas.
•
•
• 14 aspectos
• técnicos e 
• régua de 
• notas
• A formula construída final ficou:
• As métricas definidas a partir de PF
• Ponto Função Não ajustado:
- É o resultado da contagem * Peso de 
complexidade. (contagem total) das características
• Ponto função ajustado
- é o resultado considerando as características 
de implementação.
- é o produto da contagem por um fator de 
ajuste.
• fator de ajuste.
14
( 0,65 + o,o1 * (NOTA) )
I = 1 i
Observe que: 
65% é da funcionalidade
o fator do somatório pode variar de
zero a 0,7 (todos os itens tirando 5) 
Logo o fator de ajuste pode ser de 1,35 a 0,65
• O fator de ajuste indica o maior ou menor 
esforço para a produção do software.
um software com características complexas de 
implementação o fator de ajuste ´1,35 e um 
s0ftware muito simples 0,65.
para uma contagem de 43 (por exemplo)
Tem-se: 48 PF não ajustados
e 68,05 PF ajustados (se o fator de 
ajuste for 1,35) (1,35*48) 
Mapeamento de PF em KLOC
• Exercício
Faça a previsão de tamanho e prazo para um sistema com 178,45 
PF ajustados. Considere a tabela abaixo
TABELA DE PRODUTIVIDADE DA EQUIPE POR LINGUAGEM DE PROGRAMAÇÃO
PARA 1 PF
PHP 45 LOC - 3 DIAS ÚTEIS
C 72 LOC 8 DIAS ÚTEIS
JAVA 58 LOC 8 DIAS ÚTEIS
C ++ 72 LINHAS 8 DIAS
PYTON 45 LOC............2 DIAS
Decida que linguagem usar se o projeto não pode consumir mais de 450 dias
• Resposta
linguagem tamanho em linhas (LOC) prazo em dias úteis
php 8030,25 535,35
c 12848,4 1427,6
Java 10350,1 535,35
c++ 12848,4 535,35
pyton 8030,25 356,9
• Pode-se estimar um projeto no inicio da 
especificação.
• Neste caso devido a imprecisão poderemos 
ter um erro maior na estimativa.
• Fazer o 
cálculo 
de PF 
para um 
caso e 
uso
• Fazer o 
cálculo 
de PF 
para um 
caso e 
uso
• Fazer o 
cálculo 
de PF 
para um 
caso e 
uso
• Contamos
- 5 arquivos
- 3 entradas
- 1 saída
- 2 consultas
- 0 interfaces
• Aplicando na tabela de contagem
2
5
0
6
35
0
65
• Desafio:
• Calcule quantas linhas em C deve se estimar 
para este sistema?
• E se for em PHP?
• Você pode estudar um pouco mais visitando o 
site:
Análise de 
Pontos de 
Função
O metro quadrado do 
software
• O método de Albrecht tem um problema?
• Como uniformizar o processo de contagem.
• Para as empresas fazerem negócios precisam 
de uma unidade que não varia com a 
subjetividade da contagem.
• Para resolver isto criou-se um organismo 
internacional chamado IPFG – internacional 
Ponto Função GRUPO
• O IPFG
• TEM COMO OBJETIVO DESENVOLVER E PADRONIZAR A 
FORMA DE MEDIR O SOFTWARE
• Produz um manual de contagem que serve 
como padrão
• Tem melhorado a forma de diminuir a 
subjetividade da contagem
• Com isto encerramos nossa aula.
• Na próxima aula
• Vamos verificar como o FPUG definiu o 
processo de contagem.
• Vamos verificar que os princípios do ponto 
função foram preservados mas a forma da 
contagem foi sistematizada.
• Faça os exercícios e estude no nosso livro 
texto
• Até a próxima aula
Medidas do Esforço de Desenvolvimento de Software
Aula 3
Prof. Horácio Ribeiro
• Como uniformizar o processo de contagem?
• Para as empresas fazerem negócios precisam 
de uma unidade que não varia com a 
subjetividade da contagem.
• O IFPUG
• TEM COMO OBJETIVO DESENVOLVER E PADRONIZAR A 
FORMA DE MEDIR O SOFTWARE
• Produz um manual de contagem que serve 
como padrão
• Tem melhorado a forma de diminuir a 
subjetividade da contagem
• Endereços na internet:
Grupo internacional:
• FPUG: International Function Point Users 
Group
• www.ifpug.org/
• A non-profit organization promoting the use 
of function point analysis and other software 
metrics
Grupo brasileiro:
http://www.bfpug.com.br/
http://www.google.com.br/url?sa=t&source=web&cd=1&ved=0CBoQFjAA&url=http://www.ifpug.org/&ei=n-1KTuuQFcfy0gGr2eHrBw&usg=AFQjCNGuAlBHovzBj-iMAJaHBWr5Tj1icg
Contagem dos fatores do software
segundo IFPUG.
Function Point Counting Practices
Manual – Release 4.1.1,
publicado pelo IFPUG
em 1999.
Nesta aula você irá:
• - Relacionar os 14 aspectos sobre requisistos
não funcionais.
• - A Pontuar cada um dos fatores segundo o 
IFPUG
• - analisar aspectos na pontuação dos fatores 
de características do software.
• Estes fatores, alguns subjetivos, são avaliados 
com uma nota de zero a cinco, por um 
conjunto de especialistas.
• Os fatores do software estão relacionados com os requisitos 
não funcionais.
Esses fatores de contagem são bem difíceis de padronizar. 
Por esta razão as regras foram adotados pela ISO como um 
padrão, através das normas:
• ISO/IEC 20926:2003 – Software engineering – IFPUG 4.1 –
Unadjusted Functional Size Measurement Method – Counting 
practices manual
• ISO/IEC 14143 , software Measurement – Functional size
Meassurement. 
O objetivo da análise é
determinar a parte da
formula, cuja parcela
está abaixo:
A nota deve variar de 0 a
5. O IFPUG estabelece
uma tabela para avaliar o
grau de influencia de uma
característica
Níveis ou Graus de Influência
0 – Nenhuma Influência
1 – Influência Mínima
2 – Influência Moderada
3 – Influência Média
4 – Influência Significativa
5 – Grande Influência
Fonte : IFPUG, 1999
As características do sistema que se esta dimensionando e 
para as quais iremos dar nota são:
C1 Comunicação de dados
C2 Processamento distribuído
C3 Performance
C4 Utilização de Equipamento
C5 Volume de transações
C6 Entrada de dados on-line
C7 Eficiência do Usuário Final
C8 Atualização On-Line
C9 Processamento complexo
C10 Reutilização de código
C11 Facilidade de Implantação
C12 Facilidade Operacional
C13 Múltiplos Locais
C14 Facilidade de mudanças
• C1 - Comunicação de dados: 
Verificam-se os recursos a serem utilizados para 
a comunicação de dados do sistema de forma 
global. Estima-se se a aplicação utiliza 
protocolos diferentes para recebimento/envio 
das informações do sistema.
nota característica
0 Aplicação batch ou funciona stand-alone;
1 Aplicação batch, mas utiliza entrada de dadosou impressão 
remota;
2 . Aplicação batch, mas utiliza entrada de dados e impressão 
remota;
3 Aplicação com entrada de dados on-line para alimentar 
processamento batch ou sistema de consulta;
4 Aplicação com entrada de dados on-line, mas suporta apenas um 
tipo de protocolo de comunicação;
5 Aplicação com entrada de dados on-line e suporta mais de um tipo 
de protocolo de comunicação.
Avaliação: 
• A modalidade batch, é uma forma de 
implementar o programa. Nesta situação o 
sistema operacional é quem decide o 
momento de executar o programa, visando 
otimizar o uso de recursos. Esta modalidade 
era muito comum em máquinas Mainframes. 
Mas, ainda existem muitas aplicações que 
ainda hoje “executam” na forma batch.
• C2 - Processamento de Dados Distribuído: 
característica avalia se o sistema utiliza dados 
distribuídos ou tem processamento distribuído, 
valendo-se de diversas CPUs.
nota característica
0 Aplicação não auxilia na transferência de dados ou funções entre 
os processadores da empresa;
1 Aplicação prepara dados para o usuário final utilizar em outro 
processador (do usuário final), tal como planilhas;
2 Aplicação prepara dados para transferência, transfere-os para 
serem processados em outro equipamento da empresa (não pelo 
usuário final)
3 Processamento é distribuído e a transferência de dados é on-line e 
apenas em uma direção;
4 Processamento é distribuído e a transferência de dados é on-line e 
em ambas as direções;
5 As funções de processamento são dinamicamente executadas no 
equipamento (CPU) mais apropriada;
Avaliação:
• C3 – Desempenho (performace)
Verifica se os parâmetros estabelecidos pelo 
usuário como aceitáveis, relativos a tempo de 
resposta.
Avaliação:
0. Nenhum requisito especial de desempenho foi solicitado pelo usuário;
1. Requisitos de desempenho foram estabelecidos e revistos, mas nenhuma
ação especial foi requerida;
2. Tempo de resposta e volume de processamento são itens críticos durante
horários de pico de processamento. Nenhuma determinação especial para a
utilização do processador foi estabelecida. A data limite para a disponibilidade
de processamento é sempre o próximo dia útil;
3. Tempo de resposta e volume de processamento são itens críticos durante
todo o horário comercial. Nenhuma determinação especial para a utilização
do processador foi estabelecida. A data-limite necessária para a comunicação
com outros sistemas é limitante.
4. Os requisitos de desempenho estabelecidos requerem tarefas de análise de
desempenho na fase de planejamento e análise da aplicação.
5. Além do descrito no item anterior, ferramentas de análise de desempenho
foram usadas nas fases de planejamento, desenvolvimento e/ou
implementação para atingir os requisitos de desempenho estabelecidos pelos
usuários.
• C4 - Utilização do Equipamento: 
Observe-se quanto ao nível de utilização de
equipamentos necessários para a execução do
sistema. Este aspecto é observado com vista ao
planejamento de capacidades e custos.
Avaliação:
0. Nenhuma restrição operacional explícita ou mesmo implícita foi
incluída.
1.Existem restrições operacionais leves. Não é necessário esforço
especial para atender às restrições.
2. Algumas considerações de ajuste de desempenho e segurança são
necessárias.
3. São necessárias especificações especiais de processador para um
módulo específico da aplicação.
4. Restrições operacionais requerem cuidados especiais no
processador central ou no processador dedicado para executar a
aplicação.
5. Além das características do item anterior, há considerações
especiais que exigem utilização de ferramentas de análise de
desempenho, para a distribuição do sistema e seus componentes, nas
unidades processadoras.
C5 - Volume de transações:
Consistem na avaliação do nível de
influência do volume de transações no
projeto, desenvolvimento, implantação
e manutenção do sistema.
Avaliação:
0. Não estão previstos períodos de picos de volume de 
transação.
1. Estão previstos picos de transações mensalmente, 
trimestralmente, anualmente ou em certo período do ano.
2. São previstos picos semanais.
3. São previstos picos diários.
4. Alto volume de transações foi estabelecido pelo usuário, ou o 
tempo de resposta necessário atinge nível alto o suficiente 
para requerer análise de desempenho na fase de projeto.
5. Além do descrito no item anterior, é necessário utilizar 
ferramentas de análise de desempenho nas fases de projeto, 
desenvolvimento e/ou implantação
C6 - Entrada de dados on-line:
A análise desta característica permite 
quantificar o nível de influência exercida pela 
utilização de entrada de dados no modo on-line 
no sistema.
Avaliação:
0. Todas as transações são processadas em modo batch.
1. De 1% a 7% das transações são entradas de dados on-line.
2. De 8% a 15% das transações são entradas de dados on-line.
3. De 16% a 23% das transações são entradas de dados on-line.
4. De 24% a 30% das transações são entradas de dados on-line.
5. Mais de 30% das transações são entradas de dados on-line. 
C7 - Usabilidade:
Esta característica permite quantificar o grau de 
influência relativo aos recursos implementados 
com vista a tornar o sistema amigável, 
permitindo incrementos na eficiência e satisfação 
do usuário final, tais como:
•Auxílio à navegação (teclas
de função, acesso direto e
menus dinâmicos)
•Menus Documentação e help
on-line
• Movimento automático do
cursor.
• Movimento horizontal e
vertical de tela.
• Impressão remota (via
transações on-line)
• Teclas de função
preestabelecidas.
•Processos batch submetidos
a partir de transações on-
line
• Utilização intensa de campos com 
vídeo reverso, intensificados, 
sublinhados, coloridos e outros 
indicadores.
• Impressão da documentação das 
transações on-line através de hard
copy
• Utilização de mouse
• Menus pop-up
• O menor número possível de telas 
para executar as funções de 
negócio.
• Suporte bilíngüe (contar como 4 
itens)
• Suporte multilíngüe. (contar como 6 
itens)
Avaliação:
0. Nenhum dos itens descritos.
1. De um a três itens descritos.
2. De quatro a cinco dos itens descritos.
3. Mais de cinco dos itens descritos, mas não há requisitos específicos
do usuário quanto à usabilidade do sistema.
4. Mais de cinco dos itens descritos e foram estabelecidos requisitos
quanto à usabilidade fortes o suficiente para gerarem atividades
específicas envolvendo fatores, tais como minimização da digitação,
para mostrar inicialmente os valores utilizados com mais freqüência.
5. Mais de cinco dos itens descritos e foram estabelecidos requisitos
quanto à usabilidade fortes o suficiente para requerer ferramentas e
processos especiais para demonstrar antecipadamente que os
objetivos foram alcançados.
C8 - Atualizações on-line:
Analisa-se a influência no desenvolvimento do 
sistema face à utilização de recursos que visem à 
atualização dos Arquivos Lógicos Internos, no 
modo online.
Avaliação:
0. Nenhuma. 
1.Atualização on-line de um a três arquivos lógicos internos. O 
volume de atualização é baixo e a recuperação de dados é simples.
2. Atualização on-line de mais de três arquivos lógicos internos. O 
volume de atualização é baixo e a recuperação dos dados é simples.
3. Atualização on-line da maioria dos arquivos lógicos internos.
4. Em adição ao item anterior, é necessário proteção contra perdas de 
dados que foi projetada e programada no sistema.
5. Além do item anterior, altos volumes trazem considerações de custo no 
processo de recuperação. Processos para automatizar a recuperação foram 
incluídos minimizando a intervenção do operador
C9 - Processamento complexo: 
Analisar a complexidade de processamento influencia 
no dimensionamento do sistema, e, portanto, deve ser 
quantificado o seu grau de influência, com base nas 
seguintes categorias:
• * Processamento especial de 
auditoria e/ou processamento 
especial de segurança
foram considerados na aplicação;
• * Processamento lógico 
extensivo;
• *Processamento matemático 
extensivo
• * Processamento gerando muitas
exceções, resultando em
transações incompletas que devem
ser processadas novamente.
Exemplo: transações de auto-
atendimento bancário
interrompidas por problemas de
comunicação ou com dados
incompletos;
• * Processamento complexo para
manusear múltiplas possibilidades
de entrada/saída. Exemplo:
multimídia.
Avaliação:
0. Nenhum dos itens descritos.
1. Apenas um dos itens descritos.
2. Dois dos itens descritos.
3. Três dos itens descritos.
4. Quatro dos itens descritos.
5. Todos os cinco itens descritos.
C10 -Reusabilidade:
Analise do reaproveitamento de parte dos 
programas de uma aplicação em outras 
aplicações implica em cuidados com 
padronização. O grau de influência no 
dimensionamento do sistema é quantificado 
observando-se:
Avaliação:
0. Nenhuma preocupação com reutilização de código.
1. Código reutilizado foi usado somente dentro da aplicação.
2. Menos de 10% da aplicação foi projetada prevendo utilização posterior do
código por outra aplicação.
3. 10% ou mais da aplicação foi projetada prevendo utilização posterior do
código por outra aplicação.
4. A aplicação foi especificamente projetada e/ou documentada para ter seu
código reutilizado por outra aplicação e a aplicação é customizada pelo
usuário em nível de código -fonte.
5. A aplicação foi especificamente projetada e/ou documentada para ter seu
código facilmente reutilizado por outra aplicação e a aplicação é
customizada para uso através de parâmetros que podem ser alterados pelo
usuário.
C11 - Facilidade de implantação:
Quantificação do grau de influência desta 
característica é feita, observando-se o plano de 
conversão e implantação e/ou ferramentas 
utilizadas durante a fase de testes do sistema.
Avaliação:
0. Nenhuma consideração especial foi estabelecida pelo usuário e nenhum procedimento especial é 
requerido na implantação.
1. Nenhuma consideração especial foi estabelecida pelo usuário, mas procedimentos especiais são 
necessários na implementação.
2. Requisitos de conversão e implantação foram estabelecidos pelo usuário e roteiro de conversão e 
implantação foram providos e testados. O impacto da conversão no projeto não é considerado 
importante.
3. Requisitos de conversão e implantação foram estabelecidos pelo usuário e roteiro de conversão e 
implantação foram providos e testados. O impacto da conversão no projeto é considerado 
importante.
4. Além do item 2, conversão automática e ferramentas de implantação foram providas e testadas.
5. Além do item 3, conversão automática e ferramentas de implantação foram providas e testadas.
C12 -Facilidade operacional:
Análise desta característica permite quantificar o 
nível de influência na aplicação, com relação a 
procedimentos operacionais automáticos que 
reduzem os procedimentos manuais, bem como 
mecanismos de inicialização, salvamento e 
recuperação, verificados durante os testes do 
sistema.
•
Avaliação:
0. Nenhuma consideração especial de operação, além do processo normal de salvamento foi 
estabelecida pelo usuário.
1-4. Verifique quais das seguintes afirmativas podem ser identificadas na aplicação. Selecione as 
que forem aplicadas. Cada item vale um ponto, exceto se definido explicitamente:
• Foram desenvolvidos processos de inicialização, salvamento e recuperação, mas a 
intervenção do operador é necessária. 
• Foram estabelecidos processos de inicialização, salvamento e recuperação, e nenhuma 
intervenção do operador é necessária (conte como dois itens)
• A aplicação minimiza a necessidade de montar fitas magnéticas.
• A aplicação minimiza a necessidade de manuseio de papel.
5. A aplicação foi desenhada para trabalhar sem operador, nenhuma intervenção do operador é 
necessária para operar o sistema além de executar e encerrar a aplicação. A aplicação possui 
rotinas automáticas para recuperação em caso de erro.
13 - Múltiplos Locais e Organizações do Usuário: 
Análise da arquitetura do projeto, observando-se 
a necessidade de instalação do sistema em 
diversos lugares.
Avaliação:
0. Os requisitos do usuário não consideraram a necessidade de instalação em mais de um local.
1. A necessidade de múltiplos locais foi considerada no projeto e a aplicação foi desenhada para 
operar apenas em ambientes de software e hardware idênticos.
2. A necessidade de múltiplos locais foi considerada no projeto e a aplicação está preparada 
para trabalhar apenas em ambientes similares de software e hardware.
3. A necessidade de múltiplos locais foi considerada no projeto e a aplicação está preparada para 
trabalhar em diferentes ambientes de hardware e/ou software.
4. Plano de documentação e manutenção foi providos e testados para suportar a aplicação em 
múltiplos locais, além disso, os itens 1 ou 2 caracterizam a aplicação.
5. Plano de documentação e manutenção foi providos e testados para suportar a aplicação em 
múltiplos locais, além disso, o item 3 caracteriza a aplicação.
C 14 - Facilidade de mudanças:
Análise da influencia da manutenção no desenvolvimento do sistema. Esta 
influência deve ser quantificada baseando nos atributos,:
•disponibilidade de facilidades como
consultas e relatórios flexíveis para
atender necessidades simples
(conte como 1 item);
•disponibilidade de facilidades como
consultas e relatórios flexíveis para
atender necessidades de
complexidade média (conte como 2
itens);
•disponibilidade de facilidades como
consultas e relatórios flexíveis para
atender necessidades complexas
(conte 3 itens);
• se os dados de controle são
armazenados em tabelas que são
mantidas pelo usuário através de
processos on-line, mas mudanças
têm efeitos somente no dia seguinte;
• se os dados de controle são
armazenados em tabelas que são
mantidas pelo usuário através de
processos on-line, as mudanças têm
efeito imediatamente (conte como 2
itens).
Avaliação:
0. Nenhum dos itens descritos.
1. Um dos itens descritos.
2. Dois dos itens descritos.
3. Três dos itens descritos.
4. Quatro dos itens descritos.
5. Todos os cinco itens descritos.
Os 14 graus de influência (GI) são então 
somados o que resulta no grau de influência 
total (GIT),:
GIT = 
• O valor do fator de ajuste (VFA) é calculado 
pela seguinte fórmula:
VFA = ( GIT * 0,01) + 0,65 
.Se o fator de ajuste de valor é igual a 1,00 , a 
influência total das características gerais do 
sistema é neutra.
.Lembre-se que na aula passada vimos que o 
VFA pode variar entre 0,65 e 1,35 
• Uma empresa pode ter uma carteira de aplicações para 
determinados segmentos da economia. 
• E estas aplicações têm um conjunto de características 
comuns. 
• Pode-e fazer o trabalho de avaliação e contagem, usando as 
recomendações do IPFUG, e com seus mais experientes 
desenvolvedores e confeccionar uma tabela de fatores de 
ajuste por tipo de aplicação.
• Isto evita que para toda a aplicação se repita a avaliação
• Pode-se fazer uma avaliação dos fatores por 
vários profissionais e deduzimos um valor para 
cada fator, por tipo de aplicação:
avaliação para a aplicação xxxxxxxxx
avaliador
nota
valor total
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14
analista 1
analista 2
analista 3
analista 4
...
analista n
total 
valor medio
valor 
considerado
valor total 
• Devido a sua subjetividade a utilização do 
fator de ajuste tornou-se opcional ao final do 
ano de 2002.
• Atentou para a subjetividade da pontuação 
dos 14 aspectos do software
• Aprendeu como o IPFUG recomenda que seja 
feita a avaliação
• Atentou como se cria o fator de ajuste
• Não esqueça de fazer o estudo dirigido. Fazer 
os exercícios e ler a bibliografia disponível na 
biblioteca virtual....
• Na próxima aula, vamos estudar como IPFUG 
recomenda que seja feita a contagem das 
funcionalidades a partir de entradas, arquivos, 
consultas, saídas e interfaces.
• ... Até lá..
• Até a próxima aula
• Contactos:
• Professor Horacio ribeiro
• www.espacodoprofessor.com
• Email: profhoracioribeiro@gmail.com• aula3
http://www.espacodoprofessor.c/
mailto:profhoracioribeiro@gmail.com
Medidas do Esforço de Desenvolvimento de Software
Aula 4
Prof. Horácio Ribeiro
Na aula passada vimos como se 
deve tratar os aspectos dos 
requisitos não funcionais buscando 
uma padronização do tratamento
- vimos como se calcula o fator de 
ajuste.
• Nesta aula vamos verificar, baseado no 
Function Point Counting Pratices 
• Manual – Release 4.1.1, - IFPUG - 1999
Como se deve tratar a funcionalidade.
• Houve uma adaptação do modelo proposto 
inicialmente (aula 2 - método de Albrecht) 
para uma nova forma de medir a 
funcionalidade com elementos menos 
subjetivos
Objetivos da aula:
• Identificar o tipo de contagem
• Identificar o número de registros lógicos
• Identificar o número de itens de dados
• Determinar a complexidade de um ALI e um 
AIE
• Determinar a contribuição dos ALI e AIE
Nesta aula você irá:
- determinar o contexto da contagem,
- Aprender definir o tipo de contagem
- definir o que é um ALI e um AIE
- O que é um arquivo lógico e um item de
dados
- determinar a complexidade de um ALI e
AIE
- determinar o total de PF não ajustado
para ALI´s e AIE´s
- conhecer recomendações de características
de contagem de ALI e AIE feita pelo IFPUG
• Processo de contagem 
• O processo de contagem definido pelo IPFUG 
é feito em sete passos, conforme mostrado na 
figura a seguir:
Resolvemos 
o passo 6 na 
aula 3
Procedimento de Contagem de Pontos de Função
(HAZAN, 2001)
Determinar o tipo de Contagem (passo 1)
O primeiro passo a ser seguido para a contagem de PF 
de um projeto de software é determinar o tipo de 
contagem.
São definidos três tipos de contagem.(IFPUG):
•Contagem de projeto de desenvolvimento;
•Contagem de projeto de melhoria (manutenção);
•Contagem de aplicação.(produção)
Projeto de Desenvolvimento
• O número de pontos de função de um projeto de desenvolvimento mede 
a funcionalidade fornecida aos usuários finais quando da primeira
instalação do software.
• Esta contagem também considera as funções de conversão de dados 
necessárias a implantação do software 
• O projeto de migração de dados, povoamento de bases estão incluídos 
nesta contagem. 
• Ou seja a primeira versão do software 
funcionando.
Projeto de melhoria (manutenção)
• Em um projeto de melhoria o número de pontos de função 
mede as modificações para uma aplicação já existente .
• ou seja, as funções adicionais , modificadas ou excluídas do 
sistema, pelo projeto, e as funções de conversões de dados.
• Após a conclusão e implantação do projeto de melhoria , o 
número de pontos de função da aplicação deve ser atualizado 
para refletir as mudanças nas funcionalidades da aplicação. 
(VAZQUEZ,2005)
• Projeto de aplicação
• A contagem de pontos de função de uma aplicação já 
instalada e mede a funcionalidade fornecida ao usuário.
• Ela é iniciada ao final da contagem do projeto de 
desenvolvimento e atualizado no final do projeto de melhoria. 
(VAZQUEZ,2005)
Resolvemos 
o passo 6 na 
aula 3
Passo 2 : definir o escopo
Identificar o escopo da contagem e a fronteira da 
aplicação (passo 2)
• A identificação do escopo visa definir a abrangência da 
contagem estipulando se a contagem vai se referir a um ou 
mais sistemas ou a apenas parte de um sistema. 
• A fronteira da aplicação estabelece o limite do esta sendo 
contado indicando o limite entre a aplicação e os demais 
usuários. 
• No escopo da contagem de uma aplicação pode-s considerar 
todas as funcionalidades disponíveis, ou algumas 
funcionalidades específicas. 
Deve-se considerar as seguintes características e regras
• Os limites entre as funções a serem atendidas pela aplicação 
ou projeto;
• A utilização dos dados considerados no processo de 
contagem;
• O relacionamento entre os processos, com indicação de onde 
eles ocorrem.
• Deve ser considerado o ponto de vista do usuário, ou 
seja, o que o usuário pode entender e descrever 
como função da aplicação.
• A fronteira entre aplicações relacionadas deve considerar a 
funcionalidade das aplicações em termos das funções de 
negócio identificadas pelo usuário, e não sob o ponto de vista das 
interfaces necessárias.
• Dica:
•Para identificar a fronteira da aplicação deve-
se:
• Na documentação do fluxo de dados no sistema desenhar 
uma fronteira em volta para destacar quais partes são 
internas e externas à aplicação
• Identificar áreas funcionais pela atribuição definidas por 
objetos de análise, como entidades e processos;
• Verificar como o grupo de dados são mantidos;
• Verificar como a aplicação é gerenciada
Atenção
• Definir o escopo da contagem (fronteira ) é um dos passos
mais importantes pois se for feita de maneira incorreta a
contagem será incorreta.
• Contagem das 
funções de dados 
(passo3)
As funções de dados são funcionalidades fornecidas ao 
usuário para as necessidades de dados. 
• São chamados de arquivos lógicos internos(ALI)
• e Interface Externa (AIE). 
• Arquivo não significa um arquivo físico no sentido tradicional , mas refere-
se a um grupo de dados logicamente relacionado e 
reconhecido pelo usuário.
O IFPUG complementou os procedimentos e regras
do CPM 4.1.1 com um nova seção denominada
"Práticas de Contagem" onde situações como dados
de código, dados compartilhados e outros casos
devem ser avaliados
Arquivo Lógico Interno (ALI) 
• É um grupo logicamente relacionado de dados ou informação de controle 
cuja manutenção é feita pela própria aplicação. 
• Sua função principal é armazenar dados mantidos dentro da fronteira da 
aplicação através dos processos da aplicação. 
• Um grupo logicamente relacionado de dados refere-se a dados 
relacionados em um nível que o usuário consegue perceber como sendo 
importante para permitir que a aplicação realiza uma atividade definida. 
(IFPUG,1999)
• As informações de controle são dados usados pela aplicação para garantir 
total conformidade com os requisitos das funções do negócio definidas 
pelo usuário.
• Os ALI contribuem para o cálculo de pontos de função com base na sua 
quantidade e complexidade 
Como exemplos de um ou mais ALIs , dependendo da visão do 
usuário , têm-se :
• Dados da aplicação (arquivos mestres como cadastro de clientes ou 
funcionários);
• Arquivos de dados de segurança da aplicação;
• Arquivos de dados de auditoria;
• Arquivos de mensagem de auxílio;
• Arquivos de mensagens de erro;
• Arquivo de cópia de segurança. Considerado somente se for solicitado 
pelo usuário para atender requisitos da aplicação.
• Arquivo que sofra manutenção por mais de uma aplicação.
Não são considerados como ALI:
• Arquivos temporários;
• Arquivos de trabalho;
• Arquivos de classificação;
• Arquivos de cópia de segurança requerido pelo CPD.
• Arquivos introduzidos somente por causa da tecnologia 
usada.
• Ex.: arquivos de parâmetro para um software WFL, JCL,etc.;
• Operações de junção e projeção.
• Arquivos de índices alternativos
• Complexidade de um arquivo lógico Interno 
(ALI) 
a complexidade será usada para calcular o numero de ponto função do 
ALI
• Cada Arquivo Lógico Interno deve ser classificado de acordo 
com sua complexidade funcional relativa, que é baseada:
- no número de Registros Lógicos(RL) = entidades 
- e no número de Itens de Dados (ID) do arquivo.
Identificação do Número de Registros Lógicos 
(RL)
• Um Registro Lógico é um subgrupo de dados reconhecido pelo usuário 
dentro de um ALI. 
• Dependendo da visão do usuário um ALI pode ter mais de um Registro 
Lógico (RL).
Existem dois tipos de subgrupos que podem ser identificados como registros 
lógicos (IFPUG, 1999):
• Mandatórios – São subgrupos de dados que o usuário deve usar pelo 
menos uma vez durante o processo elementar de criação de um item num 
ALI.
• Opcionais – São subgrupos de dados que o usuário tem a opção de usar 
ou não durante o processo elementar de criação de um item em um ALI.
• Exemplo:
empregado( nome, endereço, telefone,(nomedo dependente, sexo), cargo, salário, órgão)
neste ALI, sob o ponto de vista do usuário consideramos grupos 
lógicos de dados:
nome, endereço, telefone, cargo salário, órgão
nome do dependente, sexo
Portanto temos: 2 registros lógicos
Regras que devem ser aplicadas para contagem 
dos registros lógicos:
• Conte um registro lógico para cada subgrupo 
identificado , opcional ou mandatório.
• Considere um registro lógico caso o ALI não possua 
subgrupos.
Identificação do Número de Itens de Dados
• Um item de dados (ID) representa um segmento de um ALI 
que possui um significado único, não repetitivo e pode ser 
reconhecido pelo usuário. Representa um campo de dados 
que formula uma ocorrência de informação completa. 
• Exemplo:
• empregado ( nome, endereço, telefone, cargo, salário)
tem CINCO itens de dados
Regras de contagem para os itens de dados
• Contar um item de dados para cada campo único, não repetitivo, 
reconhecido pelo usuário e mantido em um ALI via execução de um 
processo elementar.
Ex: Um número contábil, ou data que é armazenado em múltiplos campos 
, é contado como um único item de dado.
• Quando duas ou mais aplicações mantêm o mesmo ALI, mas cada uma 
mantém itens de dados separados, contar somente os itens de dados 
usados por cada aplicação para dimensionar o ALI.
• Contar um item de dados para cada parte de dado requisitada pelo 
usuário para definir um relacionamento com outro ALI, ou seja, uma chave 
estrangeira ou uma associação entre objetos. Ex: cod. Aluno (deve ser 
contada uma vez)
Determinar a complexidade de um ALI
Existe uma tabela 
definida pelo IFPUG que 
define a complexidade. 
Nesta tabela classifica-se 
um ALI em simples, 
médio e complexo, 
dependendo do número 
de registros lógicos e o 
número de itens de 
dados (ID) 
Fonte: IFPUG , 1999
TABELA DE COMPLEXIDADE PARA ARQUIVO LÓGICO
INTERNO
1 a 19 ID 20 a 50 ID 51 ou mais ID
1 RL Simples simples media
2 a 5 RL Simples Media Complexa
6 RLou mais Média Complexa Complexa
Fonte: IFPUG , 1999
• Ex: O ALI
Empregado (nome,endereço, cargo, salário 
(dependente,sexo), telefone)
Tem: 2 registros lógicos e 7 itens de dados.
Entrando na tabela 
Com 2 RL---------------------→
E com 7 itens de dados 
temos que o ALI é de complexidade simples
TABELA DE COMPLEXIDADE PARA
ARQUIVO LÓGICO INTERNO
1 a 19 ID 20 a 50 ID 51 ou mais
ID
1 RL Simples simples media
2 a 5 RL Simples Media Complexa
6 RLou mais Média Complexa Complexa
Tipo de Função SIMPLES MÈDIA COMPLEXA
Arquivo Lógico Interno(ALI) 7 PF 10 PF 15 PF
Arquivo de Interface
Externa(AIE)
5 PF 7 PF 10 PF
Tabela de contribuição dos PF não
ajustados das funções de dados
Fonte: IFPUG, 1999
Nosso exemplo o ALI é simples, portanto vale 7 PF
A tabela acima também vale para os ALE que veremos a seguir:
Arquivo de Interface Externa (AIE) 
• Um Arquivo de Interface Externa (AIE) é um grupo de dados 
logicamente relacionados ou informações de controle 
identificadas pelo usuário, referenciados na aplicação para 
fins de recuperação de dados cuja manutenção é feita por 
outra aplicação. 
• Os dados são armazenados fora da fronteira da 
aplicação.(VAZQUEZ
São considerados AIE , conforme a visão do usuário
• Dados de referência (dados externos usados 
pela aplicação ,mas que não são usados para 
manutenção em ALI);
• Arquivos de mensagens de auxílio;
• Arquivos de mensagens de erro.
• Não são considerados AIE:
• Dados recebidos de outra aplicação usados para adicionar, 
alterar ou remover dados em um ALI;
• Dados cuja manutenção é feita pela aplicação que esta sendo 
avaliada mas que são acessados e utilizados por outra 
aplicação;
• Dados formatados e processados para uso por outra 
aplicação.
Classificação da complexidade de um arquivo 
de interface externa (AIE)
• Cada Arquivo de Interface Externa (AIE) deve ser classificado de acordo o 
número de Registros Lógicos (RL) 
• e no número de Itens de Dados(ID) do arquivo.
• Os conceitos são similares aos usados para o ALI
As regras de contagem para itens de dados em 
um AIE são:
• Contar um item de dados para cada campo único , não repetitivo, 
reconhecido pelo usuário e referenciado em AIE via execução de um 
processo elementar.
• Quando duas ou mais aplicações referenciam o mesmo AIE, mas cada uma 
referenciam itens de dados separados, contar somente os itens de dados 
usados por cada aplicação para dimensionar o AIE.
• Contar um item de dados para cada parte de dado requisitada pelo 
usuário para definir um relacionamento com outro AIE, ou seja, uma 
chave estrangeira ou uma associação entre objetos.
• Ex.: Se um AIE é composto por mais de uma tabela em um Banco de 
dados relacional, as chaves usadas para relacionar as tabelas são contadas 
apenas uma vez.
• Um AIE pode ser
classificado como
simples, médio e
complexo conforme
uma tabela fornecida
pelo IFPUG que
relaciona os registros
lógicos com o número
de itens de dados
TABELA DE COMPLEXIDADE DE AIE
REGISTROS 
LOGICOS - RL
Número de itens de dados
1 A 19 ID 20 A 50 ID 51 OU MAIS 
ID
1 RL SIMPLES SIMPLES MEDIA
2 a 5 RL SIMPLES MÉDIA COMPLEXA
6 RL ou mais MÉDIA COMPLEXA COMPLEXA
Fonte: IFPUG
• Estudo de casos:
Primeiro passo: Determinar o escopo da contagem. Foi
dito pelo usuário que receberia a informação de alunos de
outro sistema, portanto, estamos considerando o Usuário
com arquivo de interface externa.
• Estudo de casos:
Segundo passo: O sistema é novo e vamos fazer a contagem para 
desenvolvimento. Não existe migração de dados ou projetos 
auxiliares na implantação:
Processos básicos do usuário são par a manutenção de arquivo de 
empréstimos, autores e livros 
• A classe autoria relaciona autor com livro, portanto tem um registro lógico e 
como já contamos os itens de relacionamento vamos considerar um item de 
dados
•A classe empréstimo associa um elemento externo com o livro. Neste caso só 
contamos o número de livro em livro. Temos um registro lógico e dois itens de 
dados, portanto verificamos na tabela que é simples:
• Temos quatro ALI simples, consultando a tabela de contribuição temos 7 PF por 
ALI, portanto contribui com 4* 7 PF = 28 PF.
Terceiro passo: determinação das contribuições dos ALI.
. A Classe livro é de persistência e 
constitui um ALI = temos um 
registro lógico e quatro itens de 
dados: entrando na tabela temos 
que é de complexidade: simples
. A classe autor é um ALI, com 
um registro lógico e dois itens de 
dados: na tabela de complexidade 
é simples.
• Considerando os AIE temos um registro com 
4 itens, portanto simples, contribuindo com 
mais 5 PF;
• A contribuição dos ALI e AIE são de 28 + 5= 
33 PF não ajustados
• Na próxima aula vamos ver com trabalhar as 
funções.
• Você observou que agora tudo esta sendo 
feito pela contagem dos grupamentos lógicos 
e pelos itens de dados.
• Em um modelo de dados você pode trabalhar 
com as entidades e os atributos.
• É preciso praticar....
• Na biblioteca virtual terá uma lista de 
exercícios... Pratique.
• Com isto encerramos nossa aula.
• Na próxima aula vamos terminar a 
padronização da contagem. 
• Você irá aprender como se deve fazer a 
contagem das entradas, consultas e saída.
• Vamos apresentar uma maneira de definir a 
complexidade destes elementos.
• - Vamos desenvolver um exemplo usando 
estes conceitos. 
• Até a próxima aula
• Contactos:
• Professor Horacio ribeiro
• www.espacodoprofessor.com
• Email: profhoracioribeiro@gmail.com
• Aula 4
http://www.espacodoprofessor.c/
mailto:profhoracioribeiro@gmail.com
Medidas do Esforço de Desenvolvimento de Software
Aula 5
Prof. Horácio Ribeiro
1Prof. Horacio Ribeiro
• Nesta aula vamos verificar, baseado no 
Function Point Counting Pratices 
• Manual – Release 4.1.1, - IFPUG - 1999
Como se deve tratar a funcionalidade.
• na aula passada aprendemos como tratar um 
ALI e um AIE
2Prof. Horacio Ribeiro
O IFPUG complementou os procedimentos e regras
do CPM 4.1.1 com um nova seção denominada"Práticas de Contagem" onde situações como dados
de código, dados compartilhados e outros casos
devem ser avaliados
3Prof. Horacio Ribeiro
Resolvemos 
- o passo 6 
na aula 3
- Os passos 
1, 2 e 3 na 
aula 4
Procedimento de Contagem de Pontos de Função
(HAZAN, 2001)
4Prof. Horacio Ribeiro
Objetivos da aula:
• contagem das funções transacionais
5Prof. Horacio Ribeiro
Objetivos da aula:
Aprender o que é uma transação de entrada
• - como determinar a complexidade de uma EE
Aprender o que é uma saída externa SE
• - Como determinar a complexidade
Aprender o que é uma consulta externa CE
• - como determinar a complexidade
6Prof. Horacio Ribeiro
• Nesta aula vamos completar o modelo 
fazendo a análise para Entradas, Saídas e 
Consultas.
• deve-se considerar o diagrama de contexto
(figura do CPM) 
7Prof. Horacio Ribeiro
• Veja figura abaixo
8Prof. Horacio Ribeiro
Explicar para os três tipos de transações
-conceituar como definir a complexidade da
entrada externa
- conceituar o que é uma saida
-Conceituar como definir a complexidade de uma
saída externa
- Conceituar o que é uma consulta
-Apresentar as tabelas de complexidade das
transações
- Calcular o número de ponto de função ajustados
9Prof. Horacio Ribeiro
• Veja figura abaixo
10Prof. Horacio Ribeiro
Definição:
Um processo elementar é a menor unidade de 
atividade significativa para o usuário final, tem as 
características:
- Ele deve ser completo em si mesmo 
- Deixar a aplicação em um estado consistente.
11Prof. Horacio Ribeiro
Para criar um parâmetro de referencia na
classificação das funções o IFPUG criou
uma tabela que resume os objetivos
primários de cada tipo de função
transacional e a identificação é feita por
este objetivo
Verifica-se a intenção primária da função
12Prof. Horacio Ribeiro
Tipo de Função Transação
tópico (EE) entrada externa (SE) saída extrna (CE) – consulta 
externa
Alterar o 
comportamento 
do sistema
IP - Intenção 
primaria da 
função de 
transação
F - Uma operação que 
pode ser feita pela 
função , mas não é 
sua intenção primária. 
Ela pode existir ou 
não.
NP – Não é 
permitida a 
função 
transacional
Manter um ou 
mais ALIs
IP - Intenção 
primaria da 
função de 
transação
F - Uma operação que 
pode ser feita pela 
função , mas não é 
sua intenção primária. 
Ela pode existir ou 
não.
NP – Não é 
permitida a 
função 
transacional
Apresentar 
Informações
F - Uma operação 
que pode ser feita 
pela função , mas 
não é sua intenção 
primária. Ela pode 
existir ou não.
IP- Intenção 
primaria da 
função de 
transação
IP- Intenção 
primaria da 
função de 
transação
13Prof. Horacio Ribeiro
Entradas Externas
Uma entrada externa é um processo elementar que
processa dados ou informações de controle
recebidos de fora da fronteira da aplicação e cujo
objetivo principal é manter um ou mais Arquivos
Lógicos Internos (ALI) e/ou alterar o
comportamento do sistema.
uma EE provoca uma inclusão, exclusão e/ou
alteração nos dados dos ALI
14Prof. Horacio Ribeiro
Entradas Externas
Uma Função do tipo EE tem um fluxo de informação de
fora da fronteira da aplicação para dentro , ou seja,
transações originadas do usuário ou de outros sistemas e
que de alguma forma são entrada de dados no sistema.
Estes dados, através de um processo lógico atualizam um
ALI, O processamento é um conjunto de críticas, cálculos,
algoritmos e referências/utilização de ALI ou AIE
As informações de controle podem ou não atualizar
diretamente.
• São entradas externas - EE:
- Operações de inclusões e alterações de 
registros em arquivos da aplicação,
- Janela que permite adicionar, excluir e 
alterar registros em arquivos.
Prof. Horacio Ribeiro 15
Não são entradas externas - EE :
• Menus, 
• Telas de Login,
• Telas de filtro de relatórios e consultas,
• Múltiplos métodos de se executar uma 
mesma lógica de entrada
Prof. Horacio Ribeiro 16
Regras para se identifica uma EE – entrada 
externa
- Identificar todos os processos elementares 
que recebem dados de fora da aplicação e que 
fazem a atualização de um ou mais ALIs
segundo as seguintes regras( IFPUG):
Prof. Horacio Ribeiro 17
Regra 1:
• Os dados ou informações devem ser recebidos de fora da fronteira da 
aplicação;
Regra 2: 
• A entrada de dados não for uma informação que modifique o comportamento 
do sistema , deve manter no mínimo um AIE;
Regra 3:
• Um processo elementar identificado para ser contado como uma EE, pelo menos uma 
das opções a seguir devem ser satisfeitas:
- A lógica de processamento deve ser única e diferente das demais entradas 
externas;
– O conjunto de dados elementares identificados é distinto dos conjuntos 
identificados por outras EE;
Prof. Horacio Ribeiro 18
Determinação da complexidade da Entrada 
externa
• Cada EE deve ser classificada conforme sua 
complexidade funcional que é baseada no 
número de Arquivos Referenciados (ALI e AIE) 
e no número de itens de dados (ID).
Prof. Horacio Ribeiro 19
Regras de contagem para os Arquivos 
referenciados (AR) em uma EE (IFPUG):
• Regra 1: Contar um AR para cada ALI mantido;
• Regra 2:Contar um AR para cada ALI ou AIE
lido durante o processo de EE;
• Regra 3:Contar somente um AR para cada ALI
que seja mantido e lido durante o 
processo da EE.
Prof. Horacio Ribeiro 20
Identificação do Número de Itens de Dados na EE
• Um item de dado é um campo único , não repetido, 
identificado pelo usuário e que é atualizado em um ALI 
pela EE.
• Cada item de dado atualizado em um ALI pela EE deve 
ser computado , considerando o seguinte (IFPUG) :
Prof. Horacio Ribeiro 21
Identificação do Número de Itens de Dados na EE
• Regra 1: Contar um item de dados para cada campo único , não 
repetitivo, reconhecido pelo usuário e mantido em um ALI.
• Regra 2: Campo recuperado ou derivado pelo sistema e 
armazenado em um ALI, durante um processo elementar de uma 
EE que não cruzar a fronteira da aplicação não deve ser contado.
• Regra 3:Linhas de comando ou teclas de função que provêem a 
capacidade para definir a ação a ser tomada pela EE. 
• Regra 4:Campos não informados pelo usuário, mas que são 
atualizados em um ALI por uma EE.
• Regra 5:Mensagem de erro ou confirmação ligadas aos processos 
lógicos executados pela EE. (contar como um item)
Prof. Horacio Ribeiro 22
Determinar a complexidade de uma EE
• A complexidade funcional de uma EE é determinada em 
função da quantidade de ALIs e AIEs referenciados e do 
número de itens de dados referenciados conforme 
tabela
23Prof. Horacio Ribeiro
Número de Itens de Dados(ID)
1 a 4 ID 5 a 15 ID 16 ou mais ID
0 ou 1 arquivo
referenciado (AR)
SIMPLES SIMPLES MÉDIA
2 AR SIMPLES MÉDIA COMPLEXA
3 ou mais AR MÉDIA COMPLEXA COMPLEXA
Tabela 3.5 : Tabela de complexidade de Entradas Externas
Fonte : IFPUG , 1999
24Prof. Horacio Ribeiro
saída externa(SE)
- é um processo elementar que envia dados ou informações
de controle para fora da fronteira da aplicação.
- Seu objetivo é exibir informações recuperadas através de
processamento lógico, isto é , processamento que envolva
cálculos ou criação de dados derivados e não apenas uma
simples recuperação de dados.
- São atividades do sistema que transformam dados dos
ALI e geram resultados que são exibidos ao usuário.
25Prof. Horacio Ribeiro
São saídas externas
A identificação de uma saída externa todos os processos e informações de
controle que enviam dados para fora da fronteira da aplicação. Considerar:
•Dados transferidos para outra aplicação : dados de um ALI que são formatados e
processados para uso por uma aplicação externa.
•Relatórios : Cada relatório produzido pode ser considerado uma SE. Para
relatórios de formato idênticos mas que necessitam de lógicas de processamento
ou cálculos distintos devem ser considerados saídas externas diferentes.
•Relatórios on-line : Saída de dados on-line que não seja a parte de saída de uma
consulta Externa.
•Formatos Gráficos: Contados da mesma forma como saída em formato texto,
isto é , cada formato gráfico diferente é contado como uma saída externa.
• Gerador de relatórios : Cada relatório desenvolvido para o usuário via gerador de
relatório deve ser considerado como uma saída externa.
Para identificar as SE deve verificar o 
processamento lógico do processo elementar 
conforme as seguintes regras (IFPUG):
• Regra 1: Se existe pelo menos uma fórmula 
matemática ou cálculo;
• Regra 2: Se cria dados derivados;
• Regra 3: Se mantém pelo menos um ALI;
• Regra 4: Se muda o comportamento do sistema.
Prof. Horacio Ribeiro 26
Prof. Horacio Ribeiro 27
Não devem ser considerados como
saídas externas:
•Telas de Ajuda;
•Literais;
•Data, hora, controles de paginação , etc.;
•Relatórios múltiplos com a mesma lógica e
formato
•Relatórios criados pelo usuário de forma
dinâmica usando um linguagem como SQL.
Prof. Horacio Ribeiro 28
Classificação da complexidade da saída
externa
A classificação da complexidade de uma saída externa
deve ser feita de acordo com o número de Arquivos
Referenciados e no número de itens de dados.
1 Identificação do Número de arquivos referenciados
Um arquivo referenciado é qualquer AIE ou ALI que foi
lido mantido no processamento da Saída Externa
sendo que o número de Arquivos Referenciados é a
soma dos ALI e AIE atualizados ou consultados para
gerar a Saída Externa.
Prof. Horacio Ribeiro 29
Classificação da complexidade da saída
externa
Regras de contagem para AR em uma Saída Externa (
IFPUG):
Regra 1: Contar um AR para cada Ali mantido durante o processo
elementar;
Regra 2:Contar um AR para cada ALI ou AIE lido durante o
processo elementar;
Regra 3:Contar somente um AR quando um ALI é mantido e lido
pelo processo elementar da SE.
Prof. Horacio Ribeiro 30
Um item de dado deverá ser identificado
conforme as seguintes regras (IFPUG):
Regra 1: Contar um item de dado cada campo não repetido
reconhecido pelo usuário. Se o item de dados entra e sai pela
fronteira da aplicação ele será computado apenas uma vez;
Regra 2: Contar um item de dado se aplicação enviar mensagens de
resposta para fora da fronteira, indicando erro ou sucesso no
processamento;
Regra 3:Um campo recuperado ou derivado pelo sistema e
armazenado em um ALI, durante um processo elementar de uma SE,
que não cruzar a fronteira da aplicação não deve ser contado.
Determinar a complexidade de uma SE
• A complexidade funcional de uma SE é determinada 
em função do número de itens de dados e da 
quantidade de arquivos referenciados (ALI + AIE) 
podendo ser classificada conforme a tabela
Prof. Horacio Ribeiro 31
Número de Itens de Dados (ID)
1 a 5 ID 6 a 19 ID 20 ou mais ID
0 ou 1 AR SIMPLES SIMPLES MÉDIA
2 a 3 AR SIMPLES MÉDIA COMPLEXA
4 ou mais AR MÉDIA COMPLEXA COMPLEXA
Consultas Externas - CE
• Uma consulta Externa é uma combinação de entrada/saída de dados onde 
a entrada de dados causa uma saída de dados.
• A lógica de processamento é de consulta a ALI e não deve conter 
fórmula matemática ou cálculo nem criar dados derivados 
ou atualizar nenhum ALI.
Prof. Horacio Ribeiro 32
Prof. Horacio Ribeiro 33
As seguintes regras devem ser satisfeitas para um processo 
elementar ser contado como uma consulta Externa
- O processamento elementar recupera dados ou informações de
controle de um ALI ou AIE;
- A lógica do processo elementar não pode conter cálculos;
- A lógica do processo elementar não cria dados derivados;
- A lógica do processo elementar não mantêm nenhum ALI;
-A lógica do processo elementar não altera o comportamento do
sistema.
Prof. Horacio Ribeiro 34
São consideradas consultas externas
•Um processo de recuperação de dados que seleciona dados com 
base em uma entrada fornecida;
•Telas de Logon;
•Telas de Help;
•Telas de alteração/remoção que mostram o que será alterado ou 
removido antes de sua efetivação.
•Tela de menus que permitem informar parâmetros para a consulta na 
tela escolhida
Prof. Horacio Ribeiro 35
Não são consideras CE:
•Telas de Menus que oferecem somente funcionalidade de seleção 
de telas;
•Dados derivados;
•Documentação On-Line;
•Sistema de Teste;
•Sistema Tutoriais;
•Relatórios e consultas que contenham cálculo ou gerem dados 
derivados
Prof. Horacio Ribeiro 36
Identificação do Número de arquivos
referenciados
Um arquivo referenciado é um arquivo ALI ou AIE lido pela
Consulta Externa.
Regras de contagem para um AR em uma CE (IFPUG) :
Regra 1:Contar um AR para cada ALI lido;
Regra 2:Contar um AR para cada AIE lido.
Prof. Horacio Ribeiro 37
Identificação do Número de Itens de Dados 
Um item de dado é um campo único , não repetitivo, reconhecido pelo usuário. 
Regras de contagem de itens de dados para CE (IFPUG):
Regra 1:Contar um item de dados para cada campo reconhecido pelo usuário e 
não repetitivo que atravessa a fronteira da a aplicação e é requisitado para 
definir quando , o que ou como os dados serão recuperados ou gerados pelo 
processo elementar;
Regra 2:Contar um item de dados para cada campo reconhecido pelo usuário e 
não repetitivo que sai pela fronteira da aplicação;
Regra 3:Se um item de dados entra e sai da aplicação deve ser contado 
somente uma vez;
Regra 4:Contar um item de dados para uma mensagem de resposta para fora 
da fronteira da aplicação indicando um erro ocorrido ou confirmando que um 
processo terminado ou deve continuar.
Prof. Horacio Ribeiro 38
Regras de contagem de itens de dados para CE (IFPUG):
Regra 5:
Contar um item de dados pela habilidade da aplicação em definir que 
uma ação a ser feita, mesmo havendo diversos métodos de chamar o 
mesmo processo lógico;
Regra 6:
Não devem ser contados : literais, paginação, variáveis ou sinalizações 
geradas pelo sistema.
Regra 7:
Um item de dado adicional deve ser computado caso sejam requeridas 
mensagens de erro ou campos de confirmação associados à parte de 
entrada da Consulta Externa
Prof. Horacio Ribeiro 39
Número de Itens de dados(ID)
1 a 5 ID 6 a 19 ID 20 ou mais
ID
0 ou 1 AR SIMPLES SIMPLES MÉDIA
2 a 3 AR SIMPLES MÉDIA COMPLEXA
4 ou mais
AR
MÉDIA COMPLEXA COMPLEXA
Determinar a complexidade de uma CE
A complexidade funcional de uma CE é determinada em
função do número de itens de dados e arquivos
referenciados conforme a tabela
Tabela: Tabela de complexidade de Consultas Externas
Prof. Horacio Ribeiro 40
COMPLEXIDADE
SIMPLES MÉDIA COMPLEXA
EE 3 4 6
SE 4 5 7
CE 3 4 6
Determinação do peso de cada função
Com o tipo de função e a complexidade determinada para
cada função estabelece-se o peso usando a tabela abaixo:
Tabela Contribuição de transação na contagem dos PFs não ajustados
COMPLEXIDADE
SIMPLES MÉDIA COMPLEXA
ALI 7 10 15
AIE 5 7 10
EE 3 4 6
SE 4 5 7
CE 3 4 6
Prof. Horacio Ribeiro 41
Tabela:
Contribuição das Funções de dados e de 
transação na contagem dos PFs não ajustados
Prof. Horacio Ribeiro 42
O cálculo dos pontos de função não ajustados
Para cada um dos cinco tipos de função (ALI, AIE ,
EE, SE e CE), verifica-se a complexidade e o peso
multiplicado pelo número de elementos contados em
uma mesma complexidade.
O total é chamado de pontos de função (TPF).
Prof. Horacio Ribeiro 43
Cálculo de Pontos de Função para um projeto de desenvolvimento
O projeto de desenvolvimento apresenta três componentes em termos de
funções :
1 - Funcionalidades da aplicação incluídas pelos usuários como requisitos
2 - Funcionalidades de conversão incluídas pelos usuários como requisitos
3 - Valor do fator de ajuste da aplicação
Fórmula para cálculo:
DFP = (UFP + CFP) * VAF
Onde :
DFP – Número de pontos de função de desenvolvimento;
UFP – Número de pontos de função brutos apurados;
CFP – Número de pontos de função adicionados por processos de
conversão de dados;
VAF – Valor do fator de ajuste.
• É preciso praticar....
• Na biblioteca virtual terá uma lista de 
exercícios... Pratique.
44Prof. Horacio Ribeiro
• Com isto encerramosnossa aula.
- Na próxima aula vamos aprender a fazer estimativas de 
diversas formas a partir do conhecimento do número de 
ponto função. 
- Vamos estudar como estas estimativas são usadas para 
a gerencia do software, em termos de esforço , 
dimensionamento de equipe e prazo.
45Prof. Horacio Ribeiro
• Até a próxima aula
46Prof. Horacio Ribeiro
• Contactos:
• Professor Horacio ribeiro
• www.espacodoprofessor.com
• Email: profhoracioribeiro@gmail.com
• Aula 4
47Prof. Horacio Ribeiro
http://www.espacodoprofessor.c/
mailto:profhoracioribeiro@gmail.com
Medidas do Esforço de Desenvolvimento de Software
Aula 6
Prof. Horácio Ribeiro
Nas aulas passadas 
estudamos como medir a 
funcionalidade do software
• Na segunda fase vamos estudar como 
fazer estimativas de esforço e prazo e 
acompanhar o desenvolvimento de 
projetos
• Objetivos da aula:
• Aprender a fazer estimativas de prazo e 
esforço utilizando método COCOMO
• Aprender como fazer estimativa com ponto 
função. 
• Classificar o software em grau de dificuldade, 
segundo critérios do COCOMO. 
• Para uma nova aplicação :
–Desejamos saber quanto tempo 
será necessário?
–Quanto vai custar?
–Vale a pena?
• estimativas de custos e prazos em 
software
–não é ciência exata;
–Diminuir o nível de erro da estimativas;
–Um erro na estimativa pode 
comprometer o projeto.
• Estimativas, normalmente, são feitas a partir 
de série histórica baseada nos projetos feitos 
anteriormente. 
• Registram-se várias informações
(tempo por fase do projeto, de codificação, 
quantidade de programadores e outras 
informações).
• As informações são a base para estimar e 
acompanhar a execução de novos projetos. 
tabela de informações gerais
projet
o
prazo 
(dias) custo (reais)
lingua
gem
PF (não 
ajustado
)
numero 
desenvol
vedores
coruj
a 230 R$ 130.000,00 PHP 380 2
diario 
escol
ar 150 R$ 90.000,00 PHP 278 2
folha 200 R$ 110.000,00 java 315 2
portal 110 R$ 40.000,00 pyton 260 1
projet
o
analise projeto codificação integraçao totais
% 
pf
% 
pra
zo
% 
cus
to % pf
% 
pr
az
o
% 
cus
to
% 
pf
% 
pra
zo
% 
custo % pf
% 
prazo
% 
custo PF prazo custo
coruja
1
8,
2 9 20 13,732 14
46,
7 35 45 21,5 24 21 380 230
R$ 
130.000,00 
diario 
escola
r
1
7,
6 14 23 14,127 17
48,
8 33 42 19,5 26 18 278 150
R$ 
90.000,00 
folha
1
8,
6
19,
6 18 14,430 19
44,
7
32,
4 44 22,3 18 19 315 200
R$ 
110.000,00 
portal
1
8,
4 12 19 12,834
15,
3
43,
6 29 44,3 25,2 25 21,4 260 110
R$ 
40.000,00 
Base de informações:
• Os dados são colocados em gráficos e 
estes gráficos definem famílias de curvas.
• Estas curvas são ajustadas a funções 
matemáticas. 
Nível de erro aceitável
Depende da faixa de valores
• Quando não se tem nenhuma informação é 
comum fazer as estimativas baseadas na 
experiência dos profissionais.
- método Delphos
Recomendação do PMI para estimativas de 
prazo 
Prazo estimado = PM + Pm + 4*Pmedio
6
Onde : PM é o maior prazo dado
Pm é o menor prazo dado
Pmedio é a media dos prazos dados
• Exemplo:
9 técnicos experientes estimaram o prazo:
Tecnico1:10 dias tecnico2:20 dias tecnico3:15 dias
Técnico4:12 dias tecnico5: 8 dias tecnico6:25 dias
Tecnico7:15 dias tecnico8:12 dias tecnico9:15 dias
Prazo médio=
(10+20+15+12+8+25+15+12+15)/9 = 15 dias
Prazo de projeto =
( 25 + 8 + 4*15)/6 = 15,5 (15 dias + meio dia)
estimativas sendo PMI
projet
o
analise projeto codificação integraçao totais
% pf
% 
praz
o
% 
cust
o % pf
% 
praz
o
% 
cust
o % pf
% 
praz
o
% 
cust
o % pf
% 
praz
o
% 
custo PF prazo custo
media 18,2 13,7 20 13,830,8 16,3 45,9 32,4 43,8 22,1 23,3 19,9 308,3 172,5 92500
maior 18,6 19,6 23 14,4 34 19 48,8 35 45 25,2 26 21,4 380 230 130000
menor 17,6 9 18 12,8 27 14 43,6 29 42 19,5 18 18 260 110 40000
estima
tiva 18,2 13,9 20,2 13,730,7 16,4 46 32,2 43,7 22,2 22,8 19,8 312,2 171,7 90000
O processo de estimativa envolve basicamente 
quatro atividades:
1 – estimar o tamanho do produto a ser gerado;
2 – Estimar o esforço empregado na execução 
do projeto;
3 – estimar a duração do projeto;
4 – estimar o custo do projeto.
• Nível de variação de erro de uma estimativa 
nas diversas fases do projeto.
Pode-se realizar o cálculo da medida 
em cada fase do desenvolvimento.
• O assunto estimativas e os custos em 
projetos foi estudado Barry Boehm (1981).
–Estudou mais de 5000 projetos de 
software;
–Estes softwares foram classificados 
segundo uma hierarquia de modelos; 
–Recebeu o nome de COCOMO.
–(COnstructive COst MOdel - Modelo de 
Custos Construtivos)
COCOMO
Classificação do tipo do software:
• Modelo 1 (básico): é um modelo estático de 
valor simples que computa o esforço de 
desenvolvimento de software. 
COCOMO
Classificação do tipo do software:
• Modelo 2 (intermediário):
computa o esforço de desenvolvimento 
como uma função do tamanho, e de um 
conjunto de direcionadores de custo 
(definidos em tabelas) que incluem 
avaliações subjetivas do produto, 
hardware, experiência do pessoal e dos 
atributos do projeto.
COCOMO
Classificação do tipo do software:
• Modelo 3 (avançado) Chamado de COCOMO 
avançado incorpora a versão intermediária e 
faz uma avaliação dos impactos nos 
direcionadores de custo sobre cada passo do 
processo de desenvolvimento ( analise, 
projeto, codificação, testes...) 
COCOMO
Classificação de classes de projeto (tres):
1 – Modo Orgânico ou convencional: projetos de 
software simples, pequenos, pequenas 
equipes com relativa experiência. Trabalha-se 
um conjunto de requisitos não tão rígidos, 
pode-se exemplificar pequenos sistemas. 
COCOMO
Classificação de classes de projeto (tres):
2 - Modo Semi destacado ou difuso:
Projetos de software intermediário (em 
tamanho e complexidade) na qual temos 
equipes com vários níveis de experiência que 
devem programar uma combinação de 
requisitos rígidos. Por exemplo um sistema 
de processamento de transações.
COCOMO
Classificação de classes de projeto (três):
3 – Modo Embutido ou restrito:
um projeto que deve ser desenvolvido 
dentro de restrições operacionais, como por 
exemplo sistema de controle de telefonia.
COCOMO básico - equaçoes:
Projeto de
software
ab bb cb db
Orgânico 2,4 1,05 2,5 0,38
Semi
destacado
3,0 1,12 2,5 0,35
Embutido 3,6 1,20 2,5 0,32
E = esforço aplicado em pessoas-mês.
D = tempo de desenvolvimento em meses cronológicos.
Exemplo:
Considere um software com 33,3 Kloc, usando o 
modelo semi destacado temos:
O número ideal de pessoas no projeto
Duração do projeto:
D = 2,5 (E) exp (0,35)
= 2,5 *(152)elevado a 
0,35
= 14 meses 
Esforço:
E = 3,0 (Kloc) exp
(1,12)
= 3,0 (33,3) elevado 
a 1,12
= 152 pessoas-mês
N = E/D = 152/14,5 = 11 pessoas
Exemplo 2:
• Considere que após uma análise de ponto 
função temos 236 PF não ajustado.
• Como as formulas do COCOMO foram 
construídas com KLOC. Se utilizarmos a 
linguagem ACCESS temos:
Exemplo 2
Usando o COCOMO básico,
gerente considerou o projeto como orgânico
E usaremos as formulas:
Duração do projeto:
D = 2,5 (E) exp (0,35)
= 2,5 *(36)elevado a 
0,35
= 4,3 meses 
Esforço:
E = 3,0 (Kloc) exp
(1,12)
= 3,0 (9) elevado a 
1,12
= 36 pessoas-mês
COCOMO intermediário - equações:
NO modelo intermediário o básico é
ampliado considerando-se 4 grandes
categorias de custos:
A – Atributos do produto:
I – Confiabilidade exigida do software
II – Tamanho do Banco de dados.
III – Complexidade do software
COCOMO intermediário - equações:
NO modelo intermediário o básico é ampliado.
considerando-se 4 grandes categorias de custos:
B – Atributos do Hardware
I – Restrições de desempenho de run-time
II - Restrições de memória
III – Mudanças do ambiente de software
IV – Tempo de resposta
COCOMO intermediário - equações:
NO modelo intermediário o básico é ampliado.
considerando-se 4 grandes categorias de custos:
C – Atributos de pessoal
I – Capacidade dos analistas
II – Capacidadedos programadores
III – Experiência na aplicação
IV – Experiência no ambiente de Hardware
V - Experiência com a linguagem de
programação
COCOMO intermediário - equações:
NO modelo intermediário o básico é ampliado.
considerando-se 4 grandes categorias de custos:
D – atributos de projeto
I – Uso de ferramenta de software.
II – técnicas modernas de programação
III – Prazo requerido para o desenvolvimento
equaçoes do modelo intermediário:
O produto dos índices encontrados na tabela torna-se o EAF
E = a (kloc) exp (b) * EAF
Onde:
o coeficiente a e o expoente b são fornecidos pela tabela:
Projeto de software a b
Orgânico 3,2 1,05
Semi destacado 3,0 1,12
Embutido 2,8 1,20
EAF
Considere que, no exemplo 2, 
anterior (COCOMO intermediário) o 
gerente considerou o projeto como 
orgânico
E usaremos as formulas:
exemplo
Calcular EAF:
exemplo
Analisando os 15 direcionadores o gerente concluiu os 
seguintes resultados:
Complexidade do software: alta
Restrições quanto ao uso da memória: Alto
Experiência com a linguagem de programação: Baixa
Capacidade dos programadores: Baixa
Os outros atributos foram considerados normais
• Assim pode-se determinar o EAF 
EAF = (1,15 * 1,06*1,14*1,17) = 1,63
Desta forma pode-se estimar o esforço:
• Prazo: 
COCOMO II
•O COCOMO II é uma melhora do COCOMO-
81
• leva em consideração que há abordagens 
diferentes para o desenvolvimento;
• incorpora um conjunto de sub modelos 
que produzem estimativas detalhadas. 
Os sub modelos são:
A – Um modelo de Composição de aplicação;
B – Um modelo de projeto preliminar;
C – Um modelo de Reuso;
D – Um modelo de pós arquitetura;
• Até a próxima aula
• Contactos:
• Professor Horacio ribeiro
• www.espacodoprofessor.com
• Email: profhoracioribeiro@gmail.com
• Aula 6
http://www.espacodoprofessor.c/
mailto:profhoracioribeiro@gmail.com
Medidas do Esforço de Desenvolvimento de Software
Aula 7
Prof. Horácio Ribeiro
Na aula anterior iniciamos métodos 
de estimativas do software
- Avaliações com base estatística
- cocomo
• Estudo de casos
Sistema de Manutenção de Clientes
• Descrição do sistema:
- Em um sistema de manutenção de clientes um 
usuário (funcionário de empresa) registra as 
entradas, alterações, exclusões e saídas (relatório) 
dos dados relativos a um cliente da empresa no 
sistema. 
- Qualquer usuário da empresa poderá acessar o 
sistema e efetuar o cadastramento. (Não haverá 
controle de acesso no sistema). Será emitido um 
relatório de todos os clientes cadastrados e dos 
dados de um determinado cliente.
Estudo de casos com ponto função
Características do sistema:
• - O sistema irá permitir o acesso sem restrições para 
qualquer usuário da empresa, não havendo 
portanto, controle de acesso.
• - Não existe qualquer interface com outros sistemas 
existentes
• - Deverão ser cadastrados os seguintes dados de um 
cliente: Nome, endereço, Cidade , CEP , Telefone , 
Email e Observações.
• - O nome do cliente, endereço, cidade, CEP e email 
são obrigatórios e deverão ser sempre informados
Casos de uso identificados
A tecnologia usada no sistema para manutenção de cliente será
de implementação em um site (processamento nas nuvens)
usando a linguagem PHP (com suporte a objetos) envolvendo 3
camadas : camada de dados , camada de aplicação e
camada de apresentação.
Determinar Funções do tipo dado
O sistema usa o banco de dados Cadastro.mdb e a tabela Clientes que 
possui a seguinte estrutura:
Para determinar se a tabela Clientes é um ALI devemos fazer duas perguntas:
É um grupo lógico de dados identificável pelo usuário ? Sim.
É mantido por um processo elementar dentro da fronteira da aplicação ? Sim.
A aplicação possui somente um ALI.
Número de Tipos de Dados (TD) - é um campo único, 
reconhecido pelo usuário, não repetido. (7 tipos de dados )
Número de Tipos de Registros (TR) - é um subgrupo de tipo de 
dados, reconhecido pelo usuário, componente de um ALI ou 
AIE (1 Registro Lógico). 
Determinar Funções do tipo dado
ALI e AIE devemos classificar a função de acordo com sua complexidade funcional
Tipos de Dados
Tipos de Registros < 20 20 - 50 > 50
1 Baixa Baixa Média
2 - 5 Baixa Média Alta
> 5 Média Alta Alta
Tipo de Função Baixa Média Alta
Arquivo Lógico Interno -
ALI
7 PF 10 PF 15 PF
Arquivo de Interface
Externa - AIE
5 PF 7 PF 10 PF
funções do tipo dado para a aplicação é igual a 7 PF
AIE - Arquivo de interface externa - é um grupo de 
dados logicamente relacionados que é usado pela 
aplicação entretanto sofre manutenção a partir de 
outra aplicação.
A aplicação não tem nenhum AIE. Com contribuição de 
0 PF.
Determinar AIE
As funções do tipo transação representam a funcionalidade 
fornecida ao usuário para atender os requisitos da aplicação. São 
classificadas como:
Entradas Externas - EE - Processa as informações e/ou dados 
recebidos de fora da fronteira da aplicação 
Saídas Externas - SE - Envia dados ou informações para fora da 
fronteira da aplicação 
Consultas Externas - CE - Envia dados ou informações de 
controle para fora da fronteira da aplicação. 
Determinar as funções do tipo Transação 
Cada função do tipo transação deve ser 
classificada com relação a sua complexidade 
funcional em:
• Número de Arquivos Referenciados - AR - Um 
ALI lido ou mantido pela função do tipo 
transação ou um AIE lido pela função do tipo 
transação. 
• Número de Tipos de Dado - TD - Um campo 
único, reconhecido pelo usuário, não repetido. 
Após determinar a quantidade de AR e TD da aplicação podemos definir
a sua complexidade de acordo com as seguintes tabelas:
Tabela de complexidade para Entradas Externas:
Tipos de Dados
Arquivos
Referenciados
< 5 5 - 15 > 15
< 2 Baixa Baixa Média
2 Baixa Média Alta
> 2 Média Alta Alta
Tipos de Dados
Arquivos
Referenciados
< 6 6 - 19 > 19
< 2 Baixa Baixa Média
2 - 3 Baixa Média Alta
> 3 Média Alta Alta
Função Tipo AR TD
Cadastro de Clientes
- Incluir EE 1 7
- Alterar EE 1 7
- Excluir EE 1 7
- Listar SE 1 7
- Consultar CE 1 8
Vamos criar uma tabela para indicar as funções do tipo
transação identificada e para cada uma delas a quantidade
de AR e TD.
(listar = 10 td SE - além dos campos de dados estamos estimando ou
contando os comandos botão e mensagem ao usuário) (se não contar não fará
diferença)
Após determinar a complexidade das funções de
transação podemos calcular sua contribuição de
acordo com a tabela abaixo:
Tipo de Função Baixa Média Alta
Entrada Externa - EE 3 PF 4 PF 6 PF
Saída Externa - SE 4 PF 5 PF 7 PF
Consulta Externa - CE 3 PF 4 PF 6 PF
Abaixo temos a tabela que exibe as funções
do tipo Transação para a aplicação
manutenção de clientes.
Função Tipo Complexidade PF
Cadastro de Clientes
- Incluir EE Baixa 3
- Alterar EE Baixa 3
- Excluir EE Baixa 3
- Listar SE Baixa 4
- Consultar CE Baixa 3
Total dos Pontos de função para as funções de tipo
transação da aplicação: 16 PF
O total geral dos pontos de função não ajustados para a
aplicação é de 23 PF ( 16 + 7 )
16 PF
Cálculo do fator de ajuste
O valor do fator de ajuste (VFA) é
baseado em 14 características gerais de
sistema listadas abaixo:
Característic
a
Influência Característica Influência
1 4 8 0
2 0 9 2
3 0 10 0
4 3 11 4
5 0 12 3
6 0 13 0
7 0 14 4
Valor Total => 20
Uma equipe de profissionais respondeu e deu nota para os 14 características:
As notas dadas para os itens foram:
VFA = (20 x 00,1 ) + 0,65 = 0,85
O valor do fator de ajuste é igual a 0,85.
Como estamos usando as regras do manual de
contagem, que também são usadas por outras
empresas.
Isto nos facilita, pois se não tivermos uma base
histórica podemos buscar informações em outras
empresas a fim de subsidiar sua estimativa.
Na nossa empresa O esforço em horas é obtido
pela formula (já por indicadores estatísticos)
Esforço Total (horas ) = PF * índice de
produtividade
(os índices de produtividade

Outros materiais