exercício 01: pontos de função introdução · tabela 1: tipos de contagens de pontos de...

16
Universidade Federal de Ouro Preto – UFOP Instituto de Ciências Exatas e Aplicadas – ICEA Departamento de Computação e Sistemas – DECSI Disciplina: Gerência de Configurações e Engenharia de Software – CSI478 Professor: Bruno Hott ([email protected] ) Alunos: ______________________________________________ ______________________________________________ ______________________________________________ ______________________________________________ ______________________________________________ Exercício 01: Pontos de Função Introdução Para demonstrar como um processo de contagem de Pontos de Função ocorre, vamos utilizar uma aplicação de exemplo. A aplicação é chamada FPTracker e, como o nome sugere, é uma ferramenta que é utilizada para o auxílio de contagem de Pontos de Função de outras aplicações. Por exemplo, se um profissional for até a sua empresa para realizar a contagem de Pontos de Função em alguma das suas aplicações, então ele armazenará os dados sobre as funções da sua aplicação utilizando esta ferramenta. Como saída, a aplicação provê alguns relatórios úteis e uma análise dos dados ajudará o profissional com sua tarefa de análise da aplicação. O FPTracker consiste dos seguintes processos principais: 1. Gerenciamento de projeto, incluindo criação, edição e remoção de projetos. 2. Gerenciamento de entidades, incluindo criação, edição e remoção de ILFs e EIFs. 3. Gerenciamento de processos, incluindo criação, edição e remoção de EIs, EOs e EQs. 4. Gerenciamento de grupos de processos, que é um mecanismo para agrupar processos. 5. Gerar relatórios, que inclui diversos relatórios úteis. O processo de contagem Como uma revisão rápida, os cinco passos do processo de contagem de Pontos de Função são: 1. Determinar o tipo de contagem. 2. Identificar o escopo e os limites da contagem. 3. Determinar a contagem não-ajustada. 4. Determinar o valor do fator de ajuste. 5. Calcular a contagem ajustada. 1

Upload: hoangcong

Post on 16-Dec-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Universidade Federal de Ouro Preto – UFOPInstituto de Ciências Exatas e Aplicadas – ICEADepartamento de Computação e Sistemas – DECSIDisciplina: Gerência de Configurações e Engenharia de Software – CSI478Professor: Bruno Hott ([email protected])

Alunos: ______________________________________________ ____________________________________________________________________________________________

______________________________________________ ______________________________________________

Exercício 01: Pontos de Função

IntroduçãoPara demonstrar como um processo de contagem de Pontos de Função ocorre, vamos utilizar uma aplicação deexemplo. A aplicação é chamada FPTracker e, como o nome sugere, é uma ferramenta que é utilizada para oauxílio de contagem de Pontos de Função de outras aplicações. Por exemplo, se um profissional for até a suaempresa para realizar a contagem de Pontos de Função em alguma das suas aplicações, então ele armazenará osdados sobre as funções da sua aplicação utilizando esta ferramenta. Como saída, a aplicação provê algunsrelatórios úteis e uma análise dos dados ajudará o profissional com sua tarefa de análise da aplicação.

O FPTracker consiste dos seguintes processos principais:

1. Gerenciamento de projeto, incluindo criação, edição e remoção de projetos.

2. Gerenciamento de entidades, incluindo criação, edição e remoção de ILFs e EIFs.

3. Gerenciamento de processos, incluindo criação, edição e remoção de EIs, EOs e EQs.

4. Gerenciamento de grupos de processos, que é um mecanismo para agrupar processos.

5. Gerar relatórios, que inclui diversos relatórios úteis.

O processo de contagemComo uma revisão rápida, os cinco passos do processo de contagem de Pontos de Função são:

1. Determinar o tipo de contagem.

2. Identificar o escopo e os limites da contagem.

3. Determinar a contagem não-ajustada.

4. Determinar o valor do fator de ajuste.

5. Calcular a contagem ajustada.

1

Page 2: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Passo 1: O tipo de contagemO primeiro passo do processo de contagem de Pontos de Função é determinar o tipo da aplicação, que podem serde três diferentes tipos:

Nome Definição

Contagem de projeto de desenvolvimento

Mede as funções que serão providas aos usuários a partir da primeira instalação do software que será desenvolvido.

Contagem de projeto de melhoria (manutenção)

Mede as modificações de uma aplicação existente.

Contagem de aplicação Mede as funcionalidades providas aos usuários por uma aplicação existente.

Tabela 1: Tipos de contagens de Pontos de Função.

Como a aplicação FPTracker já existe e está em produção, o tipo da contagem será "Contagem de aplicação.Isso é tudo o que devemos fazer no passo 1. Note que isto não tem nada com o assinalamento de pontos. Nóssimplesmente registramos o tipo do projeto que estamos contando.

Passo 2: Escopo e os limites da contagemO escopo da aplicação será definido pelos dados, janelas e relatórios que serão mostrados a você. Você nãodeverá realizar nenhuma suposição acerca de nenhum comportamento que pode parecer faltar.

Com relação aos limites desta aplicação, para os propósitos deste exercício, FPTracker deverá ser imaginadacomo uma aplicação simples e standalone. FPTracker não está amarrada a nenhuma outra aplicação.

Passo 3: Contagem de Pontos de Função não-ajustadaApesar de os dois primeiros passos serem super importantes na definição da base da sua contagem, e emespecificar o escopo da sua contagem, eles são usualmente realizados rapidamente. Sendo o terceiro passo queutiliza a maior parte do tempo de uma Análise de Pontos de Função, além de ser o cerne da contagem.

Começaremos a contagem das funções de dados e transacionais que produzem a contagem de Pontos de Funçãonão-ajustada. Até este ponto não lidamos com nenhum número, mas agora estamos prontos para adicioná-los.

Passo 3a: Determinar a contagem resultantes dos ILFsNo FPTracker, os dados são armazenados em uma série de tabelas banco de dados relacionais, então nos autilizaremos como base de nossa análise. A seguir temos a lista de nomes de tabelas utilizadas no FPTracker:

1. Project

2. Entity

3. Process Group

4. Process

5. ProcessDETs

6. ProcessEntities

2

Page 3: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Os campos armazenados em cada uma das tabelas é mostrado nas seguintes tabelas:

Campo Descrição Observações

project_id Id sequencial, atribuído pelo sistema

Este é um artefato técnico. Ele não é reconhecível pelo usuário e então não contado

project_name O nome do usuário atribuído a um projeto

project_type O tipo do projeto

description Uma descrição do projeto

Tabela 2: Tabela de banco de dados “Project”

Campo Descrição Observações

entity_id Id sequencial, atribuído pelo sistema

Número de sequência gerado pelo sistema. Não é reconhecível pelo usuário

project_id Chave estrangeira É contado DET para campos de dados que são necessários para estabelecer um relacionamento entre outro ILF ou EIF. Chaves estrangeiras normalmente se encaixam nesta definição

name Nome da entidade

type Tipo da entidade (ILF ou (EIF)

no. RETs Número de RETs na entidade

no. DETs Número de RETs na entidade

complexity Complexidade calculada (Low, Average ou High)

Tabela 3: Tabela de banco de dados “Entity”

Campo Descrição Observações

process_id Id sequencial, atribuído pelo sistema

Número de sequência gerado pelo sistema. Não é reconhecível pelo usuário.

pg_id Chave estrangeira

name Nome do processo

type Tipo do processo (EI, EO ou EQ)

sort_order Ordem para visualização

3

Page 4: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Campo Descrição Observações

no. FTRs Número de FTRs

no. DETs Número de DETs

complexity Low, Average ou High

description Descrição do processo

Tabela 4: Tabela de banco de dados “Process”

Campo Descrição Observações

process group id

Id sequencial, atribuído pelo sistema

Número de sequência gerado pelo sistema. Não é reconhecível pelo usuário

project id Chave estrangeira

name Nome do grupo de processo

Tabela 5: Tabela de banco de dados “Process Group”

Campo Descrição Observações

id Id sequencial, atribuído pelo sistema

Número de sequencia gerado pelo sistema. Não é reconhecível pelo usuário

process_id Chave estrangeira

sequence Ordem para visualização

description Descrição fornecida pelo usuário

Tabela 6: Tabela de banco de dados “ProcessDETs”

Campo Descrição Observações

id Id sequencial, atribuído pelo sistema

Número de sequência gerado pelo sistema. Não é reconhecível pelo usuário

process_id Chave estrangeira

entity_id Chave estrangeira

sequence Ordem para visualização

Tabela 7: Tabela de banco de dados “ProcessEntities”

Os dados representados por estas tabelas são todos ILFs (e não EIFs) porque eles são mantidos dentro dafronteira da aplicação FPTracker.

Nessa aplicação em particular não existe um relacionamento um-pra-um entre a tabela de banco de dados e amaneira com que o usuário visualiza os dados sendo armazenados. Como um contador de Pontos de Função, etambém conhecedor da aplicação, posso dizer que os dados são logicamente armazenados da seguinte maneira:

1 Project

2 Entity

3 Process Group

4 Process

4

Page 5: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

4.1 ProcessDETs

4.2 ProcessEntities

Por esse motivo, para o cálculo de Ponto de Função, considere os seguintes ILFs: (1) Project, (2) Entity, (3)Process Group, (4) Process.

Questão 1: Calcule Pontos de Função para os ILFs da aplicação FPTracker baseado nas tabelas do banco dedados apresentadas.

Step 3b: Determinar a contagem resultante dos EIFsNesta aplicação em particular não existem EIFs, logo os EIFs contribuem com zero Pontos de Função para acontagem.

Como exemplo, suponha que esta aplicação necessite do uso de um arquivo chamado Users que é mantido poroutra aplicação mas acessado pela nossa. Neste caso o arquivo deve ser contado como um EIF, utilizando asregras de EIF.

Terminamos a contagem para as funções de dados, e passaremos para as funções transacionais.

Step 3c: Contagem resultante dos EIsPara começar a contagem das funções transacionais, primeiramente precisamos dar uma olhada nas telas dainterface com o usuário da aplicação.

Figura 1: Tela “New Project” permite que os usuários criem um novo projeto.

5

Page 6: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 2: Esta tela apresenta a “Entities tab”. Por aqui os usuários podem visualizar, adicionar, editar e deletar entidades.

Figura 3: Tela “Add Entity” permite que usuários adicionem novas entidades (ILFs e EIFs) ao projeto

6

Page 7: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 4: Tela “Edit Entity” permite que o usuário edite entidades do projeto

Figura 5: Tela “Delete Entity” pede que os usuários confirmem sua tentativa de deletar uma entidade da aplicação

Figura 6: Esta tela mostra a “Process Groups tab”. Por essa tela os usuários podem adicionar, editar e deletar grupos de processos.

7

Page 8: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 7: Tela “Add Process Group” permite que o usuário adicione novos grupos de processos da aplicação

Figura 8: Tela “Edit Process Group” permite que o usuário atribua um novo nome para um grupo de processos

Figura 9: Esta tela permite que o usuário delete um grupo de processos selecionado

8

Page 9: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 10: Essa figura apresenta a aba Process. Por aqui os usuários podem adicionar, clonar, editar e deletar processos.

Figura 11: Essa tela permite que o usuário defina um novo processo.

9

Page 10: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 12: Essa tela mostra os detalhes da aba Comments/Description. Usuários podem adicionar tal informação quando cria um novo processo

Figura 13: Usuários podem utilizar essa tela para clonar um processo na aplicação. Ele simplesmente seleciona um projeto existente, então seleciona a opção Clone que leva a essa tela.

10

Page 11: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 14: Essa tela mostra um relatório básico de Contagem de Ponto de Função

11

Page 12: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Figura 15: Essa figura mostra um relatório provido pela aplicação chamado de "ILF/EIF Report".

Agora podemos determinar quais dessas telas correspondem a EIs, quais são EOs e quais são EQs. Antes porém, uma descrição breve dos processos da aplicação serão apresentados:

Nome do Processo Descrição do Processo

Create a Project Esta tela é mostrada na figura 1. Ela permite que o usuário crie um novo projeto.

Display Entity List A lista é mostrada na figura 2. Esta é a lista de toda entidade que o usuário identificou para a aplicação.

Add Entity Mostrada na figura 3, este diálogo permite adicionar uma nova entidade.

Edit Entity Mostrada na figura 4, este diálogo permite editar uma entidade existente.

Delete Entity Mostrada na figura 5, esse diálogo de confirmação é mostrado quando um usuário seleciona uma linha, então pressiona o botão delete.

Display Process Group List

Esta lista é mostrada na figura 6. Essa é a lista de todos os grupos de processos identificados pelo usuário.

Add Process Group Mostrada na figura 7, esse diálogo permite definir um novo grupo de processos.

Edit Process Group Mostrada na figura 8, este diálogo permite editar um grupo de processos.

Delete Process Group Mostrado na figura 9, esse diálogo de confirmação é mostrado quando um usuário seleciona uma linha na tabela de grupos de processos e então seleciona o botão Delete.

Display Process List Esta lista é mostrada na figura 10. Essa é uma lista de todos os processos que o usuário tenha identificado para a aplicação.

12

Page 13: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Nome do Processo Descrição do Processo

Add Process Mostrada nas figuras 11 e 12, este diálogo permite que o usuário defina um novo processo.

Edit Process Não foi mostrado, porém este diálogo é idêntico às telas mostradas nas telas 11 e 12. Essas telas permitem que o usuário edite um processo existente.

Delete Process Não foi mostrado, este diálogo de confirmação é mostrado quando um usuário selecionaum processo e então pressiona o botão Delete. Para a nossa contagem, assuma que este é um diálogo simples de confirmação, similar ao diálogo para deletar um grupo de processos.

Clone Process Mostrado na figura 13, este diálogo permite que o usuário crie uma cópia de um processo.

Display UFPC Report Mostrado na figura 14, este é um relatório típico que soma o número de FPs da aplicação que está sendo armazenada.

Display ILF/EIF Report

Mostrada na figura 15, esse relatório mostra os ILFs e EIFs (i.e., todos os FTRs) da aplicação, junto com o número de DETs e RETs associados, assim como seu nível de complexidade.

Tabela 8: Processos da aplicação FPTracker.

Para nossa contagem, também assumiremos que cada tela de entrada de dados pode resultar em uma ou maistelas de erros. Por exemplo, quando um usuário está criando um novo projeto, o sistema disparará um diálogo deerro se ele não inseriu um nome para o projeto, porque esse campo é indispensável.

Questão 2: Calcule Pontos de Função para os EIs da aplicação FPTracker baseado nas telas e descrições dosmétodos apresentados.

Passo 3d: Contagem dos EOsA contagem dos EOs é similar àquela realizada para os EIs.

Questão 3: Calcule Pontos de Função para os EOs da aplicação FPTracker baseado nas telas e descrições dosmétodos apresentados.

Passo 3e: Contagem dos EQsTambém, a contagem para os EQs é similar àquelas realizadas para os EIs e EOs. Tome cuidado para não seconfundir com os EQs e EOs. Relembre a diferença entre eles.

Questão 4: Calcule Pontos de Função para os EQs da aplicação FPTracker baseado nas telas e descrições dosmétodos apresentados.

Questão 5: Calcule Pontos de Função para a aplicação FPTracker como um todo baseado nas contagens quevocê realiza ou anteriormente.

13

Page 14: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Passo 4: Valor do Fator de Ajuste (VAF)Antes de apresentar o que é VAF, deixe-me alertá-lo: Pelo meu conhecimento, a maioria dos usuários nãoutilizam isto. E isso tem duas razões principais:

1. A maioria dos usuários calculam pontos de função para chegar a um valor que então será utilizado emoutra aplicação para então determinarem uma estimativa de custo. Estas aplicações normalmentepossuem seus VAF equivalentes e instruem os usuários a inserirem a “contagem de Pontos de Funçãocrua”. Pois neste caso, o VAF compete com a ferramenta de estimativa.

2. Também, os GSCs não são flexíveis o bastante. Quando você vê os cálculos para VAF, você observa quepara duas aplicações em consideração, se as duas começam com a mesma contagem de Pontos deFunção – digamos 1,000 FPs –, depois dos ajustes, a aplicação mais difícil de implementar do mundopoderá ser classificada como tendo 1,350FPs e a aplicação mais fácil de implementar será classificadacomo tendo 650 FPS quando ajustada. Digamos que a aplicação mais difícil tem de executar em 10 SOsdiferentes, seja distribuída em 15 línguas e distribuída para 1 milhão de usuários. Já a aplicação maisfácil será escrita em Microsoft Access, executada em Windows e usada por 1 usuário somente. Podemosrealmente pensar que a primeira aplicação é somente duas vezes mais difícil de ser desenvolvida do quea primeira? Não, certamente não e é por esse motivo que diversos usuários não utilizam VAF.

Dito isso, vamos ao VAF. Primeiramente alguns fatos e definições:

• O Valor do Fator de Ajuste (VAF) consiste de 14 “Características Gerais de Sistemas” ou GSCs.

• Estes GSCs representam características da aplicação em consideração. Cada uma delas ponderadas emuma escala que vai de 0 (low) à 5 (high).

• Quando os valores destas 14 GSCs são somados é gerado um valor denominado “Total Degree ofInfluence” ou TDI. Você pode observar então que o TDI pode variar entre 0 (quando todos os GSCs sãoclassificados como low) até 35 (quando todos os GSCs são classificados como high).

Antes de apresentar a fórmula de cálculo do VAF, segue a lista dos 14 GSCs:

1. Data Communication

2. Distributed data processing

3. Performance

4. Heavily used configuration

5. Transaction rate

6. Online data entry

7. End user efficiency

8. Online update

9. Complex processing

10. Reusability

11. Installation ease

12. Operational ease

13. Multiple sites

14. Facilitate change

E a fórmula para cálculo do VAF é a seguinte:

VAF=(TDI×0.01)+0.65

Passo 5: Cálculo do Ponto de Função AjustadoO passo final do processo de cinco passos é determinar a contagem de Ponto de Função Ajustado. Para umacontagem inicial de uma aplicação como a desse exemplo, esse passo pode ser realizado com a seguinte equação:

Adjusted FPCount=Unadjusted FP Count×VAF

Como foi falado na seção anterior, o VAF pode variar de 0.65 à 1.35, então o VAF exerce uma influência de +/-

14

Page 15: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

35% na contagem de Pontos de Função Ajustada final. Porém, não efetuaremos este cálculo no escopo desteexercício.

15

Page 16: Exercício 01: Pontos de Função Introdução · Tabela 1: Tipos de contagens de Pontos de Função. ... este diálogo permite adicionar uma nova entidade. ... A contagem dos EOs

Anexo I: Tabelas para Cálculo de Pontos de FunçãoRETs Data Element Type (DETs)

1-19 20-50 51+

1 L L A

2-5 L A H

6+ A H H

Table 1: Matriz de complexidade ILF

Complexity Points

Low 7

Average 10

High 15

Table 2: Pesos ILF

RETs Data Element Type (DETs)

1-19 20-50 51+

1 L L A

2-5 L A H

6+ A H H

Table 3: Matriz de complexidade EIF

Complexity Points

Low 5

Average 7

High 10

Table 4: Pesos EIF

FTRs Data Element Type (DETs)

1-4 5-15 16+

0-1 L L A

2 L A H

3+ A H H

Table 5: Matriz de complexidade EI

Complexity Points

Low 3

Average 4

High 6

Table 6: Pesos EI

FTRs Data Element Type (DETs)

1-5 6-19 20+

0-1 L L A

2-3 L A H

4+ A H H

Table 7: Matriz de complexidade EO

Complexity Points

Low 4

Average 5

High 7

Table 8: Pesos EO

FTRs Data Element Type (DETs)

1-5 6-19 20+

0-1 L L A

2-3 L A H

4+ A H H

Table 9: Matriz de complexidade EQ

Complexity Points

Low 3

Average 4

High 6

Table 10: Pesos EQ

16