GQS 607 Métricas de Softwareheraldo/gqs607_slides.pdf · GQS 607 – Métricas de Software Prof....

378
GQS 607 Métricas de Software Prof. Heraldo L. S. Almeida - 1 - GQS 607 Métricas de Software

Transcript of GQS 607 Métricas de Softwareheraldo/gqs607_slides.pdf · GQS 607 – Métricas de Software Prof....

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 1 -

GQS 607 – Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 2 -

1 – Introdução às Métricas de Software

2 – Medição Funcional por Análise de Pontos de Função

3 – Estudos de Caso (dados em sala de aula)

4 – Tópicos Complementares em APF

Conteúdo Programático

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 3 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 4 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Relatando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 5 -

Os estudo de caso são dados em sala de aula e

trabalhados com os alunos reunidos em grupos.

3. Estudos de Caso

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 6 -

4.1. Implantação Prática do Processo de Métricas

(palestra de convidado externo)

4.2. Medição Funcional Antecipada

4.3. Medição Funcional Ajustada

4. Tópicos Complementares em APF

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 7 -

Análise de Pontos de Função:

Medição, Estimativas e

Gerenciamento de Projetos

de Software

Carlos Eduardo Vazquez,

Guilherme Siqueira Simões e

Renato Machado Albert

9ª edição revisada

Editora Érica

Fontes de Informação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 8 -

Function Point Counting

Practices Manual

The International

Function Point Users Group

Release 4.3.1

www.ifpug.org

Fontes de Informação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 9 -

Módulo 01

Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 10 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 11 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 12 -

Medida, Medição e Métrica (no contexto de Engenharia de Software)

1.1. Medidas, Métricas e Indicadores

Definição Exemplo

Medida Valor quantitativo da extensão,

quantidade, dimensões, capacidade

ou tamanho de algum atributo do

processo ou produto de software

Número de linhas de código de

um módulo de software.

Quantidade de erros detectados

no teste desse módulo.

Medição Ato de determinar uma medida Registrar os erros encontrados

durante o teste.

Métrica Medida quantitativa do grau em que

um sistema, componente ou processo

possui um determinado atributo

(relaciona medidas individuais).

Quantidade média de erros

por linha de código.

mede quantitativamente o grau de

qualidade do módulo de software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 13 -

Indicador

Métrica, ou combinação de métricas, que proporcionam uma

compreensão e uma visão aprofundada

do processo

do projeto

ou do produto de software

Indicadores ajudam a ajustar adequadamente produtos, projetos

e processos, visando melhorar sua qualidade ou desempenho.

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 14 -

Exemplo de Utilização de Indicadores

A métrica “quantidade média de erros por linha de código” do slide anterior

pode ser calculada para diferentes situações

(diferentes equipes, ferramentas, metodologias, etc.).

Isto proporcionará uma compreensão dos efeitos de cada alternativa de ajuste

do processo sobre a qualidade do produto que chega na etapa de teste.

Alguém pode descobrir, por exemplo, que a inclusão de revisões técnicas

formais no processo de desenvolvimento ocasiona uma redução de 40% na

taxa de erros encontrados nos testes.

Nesse caso, alguns exemplos de indicadores que poderiam ser úteis para

avaliar a efetividade da inclusão das revisões técnicas no processo seriam:

a taxa de redução percentual de erros na etapa de teste

a economia média líquida de HH por quantidade de código desenvolvido ( HH economizada nos testes menos HH consumida na revisão )

o retorno do investimento

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 15 -

Definição Exemplo

Medida Valor quantitativo da extensão,

quantidade, dimensões, capacidade

ou tamanho de algum atributo do

processo ou produto de software

Número de linhas de código de

um módulo de software.

Quantidade de erros detectados

no teste desse módulo.

Medição Ato de determinar uma medida Registrar os erros encontrados

durante o teste.

Métrica Medida quantitativa do grau em que

um sistema, componente ou processo

possui um determinado atributo

(relaciona medidas individuais).

Quantidade média de erros

por linha de código.

mede quantitativamente o grau de

qualidade do módulo de software

Indicador Métrica, ou combinação de métricas,

que fornece uma visão aprofundada

de um processo, projeto ou produto.

Taxa de redução de erros após a

implantação de revisões

técnicas formais no processo de

desenvolvimento de software.

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 16 -

Indicadores

Portanto, indicadores são instrumentos valiosos para orientar ações

no sentido de melhorar um produto, um projeto ou um processo.

Processo de Medição

Um engenheiro de software coleta medidas e calcula métricas e,

em seguida, avalia essas métricas, visando obter indicadores

que atendam o objetivo de melhorar a qualidade/desempenho do

produto, projeto ou processo.

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 17 -

processo

projeto

produto

Coleta de dados

Cálculo de métricas

Avaliação de métricas

medidas

métricas

indicadores

As Atividades de Medição

Estas atividades devem ser incluídas no Plano de Projeto !

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 18 -

“ If you can not measure it,

you can not improve it ! ”

“ When you cannot express it in numbers,

your knowledge is of a meagre and

unsatisfactory kind.”

Lord Kelvin

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Como definir métricas: o método GQM

A idéia básica de GQM é derivar métricas de software a partir de

perguntas e objetivos.

Goal

Quais são as metas/objetivos?

Question

Quais questões se deseja responder?

Metric

Quais métricas poderão ajudar?

- 19 -

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Como definir métricas: o método GQM

Etapas do Processo

1. Listar os principais objetivos do processo de medição;

2. Derivar de cada objetivo as perguntas que devem ser respondidas

para determinar se os objetivos foram atingidos;

3. Decidir o que precisa ser medido para ser capaz de responder as

perguntas adequadamente (definição das métricas).

- 20 -

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Como definir métricas: o método GQM

- 21 -

1.1. Medidas, Métricas e Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Como definir métricas: o método GQM

- 22 -

1.1. Medidas, Métricas e Indicadores

Decidir quando o software estará pronto para a implantação

Qual é o requisito de estabilidade?

Qual é a atual confiabilidade?

Quais são as métricas temporais?

Tamanho decódigo

Defeitosdescobertos

Casos detestes

Horas deutilização

Horasde teste

Pessoas disponíveis pordia para testes

Decidir quando o software estará pronto para a implantação

Qual é o requisito de estabilidade?

Qual é a atual confiabilidade?

Quais são as métricas temporais?

Tamanho decódigo

Defeitosdescobertos

Casos detestes

Horas deutilização

Horasde teste

Pessoas disponíveis pordia para testes

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 23 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 24 -

Razões para medir

Caracterizar

Avaliar

Prever

Aperfeiçoar

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 25 -

Razões para medir

Caracterizar

para ter entendimento dos processos, produtos e recursos.

para estabelecer marcos referenciais, visando comparação futura.

para prever ou aperfeiçoar.

Avaliar

Prever

Aperfeiçoar

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 26 -

Razões para medir

Caracterizar

Avaliar

para determinar o status em relação ao planejado.

para saber o quanto os projetos e processos estão fora de controle.

para verificar o modo de trazer os projetos de volta ao controle.

para verificar o cumprimento de metas de qualidade.

para verificar o impacto de novas tecnologias e/ou processos.

Prever

Aperfeiçoar

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 27 -

Razões para medir

Caracterizar

Avaliar

Prever

para poder planejar o futuro.

para poder extrapolar tendências, analisar riscos e assumir

compromissos.

para poder estabelecer metas viáveis de custo, cronograma e

qualidade.

envolve entender o processo/produto e construir modelos onde as

estimativas de custos, prazos e qualidade possam ser atualizadas.

Aperfeiçoar

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 28 -

Razões para medir

Caracterizar

Avaliar

Prever

Aperfeiçoar

melhorar a qualidade do produto, ou o desempenho do processo.

identificar bloqueios, causas fundamentais, ineficiências e outras

oportunidades de melhorar a qualidade/desempenho do

produto/processo.

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 29 -

Riscos da Ausência de Métricas: A Curva do Pânico !

1.2. Por que medir ?

Tempo

Pro

du

çã

o

Total a Entregar

Prazo

Zona

do

Pânico

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 30 -

O castigo por

não usar métricas:

A Dinâmica

do Pânico !

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 31 -

Os Sucessivos Adiamentos da Entrega do Projeto !

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 32 -

Com o uso de métricas o pânico pode ser evitado !

O problema é detectado

logo no início do projeto,

possibilitando ações

gerenciais corretivas.

1.2. Por que medir ?

Tempo

Pro

du

çã

o

Total a Entregar

Prazo

Zona

do

Pânico

Indicador de

Produtividade

ALERTA:

Produtividade

muito baixa !

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 33 -

Com o uso de métricas o pânico pode ser evitado !

1.2. Por que medir ?

Ação

Gerencial

Ação

Gerencial

Base de

Projetos

Prazos

Previstos

Tempo (meses)

Produção Prevista

Progresso

Pro

du

çã

o Q

ua

ntif

ica

da

#1#2

#3

#4

#5

Indicadores

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 34 -

Métricas e o Gerenciamento de Escopo

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 35 -

O Problema do Scope Creep (rastejamento do escopo)

1.2. Por que medir ?

[1.200 PF]Especificação Inicial

de Requisitos

[1.500 PF]Projeto deAlto Nível

[1.700 PF]Projeto

Detalhado

Estimativa Dimensionamento

[1.900 PF]ProdutoEntregue

Horas, Reais, Pontos de Função, etc.

Estimativa Incial...: 1.200 PFProduto Entregue.: 1.900 PFCrescimento.........: 53%

( 1.900 – 1.200 ) * 1001.200

Projeto A Equipe 1

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 36 -

O Problema do Scope Creep (rastejamento do escopo)

1.2. Por que medir ?

[1.200 PF]Especificação Inicial

de Requisitos

[1.500 PF]Projeto deAlto Nível

[1.700 PF]Projeto

Detalhado

Estimativa Dimensionamento

[1.900 PF]ProdutoEntregue

Horas, Reais, Pontos de Função, etc.

Estimativa Incial...: 1.200 PFProduto Entregue.: 1.900 PFCrescimento.........: 53%

( 1.900 – 1.200 ) * 1001.200

Projeto A Equipe 1

Prezado cliente, sinto informar que, em virtude do crescimento de 53% no

escopo do projeto devido às funcionalidades adicionais solicitadas por V. Sa.,

estamos enviando a fatura correspondente a essa diferença.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 37 -

O Problema do Scope Creep

Mas quem disse que o escopo mudou ???

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 38 -

O Problema do Scope Creep

Para argumentar com o cliente baseado em métricas, é

necessário estabelecer em comum acordo com o cliente as

métricas e os processos de medição a serem usados no projeto.

Para o devido gerenciamento de escopo, é importante que

cliente e fornecedor utilizem uma métrica comum para medição

dos produtos entregues.

1.2. Por que medir ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 39 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 40 -

1.3. Practical Software Measurement (PSM)

PSM Detailed Integrated Analysis Model

Modelo utilizado pelo Departamento

de Defesa dos EUA.

Ilustra a interação entre diferentes

fatores em um projeto de

desenvolvimento, identificando

pontos onde a medição pode ser

relevante.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 41 -

1.3. Practical Software Measurement (PSM)

1

Functional size represents the amount of

functionality the project is expected to

provide.

This is usually determined by requirements,

change requests or function points.

Functional size is a primary determinant of

physical size (the amount of product that

must be developed or maintained).

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 42 -

1.3. Practical Software Measurement (PSM)

2

Most innovative technical approaches

attempt to minimize the quantity of new

product that must be implemented for a

given function.

Examples of technical approaches include

using purchased software, common

architectures and reusable components.

If the effectiveness of the approach does not

yield all of the desired benefit, more of the

system must be developed than planned.

For example, if a purchased system does

not satisfy all of the required functionality as

originally intended, custom code may have

to be developed.

The volatility of any new technology also

influences product size.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 43 -

1.3. Practical Software Measurement (PSM)

3

Increases in product size, and overall size

instability, usually result in the need for

additional personnel.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 44 -

1.3. Practical Software Measurement (PSM)

4

Process performance (the maturity or

capability of a developer’s process)

contributes to the need for personnel

resources and influences development

schedules and product quality.

A development team with a more mature

and capable process performs better than a

team with an ad-hoc or ill-defined one,

assuming other factors are constant.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 45 -

1.3. Practical Software Measurement (PSM)

5

Adding more personnel impacts schedule

and progress.

If personnel are added early inthe project

and if the appropriate training and

communications are in place, the schedule

may be shortened.

If personnel are added later, the schedule

may actually be lengthened because of the

disruptions caused by adding new

personnel not familiar with the project

environment, processes and/or domain.

Schedule shortfalls are associated with

milestone slips and delays in completing

planned life-cycle activities and products,

and often necessitate reductions in build

and release requirements.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 46 -

1.3. Practical Software Measurement (PSM)

6

Schedule shortfalls can cause product

quality problems, including defects in the

product, maintainability issues, and

performance issues.

This happens when test efforts are curtailed

in order to meet tight schedules.

Problems left open and not corrected during

reviews and testing are also a cause of

quality problems.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 47 -

1.3. Practical Software Measurement (PSM)

7

Latent quality problems represent the

rework that requires additional resources to

make current or future releases acceptable

to the user.

The project manager will usually make a

delivery decision based on the number of

open problems, fixing some high-priority

problems and deferring others to the

operations and maintenance phase.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 48 -

1.3. Practical Software Measurement (PSM)

8

Quality problems also worsen product

stability and impact cost.

Managers may be forced to modify or

eliminate some mission requirements to stay

within cost and schedule constraints.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 49 -

1.3. Practical Software Measurement (PSM)

9

For software projects, personnel effort,

including rework, is the primary determinant

of project cost.

Cost control can be achieved only by

controlling other upstream factors.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 50 -

1.3. Practical Software Measurement (PSM)

10

Problems with resource and schedule

overruns, as well as problems with product

quality, all impact customer satisfaction.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 51 -

Benefícios do Uso de Métricas de Software

(Moller & Paulisch, 1993)

maior entendimento dos efeitos de diferentes ações implementadas na

tentativa de melhorar o processo de desenvolvimento

avaliação mais objetiva dos benefícios gerados por mudanças de

técnicas, métodologias ou ferramentas de desenvolvimento

maior capacidade de controlar e de aprimorar o processo

estimativas mais precisas para custos e cronogramas

estimativas mais precisas do efeito de mudanças no custo e no

cronograma

maior produtividade e eficiência

menor custo de desenvolvimento

menor tempo de ciclo de projeto

maior satisfação e confiança do cliente (produto de maior qualidade)

1.3. Practical Software Measurement (PSM)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 52 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 53 -

Medições podem ser aplicadas

ao processo de desenvolvimento de software

a projetos de desenvolvimento de software

a produtos de software

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 54 -

Métricas de Processo

São usadas com finalidade estratégica, ou seja, visam benefícios para

projetos futuros, e não para o projeto que está sendo medido.

Têm como objetivo melhorar o processo de forma contínua.

Medem características do processo de desenvolvimento como um todo.

Exemplo:

número de defeitos encontrados ao longo do processo,

para diferentes metodologias de teste e de revisão.

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 55 -

Métricas de Projeto

São usadas com finalidade tática, ou seja, para adaptar o fluxo de

trabalho e atividades técnicas de forma imediata, em benefício do

próprio projeto que está sendo medido.

Têm essencialmente dois objetivos:

minimizar o cronograma

monitorar a qualidade do produto

Seu primeiro emprego ocorre nas estimativas preliminares.

À medida em que o projeto evolui, os resultados são confrontados

para monitorar e controlar o progresso.

Exemplos:

taxa de produção

horas de revisão

tamanho (físico ou funcional) dos artefatos produzidos.

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 56 -

Métricas de Produto

São aplicadas ao produto final ou intermediário de uma atividade de

desenvolvimento de software.

Podem ter vários objetivos:

normalizar medidas de qualidade e produtividade

controlar escopo de projeto (monitorar tamanho dos produtos entregues)

estimar custos e prazos de desenvolvimento

estimar custos de suporte e manutenção

auxiliar a gestão de contratos de desenvolvimento ou manutenção

dar subsídios a análises do tipo “make-or-buy”

Podem ser de dois tipos:

orientadas a tamanho

orientadas a funcão

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 57 -

Métricas Orientadas a Tamanho

São medidas de qualidade e produtividade que levam em

consideração o tamanho físico do software que foi produzido.

O tamanho geralmente é medido em

linhas de código (LOC)

quantidade de operações

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 58 -

Métricas Orientadas a Tamanho

Exemplos: Erros por KLOC

Defeitos por KLOC

Custo por KLOC

LOC por Pessoa-Mês, etc.

Não são universalmente aceitas como melhor modo de medir

Argumentos favoráveis:

Facilmente contado

Existem muitos modelos baseados em LOC

Existe muita literatura e dados baseados emLOC

Argumentos contrários:

São dependentes da linguagem de programação

Penalizam programas curtos e eficientes

Estimativas iniciais são difíceis de serem alcançadas

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 59 -

Métricas Orientadas a Função (Métricas Funcionais)

Fornecem uma medida da funcionalidade fornecida pela aplicação como valor

de normalização.

A “funcionalidade” é medida indiretamente, a partir de outras medidas diretas.

O valor resultante é denominado tamanho funcional do sistema.

Objetivos

Medir funcionalidade solicitada, reconhecível e recebida pelo usuário.

Medir de forma independente da tecnologia utilizada,

dentro de uma ótica de negócio e não-técnica

Características desejáveis

Deve ser simples para viabilizar o esforço de medição.

Deve ser consistente entre diferentes projetos e organizações e tecnologias.

1.4. Métricas de Processo, Projeto e Produto

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 60 -

1.1. Medidas, Métricas e Indicadores

1.2. Por que medir ?

1.3. Practical Software Measurement (PSM)

1.4. Métricas para Processos, Projetos e Produtos

1.5. Medição de Tamanho Funcional

1. Introdução às Métricas de Software

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 61 -

Métricas Funcionais

As principais métricas funcionais utilizadas no mercado são:

Pontos de Função

disponível em 4 variantes aderentes ao padrão ISO/IEC 14143,

que normatiza os métodos de medição de tamanho funcional:

IFPUG (ISO/IEC 20926)

COSMIC-FFP (ISO/IEC 19761)

NESMA (ISO/IEC 24570)

MARK II (ISO/IEC 20968)

Pontos de Caso de Uso (não aderente ao padrão ISO)

1.5. Medição de Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 62 -

Quadro Comparativo Pontos de Função x Pontos de Caso de Uso

Pontos de Função Pontos de Caso de Uso

Mais antiga e mais utilizada no mundo Relativamente nova e pouco utilizada

Padrão internacional desde 2002 Ainda não alcançou o nível de padronização e

nem foi incorporada em ferramentas populares

Não requer o uso de notação padrão Baseada no modelo de casos de uso

Largamente discutida na literatura Tem aumentado o uso e a publicação de

estudos na literatura

É suportada pelo IFPUG e diversos grupos

nacionais de usuários e bases históricas de

medidas realizadas

Ainda não possui bons históricos de

produtividade

Possui regras de contagem padronizadas Há dúvidas de qual o nível apropriado de

detalhe que cada caso de uso deve possuir

Alto nível de maturidade Em fase de amadurecimento

Oferece treinamento e certificação Ainda não oferece treinamentos e certificação

1.5. Medição de Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 63 -

Métodos de Medição Funcional ISO-aderentes

Dentre os métodos aderentes ao padrão ISO/IEC 14143

IFPUG (ISO/IEC 20926)

COSMIC-FFP (ISO/IEC 19761)

NESMA (ISO/IEC 24570)

MARK II (ISO/IEC 20968)

o mais utilizado no Brasil e no mundo e que conta com o

mais extenso repositório de projetos medidos é o método

do IFPUG (International Function Points Users Group).

1.5. Medição de Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 64 -

O Método IFPUG de Medição de Tamanho Funcional

É definido pela norma ISO/IEC 20926:2009 .

É descrito no IFPUG Function Points Counting Practices Manual,

cuja última versão é a 4.3.1, de 17-01-2010.

1.5. Medição de Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 65 -

Benefícios da Análise de Pontos de Função (APF)

Contagem de funções incluídas em um pacote adquirido.

Avaliação do custo de desenvolvimento ou aquisição (make-or-buy).

Análise de produtividade e qualidade.

Gerenciamento de escopo e de requisitos

Estimativa de custo e recursos.

Negociação de contratos.

Normalização para comparação de software.

1.5. Medição de Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 66 -

Algumas empresas que utilizam APF no Brasil

1.5. Medição de Tamanho Funcional

IBM

UNISYS

EDS

ACCENTURE

XEROX

ATOS ORIGIN

TCS

CPMBRAXIS

STEFANINI

POLITEC

DBA

CTIS

POLIEDRO

RESOURCE

BRQ

PETROBRÁS

BANCO CENTRAL

BANCO DO BRASIL

SERPRO

BNDES

CAIXA

OI

BRASILTELECOM

REDECARD

DATASUL

CAST

PROCOMP

MONTREAL

GOLDEN CROSS

VALE

CITIBANK

ATECH

ITAIPU

CORREIOS

BRADESCO

PRODEMGE

PRODAM

PRODESP

ANATEL

ANTT

ANAC

ANVISA

ANCINE

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 67 -

Quem usa APF em CONTRATOS :

1.5. Medição de Tamanho Funcional

BNDES

CEF

SERPRO

PM-SP

DATAPREV

CORREIOS

BRADESCO

ABN/REAL

EXÉRCITO

PETROBRÁS

EMBRATEL

PRODEB

EDS

POLITEC

DBA

CPM

STEFANINI

DATASUS

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 68 -

Módulo 02

Medição de Tamanho Funcional por Análise de Pontos de Função

( IFPUG CPM 4.3 – ISO/IEC 20926:2009 )

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 69 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 70 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 71 -

• Usuário

• Fronteira

• Requisitos Funcionais de Usuário

• Processo Elementar

• Componente Funcional Básico

• Função de Dados

• Arquivo Lógico Interno (ALI)

• Arquivo de Interface Externa (AIE)

• Função de Transação

2.1. Conceitos e Definições

• Entrada Externa (EE)

• Consulta Externa (CE)

• Saída Externa (SE)

• Modelo Conceitual para APF

• Complexidade Funcional

• Dado Elementar Referenciado (DER)

• Registro Lógico Referenciado (RLR)

• Arquivo Lógico Referenciado (ALR)

• Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 72 -

Usuário

Qualquer pessoa ou coisa que se comunique ou interaja com o

software em qualquer momento.

Exemplos de “coisa” incluem (mas não estão limitados a):

outro software

animais

sensores

qualquer tipo de hardware

[ISO/IEC 14143-1:2007, definition 3.11]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 73 -

Fronteira

Interface conceitual entre o software que está sendo medido e seus

usuários.

[ISO/IEC 14143-1:2007, definition 3.9]

Atua como uma ‘membrana’, através da qual os dados processados

pelas transações passam para dentro e para fora da aplicação que

está sendo medida.

Depende da visão externa do negócio do usuário da aplicação.

É independente de considerações técnicas ou de implementação.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 74 -

Fronteira

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 75 -

Requisitos Funcionais de Usuário

Subconjunto dos requisitos de usuário que descrevem o que o software

deverá fazer, em termos de tarefas e serviços.

Exemplos:

transferência de dados inserir dados do cliente, enviar sinal de controle, etc.

transformação de dados calcular juros bancários, obter temperatura média, etc.

armazenamento de dados armazenar pedido de cliente, gravar curva de temperatura, etc.

recuperação de dados listar funcionários, exibir posição da aeronave, etc.

[ISO/IEC 14143-1:2007, definition 3.8]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 76 -

Requisitos Funcionais de Usuário

Contra-exemplos (não são requisitos funcionais de usuário):

requisitos de qualidade usabilidade, confiabilidade, eficiência e portabilidade, etc.

requisitos organizacionais local de operação, plataforma de hardware, aderência a padrões, etc.

requisitos ambientais interoperabilidade, controle de acesso, privacidade, segurança, etc.

requisitos de implementação linguagem de programação, cronograma de entrega, etc.

[ISO/IEC 14143-1:2007, definition 3.8]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 77 -

Processo Elementar (PE)

Menor unidade de atividade que é significativa para o usuário.

[ISO/IEC 20926-1:2009, definition 3.21]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 78 -

Processo Elementar (PE)

Menor unidade de atividade que é significativa para o usuário.

[ISO/IEC 20926-1:2009, definition 3.21]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 79 -

Processo Elementar (PE)

Menor unidade de atividade que é significativa para o usuário.

[ISO/IEC 20926-1:2009, definition 3.21]

significativa para o usuário

reconhecível pelo usuário e que satisfaz um

requisito funcional de usuário.

[ISO/IEC 20926-1:2009, definition 3.41]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 80 -

Processo Elementar (PE)

Menor unidade de atividade que é significativa para o usuário.

[ISO/IEC 20926-1:2009, definition 3.21]

significativa para o usuário

reconhecível pelo usuário e que satisfaz um

requisito funcional de usuário.

[ISO/IEC 20926-1:2009, definition 3.41]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 81 -

Processo Elementar (PE)

Menor unidade de atividade que é significativa para o usuário.

[ISO/IEC 20926-1:2009, definition 3.21]

significativa para o usuário

reconhecível pelo usuário e que satisfaz um

requisito funcional de usuário.

[ISO/IEC 20926-1:2009, definition 3.41]

reconhecível pelo usuário

requisitos para processos e/ou dados entendidos e estabelecidos

em comum acordo pelo usuário e pelo desenvolvedor do software.

[ISO/IEC 14143-1:2007, definition 3.51]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 82 -

Componente Funcional Básico

Unidade elementar dos requisitos funcionais de usuário definidos e

utilizados por um método de medição de tamanho funcional para

propósitos de medição.

Exemplos:

o requisito funcional de usuário “manter cadastro de clientes” pode ser

constituído dos seguintes componentes funcionais básicos:

adicionar um novo cliente

relatar compras de cliente

atualizar informações de cliente

informações de cliente

[ISO/IEC 14143-1:2007, definition 3.1]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Componente Funcional Básico

No método de medição do IFPUG (CPM 4.3), os componentes

funcionais básicos podem ser:

funções de dados

funções de transação

No exemplo anterior:

adicionar um novo cliente

relatar compras de cliente

atualizar informações de cliente

informações de cliente

- 83 -

2.1. Conceitos e Definições

funções de transação

função de dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Componente Funcional Básico (CFB)

No método de medição do IFPUG (CPM 4.3), existem 5 (cinco)

tipos de componentes funcionais básicos, sendo 2 (dois) deles são

funções de dados e os outros 3 (três) são funções de transação:

Arquivo Lógico Interno (ALI)

Arquivo de Interface Externa (AIE)

Entrada Externa (EE)

Saída Externa (SE)

Consulta Externa (CE)

- 84 -

2.1. Conceitos e Definições

funções de transação

funções de dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 85 -

Função de Dados

Funcionalidade fornecida ao usuário para atender requisitos de

armazenamento externo e interno de dados.

Existem dois tipos de função de dados:

Arquivo Lógico Interno (ALI)

Arquivo de Interface Externa (AIE)

[ISO/IEC 20926-1:2009, definition 3.16]

São também denominadas arquivos lógicos.

O termo “arquivo” aqui não significa tabela ou arquivo físico,

mas sim um grupo de dados logicamente relacionados,

não importando sua implementação física.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 86 -

Arquivo Lógico Interno (ALI)

Grupo de dados ou informações de controle logicamente

relacionados, reconhecível pelo usuário e mantido dentro

da fronteira da aplicação que está sendo medida.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.39]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 87 -

Arquivo Lógico Interno (ALI)

Grupo de dados ou informações de controle logicamente

relacionados, reconhecível pelo usuário e mantido dentro

da fronteira da aplicação que está sendo medida.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.39]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 88 -

Arquivo Lógico Interno (ALI)

Grupo de dados ou informações de controle logicamente

relacionados, reconhecível pelo usuário e mantido dentro

da fronteira da aplicação que está sendo medida.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.39]

informações de controle

dados que influenciam um processo elementar especificando

quando, como e quais dados devem ser processados.

[ISO/IEC 20926-1:2009, definition 3.11]

manter

ter capacidade para adicionar, modificar ou excluir dados por

meio de processos elementares.

[ISO/IEC 20926-1:2009, definition 3.40]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 89 -

Arquivo de Interface Externa (AIE)

Grupo de dados ou informações de controle logicamente

relacionados que é referenciado pela aplicação que está

sendo medida, mas que é mantido dentro da fronteira de

outra aplicação.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.39]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 90 -

Função de Transação

Processo elementar que fornece ao usuário funcionalidade para

processar dados.

Existem três tipos de função de transação:

▪ Entrada Externa (EE)

▪ Consulta Externa (CE)

▪ Saída Externa (SE)

[ISO/IEC 20926-1:2009, definition 3.49]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 91 -

Entrada Externa (EE)

Processo elementar que processa dados ou informações de controle

recebidos de fora da fronteira.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.27]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 92 -

Consulta Externa (CE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.28]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 93 -

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.30]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 94 -

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.30]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 95 -

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

É um dos cinco tipos de componente funcional básico.

[ISO/IEC 20926-1:2009, definition 3.30]

lógica de processamento

qualquer requisito especificamente solicitado pelo usuário para

completar um processo elementar, tal como validações, algoritmos ou

cálculos e leitura ou manutenção de uma função de dados.

[ISO/IEC 20926-1:2009, definition 3.44]

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 96 -

Árvore de Classificação dos Componentes Funcionais

2.1. Conceitos e Definições

Componente

Funcional

Básico

Função de

Transação

Função de

Dados

Arquivo Lógico Interno (ALI)

Arquivo de Interface Externa (AIE)

Entrada Externa (EE)

Consulta Externa (CE)

Saída Externa (SE)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 97 -

Árvore de Classificação dos Componentes Funcionais

2.1. Conceitos e Definições

Componente

Funcional

Básico

Função de

Transação

Função de

Dados

Arquivo Lógico Interno (ALI)

Arquivo de Interface Externa (AIE)

Entrada Externa (EE)

Consulta Externa (CE)

Saída Externa (SE) ( processo elementar )

( arquivo lógico )

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 98 -

Funções de Dados

Arquivo Lógico Interno (ALI)

Grupo de dados ou informações de controle logicamente relacionados,

reconhecível pelo usuário e mantido pela aplicação medida.

Arquivo de Interface Externa (AIE)

Grupo de dados ou informações de controle logicamente relacionados,

reconhecível pelo usuário e referenciado pela aplicação medida,

mas mantido por outra aplicação.

É um ALI de outra aplicação referenciado pela aplicação medida !

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 99 -

Intenção Principal das Funções de Dados

Arquivo Lógico Interno (ALI)

Armazenar dados mantidos por meio de um ou mais processos

elementares dentro da fronteira da aplicação medida.

Arquivo de Interface Externa (AIE)

Armazenar dados referenciados por meio de um ou mais processos

elementares dentro da fronteira da aplicação medida.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 100 -

Funções de Transação

Entrada Externa (EE)

Processo elementar que processa dados ou informações de controle

recebidos de fora da fronteira.

Consulta Externa (CE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira.

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 101 -

Intenção Principal das Funções de Transação

Entrada Externa (EE)

Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.

Consulta Externa (CE)

Apresentar informação a um usuário por meio da recuperação de

dados ou informações de controle.

Saída Externa (SE)

Apresentar a informação a um usuário por meio de lógica de

processamento diferente ou adicional à simples recuperação

direta de dados ou informações de controle.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 102 -

Consulta Externa (CE) x Saída Externa (SE)

Consulta Externa (CE)

Não faz nenhuma das coisas abaixo: não efetua cálculos matemáticos

não mantém nenhum ALI

não altera o comportamento do sistema.

não produz dados derivados

Saída Externa (SE)

Faz pelo menos uma das coisas abaixo: efetua cálculo matemático

mantém um ou mais ALI’s

altera o comportamento do sistema.

produz dados derivados

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 103 -

Consulta Externa (CE) x Saída Externa (SE)

Consulta Externa (CE)

Não faz nenhuma das coisas abaixo: não efetua cálculos matemáticos

não mantém nenhum ALI

não altera o comportamento do sistema

não produz dados derivados

Saída Externa (SE)

Faz pelo menos uma das coisas abaixo: efetua cálculo matemático

mantém um ou mais ALI’s

altera o comportamento do sistema

produz dados derivados

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 104 -

Consulta Externa (CE) x Saída Externa (SE)

Consulta Externa (CE)

Não faz nenhuma das coisas abaixo: não efetua cálculos matemáticos

não mantém nenhum ALI

não altera o comportamento do sistema.

não produz dados derivados

Saída Externa (SE)

Faz pelo menos uma das coisas abaixo: efetua cálculo matemático

mantém um ou mais ALI’s

altera o comportamento do sistema.

produz dados derivados

2.1. Conceitos e Definições

dado derivado

Dado resultante de um

processamento que envolve

passos diferentes ou adicionais

à simples recuperação e

validação da informação obtida

das funções de dados.

ISO/IEC 20926-1:2009, definition 3.17

Exemplo: criar uma abreviatura

com base nas iniciais de um nome.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 105 -

Modelo Conceitual para Análise de Pontos de Função

2.1. Conceitos e Definições

Fatto Sistemas __________________

Sumário Executivo de Projeto

Projeto : BR01020 Cliente : Banco Istabel Base : 31/05/1998

Custos x Faturado

......................

......................

......................

......................

......................

......................

......................

software medido

ALI

fronteira

EE

CE

SE

usuário

humano

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 106 -

Modelo Conceitual para Análise de Pontos de Função

2.1. Conceitos e Definições

Fatto Sistemas __________________

Sumário Executivo de Projeto

Projeto : BR01020 Cliente : Banco Istabel Base : 31/05/1998

Custos x Faturado

......................

......................

......................

......................

......................

......................

......................

software medido outro

software

AIE ALI

EE

fronteiras

CE

SE

EE

CE

SE

usuário

humano

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 107 -

Modelo Conceitual para Análise de Pontos de Função

2.1. Conceitos e Definições

Fatto Sistemas __________________

Sumário Executivo de Projeto

Projeto : BR01020 Cliente : Banco Istabel Base : 31/05/1998

Custos x Faturado

......................

......................

......................

......................

......................

......................

......................

software medido outro

software

AIE ALI

EE

fronteiras

CE

SE

EE

CE

SE

SE

hardware externo ( sensores, equipamentos controlados, etc.)

usuário

humano EE

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 108 -

Modelo Conceitual para Análise de Pontos de Função

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 109 -

Modelo Conceitual para Análise de Pontos de Função

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 110 -

Complexidade Funcional

Nível específico de complexidade atribuído a um componente

funcional de acordo com as regras estabelecidas na Norma

ISO/IEC 20926.

[ISO/IEC 20926-1:2009, definition 3.32]

Podem ser atribuídos somente 3 valores: baixa, média ou alta.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 111 -

Complexidade dos Componentes Funcionais

Funções de Dados

Depende dos seguintes parâmetros:

quantidade de Dados Elementares Referenciados (DER)

quantidade de Registros Lógicos Referenciados (RLR)

Funções de Transação

Depende dos seguintes parâmetros:

quantidade de Dados Elementares Referenciados (DER)

quantidade de Arquivos Lógicos Referenciados (ALR)

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 112 -

Complexidade dos Componentes Funcionais

Funções de Dados

Depende dos seguintes parâmetros:

quantidade de Dados Elementares Referenciados (DER)

quantidade de Registros Lógicos Referenciados (RLR)

Funções de Transação

Depende dos seguintes parâmetros:

quantidade de Dados Elementares Referenciados (DER)

quantidade de Arquivos Lógicos Referenciados (ALR)

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 113 -

Complexidade dos Componentes Funcionais

Funções de Dados

Depende dos seguintes parâmetros:

quantidade de Dados Elementares Referenciados (DER)

quantidade de Registros Lógicos Referenciados (RLR)

Funções de Transação

Depende dos seguintes parâmetros:

quantidade de Dados Elementares Referenciados (DER)

quantidade de Arquivos Lógicos Referenciados (ALR)

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 114 -

Dado Elementar Referenciado (DER)

Atributo único, reconhecido pelo usuário e não repetido.

[ISO/IEC 20926-1:2009, definition 3.15]

Exemplos

Três campos físicos usados para armazenar dia, mês e ano referentes a uma

data de vencimento (visão do usuário) constituem 1 único DER.

Um campo utilizado para armazenar uma informação técnica desconhecida

pelo usuário (exemplo: um código interno de transação) não é um DER.

Um conjunto de 12 campos usados para armazenar uma mesma informação

referente a cada mês do ano constitui apenas 2 DER’s (mês e valor).

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 115 -

Registro Lógico Referenciado (RLR)

Subgrupo de Dados Elementares Referenciados (DER’s)

reconhecíveis pelo usuário dentro de uma função de dados.

[ISO/IEC 20926-1:2009, definition 3.46]

Exemplo

Em uma aplicação de RH são cadastradas informações de funcionários

horistas e mensalistas, juntamente com informações de seus dependentes.

Existem atributos genéricos comuns a ambos os tipos de funcionários,

atributos específicos de horistas e atributos específicos de mensalistas.

Neste caso, o ALI “funcionário” possuirá 3 RLR’s:

Registro de Horista = atributos genéricos + específicos de horista

Registro de Mensalista = atributos genéricos + específicos de mensalista

Registro de Dependente = atributos de dependente (relação 1:n)

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 116 -

Arquivo Lógico Referenciado (ALR)

Função de dados lida e/ou mantida por uma função de transação.

[ISO/IEC 20926-1:2009, definition 3.31]

Um ALR é :

um ALI lido e/ou mantido durante o processamento da função de transação

ou

um AIE lido durante o processamento da função de transação.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 117 -

Complexidade das Funções de Dados

2.1. Conceitos e Definições

ALI e AIE Quantidade de DER’s

1 a 19 20 a 50 51 ou mais

1 baixa baixa média

2 a 5 baixa média alta

6 ou mais média alta alta Qtd

e.

RL

R’s

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 118 -

Complexidade das Funções de Transação

2.1. Conceitos e Definições

EE Quantidade de DER’s

1 a 4 5 a 15 16 ou mais

0 a 1 baixa baixa média

2 baixa média alta

3 ou mais média alta alta Qtd

e. A

LR

’s

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 119 -

Complexidade das Funções de Transação

2.1. Conceitos e Definições

CE Quantidade de DER’s

1 a 5 6 a 19 20 ou mais

1 baixa baixa média

2 a 3 baixa média alta

4 ou mais média alta alta Qtd

e. A

LR

’s

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 120 -

Complexidade das Funções de Transação

2.1. Conceitos e Definições

SE Quantidade de DER’s

1 a 5 6 a 19 20 ou mais

0 a 1 baixa baixa média

2 a 3 baixa média alta

4 ou mais média alta alta Qtd

e. A

LR

’s

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 121 -

Importante

EE’s e SE’s podem não ter nenhum ALR !

Já uma CE tem que ter no mínimo 1 ALR !

Observe a intenção principal de cada tipo de transação:

2.1. Conceitos e Definições

Entrada Externa (EE)

Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.

Consulta Externa (CE)

Apresentar informação a um usuário por meio da

recuperação de dados ou informações de controle.

Saída Externa (SE)

Apresentar a informação a um usuário por meio de lógica de

processamento diferente ou adicional à simples recuperação

direta de dados ou informações de controle.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 122 -

Importante

EE’s e SE’s podem não ter nenhum ALR !

Já uma CE tem que ter no mínimo 1 ALR !

Observe a intenção principal de cada tipo de transação:

2.1. Conceitos e Definições

Entrada Externa (EE)

Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.

Consulta Externa (CE)

Apresentar informação a um usuário por meio da

recuperação de dados ou informações de controle.

Saída Externa (SE)

Apresentar a informação a um usuário por meio de lógica de

processamento diferente ou adicional à simples recuperação

direta de dados ou informações de controle.

pode não ter nenhum ALR !

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 123 -

Importante

EE’s e SE’s podem não ter nenhum ALR !

Já uma CE tem que ter no mínimo 1 ALR !

Observe a intenção principal de cada tipo de transação:

2.1. Conceitos e Definições

Entrada Externa (EE)

Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.

Consulta Externa (CE)

Apresentar informação a um usuário por meio da

recuperação de dados ou informações de controle.

Saída Externa (SE)

Apresentar a informação a um usuário por meio de lógica de

processamento diferente ou adicional à simples recuperação

direta de dados ou informações de controle.

tem que ter pelo menos 1 ALR !

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 124 -

Importante

EE’s e SE’s podem não ter nenhum ALR !

Já uma CE tem que ter no mínimo 1 ALR !

Observe a intenção principal de cada tipo de transação:

2.1. Conceitos e Definições

Entrada Externa (EE)

Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.

Consulta Externa (CE)

Apresentar informação a um usuário por meio da

recuperação de dados ou informações de controle.

Saída Externa (SE)

Apresentar a informação a um usuário por meio de lógica de

processamento diferente ou adicional à simples recuperação

direta de dados ou informações de controle.

pode não ter nenhum ALR !

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 125 -

Tamanho Funcional

Tamanho do software, derivado a partir da quantificação

dos requisitos funcionais de usuário.

[ISO/IEC 20926-1:2009, definition 3.33]

O tamanho funcional é medido em pontos de função (PF).

O tamanho funcional é calculado a partir da complexidade

de cada função de dados e de cada função transacional.

Cada tipo de função possui um valor padrão em PF,

que depende de sua complexidade (baixa, média ou alta).

O tamanho funcional do software é dado pela soma dos

valores de todas as funções de dados e de transação.

2.1. Conceitos e Definições

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 126 -

Valores em Pontos de Função

2.1. Conceitos e Definições

Função Complexidade

baixa média alta

ALI 7 10 15

AIE 5 7 10

EE 3 4 6

CE 3 4 6

SE 4 5 7

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 127 -

ALI Arquivo Lógico Interno ILF Internal Logical File

AIE Arquivo de Interface Externa EIF External Interface File

EE Entrada Externa EI External Input

CE Consulta Externa EQ External Inquiry

SE Saída Externa EO External Output

2.1. Conceitos e Definições

Terminologia Bilingue para os Componentes Funcionais

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 128 -

DER Dado Elementar Referenciado DET Data Element Type

RLR Registro Lógico Referenciado RET Record Element Type

ALR Arquivo Lógico Referenciado FTR File Type Referenced

2.1. Conceitos e Definições

Terminologia Bilingue para os Parâmetros de Complexidade

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 129 -

IFPUG CPM 4.3.1 em português IFPUG CPM – all releases

DER Dado Elementar Referenciado DET Data Element Type

RLR Registro Lógico Referenciado RET Record Element Type

ALR Arquivo Lógico Referenciado FTR File Type Referenced

Livro Vazquez et al. , 2009 IFPUG CPM – all releases

TD Tipo de Dado DET Data Element Type

TR Tipo de Registro RET Record Element Type

AR Arquivo Referenciado FTR File Type Referenced

2.1. Conceitos e Definições

Traduções Alternativas (CPM 4.3.1 x Livro Vazquez 2009)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 130 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 131 -

1. Reunir a documentação disponível.

2. Determinar o escopo e a fronteira da contagem

3. Identificar os requisitos funcionais de usuário.

4. Medir funções de dados.

5. Medir funções de transação.

6. Calcular o tamanho funcional.

7. Documentar e reportar.

2.2. Visão Geral do Processo

Etapas do processo de medição funcional:

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 132 -

2.2. Visão Geral do Processo

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 133 -

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

2.2. Visão Geral do Processo

Reunir a documentação disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 134 -

Determinar o

escopo e a

fronteira da

contagem e

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível identificar

requisitos

funcionais

de usuário

2.2. Visão Geral do Processo

Determinar o escopo e a fronteira da contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 135 -

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

Determinar o

escopo e a

fronteira da

contagem e

2.2. Visão Geral do Processo

Identificar requisitos funcionais de usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 136 -

2.2. Visão Geral do Processo

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

Medir funções de dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 137 -

2.2. Visão Geral do Processo

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

Medir funções de transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 138 -

2.2. Visão Geral do Processo

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

Calcular o tamanho funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 139 -

2.2. Visão Geral do Processo

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

Documentar e reportar

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 140 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 141 -

2.3. Reunindo a Documentação Disponível

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 142 -

• A documentação usada para fundamentar a contagem de pontos de

função deve descrever a toda a funcionalidade fornecida pelo software

ao usuário.

• É necessário coletar documentação suficiente para conduzir a

contagem de pontos de função.

• Em caso de documentação incompleta, pouco detalhada ou

desatualizada, informações suplementares devem ser coletadas junto

a especialistas nos processos de negócio e usuários do sistema.

Diretrizes

2.3. Reunindo a Documentação Disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 143 -

• proposta de projeto

• especif. de necessidades de negócio

• levantamento de requisitos

• documento de visão

• diagramas de fluxo de dados

• diagramas entidade-relacionamento

• modelos de dados

• modelos de classes

• diagramas de casos de uso

• especificação de casos de uso

• especificações funcionais

• especificações suplementares

• layout de bases de dados

• layout de arquivos de transação

• definição das interfaces

• protótipos de interfaces

• descrição de processos batch

• amostras ou layout de relatórios

• amostras ou layout de telas

• guias de usuário

• manuais de treinamento

• aplicações de "help"

• documentação do projeto do sistema

• demonstração da operação da sistema

• consulta a especialistas no negócio

• consulta a clientes e usuários

Informações úteis para medição funcional

2.3. Reunindo a Documentação Disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 144 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 145 -

2.4. Determinando o Escopo e a Fronteira da Contagem

Determinar o

escopo e a

fronteira da

contagem e

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível identificar

requisitos

funcionais

de usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 146 -

Etapas do processo

1. Definir o propósito da contagem.

2. Identificar o tipo de contagem, com base em seu propósito:

contagem de projeto de desenvolvimento

contagem de aplicação

contagem de projeto de melhoria

3. Identificar o escopo da contagem, com base em seu propósito e tipo.

4. Delimitar a fronteira de cada aplicação dentro do escopo da contagem,

com base na visão do usuário, e não na arquitetura técnica.

5. Documentar as decisões tomadas ao longo do processo.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 147 -

Passo 1 : definindo o propósito da contagem

• O propósito da contagem de pontos de função é fornecer uma resposta

a um problema do negócio.

• O propósito:

determina o tipo e o escopo de uma contagem de pontos de função

requerida para obter a resposta ao problema de negócio em questão;

influencia o posicionamento da fronteira entre o software que está sendo

medido e os softwares vizinhos.

Exemplo: Se for planejada a substituição do Modulo de Pessoal de um

sistema de RH por um pacote comercial, os usuários poderão

decidir reposicionar a fronteira e considerar o Módulo de

Pessoal como uma aplicação separada

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 148 -

Passo 1 : definindo o propósito da contagem

• Exemplos de propósitos:

Fornecer o tamanho funcional como uma entrada de informação para um

processo de estimativa, visando determinar o esforço para desenvolver a

primeira versão de uma aplicação;

Medir o tamanho funcional da base instalada de aplicações, visando

determinar o custo de suporte por ponto de função;

Medir o tamanho funcional de um pacote comercial de software, como

subsídio para uma análise “make or buy”;

Medir o tamanho funcional de dois pacotes de software de diferentes

fornecedores, para possibilitar a comparação das funcionalidades

disponibilizadas como apoio à decisão de compra.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 149 -

Passo 2 : identificando o tipo de contagem

• As contagens de pontos de função podem estar associadas tanto a

projetos quanto a aplicações.

• Existem três tipos de contagem de pontos de função:

Projeto de desenvolvimento

Projeto de melhoria

Aplicação

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 150 -

Passo 2 : identificando o tipo de contagem

Projeto de desenvolvimento

• Consiste em desenvolver e entregar a primeira versão de um software.

Projeto de melhoria

• Consiste em desenvolver e entregar uma nova versão de um software,

envolvendo a adição, modificação e/ou exclusão de funcionalidades.

Aplicação

• Conjunto coeso de procedimentos automatizados e dados suportando

um objetivo de negócio, que pode consistir de um ou mais

componentes, módulos, ou subsistemas.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 151 -

Passo 2 : identificando o tipo de contagem

Contagem de projeto de desenvolvimento

• Mede as funções fornecidas ao usuário com a primeira instalação do

software, disponibilizado no momento em que o projeto é concluído.

Contagem de projeto de melhoria

• Mede as modificações na aplicação existente que incluem, alteram ou

excluem funções disponibilizadas ao usuário na conclusão do projeto.

• Quando uma funcionalidade de um projeto de melhoria é instalada, a

contagem de pontos de função da aplicação deve ser atualizada para

refletir as alterações nas respectivas funcionalidades.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 152 -

Passo 2 : identificando o tipo de contagem

Contagem de aplicação

• Está associada à aplicação instalada (e não a um projeto).

• É também denominada contagem de baseline ou de base instalada.

• Fornece uma medida das funções que a aplicação instalada oferece

ao usuário no momento presente.

• É inicializada no momento em que o projeto de desenvolvimento é

concluído e a primeira versão da aplicação é instalada.

• Tem que ser atualizada toda vez que um projeto de melhoria alterar

as funções da aplicação.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 153 -

Passo 2 : identificando o tipo de contagem

Contagem Estimada x Contagem Final

• A medição funcional efetuada no início do ciclo de vida de um projeto

corresponde, geralmente, a uma estimativa aproximada das funcionalidades

que serão disponibilizadas.

• À medida que o desenvolvimento avança e o escopo é melhor esclarecido,

frequentemente são identificadas funcionalidades adicionais que não

estavam originalmente especificadas.

• Este fenômeno é chamado de scope creep.

• Por isso é essencial atualizar a contagem da aplicação na conclusão do

projeto, para que a contagem de pontos de função reflita corretamente as

funcionalidades disponibilizadas ao usuário, possibilitando a inicialização

correta do baseline.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 154 -

Passo 2 : identificando o tipo de contagem

Cenário Típico de Scope Creep

2.4. Determinando o Escopo e a Fronteira da Contagem

100 PFs 120 PFs 130 PFs 135 PFs

• Tela de entrada do

código do estado

alterada (3 PFs)

• Acrescentada interface

arquivo N&A (10 PFs)

• Consulta N&A e ao

código do estado

acrescentadas (7 PFs)

• Nova tabela legal

acrescentada (10

PFs)

• Relatório resumo

incluído (5 PFs)

100 PFs 120 PFs 130 PFs 135 PFs

• Tela de entrada do

código do estado

alterada (3 PFs)

• Acrescentada interface

arquivo N&A (10 PFs)

• Consulta N&A e ao

código do estado

acrescentadas (7 PFs)

• Nova tabela legal

acrescentada (10

PFs)

• Relatório resumo

incluído (5 PFs)

Impacto

Esforço

Cronograma

Custo

+ 1 mês

+ 2 semanas

+ $5000

+ 0.5 meses

+ 2 semanas

+ $2500

+ 0.25 meses

+ 2.5 dias

+ $1250

Impacto

Esforço

Cronograma

Custo

+ 1 mês

+ 2 semanas

+ $5000

+ 0.5 meses

+ 2 semanas

+ $2500

+ 0.25 meses

+ 2.5 dias

+ $1250

Aplicativo

Entregue

Projeto

Detalhado

Projeto

FuncionalRequisitos

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 155 -

1. Desenvolvimento iniciado

projeto de desenvolvimento

iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 156 -

Cont. Estimada

Projeto de

Desenvolvimento

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

projeto de desenvolvimento

iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 157 -

Cont. Estimada

Projeto de

Desenvolvimento

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

projeto de

desenvolvimento iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 158 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento projeto de

desenvolvimento iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 159 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

inicializar projeto de

desenvolvimento iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

projeto de melhoria iniciado

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 160 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

inicializar projeto de

desenvolvimento iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 161 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

inicializar projeto de

desenvolvimento iniciado

projeto de melhoria iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

projeto concluído

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 162 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

inicializar projeto de

desenvolvimento iniciado

projeto de melhoria iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 163 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem Final

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

contagem final melhoria

inicializar projeto de

desenvolvimento iniciado

projeto de melhoria iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 164 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem Final

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

contagem final melhoria atualizar contagem do baseline

inicializar

atualizar

projeto de desenvolvimento

iniciado

projeto de melhoria iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Passo 2 : identificando o tipo de contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.4. Determinando o Escopo e a Fronteira da Contagem

- 165 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem Final

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

contagem final melhoria atualizar contagem do baseline

inicializar

atualizar

projeto de desenvolvimento

iniciado

projeto de melhoria iniciado

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 166 -

2.4. Determinando o Escopo e a Fronteira da Contagem

Passo 3 : identificando o escopo da contagem

Definição

• O escopo da contagem define o subconjunto das funcionalidades que

serão incluídas em uma contagem de pontos de função específica.

Características :

• define um subconjunto do software que está sendo medido;

• é determinado pelo propósito da contagem de pontos de função;

• identifica quais funções serão incluídas na contagem de pontos de

função para fornecer respostas relevantes ao propósito da contagem;

• pode incluir mais de uma aplicação.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 167 -

Passo 3 : identificando o escopo da contagem

No caso de projetos de desenvolvimento :

• O escopo inclui todas as funcionalidades impactadas (construídas ou

customizadas) pelas atividades do projeto.

• São incluídas também funcionalidades de conversão de dados

construídas durante o projeto.

No caso de projetos de melhoria :

• O escopo inclui todas as funcionalidades adicionadas, modificadas ou

excluídas da aplicação que está sofrendo manutenção.

• São incluídas também funcionalidades de conversão de dados

construídas durante o projeto.

• A fronteira das aplicações impactadas permanece a mesma.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 168 -

Passo 3 : identificando o escopo da contagem

No caso de contagem de aplicação (baseline) :

• O escopo pode incluir, dependendo do propósito:

apenas as funções utilizadas pelo usuário

todas as funções disponibilizadas

O tamanho funcional medido será diferente em cada caso

A fronteira da aplicação é a mesma e independe do escopo

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 169 -

Passo 3 : identificando o escopo da contagem

Dicas para identificação do escopo da contagem :

• Atenção ao propósito da contagem !!!

• No caso de contagem de base instalada de aplicação (baseline),

inclua todas as funcionalidades que estiverem atualmente em

produção e que sejam utilizadas pelos usuários.

Exemplo: quando o propósito da contagem for medir o tamanho

funcional atendido pelo grupo de suporte e/ou manutenção.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 170 -

2.4. Determinando o Escopo e a Fronteira da Contagem

Passo 4 : delimitando a fronteira de cada aplicação

Definição

• A fronteira da aplicação indica o limite entre o sistema que está sendo

medido e o usuário.

lembrando que o “usuário” pode ser também um sistema externo

Características :

• é uma interface conceitual entre a aplicação ‘interna’ e o usuário ‘externo’;

• atua como uma ‘membrana’, através da qual os dados processados pelas

transações (EEs, SEs e CEs) passam para dentro e para fora da aplicação;

• inclui dados lógicos mantidos pela aplicação (ALIs);

• ajuda na identificação dos dados que são lidos (referenciados) pela aplicação,

mas mantidos por processos externos (AIEs);

• depende da visão externa do negócio do usuário da aplicação;

• é independente de considerações técnicas ou de implementação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 171 -

2.4. Determinando o Escopo e a Fronteira da Contagem

Passo 4 : delimitando a fronteira de cada aplicação

Exemplo :

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 172 -

2.4. Determinando o Escopo e a Fronteira da Contagem

Passo 4 : delimitando a fronteira de cada aplicação

Regras para delimitação da fronteira

• A fronteira é determinada com base na visão do usuário. O foco está no

que o usuário pode entender e descrever.

• A fronteira entre aplicações relacionadas se baseia nas diferentes áreas

funcionais como vistas pelo usuário, e não em considerações técnicas.

• A fronteira inicial já estabelecida para a aplicação (ou aplicações) que

está sendo modificada não é influenciada pelo escopo da contagem.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 173 -

2.4. Determinando o Escopo e a Fronteira da Contagem

Passo 4 : delimitando a fronteira de cada aplicação

Importante

• Pode haver mais de uma aplicação incluída no escopo da contagem.

• Neste caso, deverão ser identificadas múltiplas fronteiras de aplicações.

• Quando a fronteira da aplicação não estiver bem definida (por exemplo:

na fase inicial do projeto), ela deverá ser posicionada da forma mais

exata que for possível.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 174 -

Passo 4 : delimitando a fronteira de cada aplicação

Dicas para identificação da fronteira :

• Utilize especificações externas do sistema, ou obtenha um fluxo do mesmo,

e desenhe a respectiva fronteira, destacando as partes interna e externa à

aplicação.

• Verifique como os grupos de dados estão sendo mantidos.

• Identifique as áreas funcionais, alocando certos tipos de objetos da análise (tais

como entidades ou processos elementares) a uma área funcional.

• Observe dados de medição correlatos, tais como esforço, custo e defeitos. As

fronteiras consideradas para os pontos de função e para os outros dados de

medição devem ser as mesmas.

• Entreviste usuários e especialistas nos processos de negócio para obter auxílio

na identificação das fronteiras.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 175 -

Passo 4 : delimitando a fronteira de cada aplicação

Importante :

• O posicionamento da fronteira da aplicação entre o sistema em análise

e outras aplicações de software pode ser subjetivo.

• É freqüentemente difícil delinear onde uma aplicação termina e outra

começa.

• Deve-se procurar estabelecer a fronteira a partir da perspectiva do

negócio, ao invés de considerações físicas ou técnicas.

• É importante que a fronteira da aplicação seja estabelecida com

cuidado, uma vez que todos os dados que atravessam a fronteira

podem, a princípio, ser incluídos no escopo da contagem.

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 176 -

Passo 5 : documentando as decisões tomadas

Os seguintes itens devem ser documentados :

• o propósito da contagem

• o escopo da contagem

• as fronteiras das aplicações

• quaisquer suposições relacionadas aos itens acima

2.4. Determinando o Escopo e a Fronteira da Contagem

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 177 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 178 -

2.5. Identificando os Requisitos Funcionais de Usuário

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

Determinar o

escopo e a

fronteira da

contagem e

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 179 -

Usuário

Pessoa ou coisa que em algum momento interage com o software

(envia/recebe dados) ou especifica seus requisitos.

Requisitos Funcionais do Usuário

Subconjunto dos requisitos do usuário que descrevem o que o software

deverá fazer, em termos de tarefas e serviços.

Visão do Usuário

Descrição formal das necessidades de negócio do usuário, expressa na

linguagem do usuário.

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 180 -

Visão do Usuário

• É uma descrição das funções do negócio

• É aprovada pelo usuário

• Pode ser usada para medir o tamanho funcional do sistema

• Pode variar na forma física (propostas comerciais, documento de

requisitos, especificações externas, especificações detalhadas, etc.)

• Pode até mesmo ser expressa por declarações verbais do usuário

Usuário x Desenvolvedor

• Os desenvolvedores traduzem a informação do usuário para uma

linguagem técnica, com o objetivo de fornecer uma solução.

• A medição funcional deve ser efetuada com base em informações

expressas em uma linguagem comum a usuários e a desenvolvedores.

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 181 -

Maturidade dos Requisitos x Precisão da Medição

• Em um estágio inicial do processo de desenvolvimento, as

necessidades de negócio do usuário podem ser as únicas informações

disponíveis para fundamentar a medição funcional do sistema.

• Nesse momento, devido ao baixo grau de maturidade das informações,

premissas a respeito de funcionalidades ainda desconhecidas precisam

ser assumidas para viabilizar uma estimativa do tamanho funcional.

• Na medida em que o projeto evolui e novas características e

detalhamentos dos requisitos são descobertos, as premissas

assumidas para encobrir incertezas vão sendo eliminadas.

• A precisão da medição funcional dependerá da qualidade e da

maturidade dos requisitos identificados.

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 182 -

O Processo de Amadurecimento dos Requisitos

• Enquanto os requisitos forem expressos apenas como necessidades de

negócio, eles poderão apresentar as seguintes características:

- muito genéricos e às vezes ambíguos

- expressos em terminologia não compreensível pelo desenvolvedor

- incompletos

- instáveis, sujeitos a mudanças

• Na medida em que a visão do usuário começa a ser interpretada e

complementada com a visão do desenvolvedor, os requisitos:

- tornam-se mais específicos e sem ambiguidades

- passam a ser expressos em terminologia inteligível por todos

- fornecem descrição integrada das necessidades de todos os usuários

- tendem a permanecer relativamente estáveis

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 183 -

Fonte: Vazquez et al., 2009

2.5. Identificando os Requisitos Funcionais de Usuário

O Processo de Amadurecimento dos Requisitos

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 184 -

O Processo de Amadurecimento dos Requisitos

• A título de ilustração, consideremos um modelo que divide o grau de

maturidade dos documentos de requisitos em 3 fases:

- Fase 1: requisitos iniciais de usuário

esta fase representa os requisitos dos usuários antes

dos primeiros contatos com os desenvolvedores

- Fase 2: requisitos técnicos iniciais

esta fase representa a visão dos desenvolvedores

a respeito dos requisitos criados na fase anterior

- Fase 3: requisitos funcionais finais (fase 3)

são requisitos funcionais consistentes e completos, produzidos

em conjunto por usuários e desenvolvedores

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 185 -

Exemplo de situação na Fase 1

Suponha que um usuário do RH expresse seu requisito assim:

"Preciso manter um cadastro de funcionários e quero, a qualquer momento,

entrar com o nome de um funcionário e ver todos os seus dados cadastrais.”

Funções identificadas na Fase 1

Este requisito implica no desenvolvimento de uma tela de consulta e de

um arquivo lógico com dados de funcionário.

Tipo Descrição

CE Consultar dados cadastrais de um funcionário específico

ALI Dados cadastrais dos funcionários

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 186 -

A mesma situação na Fase 2

Ao examinar o requisito, o desenvolvedor declara:

“OK, vamos implementar a consulta. Mas precisaremos criar, além da tabela de

funcionários, um arquivo com um índice para acelerar a recuperação dos dados”

Funções identificadas na Fase 2

O arquivo cuja criação foi proposta pelo desenvolvedor pode ser

equivocadamente considerado como um ALI.

Tipo Descrição

CE Consultar dados cadastrais de um funcionário específico

ALI Dados cadastrais dos funcionários

ALI Índice com ordenação dos funcionários pelo nome

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 187 -

A mesma situação na Fase 2

Ao examinar o requisito, o desenvolvedor declara:

“OK, vamos implementar a consulta. Mas precisaremos criar, além da tabela de

funcionários, um arquivo com um índice para acelerar a recuperação dos dados”

Funções identificadas na Fase 2

O arquivo cuja criação foi proposta pelo desenvolvedor pode ser

equivocadamente considerado como um ALI. Mas não é, pois trata-se

de um arquivo criado apenas para cumprir requisitos não-funcionais.

Tipo Descrição

CE Consultar dados cadastrais de um funcionário específico

ALI Dados cadastrais dos funcionários

ALI Índice com ordenação dos funcionários pelo nome

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 188 -

A mesma situação na Fase 3

Após uma análise mais detalhada, o desenvolvedor declara:

“Nem sempre será possível selecionar um único funcionário com base apenas

no nome. Sugiro a exibição de uma lista de clientes com nome, matrícula e

localização, na qual será possível selecionar funcionários individualmente.”

O usuário responde:

“OK ! Aproveitaremos a lista para outros propósitos além de selecionar cliente.”

Funções identificadas na Fase 3

Tipo Descrição

CE Consultar dados cadastrais de um funcionário específico

CE Exibir lista de funcionários

ALI Dados cadastrais dos funcionários

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 189 -

Fase 1: Requisitos Iniciais de Usuário

Podem ter uma ou mais dentre as características abaixo:

• incompletos exemplo: faltando especificar integridade referencial

• com funcionalidades faltantes exemplo: consultas e relatórios indispensáveis podem estar faltando

• impossíveis de implementar ou de uso muito difícil exemplo: uma consulta online que requeira 1 hora de processamento

• muito genéricos exemplo: os requisitos podem não incluir a lista de campos de um relatório

• não atendem as necessidades de todos os usuários exemplo: o usuário que especificou desconhece necessidades de outros usuários

• definidos sem levar em conta a fronteira da aplicação exemplo: usuário pede um campo novo que precisaria ser gravado em sistema externo

• expressos em diferente contexto ou em terminologia incompatível c/ APF

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 190 -

Fase 2: Requisitos Técnicos Iniciais

Podem ter uma ou mais dentre as características abaixo:

• dependência tecnológica exemplo: arquivos físicos variam conforme o ambiente de banco de dados

• identificação incorreta das necessidades funcionais dos usuários exemplo: inclusão de funcionalidades não solicitadas pelo usuário por motivo técnico

• terminologia não-familiar aos usuários exemplo: referir-se a tabelas físicas em lugar de grupos lógicos de dados

• delineamento das funcionalidades com ênfase em restrições técnicas exemplo: limitar/alterar requisitos funcionais com base nos recursos computacionais disponíveis no momento na organização

• fronteira delimitada por arquitetura técnica (e não por processos) exemplo: pode haver requisitos técnicos distintos para os lados cliente e servidor, mas do pto de vista funcional o processo todo está dentro da mesma fronteira

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 191 -

Fase 3: Requisitos Funcionais Finais

• São requisitos completos e consistentes, resultantes de reuniões

conjuntas entre usuários e desenvolvedores. Correspondem à

versão final e possuem as seguintes características:

- sua terminologia é entendida por usuários e desenvolvedores

- fornecem descrições integradas de todos os requisitos de usuário,

inclusive requisitos de diferentes usuários.

- definem completamente todos os processos de negócio, incluindo: todas as ações do usuário

todos os campos que entram e saem pela fronteira da aplicação

todas as fontes de dados, internas e externas

todos os processos de validação de dados

- cada processo e cada grupo de dados é aprovado pelo usuário

- a viabilidade e usabilidade são aprovadas pelos desenvolvedores

2.5. Identificando os Requisitos Funcionais de Usuário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 192 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 193 -

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 194 -

Funções de Dados

Arquivo Lógico Interno (ALI)

Grupo de dados ou informações de controle logicamente relacionados,

reconhecível pelo usuário e mantido pela aplicação medida.

Arquivo de Interface Externa (AIE)

Grupo de dados ou informações de controle logicamente relacionados,

reconhecível pelo usuário e referenciado pela aplicação medida, mas

mantido por outra aplicação.

É um ALI de outra aplicação referenciado pela aplicação medida !

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 195 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 196 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 197 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra Descrição

1.1 Identificar todos os dados e informações de controle logicamente

relacionados que estejam dentro do escopo da contagem.

1.2 Excluir entidades que não são mantidas por nenhuma aplicação.

1.3 Agrupar entidades dependentes com suas entidades principais.

1.4 Excluir entidades referentes a dados de código.

1.5 Excluir entidades que não tenham atributos requeridos pelo usuário.

1.6 Remover entidades associativas que contenham somente chaves

estrangeiras e/ou atributos adicionais não requeridos pelo usuário,

agrupando os atributos de chave estrangeira com as entidades

primárias.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 198 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.1

Identificar todos os dados e informações de controle logicamente

relacionados que estejam dentro do escopo da contagem.

Dicas:

Verificar entidades e atributos em diagramas entidade/relacionamento ou

modelos de dados ou no próprio de banco de dados físico.

Verificar os campos exibidos nas telas do sistema.

Verificar campos digitados e caixas de seleção nas telas do sistema.

Verificar informações exibidas em gráficos e relatórios emitidos pelo sistema.

Verificar layout de arquivos recebidos/enviados de/para outros sistemas.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 199 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.2

Excluir entidades que não são mantidas por nenhuma aplicação.

Observações:

Toda função de dados tem que ser mantida por pelo menos uma aplicação,

seja a aplicação que está sendo medida (no caso de ALI’s) ou alguma outra.

Arquivos ou tabelas com conteúdo estático não são funções de dados.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 200 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.3

Agrupar entidades dependentes com suas entidades principais.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 201 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.3

Agrupar entidades dependentes com suas entidades principais.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 202 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.3

Agrupar entidades dependentes com suas entidades principais.

Entidade Dependente

Entidade X que não faz sentido ou não é relevante para o negócio sem a

presença de outra entidade Y tal que:

toda ocorrência de X tem que estar vinculada a uma ocorrência de Y;

a exclusão de uma ocorrência de Y implica na exclusão de todas as

ocorrências de X a ela relacionadas.

[ISO/IEC 20926-1:2009, definition 3.25]

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 203 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.3

Agrupar entidades dependentes com suas entidades principais.

Exemplo:

Em um sistema de RH, a entidade “Dependente” é geralmente uma entidade

dependente da entidade “Funcionário”, visto que:

todo dependente tem que estar vinculado a um funcionário;

a exclusão de um funcionário implica na exclusão de todos os

dependentes a ele relacionados.

Neste caso a entidade “Dependente” deve ser agrupada com a entidade

“Funcionário” e o grupo terá RLR’s distintos para funcionário e dependente.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 204 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.4

Excluir entidades referentes a dados de código.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 205 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.4

Excluir entidades referentes a dados de código.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 206 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.4

Excluir entidades referentes a dados de código.

Dados de Código

São dados que existem somente para atender requisitos não-funcionais,

por razões técnicas, ou devido à implementação física ou a requisitos de

qualidade.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 207 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.4

Excluir entidades referentes a dados de código.

São considerados dados de código:

Entidades de substituição de dados que contêm apenas um código e um nome

explicativo ou uma descrição.

Entidades com uma única ocorrência que contenham atributos raramente alterados.

Entidades que contêm dados essencialmente estáticos ou que mudem raramente.

Entidades contendo valores default para preencher atributos.

Entidades que armazenam valores para seleção ou validação.

Entidades que contenham uma faixa de valores para validação.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 208 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.4

Excluir entidades referentes a dados de código.

Observação:

Mesmo no caso de tais entidades possuírem atributos adicionais com

propósito de auditoria ou de definir períodos de validade, a presença desses

atributos não altera a natureza dessas entidades. Continuam sendo

consideradas dados de código e devem ser excluídas da contagem.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 209 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.5

Excluir entidades que não tenham atributos requeridos pelo usuário.

Observações:

Entidades sem atributos reconhecíveis pelo usuário não contam pontos de

função, mesmo que seu conteúdo seja atualizado frequentemente.

Geralmente são entidades criadas pelos desenvolvedores, por motivos

técnicos.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 210 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.6

Remover entidades associativas que contenham somente chaves

estrangeiras e/ou atributos adicionais não requeridos pelo usuário,

agrupando os atributos de chave estrangeira com as entidades

primárias.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 211 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.6

Remover entidades associativas que contenham somente chaves

estrangeiras e/ou atributos adicionais não requeridos pelo usuário,

agrupando os atributos de chave estrangeira com as entidades

primárias.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 212 -

Passo 1 : Identificar e agrupar todos os dados lógicos

em funções de dados

2.6. Medindo Funções de Dados

Regra

1.6

Remover entidades associativas que contenham somente chaves

estrangeiras e/ou atributos adicionais não requeridos pelo usuário,

agrupando os atributos de chave estrangeira com as entidades

primárias.

Entidade Associativa

Entidade que contém atributos que descrevem um relacionamento

“muitos-para-muitos” entre duas outras entidades.

[ISO/IEC 20926-1:2009, definition 3.6]

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 213 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 214 -

Passo 2 : Classificar as funções de dados

como ALI ou AIE

2.6. Medindo Funções de Dados

Arquivo Lógico Interno (ALI)

Grupo de dados ou informações de controle logicamente relacionados,

reconhecível pelo usuário e mantido pela aplicação medida.

Arquivo de Interface Externa (AIE)

Grupo de dados ou informações de controle logicamente relacionados,

reconhecível pelo usuário e referenciado pela aplicação medida, mas

mantido por outra aplicação.

É um ALI de outra aplicação referenciado pela aplicação medida !

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 215 -

Passo 2 : Classificar as funções de dados

como ALI ou AIE

2.6. Medindo Funções de Dados

Regra Descrição

2.1 Classificar como ALI as funções de dados mantidas pela aplicação

que está sendo medida.

2.2 Classificar como AIE as funções de dados referenciadas (mas não

mantidas) pela aplicação que está sendo medida e identificadas

como ALI em uma ou mais outras aplicações.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 216 -

Passo 2 : Classificar as funções de dados

como ALI ou AIE

2.6. Medindo Funções de Dados

Regra

2.1

Classificar como ALI as funções de dados mantidas pela aplicação

que está sendo medida.

Observações:

Tomar cuidado para não confundir a fronteira funcional com uma

fronteira de arquitetura técnica.

Para ser um ALI, o que importa é que ele seja mantido por processos

elementares da aplicação que está sendo medida, mesmo que o arquivo

físico fique numa plataforma de hardware ou sistema operacional

diferente da aplicação que está sendo medida.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 217 -

Passo 2 : Classificar as funções de dados

como ALI ou AIE

2.6. Medindo Funções de Dados

Regra

2.2

Classificar como AIE as funções de dados referenciadas (mas não

mantidas) pela aplicação que está sendo medida e identificadas

como ALI em uma ou mais outras aplicações.

Observações:

Somente dados que sejam mantidos por alguma aplicação podem ser

considerados AIE.

Tabelas ou arquivos estáticos não são funções de dados.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 218 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 219 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Dado Elementar Referenciado (DER)

Atributo único, reconhecido pelo usuário e não repetido.

Exemplos

Três campos físicos usados para armazenar dia, mês e ano referentes a uma

data de vencimento (visão do usuário) constituem 1 único DER.

Um campo utilizado para armazenar uma informação técnica desconhecida

pelo usuário (exemplo: um código interno de transação) não é um DER.

Um conjunto de 12 campos usados para armazenar uma mesma informação

referente a cada mês do ano constitui apenas 2 DER’s (mês e valor).

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 220 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra Descrição

3.1 Contar 1 DER para cada atributo único, não repetido e reconhecível

pelo usuário, que seja mantido ou recuperado pela função de dados

por meio da execução de processos elementares dentro do escopo

da contagem.

3.2 No caso de dados compartilhados com outras aplicações, contar

somente os DER’s referenciados ou mantidos pela aplicação que

está sendo contada.

3.3 Contar 1 DER para cada atributo requerido pelo usuário que

estabeleça um relacionamento com outra função de dados.

3.4 Rever atributos interrelacionados para determinar se devem ser

considerados como DER’s independentes ou como 1 único DER.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 221 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.1

Contar 1 DER para cada atributo único, não repetido e reconhecível

pelo usuário, que seja mantido ou recuperado pela função de dados

por meio da execução de processos elementares dentro do escopo

da contagem.

Dicas:

1. Um “array” de campos com o mesmo significado deve ser tratado como 1

único DER, porém acrescido de um segundo DER para “indexação do array”:

Doze campos referentes aos valores orçados para os 12 meses do ano devem

ser representados por apenas 2 DER’s: um para o valor e outro para o mês.

Isto porque os 12 campos não constituem atributos únicos.

Todos são o mesmo atributo (para meses diferentes).

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 222 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.1

Contar 1 DER para cada atributo único, não repetido e reconhecível

pelo usuário, que seja mantido ou recuperado pela função de dados

por meio da execução de processos elementares dentro do escopo

da contagem.

Dicas:

2. Dados repetidos devem ser contados 1 única vez:

Se a matrícula de funcionário aparece duas vezes em um ALI ou AIE: (1) como

chave do registro do funcionário e (2) como chave estrangeira do registro do

dependente, deve ser contado 1 único DER.

Sempre que duas tabelas de banco de dados são agrupadas no mesmo ALI,

a chave estrangeira da entidade dependente e a chave primária da entidade

principal devem ser contadas como 1 único DET, visto que são a mesma

informação de negócio.

se a chave for composta por mais de 1 campo, contar todos 1 só vez

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 223 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.1

Contar 1 DER para cada atributo único, não repetido e reconhecível

pelo usuário, que seja mantido ou recuperado pela função de dados

por meio da execução de processos elementares dentro do escopo

da contagem.

Dicas:

3. Somente dados mantidos ou referenciados pela aplicação que está sendo

contada podem ser DER’s:

Se o arquivo ou tabela física identificado como ALI ou AIE contém campos que não

são mantidos e nem referenciados pela aplicação que está sendo medida, estes

campos não devem ser contados como DER’s.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 224 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.1

Contar 1 DER para cada atributo único, não repetido e reconhecível

pelo usuário, que seja mantido ou recuperado pela função de dados

por meio da execução de processos elementares dentro do escopo

da contagem.

Dicas:

4. Campos de caráter técnico podem ser considerados DER’s quando são

reconhecidos e requisitados pelo usuário.

Por exemplo, um timestamp que seja requisitado pelo usuário pode ser um DER.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 225 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.1

Contar 1 DER para cada atributo único, não repetido e reconhecível

pelo usuário, que seja mantido ou recuperado pela função de dados

por meio da execução de processos elementares dentro do escopo

da contagem.

Dicas:

5. Campos calculados também são contados como DER.

Por exemplo, o resultado de um cálculo de um processo elementar, como o valor

do imposto sobre uma venda, referente a um pedido de cliente mantido em um

ALI, é contado como um DER no ALI de pedido de cliente.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 226 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.2

No caso de dados compartilhados com outras aplicações, contar

somente os DER’s referenciados ou mantidos pela aplicação que

está sendo contada.

Exemplo

Suponha que a Aplicação X mantém e/ou referencia um ALI que contém CPF,

Nome, Rua, Caixa Postal, Cidade, Estado e CEP.

A Aplicação Z mantém e/ou referencia Nome, Cidade e Estado.

Devem ser contados:

7 DER’s para a Aplicação X

3 DER’s para a Aplicação Z.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 227 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.2

No caso de dados compartilhados com outras aplicações, contar

somente os DER’s referenciados ou mantidos pela aplicação que

está sendo contada.

Dica:

O mesmo conjunto de campos pode corresponder a um número diferente de

DER’s para aplicações distintas:

Suponha que a Aplicação A identifica e utiliza separadamente os campos

“rua”, “cidade”, “estado” e “CEP”.

Já a Aplicação B referencia os mesmos campos, mas trata o endereço

como um bloco de dados sem considerar os componentes.

Neste caso são contados 4 DER’s para a Aplicação A,

mas somente 1 DER para a Aplicação B.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 228 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.3

Contar 1 DER para cada atributo requerido pelo usuário que

estabeleça um relacionamento com outra função de dados.

Exemplo 1:

Em uma aplicação de RH, as informações dos funcionários são mantidas em

um cadastro, dentre elas o código do departamento onde ele está lotado,

que é uma chave estrangeira para uma tabela de departamentos mantida

por outra aplicação.

Este campo é contado como DER do ALI “Funcionário” porque é necessário

para relacionar o funcionário a um departamento existente na organização.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 229 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.3

Contar 1 DER para cada atributo requerido pelo usuário que

estabeleça um relacionamento com outra função de dados.

Exemplo 2:

Em uma aplicação orientada a objetos (OO), o usuário solicita uma associação

entre classes de objetos, as quais foram identificadas como ALI’s distintos.

O nome da localidade já é um DER do ALI “Localidade”, mas essa informação

também é requerida ao processar as informações do funcionário.

Consequentemente, o nome da localidade onde o funcionário trabalha também é

contado como um DER dentro do ALI “Funcionário”.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 230 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.4

Rever atributos interrelacionados para determinar se devem ser

considerados como DER’s independentes ou como 1 único DER.

Exemplos:

Três campos físicos usados para armazenar dia, mês e ano referentes a uma

“data de vencimento” (na visão do usuário) constituem 1 único DER.

Três campos correspondentes a banco, agência e conta-corrente podem

constituir 1 único DER, se a aplicação os trata sempre como um conjunto

(a “conta-corrente do cliente”, na visão do usuário).

Duas imagem (“antes” e “depois”) de um grupo de 10 campos (total 20 campos)

mantidas para fins de auditoria deve ser representadas por apenas 2 DER’s.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 231 -

Passo 3 : Contar os DER’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

3.4

Rever atributos interrelacionados para determinar se devem ser

considerados como DER’s independentes ou como 1 único DER.

Um outro exemplo:

Os atributos “primeiro nome”, “nome do meio” e “último nome” são

agrupados e contados como:

1 único DER “nome”, composto pelos 3 atributos, no caso de serem

usados sempre em conjunto;

2 DER’s: “primeiros nomes”, composto pelos dois primeiros atributos,

e “último nome”, no caso de o último nome ser referenciado

separadamente em algumas situações;

3 DER’s distintos, no caso de os 3 atributos serem usados

separadamente.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 232 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 233 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Registro Lógico Referenciado (RLR)

Subgrupo de Dados Elementares Referenciados (DER’s)

reconhecíveis pelo usuário dentro de uma função de dados.

Exemplo

Em uma aplicação de RH são cadastradas informações de funcionários

horistas e mensalistas, juntamente com informações de seus dependentes.

Existem atributos genéricos comuns a ambos os tipos de funcionários,

atributos específicos de horistas e atributos específicos de mensalistas.

Neste caso, o ALI “funcionário” possuirá 3 RLR’s:

Registro de Horista = atributos genéricos + específicos de horista

Registro de Mensalista = atributos genéricos + específicos de mensalista

Registro de Dependente = atributos de dependente (relação 1:n)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 234 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Registro Lógico Referenciado (RLR)

Subgrupo de Dados Elementares Referenciados (DER’s)

reconhecíveis pelo usuário dentro de uma função de dados.

Subgrupos opcionais x obrigatórios

Existem dois tipos de subgrupos de DER’s que podem compor RLR’s:

opcionais

obrigatórios

Exemplo

Na aplicação de RH mencionada anteriormente,

os RLR’s “Horista” e “Mensalista” são obrigatórios,

enquanto que o subgrupo “Dependente” é opcional.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 235 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra Descrição

4.1 Contar 1 RLR para cada função de dados.

4.2 Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 236 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.1

Contar 1 RLR para cada função de dados.

Motivo

Por default, tem pelo menos 1 subgrupo de DER’s que constitui um RLR.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 237 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.2

Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 238 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.2

Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

Exemplo

Uma empresa mantém um cadastro de professores e um cadastro de cursos.

O valor-hora pago a um mesmo professor pode ser diferente para cada curso.

Haverá 3 entidades de dados, sendo duas independentes (Professor e Curso)

e uma associativa, que conterá, além das chaves, o valor-hora a ser pago a

cada professor específico em cada curso específico.

Portanto, esta entidade associativa tem atributo de negócio reconhecido pelo

usuário. Ela será agrupada no ALI Professor e este ALI terá 2 RLR’s.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 239 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.2

Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

Exemplos

Cliente pessoa física x cliente pessoa jurídica.

Funcionário horista x funcionário mensalista.

Nesses casos, existem atributos específicos exclusivos de cada subtipo.

Haverá 1 RLR para cada subtipo: o RLR default da regra 4.1 para o primeiro

subtipo e um ou mais RLR’s adicionais para cada subtipo a partir do segundo.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 240 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.2

Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 241 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.2

Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

Entidade Atributiva

Entidade que descreve um ou mais atributos adicionais de uma outra entidade.

[ISO/IEC 20926-1:2009, definition 3.7]

Entidades atributivas são entidades dependentes da entidade principal

(a verdadeira “dona” dos atributos) e por isso são agrupadas no mesmo ALI.

Porém, cada entidade atributiva que possua um relacionamento 1:1 opcional,

1:n ou m:n com a principal contribuirá com 1 RLR adicional para o ALI.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 242 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Regra

4.2

Contar 1 RLR adicional para:

- cada entidade associativa com atributos além das chaves;

- cada subtipo, a partir do segundo;

- entidade atributiva com relacionamento

diferente de 1:1 obrigatório.

Exemplo

Em um sistema de RH a entidade “Dependente” é uma entidade atributiva que

tem um relacionamento 1,1:0,n com a entidade “Funcionário”.

Por ser uma entidade dependente da entidade “Funcionário”, ela é agrupada

no ALI “Funcionário” e, por ser uma entidade atributiva com relacionamento

diferente de 1:1 obrigatório com a entidade “dona” dos atributos, ela contribuirá

com 1 RLR adicional para o ALI “Funcionário”.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 243 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Dica

Caso não haja um modelo de dados disponível, examine cada grupo

repetitivo de dados e verifique se é ou não um RLR.

Exemplos

No caso de fatura contendo seção de cabeçalho com informações do cliente,

seguida de uma lista com informações dos itens vendidos (qtde, preço, etc.),

devem ser contados 2 RLR’s: cabeçalho + grupo de dados que se repete.

Entretanto, um caso de ocorrência de múltiplos grupos de DER’s tal como

{ano, mês e valor do orçamento}, mesmo constituindo um grupo repetitivo,

não é contado como um RLR, mas sim como 3 DER’s.

A diferença é que os meses do ano não são uma entidade de negócio,

enquanto que itens vendidos certamente o são !

Idem para dependentes de funcionário (são relevantes para o negócio).

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 244 -

Passo 4 : Contar os RLR’s para cada função de dados

2.6. Medindo Funções de Dados

Atenção

Um único atributo de negócio que se repete, como múltiplas contas bancárias

para um mesmo cliente, não constitui um grupo repetitivo e deve ser contado

como um DER, e não um RLR.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 245 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 246 -

Passo 5 : Determinar a complexidade funcional

para cada função de dados

2.6. Medindo Funções de Dados

Regra Descrição

5.1 Utilizar a tabela abaixo:

ALI e AIE Quantidade de DER’s

1 a 19 20 a 50 51 ou mais

1 baixa baixa média

2 a 5 baixa média alta

6 ou mais média alta alta Qtd

e.

RL

R’s

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 247 -

Etapas do Processo

1. Identificar e agrupar todos os dados lógicos em funções de dados

2. Classificar cada função de dados como ALI ou AIE

3. Contar os DER’s para cada função de dados

4. Contar os RLR’s para cada função de dados

5. Determinar a complexidade funcional de cada função de dados

6. Determinar o tamanho funcional de cada função de dados

2.6. Medindo Funções de Dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 248 -

Passo 6 : Determinar o tamanho funcional

para cada função de dados

2.6. Medindo Funções de Dados

Regra Descrição

6.1 Utilizar a tabela abaixo:

Função Complexidade

baixa média alta

ALI 7 10 15

AIE 5 7 10

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 249 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 250 -

2.7. Medindo Funções de Transação

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 251 -

Funções de Transação

Entrada Externa (EE)

Processo elementar que processa dados ou informações de controle

recebidos de fora da fronteira.

Consulta Externa (CE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira.

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 252 -

Intenção Primária das Funções de Transação

Entrada Externa (EE)

Atualizar 1 ou mais ALI’s ou alterar o comportamento da aplicação.

Consulta Externa (CE)

Apresentar informações ao usuário.

Saída Externa (SE)

Apresentar informações ao usuário.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 253 -

Intenção Primária das Funções de Transação

2.7. Medindo Funções de Transação

Ação

Tipo de Função de Transação

EE SE CE

Alterar o

comportamento

da aplicação

intenção

primária

pode

ocorrer

não

ocorre

Atualizar

1 ou mais

ALI’s

intenção

primária

pode

ocorrer

não

ocorre

Apresentar

informação

ao usuário

pode

ocorrer

intenção

primária

intenção

primária

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 254 -

Consulta Externa (CE) x Saída Externa (SE)

Consulta Externa (CE)

Não faz nenhuma das coisas abaixo: não efetua cálculos matemáticos

não mantém nenhum ALI

não altera o comportamento do sistema.

não produz dados derivados

Saída Externa (SE)

Faz pelo menos uma das coisas abaixo: efetua cálculo matemático

mantém um ou mais ALI’s

altera o comportamento do sistema.

produz dados derivados

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 255 -

Consulta Externa (CE) x Saída Externa (SE)

Consulta Externa (CE)

Não faz nenhuma das coisas abaixo: não efetua cálculos matemáticos

não mantém nenhum ALI

não altera o comportamento do sistema

não produz dados derivados

Saída Externa (SE)

Faz pelo menos uma das coisas abaixo: efetua cálculo matemático

mantém um ou mais ALI’s

altera o comportamento do sistema

produz dados derivados

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 256 -

Consulta Externa (CE) x Saída Externa (SE)

Consulta Externa (CE)

Não faz nenhuma das coisas abaixo: não efetua cálculos matemáticos

não mantém nenhum ALI

não altera o comportamento do sistema.

não produz dados derivados

Saída Externa (SE)

Faz pelo menos uma das coisas abaixo: efetua cálculo matemático

mantém um ou mais ALI’s

altera o comportamento do sistema.

produz dados derivados

dado derivado

Dado resultante de um

processamento que envolve

passos diferentes ou adicionais

à simples recuperação e

validação da informação obtida

das funções de dados.

ISO/IEC 20926-1:2009, definition 3.17

Exemplo: criar uma abreviatura

com base nas iniciais de um nome.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 257 -

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

[ISO/IEC 20926-1:2009, definition 3.30]

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 258 -

Saída Externa (SE)

Processo elementar que envia dados ou informações de controle

para fora da fronteira e inclui lógica de processamento adicional

além daquela de uma Consulta Externa.

[ISO/IEC 20926-1:2009, definition 3.30]

lógica de processamento

qualquer requisito especificamente solicitado pelo usuário para

completar um processo elementar, tal como validações, algoritmos ou

cálculos e leitura ou manutenção de uma função de dados.

[ISO/IEC 20926-1:2009, definition 3.44]

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 259 -

Formas de Lógica de Processamento

Forma de Lógica de Processamento EE SE CE

1. Efetuar validações. pode pode pode

2. Efetuar cálculos matemáticos. pode deve* não pode

3. Converter valores equivalentes. pode pode pode

4. Filtrar e selecionar dados pode pode pode

5. Analisar condições para verificar quais se aplicam. pode pode pode

6.Atualizar pelo menos 1 ALI. deve* deve* não pode

7. Referenciar pelo menos 1 ALI ou AIE. pode pode deve

8. Recuperar dados ou informações de controle. pode pode deve

9.Criar dados derivados. pode deve* não pode

10. Alterar o comportamento da aplicação. deve* deve* não pode

11. Preparar e apresentar informações a usuário. pode deve deve

12. Receber dados ou informações de controle de fora da fronteira deve pode pode

13. Ordenar ou organizar grupos de dados. pode pode pode

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 260 -

Forma de Lógica de Processamento EE SE CE

1. Efetuar validações. pode pode pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Quando um novo funcionário é incluído no sistema, a aplicação verifica a

validade de diversas informações, tais como:

verificar se o dígito verificador do CPF está correto;

verificar se a data de nascimento informada é válida (não aceitar 30/fev, 31/set, etc.);

verificar se o novo funcionário é maior de 18 anos;

verificar se o salário configurado é superior ao piso ou e inferior ao teto salarial

estabelecido para o cargo que foi informado.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 261 -

Forma de Lógica de Processamento EE SE CE

2. Efetuar cálculos matemáticos. pode deve* não pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Telas, relatórios e gráficos que informam totais, percentuais, etc.

Atenção:

Nem sempre os valores calculados são apresentados ao usuário.

Exemplo:

considere um processo que emite a lista com os nomes dos 10 funcionários

que tiveram o maior índice de reclamações por cliente atendido;

embora o índice não seja exibido ao usuário, ele teve que ser calculado

internamente, durante a execução do processo, para que fosse possível

determinar quais os 10 funcionários a serem listados.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 262 -

Forma de Lógica de Processamento EE SE CE

3. Converter valores equivalentes. pode pode pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplos:

Um processo elementar referencia taxas de câmbio do dólar para outras

moedas, sendo que a conversão é executada através da recuperação de

valores de tabelas, de modo que cálculos não são necessários.

Em lugar do valor do salário, um processo elementar exibe a faixa salarial

do funcionário, obtida por meio de uma tabela de limites das faixas.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 263 -

Forma de Lógica de Processamento EE SE CE

4. Filtrar e selecionar dados pode pode pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Para gerar uma lista de funcionários por atribuição, um processo elementar

compara o código da tarefa de uma atribuição para selecionar e listar os

funcionários com esta atribuição.

Uma tela de consulta permite que o usuário selecione somente os produtos

da linha de Informática, disponíveis no estoque da loja de Duque de Caxias.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 264 -

Forma de Lógica de Processamento EE SE CE

5. Analisar condições para verificar quais se aplicam. pode pode pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

A lógica de processamento empregada por um processo elementar na

inclusão de um funcionário, que irá variar dependendo do funcionário ser

pago através de salário mensal ou horas trabalhadas.

Sempre que o país de nascimento do novo funcionário for diferente de Brasil,

o sistema passa a permitir que o número do passaporte seja preenchido em

lugar do número do RG.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 265 -

Forma de Lógica de Processamento EE SE CE

6.Atualizar pelo menos 1 ALI. deve* deve* não pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplos:

Ao ser cadastrado um novo funcionário, um processo elementar atualiza o

ALI “Funcionário” incluindo as informações do novo funcionário.

Ao emitir uma remessa de pagamento ao banco, um processo elementar

atualiza automaticamente um campo do ALI “Fatura” indicando que a fatura

correspondente foi paga.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 266 -

Forma de Lógica de Processamento EE SE CE

7. Referenciar pelo menos 1 ALI ou AIE. pode pode deve

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplos:

Ao incluir um funcionário, o AIE “moeda” é referenciado para usar a taxa de

câmbio do dólar correta, para determinar o valor da hora do funcionário em

dólares.

Para permitir que um usuário selecione uma dentre as filiais existentes em

uma empresa em uma caixa de seleção na tela, um processo elementar

recupera os nomes de todas as filiais armazenadas no ALI “Filial” que

tenham o campo “ativa” marcado como verdadeiro.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 267 -

Forma de Lógica de Processamento EE SE CE

8. Recuperar dados ou informações de controle. pode pode deve

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Para exibir uma lista de faixas salariais possíveis, um processo elementar

recupera as faixas armazenadas em um ALI.

Um processo elementar permite que o administrador da aplicação visualize

parâmetros de controle, tais como:

o dia do mês em que o relatório mensal de vendas é emitido;

o prazo (em horas ou dias) a partir do qual uma reclamação não-atendida

é encaminhada por e-mail ao gerente do funcionário responsável;

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 268 -

Forma de Lógica de Processamento EE SE CE

9.Criar dados derivados. pode deve* não pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Para determinar (derivar) o código de registro de cada paciente, u sistema

hospitalar concatena as seguintes informações:

as 3 primeiras letras do último nome do paciente;

as 2 primeiras letras do primeiro nome do paciente;

um número sequencial de 2 dígitos, começando de “01”.

Por exemplo, a paciente Maria Aparecida da Silva recebe o código SILMA01.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 269 -

Forma de Lógica de Processamento EE SE CE

10. Alterar o comportamento da aplicação. deve* deve* não pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

O comportamento do processo elementar de pagamento de funcionários é

alterado quando uma mudança é feita para pagá-los às sextas-feiras, a cada

duas semanas, em vez de pagá-los no 15º dia e no último dia do mês.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 270 -

Forma de Lógica de Processamento EE SE CE

11. Preparar e apresentar informações a usuário. pode deve deve

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplos:

Uma lista de clientes é formatada e apresentada ao usuário em uma tela.

Um relatório de vendas é impresso.

Um gráfico de acompanhamento em tempo real da cotação de uma

mercadoria é exibido em uma tela.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 271 -

Forma de Lógica de Processamento EE SE CE

12. Receber dados ou informações de controle de fora da fronteira deve pode pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Um usuário entra com várias informações para incluir uma ordem de compra

no sistema.

Um usuário cadastra um novo cliente no sistema.

Um usuário altera as configurações utilizadas na emissão periódica

automática do relatório consolidado de vendas.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 272 -

Forma de Lógica de Processamento EE SE CE

13. Ordenar ou organizar grupos de dados. pode pode pode

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Exemplo:

Uma tela de consulta de funcionários oferece opções para ordenar a lista

exibida pelo nome da filial, pelo nome do funcionário ou por outros campos.

Uma tela de registro de pedido de compra organiza as informações

existentes no cabeçalho da ordem no topo da tela e as informações

existentes no corpo da ordem na parte inferior da tela.

Um processo elementar que emite uma listagem de resultados de vendas

organiza e agrupa as informações por filial e por família de produto,

apresentando legendas e resultados parciais por filial e família.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 273 -

2.7. Medindo Funções de Transação

Formas de Lógica de Processamento

Importante:

Um único processo elementar pode incluir múltiplas formas de lógica de

processamento.

Exemplo:

Um processo elementar que emite um relatório de vendas pode incluir:

validações

filtragem

cálculos matemáticos

atualização de ALI (registrando que o relatório foi emitido)

ordenação e organização de dados

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 274 -

Formas de Lógica de Processamento

Forma de Lógica de Processamento EE SE CE

1. Efetuar validações. pode pode pode

2. Efetuar cálculos matemáticos. pode deve* não pode

3. Converter valores equivalentes. pode pode pode

4. Filtrar e selecionar dados pode pode pode

5. Analisar condições para verificar quais se aplicam. pode pode pode

6.Atualizar pelo menos 1 ALI. deve* deve* não pode

7. Referenciar pelo menos 1 ALI ou AIE. pode pode deve

8. Recuperar dados ou informações de controle. pode pode deve

9.Criar dados derivados. pode deve* não pode

10. Alterar o comportamento da aplicação. deve* deve* não pode

11. Preparar e apresentar informações a usuário. pode deve deve

12. Receber dados ou informações de controle de fora da fronteira deve pode pode

13. Ordenar ou organizar grupos de dados. pode pode pode

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 275 -

Etapas do processo de medição:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ALR’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 276 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ARL’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 277 -

Passo 1 : Identificar os processos elementares

Regra Descrição

1.1 Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

1.2 Identificar um Processo Elementar para cada atividade que satisfizer

todos os requisitos acima.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 278 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

Exemplo

Um requisito funcional de usuário pode especificar que o sistema deve

manter um cadastro de funcionários.

Este requisito deve ser decomposto nas menores unidades de atividade

significativas para o usuário que constituam transações completas e

autocontidas e que deixem a aplicação em um estado consistente.

Exemplos:

incluir novo funcionário consultar dados de funcionário

alterar dados de funcionário listar funcionários

excluir funcionário

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 279 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 280 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

significativa para o usuário

reconhecível pelo usuário e que satisfaz um

requisito funcional de usuário.

[ISO/IEC 20926-1:2009, definition 3.41]

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 281 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 282 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

autocontida

que não requeira nenhum passo de processamento anterior ou

subsequente para iniciar ou completar o(s) requisito(s) funcional(is)

de usuário que se propõe a cumprir.

[ISO/IEC 20926-1:2009, definition 3.47]

completa

que processa toda a informação necessária para satisfazer o(s)

requisito(s) funcional(is) de usuário que se propõe a cumprir.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 283 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

Transação completa e autocontida (exemplo)

Suponha um formulário de entrada de dados composto por uma sequência de 3 telas,

com um botão Continuar nas duas primeiras telas e um botão Gravar na última tela.

O preenchimento apenas da primeira tela, seguido do acionamento do botão

Continuar, não constitui uma transação completa e autocontida, visto que requer

processamento adicional para cumprir o requisito funcional de usuário.

Somente o preenchimento das 3 telas, seguido do acionamento do botão Gravar,

constituirá uma transação completa e autocontida.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 284 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 285 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

estado consistente

Ponto no qual todo o processamento foi

executado e o requisito funcional de usuário

foi plenamente satisfeito, não havendo mais

nada a fazer.

[ISO/IEC 20926-1:2009, definition 3.10]

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 286 -

Passo 1 : Identificar os processos elementares

Regra

1.1

Compor e/ou decompor os Requisitos Funcionais de Usuário nas

menores unidades de atividade tais que cada uma delas: – seja significativa para o usuário

– constitua uma transação completa e autocontida

– deixe o “negócio” da aplicação contada em estado consistente

2.7. Medindo Funções de Transação

Estado consistente (exemplo)

Suponha que o requisito funcional de usuário seja imprimir um cheque e

marcar a respectiva conta como paga.

Neste caso, se o cheque for impresso sem marcar a respectiva conta como

paga, ou se a conta for marcada sem imprimir o respectivo cheque, o

sistema ficará em um estado inconsistente.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 287 -

Passo 1 : Identificar os processos elementares

Regra

1.2

Identificar um Processo Elementar para cada atividade que satisfizer

todos os requisitos acima.

2.7. Medindo Funções de Transação

Cada atividade que tenha significado para o usuário e que

seja completa e autocontida, deixando a aplicação em um

estado consistente, será identificada como um processo elementar.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 288 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processos elementares

3. Classificar cada PE como função de transação

4. Contar os ARL’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 289 -

Passo 2 : Verificar unicidade dos processos elementares

Regra Descrição

2.1 Considerar como 1 único Processo Elementar aqueles que tenham: – mesmo conjunto de DER’s

– mesmo conjunto de ALR’s

– mesmo conjunto de lógicas de processamento

2.2 Não dividir um Processo Elementar com múltiplas formas de

processamento em múltiplos Processos Elementares.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 290 -

Passo 2 : Verificar unicidade dos processos elementares

2.1 Considerar como 1 único Processo Elementar aqueles que tenham: – mesmo conjunto de DER’s

– mesmo conjunto de ALR’s

– mesmo conjunto de lógicas de processamento

2.7. Medindo Funções de Transação

Observação

Embora expostas aqui em formato sequencial, as atividades de

medição funcional são iterativas.

Por exemplo: a verificação de unicidade descrita aqui no passo 2

requer a contagem de ALR’s e de DER’s descrita nos passos 4 e 5.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 291 -

Passo 2 : Verificar unicidade dos processos elementares

2.1 Considerar como 1 único Processo Elementar aqueles que tenham: – mesmo conjunto de DER’s

– mesmo conjunto de ALR’s

– mesmo conjunto de lógicas de processamento

2.7. Medindo Funções de Transação

Observação

Um mesmo processo elementar pode apresentar pequenas variações nos

DER’s e ALR’s, bem como múltiplas alternativas, variações e ocorrências

dos 13 tipos de processamento lógico mencionados anteriormente.

Exemplo:

Um processo elementar para incluir novo funcionário pode ter variações de

DER e de lógica de processamento, dependendo de o novo funcionário ter

dependentes ou não.

Mesmo assim trata-se de 1 único PE, e não um PE para funcionários com

dependentes e outro PE para funcionários com dependentes.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 292 -

Passo 2 : Verificar unicidade dos processos elementares

2.2 Não dividir um Processo Elementar com múltiplas formas de

processamento em múltiplos Processos Elementares.

2.7. Medindo Funções de Transação

Exemplo

Considere um processo elementar que recebe e valida informações do

usuário para, com base nessas informações, recuperar dados de um ALI,

filtrar esses dados e organizá-los para exibição ao usuário.

Embora execute múltiplas formas de lógica de processamento, trata-se de

1 único processo elementar.

Ele não poderia ser dividido em múltiplos PE’s porque as atividades isoladas

de validação, filtragem, etc. não constituiriam transações completas.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 293 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ARL’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 294 -

Passo 3 : Classificar cada PE como função de transação

Regra Descrição

3.1 Identificar a intenção primária de cada PE dentre uma das seguintes: – atualizar um ou mais ALI’s ou alterar o comportamento da aplicação;

– apresentar informação ao usuário.

3.2 Classificar como EE os Processos Elementares que: – têm como intenção primária atualizar ALI’s ou alterar o comportamento da aplicação;

– incluem lógica de processamento para aceitar dados ou informações de controle

que entram pela fronteira da aplicação;

3.3 Classificar como SE os Processos Elementares que: – têm como intenção primária apresentar informações ao usuário;

– incluem pelo menos uma dentre as seguintes lógicas de processamento:

efetuar cálculos matemáticos criar dados derivados

alterar o comportamento da aplicação atualizar 1 ou mais ALI’s

3.4 Classificar como CE os Processos Elementares que: – têm como intenção primária apresentar informações ao usuário;

– não incluem nenhuma das lógicas de processamento requeridas para SE’s.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 295 -

Passo 3 : Classificar cada PE como função de transação

3.1 Identificar a intenção primária de cada PE dentre uma das seguintes: – atualizar um ou mais ALI’s ou alterar o comportamento da aplicação;

– apresentar informação ao usuário.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 296 -

Passo 3 : Classificar cada PE como função de transação

3.2 Classificar como EE os Processos Elementares que: – têm como intenção primária atualizar ALI’s ou alterar o comportamento da aplicação;

– incluem lógica de processamento para aceitar dados ou informações de controle

que entram pela fronteira da aplicação;

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 297 -

Passo 3 : Classificar cada PE como função de transação

3.3 Classificar como SE os Processos Elementares que: – têm como intenção primária apresentar informações ao usuário;

– incluem pelo menos uma dentre as seguintes lógicas de processamento:

efetuar cálculos matemáticos criar dados derivados

alterar o comportamento da aplicação atualizar 1 ou mais ALI’s

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 298 -

Passo 3 : Classificar cada PE como função de transação

3.4 Classificar como CE os Processos Elementares que: – têm como intenção primária apresentar informações ao usuário;

– não incluem nenhuma das lógicas de processamento requeridas para SE’s.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 299 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ALR’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 300 -

Passo 4 : Contar ALR’s para cada função de transação

Regra Descrição

4.1 Contar 1 ALR para cada ALI lido ou mantido pelo processo elementar.

4.2 Contar 1 ALR para cada AIE lido pelo processo elementar.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 301 -

Passo 4 : Contar ALR’s para cada função de transação

4.1 Contar 1 ALR para cada ALI lido ou mantido pelo processo elementar.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 302 -

Passo 4 : Contar ALR’s para cada função de transação

4.2 Contar 1 ALR para cada AIE lido pelo processo elementar.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 303 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ARL’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 304 -

Passo 5 : Contar DER’s para cada função de transação

Regra Descrição

5.1 Contar 1 DER para cada atributo único, reconhecível pelo usuário e não-

repetido, que cruze a fronteira (entrando ou saindo) durante o processamento.

5.2 Acrescentar 1 (e somente 1) DER no caso de a função de transação envolver o

envio de 1 ou mais mensagens de resposta (confirmação, erro, etc.).

5.3 Acrescentar 1 DER pela capacidade de o usuário iniciar a ação do processo

elementar (apenas 1 DER, mesmo havendo múltiplos meios de iniciação).

5.4 Não considerar os seguintes itens como DER: literais tais como títulos de relatórios, legendas de telas e de painéis, etc.

estampas geradas pela aplicação, tais como data e hora

variáveis de paginação, números de página e atributos de posicionamento

recursos de auxílio à navegação (“anterior”, “próximo”, “primeiro”, “último”, etc.)

atributos gerados dentro da fronteira e gravados em ALI sem cruzar a fronteira

atributos recuperados de ALI ou AIE e usados no processamento sem cruzar a fronteira

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 305 -

Passo 5 : Contar DER’s para cada função de transação

5.1 Contar 1 DER para cada atributo único, reconhecível pelo usuário e não-

repetido, que cruze a fronteira (entrando ou saindo) durante o processamento.

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 306 -

Passo 5 : Contar DER’s para cada função de transação

5.2 Acrescentar 1 (e somente 1) DER no caso de a função de transação envolver o

envio de 1 ou mais mensagens de resposta (confirmação, erro, etc.).

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 307 -

Passo 5 : Contar DER’s para cada função de transação

5.3 Acrescentar 1 DER pela capacidade de o usuário iniciar a ação do processo

elementar (apenas 1 DER, mesmo havendo múltiplos meios de iniciação).

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 308 -

Passo 5 : Contar DER’s para cada função de transação

5.4 Não considerar os seguintes itens como DER: literais tais como títulos de relatórios, legendas de telas e de painéis, etc.

estampas geradas pela aplicação, tais como data e hora

variáveis de paginação, números de página e atributos de posicionamento

recursos de auxílio à navegação (“anterior”, “próximo”, “primeiro”, “último”, etc.)

atributos gerados dentro da fronteira e gravados em ALI sem cruzar a fronteira

atributos recuperados de ALI ou AIE e usados no processamento sem cruzar a fronteira

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 309 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ARL’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 310 -

Passo 6 : Determinar a complexidade funcional

para cada função de transação

Regra Descrição

6.1 Para EE’s, utilizar a tabela abaixo:

EE Quantidade de DER’s

1 a 4 5 a 15 16 ou mais

0 a 1 baixa baixa média

2 baixa média alta

3 ou mais média alta alta Qtd

e. A

LR

’s

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 311 -

Passo 6 : Determinar a complexidade funcional

para cada função de transação

Regra Descrição

6.2 Para CE’s, utilizar a tabela abaixo:

CE Quantidade de DER’s

1 a 5 6 a 19 20 ou mais

1 baixa baixa média

2 a 3 baixa média alta

4 ou mais média alta alta Qtd

e. A

LR

’s

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 312 -

Passo 6 : Determinar a complexidade funcional

para cada função de transação

Regra Descrição

6.3 Para SE’s, utilizar a tabela abaixo:

SE Quantidade de DER’s

1 a 5 6 a 19 20 ou mais

0 a 1 baixa baixa média

2 a 3 baixa média alta

4 ou mais média alta alta Qtd

e. A

LR

’s

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 313 -

Etapas:

1. Identificar os processos elementares

2. Verificar a unicidade dos processo elementares

3. Classificar cada PE como função de transação

4. Contar os ARL’s para cada função de transação

5. Contar os DER’s para cada função de transação

6. Determinar a complexidade funcional para cada função de transação

7. Determinar o tamanho funcional para cada função de transação

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 314 -

Passo 7 : Determinar o tamanho funcional

para cada função de transação

Regra Descrição

7.1 Utilizar a tabela abaixo:

Função Complexidade

baixa média alta

EE 3 4 6

CE 3 4 6

SE 4 5 7

2.7. Medindo Funções de Transação

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 315 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 316 -

2.8. Calculando o Tamanho Funcional

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 317 -

2.7. Calculando o Tamanho Funcional

Tipos de Contagem

A forma de calcular o tamanho funcional depende do tipo de contagem

que está sendo feita, que pode ser:

Contagem de Projeto de Desenvolvimento

Contagem Inicial da Aplicação (após desenvolvimento)

Contagem de Projeto de Melhoria

Atualização da Contagem da Aplicação (após melhoria)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

- 318 -

1. Desenvolvimento iniciado

projeto de desenvolvimento

iniciado

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 319 -

Cont. Estimada

Projeto de

Desenvolvimento

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

projeto de desenvolvimento

iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 320 -

Cont. Estimada

Projeto de

Desenvolvimento

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

projeto de

desenvolvimento iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 321 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento projeto de

desenvolvimento iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 322 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

inicializar projeto de

desenvolvimento iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

projeto de melhoria iniciado

- 323 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

inicializar projeto de

desenvolvimento iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 324 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

inicializar projeto de

desenvolvimento iniciado

projeto de melhoria iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

projeto concluído

- 325 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

inicializar projeto de

desenvolvimento iniciado

projeto de melhoria iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 326 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem Final

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

contagem final melhoria

inicializar projeto de

desenvolvimento iniciado

projeto de melhoria iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 327 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem Final

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

contagem final melhoria atualizar contagem do baseline

inicializar

atualizar

projeto de desenvolvimento

iniciado

projeto de melhoria iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 328 -

Cont. Estimada

Projeto de

Desenvolvimento

Contagem Final

Projeto de

Desenvolvimento

Cont. Estimada

Projeto de

Melhoria

Contagem Final

Projeto de

Melhoria

Contagem

Aplicação

(baseline)

projeto concluído

projeto concluído

1. Desenvolvimento iniciado

cont. estimada desenvolvimento

2. Desenvolvimento concluído

contagem final desenvolvimento inicializar contagem do baseline

3. Projeto de melhoria iniciado

contagem estimada melhoria

4. Projeto de melhoria concluído

contagem final melhoria atualizar contagem do baseline

inicializar

atualizar

projeto de desenvolvimento

iniciado

projeto de melhoria iniciado

Tipos de Contagem

Cenário típico ilustrando a evolução de diferentes tipos de contagem:

2.7. Calculando o Tamanho Funcional

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 329 -

2.7. Calculando o Tamanho Funcional

Fórmulas para cada Tipo de Contagem

Contagem de Projeto de Desenvolvimento

Contagem Inicial da Aplicação (após desenvolvimento)

Contagem de Projeto de Melhoria

Atualização da Contagem da Aplicação (após melhoria)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 330 -

2.7. Calculando o Tamanho Funcional

Fórmulas para cada Tipo de Contagem

Contagem de Projeto de Desenvolvimento

Contagem Inicial da Aplicação (após desenvolvimento)

Contagem de Projeto de Melhoria

Atualização da Contagem da Aplicação (após melhoria)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 331 -

2.7. Calculando o Tamanho Funcional

Fórmula para Projeto de Desenvolvimento:

DFP = ADD + CFP

onde:

DFP = pontuação do projeto de desenvolvimento Development project Function Point count

ADD = pontuação das funções entregues ao usuário

ADDed functions

CFP = pontuação das funcionalidades de conversão

Conversion functionality Function Point count

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 332 -

2.7. Calculando o Tamanho Funcional

Fórmula para Contagem Inicial de Aplicação:

AFP = ADD

onde:

AFP = pontuação da aplicação Application Function Point count

ADD = pontuação das funções entregues ao usuário

ADDed functions

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 333 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Requisitos Funcionais de Usuário

Registrar informações a respeito de cada visitante que entrar na empresa (XX informações significativas para o usuário + botão de ação + mensagens de confirmação/erro)

Uma das informações registradas é o nome do funcionário visitado, que deverá

ser selecionado em uma lista obtida de tabela mantida pelo sistema de RH.

Emitir relatório de visitantes (YY informações significativas para o usuário + botão de ação)

Emitir relatório de funcionários visitados (ZZ informações significativas para o usuário + botão de ação)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 334 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Requisitos de Conversão de Dados

Migrar para o novo sistema os registros de visitantes antigos, gravados em

planilhas Excel, convertendo o nome do funcionário visitado em matrícula, com

auxílio da tabela de funcionários mantida pelo sistema de RH. (YY informações significativas para o usuário)

Gerar listagem com registros que não puderem ser migrados. (YY informações significativas para o usuário)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 335 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Desenvolvimento

Função Novas (ADD) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL ADD 29

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 336 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Desenvolvimento

Função Novas (ADD) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL ADD 29

Funcionalidades de conversão ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 337 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Desenvolvimento

Função Novas (ADD) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL ADD 29

Funcionalidades de Conversão (CFP) Tipo DER RLR ALR Complex. PF

Funcionário – migrar das planilhas Excel EE 10 - 2 média 4

TOTAL CFP 4

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 338 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Desenvolvimento

Contagem do Projeto de Desenvolvimento

DFP = ADD + CFP = 29 + 4 = 33

Contagem Inicial da Aplicação

AFP = ADD = 29

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 339 -

2.7. Calculando o Tamanho Funcional

Fórmulas para cada Tipo de Contagem

Contagem de Projeto de Desenvolvimento

Contagem Inicial da Aplicação (após desenvolvimento)

Contagem de Projeto de Melhoria

Atualização da Contagem da Aplicação (após melhoria)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 340 -

2.7. Calculando o Tamanho Funcional

Fórmula para Projeto de Melhoria:

EFP = ADD + CHGA + CFP + DEL

onde:

EFP = pontuação do projeto de melhoria Enhancement project Function Point count

ADD = pontuação das funções adicionadas

ADDed functions

CHGA = pontuação das funções modificadas após a melhoria

CHanGed functions (After enhancement)

CFP = pontuação das funcionalidades de conversão

Conversion functionality Function Point count

DEL = pontuação das funções excluidas

DELeted functions

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 341 -

2.7. Calculando o Tamanho Funcional

Fórmula para Contagem de Aplicação após Melhoria:

AFPA = AFPB + ADD + CHGA – CHGB – DEL

onde:

AFPA = pontuação da aplicação após a melhoria Application Function Point count (After enhancement)

AFPB = pontuação da aplicação antes da melhoria Application Function Point count (Before enhancement)

ADD = pontuação das funções adicionadas

ADDed functions

CHGA = pontuação das funções modificadas após a melhoria

CHanGed functions (After enhancement)

CHGB = pontuação das funções modificadas antes da melhoria

CHanGed functions (Before enhancement)

DEL = pontuação das funções excluidas

DELeted functions

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 342 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Requisitos Funcionais de Usuário (Projeto de Manutenção)

Passar a incluir, entre as informações a serem registradas no sistema e

exibidas no relatório de visitantes, o nome do prédio onde foi feita a visita.

O nome do prédio deve ser selecionado de uma lista obtida a partir de tabela

mantida pelo sistema de Ativo Fixo

Desativar o relatório de visitados.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 343 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Requisitos de Conversão de Dados (Projeto de Manutenção)

Na ocasião da implementação da novo campo contendo o nome do prédio, os

registros pré-existentes deverão ter esse campo preenchido automaticamente

com o nome “PASTEUR”, que é o nome do prédio onde fica a matriz da

empresa.

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 344 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Aplicação Antes da Melhoria (AFPB) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL AFPB 29

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 345 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Aplicação Antes da Melhoria (AFPB) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL AFPB 29

Funcionalidades de conversão ?

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 346 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Aplicação Antes da Melhoria (AFPB) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL AFPB 29

Não há ! ! !

Preenchimento com valor fixo não é PE (não atravessa a fronteira)

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 347 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Funcionalidades Adicionadas (ADD) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

Prédio AIE 2 1 - baixa 5

Prédio – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL ADD 8

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 348 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Funções a Modificar (CHGB) Tipo DER RLR ALR Complex. PF

Visitante ALI 10 1 - baixa 7

Visitante – registrar visitante EE 12 - 2 média 4

Visitante – emitir relatório de visitantes SE 11 - 2 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

Prédio AIE 2 1 - baixa 5

Prédio – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL CHGB 16

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 349 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Funções Modificadas (CHGA) Tipo DER RLR ALR Complex. PF

Visitante ALI 11 1 - baixa 7

Visitante – registrar visitante EE 13 - 3 alta 6

Visitante – emitir relatório de visitantes SE 12 - 3 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

Prédio AIE 2 1 - baixa 5

Prédio – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL CHGA 18

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 350 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Funções Desativadas/Excluidas (DEL) Tipo DER RLR ALR Complex. PF

Visitante ALI 11 1 - baixa 7

Visitante – registrar visitante EE 13 - 3 alta 6

Visitante – emitir relatório de visitantes SE 12 - 3 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

Prédio AIE 2 1 - baixa 5

Prédio – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL DEL 5

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 351 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Melhoria

Aplicação Após Melhoria (AFPA) Tipo DER RLR ALR Complex. PF

Visitante ALI 11 1 - baixa 7

Visitante – registrar visitante EE 13 - 3 alta 6

Visitante – emitir relatório de visitantes SE 12 - 3 média 5

Visitante – emitir relatório de visitados SE 11 - 2 média 5

Funcionário AIE 2 1 - baixa 5

Funcionário – listar na caixa de seleção CE 3 - 1 baixa 3

Prédio AIE 2 1 - baixa 5

Prédio – listar na caixa de seleção CE 3 - 1 baixa 3

TOTAL AFPA 34

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 352 -

2.7. Calculando o Tamanho Funcional

Exemplo: Sistema de Registro de Visitantes

Projeto de Desenvolvimento

Contagem do Projeto de Melhoria

EFP = ADD + CHGA + CFP + DEL = 8 + 18 + 0 + 5 = 31

Atualização da Contagem da Aplicação Após Melhoria

AFPA = AFPB + ADD + CHGA – CHGB – DEL

= 29 + 8 + 18 – 16 – 5 = 34

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 353 -

2.1. Conceitos e Definições

2.2. Visão Geral do Processo

2.3. Reunindo a Documentação Disponível

2.4. Determinando o Escopo e a Fronteira da Contagem

2.5. Identificando os Requisitos Funcionais de Usuário

2.6. Medindo Funções de Dados

2.7. Medindo Funções de Transação

2.8. Calculando o Tamanho Funcional

2.9. Documentando e Reportando

2. Medição de Tamanho Funcional por Análise de Pontos de Função

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 354 -

2.9. Documentando e Reportando

Determinar o

escopo e a

fronteira da

contagem e

identificar

requisitos

funcionais

de usuário

Medir

funções de

dados

Medir

funções de

transação

Calcular o

tamanho

funcional

Documentar

e reportar

Reunir a

documentação

disponível

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 355 -

Módulo 03

Estudos de Caso

( os estudos de caso são dados em sala de aula )

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 356 -

Módulo 04

Tópicos Complementares em APF

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 357 -

4.1. Implantação Prática do Processo de Métricas

(palestra de convidado externo)

4.2. Medição Funcional Antecipada

4.3. Medição Funcional Ajustada

4. Tópicos Complementares em APF

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 358 -

4.1. Implantação Prática do Processo de Métricas

(palestra de convidado externo)

4.2. Medição Funcional Antecipada

4.3. Medição Funcional Ajustada

4. Tópicos Complementares em APF

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 359 -

4.1. Implantação Prática do Processo de Métricas

(palestra de convidado externo)

4.2. Medição Funcional Antecipada

4.3. Medição Funcional Ajustada

4. Tópicos Complementares em APF

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 360 -

Consiste em estimar o tamanho funcional por meio de um

processo simplificado de contagem de pontos de função.

É empregada geralmente com os seguintes objetivos:

• Estimar o tamanho funcional em curtíssimo prazo e/ou com baixo

consumo de horas de especialistas;

• Estimar o tamanho funcional de uma aplicação ou projeto para o

qual ainda não existam muitas informações disponíveis.

– Exemplo: para orçar projeto de desenvolvimento ou manutenção em

seus estágios iniciais de concepção, antes de mesmo de existir um

detalhamento de seus requisitos funcionais.

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 361 -

A NESMA reconhece três tipos de medição funcional:

• Contagem DETALHADA método IFPUG padrão

• Contagem ESTIMATIVA

• Contagem INDICATIVA

Os métodos antecipativos visam possibilitar a medição

funcional nos momentos iniciais do ciclo de vida de um

sistema, quando há poucas informações disponíveis.

A contagem indicativa da NESMA é também conhecida

como método holandês.

métodos antecipativos

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 362 -

Contagem DETALHADA

A contagem detalhada é o método usual de contagem de medição

funcional definido pelo IFPUG, que consiste em:

1. Identificar todos os tipos de função (ALI, AIE, EE, CE e SE).

2. Determinar a complexidade (baixa/média/alta) para todos os tipos de

função (ALI, AIE, EE, CE e SE).

3. Calcular o total de pontos de função.

A contagem detalhada requer a identificação e a contagem dos

DET’s, RET’s e FTR’s para a determinação da complexidade de

todas as funções.

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 363 -

Contagem ESTIMATIVA

A contagem estimativa é um método simplificado de medição

funcional que consiste em:

1. Identificar todos os tipos de função (ALI, AIE, EE, CE e SE).

2. Considerar complexidade baixa para todas as funções

de dados (ALI e AIE).

3. Considerar complexidade média para todas as funções transacionais

(EE, CE e SE).

4. Calcular o total de pontos de função.

A diferença em relação à contagem detalhada é que

a complexidade das funções é pré-definida.

Desnecessário identificar e contar DET’s, RET’s e FTR’s.

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 364 -

Fundamentação

A contagem estimativa se baseia em médias de mercado apuradas

no ISBG Benchmark :

Tipo de

Função

Média

de PF

Complex.

Baixa

Complex.

Média

Complex.

Alta

ALI 7,4 7 10 15

AIE 5,5 5 7 10

EE 4,3 3 4 6

SE 5,4 4 5 7

CE 3,8 3 4 6

Fonte: ISBSG Benchmark release 5

Contagem ESTIMATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 365 -

A contagem indicativa é um método simplificado de

medição funcional que consiste em:

1. Identificar somente as funções de dados (ALI e AIE).

2. Calcular o total de pontos de função considerando

35 pontos para cada ALI e 15 pontos para cada AIE.

A diferença em relação à contagem estimativa é que as

funções transacionais não precisam ser identificadas.

Contagem INDICATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 366 -

Fundamentação

A contagem indicativa se baseia nas médias de mercado

apuradas no ISBSG Benchmark considerando que :

• a cada ALI estão associadas, em média, três EE’s (adicionar,

alterar e excluir dados), 1 CE e 2 SE’s ;

• a cada AIE estão associadas, em média, 1 CE e 1 SE.

Desta forma, pontua-se :

• para ALI: 7,4 (ALI) + 3 x 4,3 (EE) + 1 x 3,8 (CE) + 2 x 5,4 (SE) 35

• para AIE: 5,5 (AIE) + 1 x 3,8 (CE) + 1 x 5,4 (SE) 15

Contagem INDICATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 367 -

Quanto menos detalhado o método de contagem, menos

informação necessária para estimar o tamanho funcional.

Método de Contagem Informação Necessária

Contagem Detalhada

( IFPUG )

Identificar funções de dados

Identificar funções de transação

Identificar e contar DET’s, RET’s e FTR’s.

Contagem Estimativa Identificar funções de dados

Identificar funções de transação

Contagem Indicativa Identificar funções de dados

Quadro Comparativo

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 368 -

Requisitos de Usuário:

O usuário deseja manter dados de cliente e produto e referenciar

dados de fornecedor.

A informação acima é suficiente para uma contagem indicativa !

Funções de Dados Identificadas:

ALI’s: Cliente e Produto

AIE’s: Fornecedor

Exemplo de Contagem INDICATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 369 -

Requisitos de Usuário:

O usuário deseja manter dados de cliente e produto e referenciar

dados de fornecedor.

Contagem Indicativa:

Função de Dados

Tipo de

Função

Pontuação

(pré-definida)

Produto ALI 35

Cliente ALI 35

Fornecedor AIE 15

Indicativo do tamanho funcional 85 pf

Exemplo de Contagem INDICATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 370 -

Requisitos de Usuário:

É necessário manter um cadastro de clientes, com funcionalidade para

adicionar, alterar, excluir e visualizar dados, do qual poderão ser emitidos 4

diferentes tipos de relatórios.

É necessário manter um cadastro de produtos, com funcionalidade para

adicionar, alterar, excluir e visualizar dados, do qual poderá ser emitido um

relatório.

É necessário consultar dados dos fornecedores dos produtos por meio de

seu número e emitir um relatório com totalização de dados de

fornecedores.

As informações acima permitem uma contagem estimativa !

Exemplo de Contagem ESTIMATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 371 -

Função de Dados ou Transacional Tipo de Função Complexidade Pontuação Cliente ALI Baixa 7

Produto ALI Baixa 7

Fornecedor AIE Baixa 5

Cliente – incluir EE Média 4

Cliente – alterar dados EE Média 4

Cliente – excluir EE Média 4

Cliente – consultar CE Média 4

Cliente – relatório 1 SE Média 5

Cliente – relatório 2 SE Média 5

Cliente – relatório 3 SE Média 5

Cliente – relatório 4 SE Média 5

Produto – incluir EE Média 4

Produto – alterar dados EE Média 4

Produto – excluir EE Média 4

Produto – consultar CE Média 4

Produto – relatório 5 SE Média 5

Fornecedor – consultar CE Média 4

Fornecedor – relatório 6 SE Média 5

Estimativa do tamanho funcional 85 fp

Exemplo de Contagem ESTIMATIVA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 372 -

Para efetuar uma medição funcional por meio da contagem

detalhada de pontos de função segundo o padrão IFPUG, é

necessário que esteja definido o detalhamento dos campos de dados

dos arquivos lógicos, das telas e dos relatórios previstos no projeto.

De posse dessa informação, pode ser avaliada a complexidade real

de cada uma das funções de dados e transacionais identificadas,

como no exemplo a seguir . . .

Detalhando a Contagem ESTIMATIVA . . .

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 373 -

Função de Dados ou Transacional Tipo de Função Complexidade Pontuação Cliente ALI Média 10

Produto ALI Baixa 7

Fornecedor AIE Baixa 5

Cliente – incluir EE Alta 6

Cliente – alterar dados EE Média 4

Cliente – excluir EE Baixa 3

Cliente – consultar CE Baixa 3

Cliente – relatório 1 SE Baixa 4

Cliente – relatório 2 SE Média 5

Cliente – relatório 3 SE Baixa 4

Cliente – relatório 4 SE Alta 7

Produto – incluir EE Média 4

Produto – alterar dados EE Média 4

Produto – excluir EE Baixa 3

Produto – consultar CE Média 4

Produto – relatório 5 SE Média 5

Fornecedor – consultar CE Baixa 3

Fornecedor – relatório 6 SE Média 5

Estimativa do tamanho funcional 86 fp

Possível Contagem DETALHADA

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 374 -

No exemplo visto, as medições indicativa e estimativa forneceram

valores muito próximos ao resultado da medição detalhada.

Mas nem sempre isso ocorre !

Até que ponto podemos confiar em medições antecipativas

(estimativa e indicativa) ???

Na prática, quanto menor o nível de detalhamento na medição,

menor é a exatidão da medida.

Os gráficos a seguir mostram os resultados de um levantamento

comparativo das medições indicativa, estimativa e detalhada,

realizado pela NESMA, que envolveu de 100 projetos . . .

Detalhamento X Precisão da Medida

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 375 -

Estimativa x Detalhada

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 376 -

Indicativa x Detalhada

4.2. Medição Funcional Antecipada

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 377 -

4.1. Implantação Prática do Processo de Métricas

(palestra de convidado externo)

4.2. Medição Funcional Antecipada

4.3. Medição Funcional Ajustada

4. Tópicos Complementares em APF

GQS 607 – Métricas de Software Prof. Heraldo L. S. Almeida

- 378 -

Muito Obrigado !