25
Aula: Análise de Pontos de Função (FPA) Bruno Hott

Aula: Análise de Pontos de Função (FPA) · 5 Notas introdutórias sobre FPA Baixo custo – Incorporar FPA ao desenvolvimento de software é fácil. – Custos crescem em cerca

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Aula:Análise de Pontos de Função (FPA)

Bruno Hott

2

Objetivos

1. Medir um software quantificando as funcionalidades requisitadas pelo cliente.

2. Medir o desenvolvimento e a manutenção do software independente da tecnologia utilizada para implementação.

3. Medir o desenvolvimento e a manutenção do software independente da tecnologia utilizada para implementação.

Com relação aos objetivos 2 e 3, diversas organizações tem criado grandes repositórios de contagens de Pontos de Função (FP). Estes repositórios formam uma ferramenta poderosa para trabalhos de estimativas de software, pois permitem a comparação entre projetos similares que já foram desenvolvidos.

3

O que é um “Function Point (FP)”?

● FP é uma unidade padrão de medida que representa o tamanho funcional de uma aplicação.

– Da mesma maneira que uma casa é medida em metros quadrados, o tamanho de uma aplicação pode ser medida pelo número de pontos de função que ela entrega aos usuários da aplicação.

– Exemplo: Digamos que você vá construir uma casa com 200m². Se você utilizar materiais baratos, você construirá a $800 por m². O que dá $160,000. Se você utilizar materiais melhores e o custo for de $1,100, você desembolsará $220,000.

4

Notas introdutórias sobre FPA

● Medição é realizada pela perspectiva do usuário

– Baseada no visão do usuário sobre o sistema.

– Baseada no que o usuário pediu, não no que foi entregue.

– Baseada na maneira que o usuário interage com o sistema, incluindo as janelas que o usuário utiliza para entrar com dados e os relatórios que os usuários recebem como output.

– Baseado no entendimento do usuário dos dados que precisam ser armazenados e processados pelo sistema.

● Independente de tecnologia

– Apenas me mostre suas telas e suas tabelas de dados que calcularei o número de pontos de função para você.

5

Notas introdutórias sobre FPA

● Baixo custo

– Incorporar FPA ao desenvolvimento de software é fácil.

– Custos crescem em cerca de 1%

● Repetível

– Estudos mostram que diferentes contadores de ponto de função podem contar a mesma aplicação independentemente com uma acurácia de 10% entre eles.

– Sem essa característica não poderíamos confiar nos dados de centenas de aplicações armazenados em repositórios pelo mundo.

● Funciona bem com casos de uso

– Podendo inclusive funcionar com o conceito de “histórias” em Extreme Programming (XP)

6

Mais informações

● Grupo de usuários extenso

– International Function Point User Group (IFPUG) é uma organização governada pelos seus membros que consiste em mais de 1,200 membros ao longo de 30 países.

● Padrão ISO

– IFPUG v4.1 é um padrão ISO

● Padrão de facto

– FPs são utilizados como padrão de facto para estimativa de custo de aplicações assim como Cocomo II, Construx Estimate etc.

● Certified Funcition Point Specialist (CFPS)

– Certificação IFPUG.

● Counting Practices Manual (CPM)

– Manual oficial criado e distribuído pela IFPUG.

● FP data repositories

– Existem diversos repositórios grandes de dados de projetos que utilizaram FPA

7

Um pouco de história

● A história dos pontos de função começam com a introdução do conceito por Alan Albrecht em 1979

1979 FPs introduzidos por Alan Albrecht

1984 Primeiros guidelines para FP

1986 Criação do IFPUG

1994 CPM 4.0

2003 Padrão ISO

8

Os benefícios da Análise de Pontos de Função

● Entender o tamanho funcional das aplicações é uma mina de outo para outras informações que vão ajudar no traba-lho de gerenciamento de projetos de desenvolvimento de software, incluindo:

– A habilidade de estimar precisamente:● O custo do projeto● A duração do projeto● O tamanho da equipe do projeto

– Um entendimento de outras métricas importantes:● Taxa de defeitos de um projeto● Custo por FP● FP's por hora (o que podemos chamar de “velocidade”)● Benefícios de produtividade ao se usar ferramentas novas ou diferentes

9

Processo de contagem em cinco passos

1. Determine o tipo da contagem

2. Identifique o escopo e as fronteiras da contagem

3. Determine a contagem de FP desajustada*

4. Determine o Valor do Fator de Ajustamento

5. Calcule a contagem de FP ajustada

● Introduziremos os passos 1, 2, 4 e 5 mais adiante.

● O passo 3 é onde a contagem de FP realmente acontece.

10

Cinco “funções” básicas

● Na contagem de Fps, existem cinco funções básicas que podem ser contadas.

1. Data Functions:

1. Internal Logical Files

2. External Interface Files

2. Transactional Funcitions:

1. External Inputs

2. External Outputs

3. External Inquiries

11

Cinco “funções” básicasVisão de uma aplicação em FPA

12

Cinco “funções” básicasTermos e definições importantes

● Identificável pelo usuário

– Este termo se refere aos requerimentos definidos para os processos que foram consentidos e entendidos pelos usuários e desenvolvedores

● Informação de controle

– Que influencia um processo elementar da aplicação que está sendo contada. Especifica qual, quando ou como os dados são processados

● Processo elementar

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

● Data Element Type (DET)

– Campo único, reconhecível pelo usuário e não repetível

– Ex.: campos de uma tabela do banco de dados

● Record Element Type (RET)

– Subgrupo de dados reconhecível pelo usuário

– Ex: múltiplos tipos de informações em uma mesma tabela.

● File Type Referenced (FTR)

– Pode ser tanto um ILF ou um EIF

13

(1) Data Functions – Internal Logical Files (ILFs)

● ILFs representam dados que são armazenados e mantidos dentro dos limites da aplicação.

IFPUG: "An ILF is a user-identifiable group of logically related data or control information maintained within the boundary of the application. The primary intent of an ILF is to hold data maintained through one or more elementary processes of the application being counted."

● Regras:

1. O grupo de dados ou informações de controle são identificados logicamente e pelo usuário

2. O grupo de dados é mantido por meio de um processo elementar nas fronteiras da aplicação.

14

(1) Data Functions – Internal Logical Files (ILFs)

● Exemplos que podem ser ILFs:

1. Tabelas em uma banco relacional

2. Flat files

3. Informações de controle da aplicação, p ex, preferencias do usuário armazenadas pela aplicação

15

(1) Data Functions – Internal Logical Files (ILFs)

RETS Data Element Type (DETs)

1-19 20-50 51+

1 L L A

2-5 L A H

6+ A H H

Complexity Points

Low 7

Average 10

High 15

● O propósito da primeira tabela é ajudar a determinar a complexidade do ILF como sendo Low (L), Average (A) ou High (H).

● Dado que você sabe qual é a complexidade do ILF, a segunda tabela nos dá o número de FPs que deve ser contada para o ILF em questão.

Matriz de complexidade ILFPesos ILF

16

(1) Data Functions – Internal Logical Files (ILFs)

RETS Data Element Type (DETs)

1-19 20-50 51+

1 L L A

2-5 L A H

6+ A H H

Complexity Points

Low 7

Average 10

High 15

● O propósito da primeira tabela é ajudar a determinar a complexidade do ILF como sendo Low (L), Average (A) ou High (H).

● Exemplo:

– Suponha que seja contado 5 DETs e 1 RET, logo teremos um ILF de complexidade baixa.

– Porém, se tem-se 21 DETs e 2 RETs, teremos um ILF de complexidade média

Matriz de complexidade ILFPesos ILF

17

(2) Data Functions – External Interface Files (EIFs)

● EIFs representam os dados que sua aplicação usará/referenciará, porém os dados não são mantidos pela sua aplicação.

IFPUG: "An external interface file (EIF) is a user identifiable group of logically related data or control information referenced by the application, but maintained within the boundary of another application. The primary intent of an EIF is to hold data referenced through one or more elementary processes within the boundary of the application counted. This means an EIF counted for an application must be in an ILF in another application."

● Exemplos de EIFs são idênticos à lista para ILFs, novamente porém, EIFs não são mantidos pela aplicação em questão.

18

(2) Data Functions – External Interface Files (EIFs)

RETS Data Element Type (DETs)

1-19 20-50 51+

1 L L A

2-5 L A H

6+ A H H

Complexity Points

Low 5

Average 7

High 10

● Calcular um valor FP para um EIF é o mesmo que calcular para ILF.

● Primeiramente, determine o número de DETs e RETs do EIF, então olhe na tabela sua complexidade. Então atribua os pesos correspondentes.

● Perceba que as tabelas são similares àquelas do EIFs, porém mais FPs são assinalados para ILFs do que para EIFs. Por quê?

Matriz de complexidade EIFPesos EIF

19

(3) Transaction Functions - External Inputs (EI's)

● Processa dados de entrada (que vem de fora da aplicação)

IFPUG: “An external input (EI) is an elementary process that processes data or control information that comes from outside the application boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.”

● Exemplos de EIs:

– Entrada de dados pelos usuários.

– Dados os arquivos alimentados por aplicações externas.

20

(3) Transaction Functions - External Inputs (EI's)

FTRs Data Element Type (DETs)

1-4 5-15 16+

0-1 L L A

2 L A H

3+ A H H

Complexity Points

Low 3

Average 4

High 6

● Calcular FPs para EIs é similar ao processo dos ILFs e EIFs. Contudo, ao invés de se basear em DETs e RETs, vamos utilizar DETs e FTRs.

● Exemplo: suponha que um processo possua 5DETs e durante o processamento ele referencia um EIF chamado Users e um ILF chamado Process. Pela tabela, este EI é considerado de complexidade média (A).

Matriz de complexidade EIPesos EI

21

(4) Transaction Functions - External Outputs (EOs)

● Processa dados de saída (para fora da aplicação).

IFPUG: “An external output (EO) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external output is to present information to a user through processing logic other than, or in addition to, the retrieval of data or control information . The processing logic must contain at least one mathematical formula or calculation, create derived data maintain one or more ILFs or alter the behavior of the system.”

● Exemplos de EIs:

– Relatórios criados pela aplicação, onde o relatório inclui informação derivada (calculada)

22

(4) Transaction Functions - External Outputs (EOs)

FTRs Data Element Type (DETs)

1-5 6-19 20+

0-1 L L A

2-3 L A H

4+ A H H

Complexity Points

Low 4

Average 5

High 7

● Calcular FPs para EOs é muito similar ao processo dos EIs. De novo, você observa os DETs e FTRs

● Exemplo: suponha que um processo possua 10DETs e referencie 2 FTRs. Pela tabela, este EO é considerado de complexidade média (A).

Matriz de complexidade EOPesos EO

23

(5) Transaction Functions - External Inquiries (EQs)

● Exive dados de saída (para fora da aplicação).

IFPUG: “An external inquiry (EQ) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information from an ILF of EIF. The processing logic contains no mathematical formulas or calculations, and creates no derived data. No ILF is maintained during the processing, nor is the behavior of the system altered.”

● Exemplos de EQs:

– Relatórios criados pela aplicação, onde o relatório não inclui nenhuma informação derivada (calculada)

24

(5) Transaction Functions - External Inquiries (EQs)

FTRs Data Element Type (DETs)

1-5 6-19 20+

0-1 L L A

2-3 L A H

4+ A H H

Complexity Points

Low 3

Average 4

High 6

● Calcular FPs para EOs é muito similar ao processo dos Eis e EOs. De novo, você observa os DETs e FTRs

● Exemplo: suponha que um processo possua 20DETs e referencie 4 FTRs. Pela tabela, este EO é considerado de complexidade alta (H).

● Perceba que as tabelas são similares àquelas do EO, porém menos FPs são assinalados para EQs do que para EOs. Por quê?

Matriz de complexidade EQPesos EQ

25

Contagem de Pontos de Função

● Juntas, estas duas data functions (ILFs e EIFs) e as três transactional functions (Eis, Eos, Eqs) representam os cinco tipos de funções que são contados em uma Contagem de Pontos de Função.