Buscar

MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE

Prévia do material em texto

MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE
AULA 1
Não se pode gerenciar o que não se pode medir.
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. A disciplina apresenta os conceitos usados para se medir e estimar o software. Fazer software e mantê-lo é uma atividade de engenharia.   As formas de medir, estimar e acompanhar um projeto, e como estabelecer parâmetros para futuras medições são apresentadas nesta cadeira. 
Esta disciplina apresentará a você as formas de se medir e estimar o software.  Os conceitos apresentados permitirão que você estime o esforço e prazo necessário para se desenvolver e manter um software.
Ao final dessa disciplina você será capaz de:
•Especificar uma nova métrica de forma correta, definindo sua forma de medir, sua aplicabilidade no projeto e suas limitações na tomada de decisões.
•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.
•Calcular o número de pontos função (PF) ajustados e não ajustados para o software.
•Calcular o número de pontos função para: Um caso e uso – um programa – um diagrama de classes – um diagrama de sequência – uma tela – um arquivo – um dfd – um diagrama lógico de dados – uma proposta de manutenção – uma classe de projeto – um método
Nesta aula, você irá: 
1 - Aprender o que é uma métrica -2 Identificar três características de uma métrica 
3 - Identificar a característica de uma métrica de tamanho 4 - Relacionar as vantagens e desvantagens de medidas de tamanho
5 - Identificar a utilização de alguns indicadores (de tamanho) para o software
O homem não pode controlar o que não pode medir.  O desenvolvimento do software, sob o aspecto gerencial, precisa ser medido.  Vamos apresentar os principais conceitos envolvidos na medição do software.
Quando temos interesse em saber o crescimento, a idade ou melhorar na qualidade de alguma coisa devemos estabelecer “conceitos” que nos ajudem a verificar esta evolução.  E sobre estes conceitos são feitas medidas que permitem comparar situações.
É comum na engenharia, dado um objetivo fazermos medidas.  Assim, por exemplo, após se definir o que é corrente elétrica pode-se definir uma forma de medir e a partir daí pode-se comparar a intensidade de corrente elétrica em diversos circuitos. 
Mas, quando o que se quer medir não é bem definido é comum confundirmos este conceito com a própria medida.
Por exemplo, pé direto: define-se que é a distância entre um plano inferior (piso) e um plano superior (Teto).   E ao se pedir qual o pé direito de um cômodo, apresenta-se a medida entre os dois planos, por exemplo, 3 metros.  Assim se pede “qual o pé direito do cômodo?" Resposta: 3 metros.  Na prática assume-se a definição comum.
Mas, se o objetivo entrar com um eletrodoméstico de 2,80 metros e no cômodo existe uma viga com 60 cm para baixo o real pé direito é de 2,40metros e o eletrodoméstico não poderá ser colocado no cômodo apesar dos 3 metros entre planos.  Assim, deve-se procurar identificar o que se deseja para a partir daí se definir claramente o que medir.   O conceito que se deseja estabelecer é o que chamamos de uma métrica.
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. 
Abordagens Iniciais - Para poder comparar coisas o homem tem necessidade de medir.  Para sabe, por exemplo, se uma pessoa é mais alta que outra podemos colocá-las lado a lado e verificar quem é mais alto.   Esta forma de comparar exige que tenhamos as pessoas presentes o que não é prático.   Também é comum dizer que uma pessoa é alta, ou baixa.  Mas não se sabe o quanto é alto ou baixa, e fica-se dependendo da noção de altura do observador.   
É comum, ao se perguntar por uma localidade, se receber como resposta que é perto ou longe.  Dependendo de quem responde pode-se estar falando de uns poucos quarteirões ou de alguns quilômetros. Os exemplos acima mostram que há necessidade de se estabelecer alguns conceitos que criem um referencial comum para podermos comparar “coisas” ou processos.
 Quando temos interesse em saber o crescimento, a idade ou melhorar na qualidade de alguma coisa devemos estabelecer “conceitos” que nos ajudem a verificar esta evolução.  
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.
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.
A especificação de uma métrica deve conter:
Nome da métrica - Objetivo da métrica - Descrição da métrica- Sistema de medidas- Forma de se obter a medida
1 – Nome da Métrica – Pé direito 
2 – Objetivo da Métrica - 
3- Descrição da Métrica - 
4 - Sistema de medidas - que sistema devera ser usada para se medir exemplo: contagem usando números inteiros 
5 – Forma de se obter a medida - 
 Como será feita a medida - exemplo: a medida deverá ser feita diretamente no código que for aprovado para compilação 
Medidas -
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
Uma medida direta é feita no processo ou produto de forma direta.
A indireta é feita por medidas que serão usadas em cálculos para se 
Calcular a medida final. 
Exemplo de especificação de uma métrica para o software:
1 – Nome da Métrica – Grau de complexidade celomática
2 – Objetivo da Métrica - 
3- Descrição da Métrica –
4 - Sistema de medidas – Unidade (Números inteiro)
5 – Forma de se obter a medida - 
Suponha a métrica:
 Nome: complexidade ciclomática
 Descrição: serve pra medir a complexidade do software considerando o número 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.
 “O leite já está derramado”
A medida indireta pode ser usada em fases de planejamento.
 Por isto usa-se plantas em engenharia
 Desenhos de circuitos elétricos
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 código (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.AULA 2
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 aspectos:
 Entradas – saídas – consultas – arquivos e interfaces
CONSTRUÇÃO DA FUNÇÃO:
-O Princípio é 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
A formula construída final ficou:
As métricas definidas a partir de PF – (PF=ponto função)
Ponto Função Não ajustado:
 - É o resultado da contagem * Peso de complexidade. (Contagem total)
Ponto função ajustado
 - é o resultado considerando as características de implementação.
 - é o produto da contagem por um fator de ajuste.
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: 43 PF não ajustados e 68,05 PF ajustados (se o fator de ajuste for 1,35) (1,35*48) 
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
	Tom
	8030,25
	356,9
Aula 3: Contagem dos fatores do software segundo IPUG
 
O objetivo da análise é determinar a parte da fórmula, cuja parcela está abaixo:
A nota deve variar de 0 a 5.  O IFPUG estabelece uma tabela para avaliar o grau de influência de uma característica.
Características do sistema que se está dimensionando e para as quais iremos dar nota sã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.
Característica avalia se o sistema utiliza dados distribuídos ou tem processamento distribuído, valendo-se de diversas cpus.
C2 - Processamento de Dados Distribuído: Avaliação.
Avaliação.
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.
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.
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
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:
Avaliação
- 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)
 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
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 autoatendimento 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
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:
 
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.
C13 - 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.
C 14 - Facilidade De Mudanças:
Análise da influência 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).
Fator De Ajuste
 
A fórmula nos ajuda a determinar o fator de ajuste.
O fator de ajuste influência a contagem de pontos de função não ajustados em +/- 35% , o que dá um intervalo de variação da ordem de 0,65 a 1,35. Ele é responsável pela correção das distorções ocorridas na etapa de contagem das funções de dados e funções transacionais. Na prática, está correlação, na maioria dos casos, varia entre –10% e + 10%.
Para cada uma das 14 características atribui-se um valor de 0 (nenhuma influência) a 5 (forte influência) que indica quanto umacaracterística tem influência no sistema. Os 14 graus de influência (GI) são então somados o que resulta no grau de influência total (GIT),:
 
Se o fator de ajuste de valor é igual a 1,00, a influência total das características gerais do sistema é neutra. 
Nesta situação a contagem dos pontos de função ajustados equivale a contagem de pontos de função não ajustados.
Devido a sua subjetividade, a utilização do fator de ajuste tornou-se opcional ao final do ano de 2002 como medida para aceitação dos pontos de função do IFPUG como um método padrão de medida funcional, pois várias características estão relacionadas com requisitos não funcionais da aplicação.
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.  Assim pode-se fazer o trabalho de avaliação e contagem, usando as recomendações do IPFUG, com seus mais experientes desenvolvedores e confeccionarem uma tabela de fatores de ajuste por tipo de aplicação.  Isto evita que toda a aplicação se repita o cálculo.             
Aula 4: Medidas Indiretas e Medida da Funcionalidade 
Medidas Indiretas e Medida da Funcionalidade - Esta aula apresenta as regras de contagem de APF, baseadas no Function Point Counting Pratices Manual – Release 4.1.1, publicado pelo IFPUG, em 1999.
Para se fazer a contagem, o IFPUG definiu um processo que deve ser seguido.  O processo de contagem é mostrado na imagem
O objetivo é contar as funcionalidades do software, ainda no início do projeto.  Análise de Ponto Função (APF) determina um número real a partir de entradas, saídas, consultas, interfaces externas e arquivos lógico.  A imagem exemplifica esses elementos.
A contagem simples, associada ao peso, devido à complexidade do software dos elementos acima, produze um número que mede a funcionalidade sem nenhum ajuste. É o total de pontos, função não ajustado.  Muitas empresas trabalham apenas com esse número, como vimos na aula 3.
Processo De Contagem
O processo de contagem, definido pelo IPFUG, é feito em sete passos, conforme mostrado na imagem:
1 Determinar o Tipo de Contagem – 2 Identificar o Escopo de
Contagem e Fronteira da Aplicação – 3 Contagens das Funções de Dados – 4 Contagens das Funções Transacionais - 5 Determinar os PFs Não Ajustados -6 Determinar o Fator de Ajuste 7 - Calcular os PFs Ajustados
Vamos estudar nesta aula, e na próxima os passos mostrados na imagem. 
O processo de contagem é feito em sete passos.  Nesta aula, vamos aprender como desenvolver os passos 1, 2 e 3.  Observe que na aula passada você aprendeu como se determina o fator de ajuste que corresponde ao passo 6 da imagem e, na próxima aula, vamos desenvolver sobre o passo 4, 5 e 7.
Determinar o tipo de Contagem (passo 1)
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.
Essa contagem também considera as funções de conversão de dados necessária à implantação do software O projeto de migração de dados, povoamento de bases, estão incluídos nessa 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, 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),
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. 
No escopo da contagem de uma aplicação podem-se considerar todas as funcionalidades disponíveis, ou algumas funcionalidades específicas.
A fronteira da aplicação estabelece o limite do estar sendo contada, indicando o limite entre a aplicação e os demais usuários. A fronteira é definida, estabelecendo um limite lógico entre a aplicação que está sendo contada o usuário e as outras aplicações.
Devem-se considerar as seguintes características e regras (IFPUG, 1999):
1 - Os limites entre as funções a serem atendidas pela aplicação ou projeto.
2- A utilização  dos dados considerados no processo de contagem.
3- O relacionamento entre os processos, com indicação de onde eles ocorrem.
4- 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.
5- 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.
Identificar O Escopo Da Contagem E A Fronteira Da Aplicação (Passo 2)
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 é mantido;
Verificar como a aplicação é gerenciada
OBS. 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 uma nova seção denominada "Práticas de Contagem", onde situações como dados de código, dados compartilhados e outros casos devem ser avaliados 
A imagem é do COM 4.1.1 e mostra como deve ser feita a contagem e o que deve ser considerado:
Prática De Contagem ALI E AIE
As transações existentes devem ser para manutenção de dados e os dados de código não devem ser consideradas como processos elementares, nem os dados de código contados.
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. Os ALI contribuem para o cálculo de pontos de função, com base na sua quantidade e complexidade 
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.
Como exemplos de um ou mais ALIs , dependendo da visão do usuário , têm-se : (IFPUG,1999)
um ou mais ALIs ,
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.
Determinação Da Contribuição Dos ALI E AIE
Após determinar o número de ALI e AIE e suas respectivas complexidades, deve-se calcular a contribuição de cada um deles, utilizando a seguinte tabela de contribuição de PF não ajustados do IFPUG:
Tabela de contribuição dos PF não ajustados das funções de dados
Estudo de casos: Considere o DFD :
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.
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 para a manutenção de arquivo de empréstimos, autores e livros
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.
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.  Nesse 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.
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= 32 PF não ajustados
Aula 5: Contagem de Funções (internas e externas), baseada nonction Point Counting Pratices – PUG, em 1999
Contagem das funções transacionais
As funcionalidades do sistema, para o usuário, são apresentadas na forma de funções.  São elas que manuseiam os dados.  As funções são classificadas quanto a relação de uso em de Entrada externas, Saídas e Consultas externas.
Existem muitas dúvidas e divergências quanto a forma de contar essas funções.  Uma consulta é uma entrada? É uma saída? Para criar um parâmetro de referência, 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.
Definição: 
Um processo elementar é a menor unidade de atividade significativa para o usuário final e tem as características:
- Deve ser completo em si mesmo.
- Deve deixar a aplicação em um estado consistente.
Tabela de resumo dos objetivos primários das funções de transação.
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. Dessa forma uma EE provoca uma inclusão, exclusão e/ou alteração nos dados dos ALI. (VAZQUEZ, 2005)
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 representam alguma forma de entrada de dados no sistema. . Esses dados, através de um processo lógico atualizam um ALI,  As informações de controle podem ou não atualizar diretamente. O processamento é um conjunto de críticas, cálculos, algoritmos e referências/utilização de ALI ou AIE.
Uma EE é considerada única para uma aplicação se possuir um formato diferente das demais ou se precisar de uma lógica de processamento diferente de outras EE que tenham o mesmo formato.
- 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.
- 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.
Regras para se identifica uma EE – Entrada Externa
O processo de identificação de EE requer que sejam analisados todos os processos elementares que recebem dados de fora da aplicação e que fazem a atualização de um ou mais ALI, segundo as seguintes regras (IFPUG, 1999):
Determinação da complexidade da Entrada externa
Cada EE deve ser classificada conforme sua complexidade funcional relativa que é baseada no número de Arquivos Referenciados (ALI e AIE) e no número de itens de dados (ID).
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.
Consultas Externas
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 das Funções de dados e de transação na contagem dos PFs não ajustados.
Após definir a fronteira da aplicação , o tipo de contagem e reconhecer as funções de dados e de transação pode-se calcular os pontos de função não ajustados, ou brutos, multiplicando-se o total de ALI, AIE, EE, SE, e CE pela respectiva complexidade conforme a tabela.(IFPUG,1999)
Tabela: Contribuição das Funções de dados e de transação na contagem dos PFs não ajustados.
Princípios e conceitos da Governança Corporativa
O cálculo dos pontos de função não ajustados:
É feito da seguinte forma: 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).  
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:
Funcionalidades da aplicação, incluídas pelos usuários como requisitos – "Compreendem as funções usadas depois da instalação do sistema. Elas existem para satisfazer as necessidades de saída do negócio do usuário." (IFPUG,1999)
Funcionalidades de conversão, incluídas pelos usuários como requisitos – "Compreendem funcionalidades providas somente na instalação do sistema. Elas existem para converter dados ou proporcionar outros requisitos estabelecidos pelo usuário e necessários à conversão." (IFPUG,1999)
Valor do fator de ajuste da aplicação – "Compreende a determinação das 14 características gerais do sistema em desenvolvimento, para avaliar a complexidade funcional da aplicação". (IFPUG,1999)
Cálculo de Pontos de Função para um projeto de Melhoria
Segundo o IFPUG, o conceito de melhoria envolve apenas manutenções evolutivas na aplicação, ou seja, alterações feitas na aplicação para atender aos novos requisitos de negócio do usuário. Não são levadas em conta manutenções corretivas e preventivas. (VAZQUEZ, 2005)
Um projeto de melhoria consiste de três componentes em termos de funções:
1. Funcionalidades da aplicação, incluídas como requisitos pelo usuário para o projeto: Funções incluídas, alteradas ou excluídas pelo projeto de melhoria;
2. Funcionalidades de Conversão: "Consiste dos pontos de função entregues por causa de qualquer funcionalidade de conversão requerida pelo usuário". (IFPUG,1999)
3. Valor do fator de ajuste da aplicação – Dois valores são considerados, segundo o manual:
- Valor do fator de ajuste ANTES do início do projeto de melhoria (VAFB)
- Valor do fator de ajuste DEPOIS da conclusão do projeto de melhoria (VAFA)
Deve ser considerado que uma função do tipo dado (ALI ou AIE) foi alterada quando ela foi modificada em sua estrutura com alguma inclusão , alteração ou exclusão de campos ou atributos.
Uma função do tipo transação é considerada alterada quando há alteração em um dos itens a seguir:(VAZQUEZ, 2005)
Tipos de dados – Se houve inclusão, alteração ou exclusão da função.
Arquivos referenciados – Se foram incluídos, excluídos ou alterados da função.
Lógicade processamento – Se qualquer lógica for incluída, alterada ou excluída.
Fórmula para cálculo:
EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL * VAFB) 
Onde:
EFP – Número de pontos de função do projeto de melhoria;
ADD – Número de pontos de função não ajustados das funções incluídas pelo projeto de melhoria;
CHGA – Número de pontos de função não ajustados das funções modificadas depois das modificações;
CFP - Número de pontos de função não ajustados adicionados pela conversão;
VAFA – Valor do fator de ajuste da aplicação depois do projeto de melhoria;
DEL - Número de pontos de função não ajustados das funções excluídas pelo projeto de melhoria;
VAFB – Valor do fator de ajuste da aplicação antes do projeto de melhoria.
Cálculo de Pontos de Função para uma aplicação
Para calcular os pontos de função de uma aplicação existem duas fórmulas que são utilizadas 
Fórmula para Contagem Inicial – representa todas as funcionalidades requeridas pelo usuário de uma aplicação instalada. As funções da conversão de dados não devem ser computadas no tamanho da aplicação entregue, pois, elas existirão somente para o processo de implantação do aplicativo (VAZQUEZ, 2005).
AFP = ADD * VAF
Onde:
AFP – Número de pontos de função ajustados da aplicação;
ADD – Número de pontos de função não ajustados das funções instaladas;
VAF – Valor do fator de ajuste da aplicação.
Fórmula usada após o projeto de melhoria – Após a conclusão de um projeto de melhoria, os pontos de função devem ser atualizados para refletir as mudanças na aplicação. Novamente, as funções de conversão de dados não devem ser computadas, pois, elas não fazem parte da aplicação (VAZQUEZ, 2005).
AFP = [(UFPB + ADD + CHGA) – (CHGB + DEL)] * VAFA
Onde:
AFP – Número de pontos de função ajustados da aplicação
UFPB – Número de pontos de função não ajustados da aplicação antes do projeto de melhoria;
ADD – Número de pontos de função não ajustados das funções incluídas pelo projeto de melhoria;
CHGA – Número de pontos de função não ajustados das funções modificadas depois do seu término;
CHGB – Número de pontos de função não ajustados das funções modificadas antes do seu término;
DEL - Número de pontos de função não ajustados das funções excluídas pelo projeto de melhoria;
VAFA – Valor do fator de ajuste da aplicação depois do projeto de melhoria.
Aula 6: Estimativas de esforço e prazo - coco mo/coco mo II
 - Para decidir, se devemos fazer um desenvolvimento para uma nova aplicação, devemos saber quanto tempo será necessário e quanto vai custar. Vale a pena?
As estimativas de custos e prazos em software não são ciência exata, mas temos necessidades de diminuir, em nível de erro, das nossas estimativas. Existem muitos aspectos que podem influenciar nas estimativas. Um erro na estimativa pode comprometer o projeto e ser desastroso para os desenvolvedores.
As estimativas, normalmente, são feitas a partir de uma série histórica, baseada em projetos feitos anteriormente. Nesse caso, registraram-se várias informações, tempo por fase do projeto, tempo de codificação, quantidade de programadores e outras informações. Essas informações, após tratadas, são a base para estimar e acompanhar a execução de novos projetos.
Os dados podem ser colocados em gráficos e estes gráficos definem famílias de curvas. Essas curvas são ajustadas a funções matemáticas. Essas funções matemáticas são usadas para valores que não constam nas tabelas.
Quando não se tem nenhuma informação é comum fazer as estimativas baseadas na experiência dos profissionais. Nesse caso, podem-se registrar as estimativas de vários profissionais e trabalharmos com valores resultantes destes valores. Pode-se, por exemplo, usar o valor segundo a média ponderada, segundo a fórmula: PM + Pm + 4*Pmedio
Prazo estimado = __________________
 6 
onde: PM é o maior prazo dado
 Pm é o menor prazo dado
 Pmedio é a média dos prazos dados
Processo de estimativa - O processo de estimativa envolve, basicamente, quatro atividades:
Para se fazer estimativa, usam-se duas unidades básicas: 1000 linhas de código (KLOC) e Ponto Função (PF). 
As estimativas, utilizando o tamanho (KLOC) para serem confiáveis, devem estar presentes em fases adiantadas do projeto, devido à incerteza.
O gráfico abaixo [sommerville, Ian] mostra o Nível de variação de erro de uma estimativa nas diversas fases do projeto. Apenas na fase de codificação se torna mais próxima do real.
 Um dos primeiros pesquisadores de software a se preocupar com o assunto de estimativas e estudar os custos envolvidos em projetos foi Barry Boehm, em seu livro sobre engenharia econômica do software em 1891. Nesse trabalho foram estudados mais de 5000 projetos de software.
 - 
1 - Modelo 1 (Básico): Chamado de COCOMO Básico é um modelo estático de valor simples que computa o esforço de desenvolvimento de software como uma função do tamanho expresso em linhas de código (Pressman).
2- Modelo 2 (Intermediário): Chamado de COCOMO 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 (Pressman).
3- 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...).
O COCOMO II é uma melhora do COCOMO-81 e leva em consideração que há abordagens diferentes para o desenvolvimento, incorpora um conjunto de submodelos que produzem estimativas detalhadas.
Os submodelos 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
 É usado para estimar o esforço necessário para projetos de prototipação e projetos em que o software é desenvolvido pela composição de componentes de software que já estão prontos ou usados de outros produtos existentes. A estimativa do software considera a produtividade do programador na linguagem, a experiência e capacitação do desenvolvedor e a capacidade de usar ferramentas para apoiar o desenvolvimento. 
O método baseia-se na estimativa de pontos de objetos (número de objetos) A composição da aplicação envolve, normalmente, o reuso significativo do software, por isto deve-se ajustar a estimativa baseada do uso total ao percentual de reuso esperado. A fórmula de cálculo de esforço é: 
 PM = (NAP * ( 1 - %reuso)/100)/PROD 
Onde:
PM é o esforço estimado em pessoa-mês.
NAP é o número total de pontos de aplicação no sistema 
PROD é a produtividade em pontos de objeto, consultada na tabela de produtividade.
(NOP/mês – Número de pontos de Objeto/mês )
Tabela de produtividade: 
O modelo pressupõe que não há esforços adicionais.
 
Modelo de reuso – 
1 - 
2- 
3 -
 
Aula 7: Estimativas Putnam e Métodos Voltado para Ponto Função
Estimativas – Outros modelos e uso de PF
Esse modelo é um modelo dinâmico de múltiplas variáveis que pressupõem a distribuição do esforço ao longo da existência de um projeto de desenvolvimento.  Foi construído, analisando-se grandes projetos.
O esforço em grandes projetos é caracterizado como mostrado na figura abaixo, reproduzida do professor Pressmam:
Estimativas de projetos orientado a objetos
O software orientado a objetos deve ter outra abordagem:
1- Desenvolver estimativas, usando decomposição de esforço, análise FP  que seja aplicável a aplicações convencionais.
2- Desenvolver casos, usos e determine uma contagem.  Reconhecer que o número de casos e uso podem modificar à medida que se desenvolve o projeto.
3- A partir do modelo de análise, determinar o número de classes-chave.
4- Categorizar o tipo de interface para aplicação, para as classes de apoio.
     -Multiplicar o número de classes chaves pelo multiplicador, para obter uma estimativa para o número de classes de apoio.
5- Multiplicar o número total de classes(chave e apoio) pelo número médio de unidades de trabalho por classes.  Autores, como Lorenz, sugerem entre 15 a 29 pessoas dia por classe.
6- Fazer a verificação cruzada em estimativas baseadas em classes, multiplicando o número médio de unidades por caso e uso.
Estimativas com métodos ágeis
Um projeto usando um processo de desenvolvimento ágil e feito como um conjunto de cenários de usuários.  É possível desenvolver uma estimativa com razoável significado com os seguintes passos:
1- Cada cenário de usuário é considerado separadamente para a estimativa.
2- O cenário é composto de um conjunto de funções e tarefas de engenharia de software.
3 a- Cada tarefa é estimada separadamente.
3 b- O tamanho do cenário pode ser estimado em LOC, PF  ou alguma outra medida orientada a volume
4.a-  As estimativas de cada tarefa são somadas para criar uma estimativa de cenário
4.b- O volume de esforço é estimado para cenário é traduzido para esforço baseado em dados históricos
5- As estimativas de esforço para todos os cenários que devem implementar um incremento de software são somadas para definir a estimativa para o incremento.
Normalmente, a duração do desenvolvimento de um incremento é da ordem de 3-6 semanas; a estimativa serve para garantir que o número de cenários a ser incluído no incremento esteja de acordo com os recursos disponíveis.
Estimativa usando Caso e USO
PCU – Pontos por Caso de Uso – Foram criados por Gustav Karner, em 1993 como uma adaptação específica dos Pontos de Função para medir o tamanho de projetos de software orientados a objeto. Explora o modelo e descrição do caso de uso, substituindo algumas características técnicas proposta pelos Pontos de Função. É um método simples e de fácil utilização mas ainda esta em fase de pesquisas e não existem regras de contagem padronizadas. Tem-se estudado a aplicação em conjunto da PCU e APF, tentando explorar a relação entre elas existente.(EDMÉIA,2004).
Estimativas usando ponto função
A estimativa de tamanho de um projeto de software é uma atividade crítica, pois, tem um impacto, tanto na solução técnica apresentada, como no gerenciamento do projeto de software, devendo ser efetuada não somente no início do projeto, mas durante o ciclo de vida do projeto.
Uma pesquisa realizada pela Secretaria de Política de Informática – SEPIN , em 2001, indicou que a utilização da APF vem crescendo no Brasil, conforme mostra a tabela 2.1:
Métricas primitivas utilizadas para medir a qualidade dos processos de software
Considerando que a APF é uma das técnicas funcionais mais antigas que possui um dos grupos de usuários mais bem estruturados e atuantes e que a partir de 2002 passou a condição de padrão internacional, através da norma ISO/IEC 20926. A técnica pode ser considerada como uma das melhores alternativas de medição de tamanho do projeto de software.
APF serve como um instrumento para acompanhar estimativas de custo e recursos requeridos para o desenvolvimento e manutenção de software.
Sistema de manutenção de cliente
Descrição de 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.
Característica de 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 , E.mail e Observações.
- O nome do cliente , endereço , cidade ,  cep e email são obrigatórios e deverão ser sempre informados.
Lista de ator(es): - Usuário (funcionário da empresa).
Caso de uso identificados: - Exibir Clientes Cadastrados - Efetuar Manutenção de Clientes
Diagrama de caso de uso simplificado:
Determinar o tamanho funcional do sistema de manutenção
Entidades e funções do processo de manutenção de clientes: 
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 o tamanho funcional do sistema de manutenção
Para estimar o tamanho, será feita uma contagem estimativa, segundo o modelo que estudamos nas aulas anteriores - IFPUG.
Vamos usar o processo de contagem, conforme preconiza o manual do IFPUG, para determinar o número de pontos por função de um projeto de software. 
Vamos usar as etapas do processo de contagem da APF, conforme a figura abaixo:
Conclusão
Aula 8: Gestão de Projetos Usando APF
Introdução
A APF tem o seu uso aceito pela maioria das empresas, pois, estabelece um padrão e uniformidade de contagem, quando se usa o manual de contagem. Isso favorece o uso pelas empresas. Além disso, não tem os inconvenientes que as contagens de LOC apresentam. Trabalhar com a funcionalidade, liberta o profissional que faz orçamentos, de aspectos que só serão definidos na fase de desenho do software e esta é uma vantagem importante. Imagine você ter que decidir, usando a contagem de número de linhas de código se ainda nem decidiu que linguagem irá utilizar. Outro aspecto importante é que o de processo de desenvolvimento seja qualquer um. As empresas, hoje, buscam padronizar o seu processo de desenvolvimento ou mais de um, dependendo do tipo de produto que pretendem utilizar. No nível três do CMM, que é uma referência mínima para as empresas que desejam trabalhar com qualidade, o processo é estabelecido e os profissionais treinados no processo.
Custo de um PF para a empresa
Em empreendedorismo, você deve aprender que as empresas têm dois tipos de custo, o fixo e o variado. O custo total da empresa, em um determinado período ou para uma determinada produção, é a soma dos dois custos. Na empresa que trabalha com ponto função, deve-se determinar o valor em termos monetários para o total de PF produzido em um determinado período.
Vamos supor, para efeitos didáticos, que uma empresa entregou no prazo de um mês 180,2 PF.  E essa mesma empresa tem um custo total de R$ 27580,00.
Assim o custo dessa empresa, por ponto função é de:  R$ 27580,00/ 180,2 PF
O Valor, para fins de controle e orçamentos, é de um custo de: 1515,38
O valor calculado acima, pode ter sido determinado, em determinadas condições, com um valor de aluguel, um nível de salário e outros aspectos que podem ser alterados, portanto, deve ser revisto periodicamente como, por exemplo, mensalmente e informado para os gestores.  Nesse mês (ou período), segundo o cálculo acima, o nosso custo será de 1515,38/PF.
Também, se pode determinar o “BREAK EVENT POINT”, ou ponto de equilíbrio, em termos de PF, determinar o número de PF que se deve produzir para a empresa iniciar a dar lucro.  Veja o gráfico abaixo:
Pode-se determinar o número de PF que a empresa deve produzir para iniciar a sua fase de lucro.  
É preciso que se mantenha uma base estatística de projetos realizados e que a tomada de registros para esta base estatística esteja adequada aos processos de desenvolvimento da empresa e a metodologia usada em cada etapa, ou template estabelecido.
Nesse caso, vamos supor que nossa empresa tem registrado por projeto, dividido por caso e uso, as fases e registrando os respectivos custos por etapa podemos identificar % de utilização valor total para cada fase.
Tabela de distribuição dos pontos funções
Depois de um determinado período de observação, pode-se determinar uma tabela de distribuição dos pontos funções como abaixo:
Conclusão
A organização de parâmetros de decisão, ao longo do processo, é fundamental para se gerar um sistema confiável de estimativas e de controle gerencial,para o acompanhamento de projetos, em termos de custo e prazo.
Aula 9: Uso de registros tabulados, interpolação e erro assumido
Introdução - Definir um conjunto de dados que permita se ter gerencia do processo e do produto é importante, mas precisamos aprender a trabalhar com estes dados. Suponha que estamos falando de uma empresa com um tempo de vida curto e que entre outros dados registrou-se os apresentados na tabela abaixo:
Podemos colocar estas informações em um gráfico para determinarmos novos esforços para uma determinada quantidade de PF.
 Assim o gráfico não é continuo e apresenta os seguintes pontos.
Pode-se também tirar da tabela q gráfico que mostra o grau de erro da estimativa em relação ao realizado, em ponto função. Verificou-se uma tendência linear de45 graus o que mostra que a estimativa está muito próxima da realizada, com pequenas diferenças. Os projetos da nossa empresa são relativamente pequenos e estas distorções são absorvidas na margem de segurança que a empresa dá em seus orçamentos.
Estes dados, entretanto, podem nos levar a sérios prejuízos se não forem tratados tecnicamente. 
Os pontos (ou falta deles) podem nos levar a uma serie de suposições. Se assumimos que o comportamento é próximo de linear, devemos saber que esta simplificação poderá nos custar caro, pois dificilmente temos este tipo de comportamento.
Na nossa tabela temos ainda poucos dados para definirmos o grau de incerteza e definir por uma das curvas. 
Quando estimados utilizando estas curvas introduzimos riscos nas nossas estimativas, para valores que ainda não constam na tabela, ou estão fora do intervalo existente até o momento.
Observe que para um número menor de PF usar a tendência linear nos leva a estimar valores de forma mais alta que da forma exponencial, invertendo-se a tendência a partir do momento que os projetos se tornam significativos.
Considere que temos um levantamento de um produto com 230 PFA e devemos usar a tabela para definir o esforço necessário. Se analisarmos a tabela não temos como obter a informação diretamente, pois nenhum projeto até o momento tem 230PFA. Para isto precisamos deduzir um valor a partir dos dados da tabela, chama-se de interpolação.
Matemática - Em matemática denomina-se interpolação o método que permite construir um novo conjunto de dados a partir de um conjunto discreto de dados pontuais previamente conhecidos.
Engenharia - Em engenharia é comum dispor-se de dados pontuais obtidos a partir de uma amostragem ou de um experimento tal conjunto de dados pontuais não possui continuidade, e isto muitas vezes torna demasiado irreal a representação teórica do fenômeno real e observado.
Através da interpolação, pode-se construir uma função que se ajuste nestes dados pontuais, representando a continuidade desejada.
Outra aplicação da interpolação é a aproximação de funções complexas por funções mais simples. Suponha que tenhamos uma função, mas que seja complicada demais para que seja possível avaliá-la de forma eficiente. Podemos, então, escolher alguns dados pontuais da função complicada e tentar interpolá-los com uma função mais simples. Obviamente, quando utilizamos a função mais simples para calcular novos dados, normalmente não se obtém o mesmo resultado da função original, mas dependendo do domínio do problema e do método de interpolação utilizado, o ganho de simplicidade pode compensar o erro.
Funções - O desenho mostra que ao se conhecer poucos pontos temos uma série de funções que podem se ajustar.
O problema da interpolação consiste em substituir funções intricadas por um conjunto de funções mais simples, de tal forma que muitas operações comuns como a diferenciação e a integração, possam ser realizadas mais facilmente. A interpolação consiste basicamente em encontrar uma função que seja a expressão lógica de determinados pontos de uma função desconhecida, ou seja, conhecendo-se (x1 , y1), (x2 , y2).....(xn , yn) de uma função desconhecida poderemos calcular o valor numérico intermediário da função num ponto não tabelado com certo grau de erro.
 
Pontos de amarração - Os pontos de amarração são os pontos em que a função substituta conterá da função tabela, no qual será construída uma função para um respectivo intervalo. Para se fazer escolha de uma infinidade de funções que venham assumir determinados pontos faz-se na verdade a escolha de uma função onde se possa trabalhar com simplicidade, deste modo a função mais simples um polinômio.
Uma vez que entendemos que a partir de uma tabela, em geral, não vamos conseguir obter uma função que modele o fenômeno de maneira exata, mas somente uma de uma forma aproximada, surge outro problema: como escolher o tipo de função que aproxima o fenômeno? Em outras palavras: que tipo de interpolação devemos fazer? Veja que o fato da aproximação ser razoável (boa) ou não para modelar o fenômeno estudado dependerá da resposta a esta pergunta. Por outro lado, a pista para esta resposta deve estar contida na tabela. Os pontos listados na tabela podem mostrar uma tendência que devemos respeitar se desejamos que a função de interpolação represente de forma razoável o fenômeno estudado.
A interpolação consiste basicamente em encontrar uma função que seja a expressão lógica de determinados pontos de uma função desconhecida, ou seja, conhecendo-se (x1 , y1), (x2 , y2).....(xn , yn) de uma função desconhecida poderemos calcular o valor numérico intermediário da função num ponto não tabelado com certo grau de erro.
Assim o erro em um ponto qualquer é o módulo de f(x) – G(x). Existem vários processos matemáticos para tratar a interpolação e o seu erro. De uma maneira simplista podemos definir uma curva, no nosso gráfico, que seja limite para considerarmos o erro. A medida que aumentamos nossa base estatística podemos ir aproximando as duas curvas limites (mínimo e Máximo) pra perto da estimativa diminuindo a faixa de erro.
Conclusão
As interpolações de dados devem ser feitos com muita técnica, ao se estimar uma valor, estamos assumindo um risco. Pode-se aprofundar a teoria matemática. Existe teoria, com métodos bem estabelecidos para se trabalhar com segurança. O nível de erro não deve ser desprezado, pois pode levar a altos prejuízos, quando se tem uma base de dados com pouca informação.
Desafio – Considere que uma empresa deduziu a partir de seus dados a seguinte curva:
Esforço (homem*Hora) = 32,4 * raiz quadrada (PF) + 21,32*PF +1232,00 
Calcule para esta tendência qual o valor d esforço necessário para 144 PF. 
Aula 10: Concorrências públicas e outros aspectos de contratação usando PF
 O trabalho para produzir , atualizar, testar e gerar a documentação pode ser feita na empresa interessada ou contratada de uma outra empresa.  Em qualquer das duas situações o controle da produtividade, prazos e qualidade precisam ser estabelecidos.  Assim, as características de acompanhamento que vamos desenvolver para uma empresa externa, devem ser usada na empresa que não contrata com o mesmo ou um pouco menos de rigor.
O trabalho de software, quando se trata de empresa externa deve levar em consideração o risco que a empresa contratante deseja correr.  Em termos de risco o contratante visa minimizá-lo. Se uma empresa contratante não se importa com o risco como princípio do contrato, pode fazer a contratação por homem hora ou transferir o risco para o fornecedor com outro tipo de contratação. 
No relacionamento são muitos os fatores que introduzem riscos no estabelecimento do relacionamento de contratante e contratado, aliás estes riscos já existem quando se atua com profissionais dentro da própria empresa.
São fatores de risco para a determinação do trabalho os seguintes fatos, entre outros:
Assim as divergências entre fornecedor e cliente tendem a se agravar.  O estabelecimento de um fator de medida comum aceito por fornecedor e cliente já é o início do estabelecimento de uma forma de contratação que minimize estes conflitos.  Neste caso PF é uma medida que vem se tornado padrão de negociação.
1- O trabalho é mal especificado não definindo limites do que precisa ser feito e geralmente o contratante pode pedir outros “quebra galhos” do contratado o que leva ao desentendimento.
2 - A falta de clareza ou entendimento dos requisitos.  Devem-se aplicar metodologias que esclareçam os requisitos (analise, completude e consistência) para se minimizar este aspecto.
3 - As estimativas na contratação são feitas com nível de erro.  Normalmente quem contrata sub dimensiona o trabalho para minimizar o seu custo.
4 - Pressões feitas por usuários internos devido a prazos políticos causando instabilidade nos profissionais da empresa contratada.
5 - Falta de processo de controle nas modificações solicitada.  Uma modificação, na maioria das vezes, implica em aumento do custo e prazo.
Esta modalidade o risco é totalmente transferido para o fornecedor.  O contratante negocia com o contratado um preço e as formas de pagamento.  O contratante estabelece os pontos de avaliação e pagamento do projeto.  Neste caso precisa-se de uma unidade que permita medir o quanto já foi feito do trabalho.  O contratado procura estabelecer controles para evitar os riscos, principalmente os introduzidos por mudança de requisitos.  A mudança de um requisito implica em uma nova negociação.  Muitas vezes se estabelece aditivos contratuais para estas modificações ( ou preços diferenciados).  Assim PF se aplica para medir o tamanho do projeto, e principalmente para acompanhar o projeto e liberar o pagamento por fase do projeto.   É comum trabalhar-se com distribuições percentuais do total de PF estimado para o projeto estabelecidos entre o contratante e contratado para se controlar o projeto (pagamento, avaliação...).
As tabelas abaixo mostram estas formas de distribuição:
Nesse caso, para um projeto de R$ 200 000,00  ao se terminar a análise de requisitos deverá ser pago o valor de  20 %, portanto, R$ 40 000,00.
 Em outra situação que detalha um outro ciclo de vida para um projeto de R$ 100000,00.
Está estipulado que se pagará R$ 10 000,00 no final do levantamento de Dados. Conforme mostrado na tabela abaixo:
 Na aula anterior vimos que podemos estabelecer um valor de custo da empresa por PF.  Mas o preço de venda da empresa poderá ter valores diferenciados dependendo do tipo de profissional envolvido ou mesmo do grau de risco que o fornecedor está assumindo.  A determinação do preço por ponto função é certamente um dos mais importantes aspectos para o fornecedor.  Pode-se criar uma tabela de valores, para fases do ciclo de vida do projeto, estes valores podem facilmente serem obtidos por engenharia reversa.
 Neste modelo o fornecedor paga por elementos do projeto.  Um elemento é uma tela, um relatório, tabela, caso e uso, linhas de código alteradas, store procedure ou um ponto função. 
Este modelo é intermediário entre a contratação por homem hora e o preço fixo. 
Neste modelo a produtividade é um risco do fornecedor, se o contrato é feito por ponto função, o prazo, e o recurso dependem do fornecedor.  Por outro lado, a modificação de requisitos e os pedidos do contratante são transformados em PF, portanto o risco de aumento é do contratante. 
Como a Análise de Ponto Função é um método padrão de contagem, as empresas e profissionais de todo o mundo acompanham a padronização de contagem proposta pelo IFPUG faz com que se estabeleça uma referência para criar uma unidade de contratação - O PF.  Assim busca-se consistência e uniformidade na aplicação deste padrão que tem sido a base de contratação das empresas públicas e privadas.
 A lei 8666 determina que se estabeleça a análise de serviço e se contrate o menor preço.  Neste caso as concorrências de contratação de software tem estabelecido condições de participação baseada em Ponto Função,  Tomamos como exemplo a concorrência do Banco central.
Aconselhamos que leia o edital, onde estabelece-se o total do contrato para os serviços (item 4) conforme você pode ver clicando aqui.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes