You are on page 1of 22

Gerenciamento de Projetos de

Desenvolvimento de Software
Estimativas com Pontos por Funo

Prof. Mrcio Barros


marcio.barros@uniriotec.br

Estimativas em Projetos de Software

Um breve histrico do desenvolvimento de software ...


No passado, os custos de software eram relativamente irrelevantes
face aos custos de hardware

Um erro na estimativa do custo de um projeto de software tinha um


impacto pequeno sobre o custo de um projeto
Hoje, o software o elemento mais caro em um sistema informatizado
e erros nas estimativas de um projeto de software tm alto impacto
sobre o custo total do projeto de informatizao

Alternativas para gerar as estimativas ...

Postergar a deciso sobre a estimativa


Utilizar tcnicas de decomposio do projeto
Utilizar opinio de especialistas
Utilizar modelos empricos

Pontos por Funo

Medida indireta de um produto de software

No focaliza seu tamanho, mas sua funcionalidade


Utilizada como medida do valor agregado pelo software
Focaliza os requisitos do sistema em desenvolvimento
uma medida do ponto de vista do usurio
Aplicvel principalmente em sistemas de informao

Vantagens
Independncia de linguagem de programao
Dados que podem ser determinados no incio do projeto
Existncia de um processo padronizado para contagem

Desvantagens
Medida parcialmente subjetiva
Dificuldades na automao da medida
Dados no podem ser interpretados fisicamente

Pontos por Funo Processo de contagem

Cinco informaes bsicas so estimadas

Nmero de arquivos internos


Nmero de interfaces externas
Nmero de dados de entrada
Nmero de dados de sada
Nmero de consultas

Funes de Dados

Funes Transacionais

Um fator de complexidade associado a cada informao


Baixa
Mdia
Alta

As informaes so ponderadas e agregadas (somadas)


Resultado: nmero de pontos por funo

Funes de Dados

Arquivo Interno (ILF Internal Logical File)


um grupo de dados logicamente relacionados entre si e mantidos
dentro do escopo da aplicao
O grupo deve ser identificado no nvel do requisitos do sistema e seu
principal objetivo manter as informaes utilizadas pela aplicao

Interface Externa (EIF External Interface File)


um grupo de dados logicamente relacionados entre si e referenciados
pela aplicao, embora sejam mantidos por outra aplicao
O grupo deve ser identificado no nvel do requisitos do sistema
Seu principal objetivo manter as informaes utilizadas pela aplicao

Para a identificao do ILF e EIF, o desenvolvedor deve construir


um modelo de dados conceitual simplificado da aplicao

Funes de Dados

Exemplo: controle de reservas de passagens areas

Sistema de
registro
de vos

Vos
Disponveis

Avies

Sistema de
reservas

Reservas

2 ILF
0 EIF

1 ILF
1 EIF

Contando Funes de Dados ...

Procedimento para contagem

Identifique os arquivos internos (ILF) da aplicao


Determine a complexidade de cada arquivo interno
Determine a contribuio de PF de cada arquivo interno
Identifique as interfaces externas (EIF) da aplicao
Determine a complexidade de cada interface externa
Determine a contribuio de PF de cada interface externa
Some as contribuies dos ILF e EIF

Complexidade de arquivos internos e interfaces externas


Um elemento de dado (DET) um campo de informao de um ILF ou
EIF que visvel ao usurio, nico e no repetitivo
Um registro de dados (RET) um subgrupo de elementos de dados
dentro de um ILF ou EIF

Contando Funes de Dados (DET)

Conte um DET para cada campo reconhecido pelo usurio


O nome de um funcionrio em um arquivo interno de um sistema de folha
de pagamento um DET

Campos duplicados devem ser contados uma nica vez - se um ILF


armazena um oramento para cada ms do ano, devemos contar 1 DET
pelo valor e 1 DET pela identificao do ms
O resultado de um clculo enviado atravs de uma interface externa ou
armazenado em um arquivo interno conta como 1 DET
Em um EIF, uma aplicao deve contar somente os campos que ela
manipula

Chaves primrias e secundrias


Chaves primrias que no possuem semntica no so contadas
Chaves estrangeiras que relacionam um elemento com outro ILF/EIF so
contadas como DET

Contando Funes de Dados (RET)

Um RET um subgrupo de informaes pode ser entendido como


uma entidade fraca, ou seja, uma entidade que s faz sentido
quando associada a outra entidade da aplicao
Contamos um RET para a funo de dados e
um RET para cada subconjunto
Em uma venda com diversos produtos, a
funo de dados representada pela venda
(RET principal) e uma linha representando os
produtos vendidos (RET secundrio)
A lista de contas correntes de uma empresa,
quando representadas pelo nmero da conta,
agncia e banco, um RET da funo de
dados que representa a empresa
Se cada conta for descrita apenas pelo seu
nmero, ela no um RET, mas um DET

4 RET

Contando Funes de Dados ...

Dicas para auxiliar o processo de contagem


No assuma que um arquivo fsico equivale a um arquivo lgico; pense
na estrutura das informaes

No se atenha decomposio dos dados realizada pelo mecanismo de


armazenamento (flat-files, SGDB, ...)
Nem todos os arquivos fsicos devem ser considerados arquivos
internos ou interfaces externas

Arquivos temporrios, utilizados por limitaes de tecnologia, arquivos


de backup e vises construdas a partir de outros arquivos no devem
ser contados como ILF ou EIF
Cpias de um arquivo no devem ser contadas (apenas o original)

Identificao de ILF / RET


Na dvida entre um RET ou ILF, identifique se o elemento importante
para o usurio do domnio isoladamente (ILF) ou se visto como uma
conseqncia de outro elemento (RET deste elemento)

Complexidade de ILF/EIF
RET/DET

1/19 DET

20/50 DET

51+ DET

1 RET

Baixa

Baixa

Mdia

2/5 RET

Baixa

Mdia

Alta

6+ RET

Mdia

Alta

Alta

Complexidade

ILF PF

EIF PF

Baixa

Mdia

10

Alta

15

10

Funes Transacionais

Uma transao a menor unidade de funcionalidade que satisfaz as


seguintes condies:
representativa para os usurios
Representa uma tarefa completa do ponto de vista do sistema
Deixa o sistema em um estado consistente

Por exemplo, o requisito funcional Manter Clientes deve ser dividido


nas seguintes transaes:

Adicionar cliente
Alterar cliente
Remover cliente
Consultar cliente

Funes Transacionais

Dado de entrada (EI External Input)


um processo elementar que coleta e processa dados e informaes
de controle que so recebidos pela aplicao
Seu objetivo manter o conjunto de informaes registradas em um ou
mais arquivos internos

Dado de sada (EO External Output)


um processo elementar que processa e envia dados ou informaes
de controle para fora da aplicao
Seu objetivo apresentar informaes processadas para o usurio
(deve haver pelo menos uma transformao na informao original)

Consulta (EQ External Query)


um processo elementar que envia dados ou informaes de controle
para fora do contexto da aplicao
Seu objetivo apresentar informaes para o usurio sem que haja um
processamento nem alterao no contedo de arquivos internos

Funes Transacionais

Operaes consideradas como processamento

Na realizao de validaes
No clculo de frmulas e operaes matemticas
Dados so convertidos usando anlise de tabelas
Quando dados derivados so criados
Quando arquivos internos so atualizados

Operaes no consideradas como processamento


Aplicao de filtros nas informaes
Ordenao de um conjunto de dados
Agrupamento de um conjunto de dados segundo um critrio

Contando Funes Transacionais ...

Procedimento para contagem

Identifique os processos de entrada de dados (EI) da aplicao


Determine a complexidade de cada entrada de dados
Determine a contribuio de PF de cada entrada de dados
Identifique os processos de sada de dados (EO) da aplicao
Determine a complexidade de cada sada de dados
Determine a contribuio de PF de cada sada de dados
Identifique as consulta (EQ) da aplicao
Determine a complexidade de cada consulta
Determine a contribuio de PF de cada consulta
Some as contribuies dos EI, EO e EQ

Contando Funes Transacionais ...

Complexidade de entradas, sadas e consultas


Um tipo de arquivo referenciado (FTR) um arquivo interno ou interface
externa referenciado em um processo
Um elemento de dado (DET) um campo nico, no repetido e
reconhecvel pelo usurio

Para cada processo que recebe dados de entrada (EI), conte:

Um FTR para cada arquivo interno mantido pelo processo


Um FTR para cada arquivo interno lido durante o processo
Um FTR para cada interface externa lida durante o processo
Conte apenas um FTR para arquivos/interfaces lidos e mantidos

Desenhar as telas em que ocorrero os processos de entrada, sada


e consultas ajuda a identificar seus campos e arquivos referenciados

Contando Funes Transacionais (EI)

Para cada processo que recebe dados de entrada (EI), conte:


Um DET para cada campo nico e reconhecvel pelo usurio
Conte um DET representando todas as mensagens de erro e
confirmao emitidas pelo sistema
Conte um DET representando todas as possveis formas com que o
processo pode ser disparado pelo usurio (menu, boto, ...) se houver
mais de uma maneira

Telas e transaes
Muitas vezes, uma tela de um sistema comportar a execuo de
diversas transaes, mas cada transao deve ser contada
separadamente

Contando Funes Transacionais (EI)

Exemplo de contagem: incluso de editoras

Comando de
disparo da
transao
(nico)

2 DET

1 DET
(mensagens)

Editoras

1 FTR

TOTAL
1 FTR com 3 DET

Contando Funes Transacionais (EI)

Exemplo de contagem: incluso de livros

Comando de
disparo da
transao
(nico)

3 DET

1 DET
(mensagens)
Editoras

Autores

Livros

3 FTR

TOTAL
3 FTR com 4 DET

Contando Funes Transacionais (EO/EQ)

Para cada processo que produz dados de sada (EO/EQ), conte:


Um DET para cada campo nico e reconhecvel pelo usurio, que entra
no processo para indicar que dados devem ser apresentados na sada

Um DET para cada campo nico e reconhecvel pelo usurio, que


gerado na sada produzida pelo sistema
Se um dado indicado na entrada e produzido na sada, este deve ser
contado uma nica vez
Dados que so lidos de um arquivo interno e copiados para outro
arquivo interno no devem ser contados como DET
Conte um DET representando todas as mensagens de erro e
confirmao emitidas pelo sistema
Conte um DET representando todas as possveis formas com que o
processo pode ser disparado pelo usurio (menu, boto, ...) se houver
mais de uma maneira
Dados literais (ttulo, cabealhos de seo, ttulos de campos, nmeros
de pgina) no devem ser contados como DET

Complexidade de EI, EO e EQ
EI
0/1 FTR
2 FTR
3+ FTR

1/4 DET
Baixa
Baixa
Mdia

5/15 DET
Baixa
Mdia
Alta

16+ DET
Mdia
Alta
Alta

EO/EQ
0/1 FTR
2/3 FTR
4+ FTR

1/5 DET
Baixa
Baixa
Mdia

6/19 DET
Baixa
Mdia
Alta

20+ DET
Mdia
Alta
Alta

Complexidade
Baixa
Mdia
Alta

EI/EQ PF
3
4
6

EO PF
4
5
7

Depois da contagem ...

A indstria tem um bom histrico da produtividade das equipes em


pontos por funo
razovel pensar que uma equipe far entre 15 e 20 pontos por funo
em um projeto de pequena ou mdia escala
A produtividade tende a cair em projetos maiores ...

You might also like