You are on page 1of 70

Gerncia de Projetos de Informtica

Estimativas e Medio em Projeto de Software


Mtrica com Pontos de Funo (PF)
Cludio Roberto Martins
claudiomartins2000@gmail.com
1

Objetivos
Apresentar os conceitos de Estimativas e Medio em Projeto de Software Apresentar a tcnica de Pontos de Funo para estimativa de medio de projeto de software.

O problema
Dado um projeto de desenvolvimento de software, estabelecer:
Tamanho e perfil da equipe Prazos Custos

Conceitos Bsicos
Mtrica
Uma medida quantitativa do grau que um sistema, componente, ou processo possui um determinado atributo (IEEE Std 610.12-1990). As mtricas vo permitir que um processo ou um produto do ciclo de desenvolvimento de um sistema seja analisado da mesma forma que um objeto fsico pode ser caracterizado atravs do seu tamanho, cor ou peso.

Mtricas de Projeto
Primeiro uso: nas estimativas Aps: monitorao e controle Objetivo:
minimizar (e prever) o prazo de desenvolvimento
medir a qualidade do produto

Mtricas de Projeto
Cada projeto deve medir:
Entradas (recursos, pessoal, ambiente), Sadas (medida dos produtos intermedirios durante o processo de Eng.Software), e Resultados (indicam a efetividade dos produtos finais)

Tipos de Medidas
Medidas diretas (Ex: comprimento do parafuso), e Medidas indiretas (Ex: qualidade dos parafusos produzidos).

Medidas Em Relao ao Software...


Diretas - linhas de cdigo (LOC) produzidas, velocidade de execuo, defeitos relatados. Indiretas: funcionalidade, qualidade, complexidade, confiabilidade, manutenibilidade.

Mtricas Orientadas a Tamanho

Consideram o tamanho do software produzido. Referem-se a todas as atividades da Engenharia (anlise, projeto, codificao, teste).
Ex: Linhas de cdigo (LOC)

Linhas de cdigo (LOC)


Cada projeto pode obter as seguintes mtricas a partir das linhas de cdigo:
Erros por KLOC (K = milhares) Defeitos por KLOC $ por LOC Pginas de documentao por KLOC Erros por pessoa/ms LOC por pessoa/ms $ por pagina de documentao
10

Exemplo de mtricas orientadas a tamanho

Projeto

LOC

Esforo (ms)

$ (Mil)

Pg. Doc

Erros

Defeitos

Pessoas

Alfa Beta Gama

12.100 27.200 20.200

24 62 43

168 440 314

365 1.224 1.050

134 321 256

29 86 64

3 5 6

...

...

...

...

...

...

...

...
11

Linha de Cdigo - Observaes


No muito utilizada como parmetro de estimativa, pois requer um nvel de detalhes difcil de alcanar:
Padronizao na forma de codificar Manter apenas uma linguagem de programao No diferencia linhas de cdigo geradas por ferramentas CASE daquelas criadas manualmente
12

Mtricas Orientadas por Funo


Consiste em um mtodo para medio de software do ponto de vista do usurio Tem a funcionalidade como fator de normalizao. Dimensiona um software, quantificando a funcionalidade proporcionada ao usurio a partir do seu desenho (projeto) lgico e no dos detalhes de implementao. A medida PONTO por FUNO (FP Function Point).
Pontos de Funo (FP) definem uma relao emprica baseada em medidas de contagem do domnio de aplicao do software (requisitos) e avaliao da complexidade do software.

13

Objetivo da anlise de PF
A anlise considera as vrias formas com que os usurios interagem com o sistema, com os seguintes objetivos:
1. Fornecer medidas consistentes; 2. Medir funcionalidades que o usurio solicita ou recebe;

3. Independncia da tecnologia;
4. Mtodo simples.
14

O Processo de Contagem de PF
1
Determinar tipo de Contagem

2
Identificar escopo da contagem e fronteira da aplicao

3.1
Contar funes do tipo dados

5 (opcional)
Determinar valor do fator de ajuste

3.2
Contar funes do tipo transao

4
Totalizar PF no ajustados (3.1 + 3.2)

6
Calcular os PF ajustados (5 + 4)
15

Elementos da contagem de PF
Consultas Externas (CE)

Entradas Externas (EE)


Arquivos Lgicos Internos (ALI)

Sadas Externas (SE)

Arquivos de Interfaces Externas (AIE)

Fronteira da Aplicao
16

Tipo de Contagem
So trs:
Contagem de um projeto de desenvolvimento (incluindo migrao) Contagem de um projeto de melhoria Contagem de uma aplicao em produo (ou baseline)

17

Escopo da Contagem
O escopo define se a contagem abranger um ou mais sistemas ou apenas parte de um sistema. Por exemplo:
Todas as funcionalidades disponveis Apenas as funcionalidades efetivamente utilizadas pelo usurio Apenas algumas funcionalidades especficas (relatrios, transaes cadastrais, etc.)
18

Fronteira da Aplicao
a interface conceitual que delimita o software que ser medido e o mundo exterior (os atores de interface)
Ator = pessoa ou sistema que interage com a aplicao, recebendo ou enviando dados

19

Algumas regras para identificar as fronteiras


Deve ser feita com base no Ponto de Vista do Usurio (que ele pode entender e descrever) Baseada na separao das funes relacionadas pelos processos do negcio, no considerando tecnologias (banco de dados, p. ex.) Obter a documentao do sistema Verificar como os grupos de dados so mantidos Identificar as entidades (dados) e processos (casos de uso, por exemplo)
20

Funes do Tipo Dado


Representam a funcionalidade oferecida ao usurio para cumprir requisitos de dados Podem ser de dois tipos:
Arquivo Lgico Interno (ALI) Arquivo de Interface Externa (AIE)
O nome arquivo refere-se a grupos de dados logicamente correlatos e no sua implementao fsica
21

Arquivo Lgico Interno (ALI)


Um grupo lgico de dados ou de informaes de controle, identificvel pelo usurio, mantido dentro da fronteira da aplicao que est sendo contada. Armazena dados mantidos por um ou mais processos (transaes) da aplicao em questo.
Ex: tabelas de banco de dados atualizadas pela aplicao (no considerar chaves primrias do tipo identificador, como id ou seqncia).
22

Arquivo de Interface Externa (AIE)


Um grupo lgico de dados ou informaes de controle, identificvel pelo usurio, mantido fora da fronteira da aplicao que est sendo contada. Exemplos:
tabelas de banco de dados lidas pela aplicao, mas mantidas por outra Arquivos externos (gerados externamente) Mensagens de dados (em um protocolo) gerados externamente
23

Atribuindo complexidade a um ALI/AIE Identificar os TERs e TEDs


TER Tipo de elemento de registro
Subgrupo de dados dentro de um ALI/AIE reconhecvel pelo usurio

TED Tipo de elemento de dado


Campo nico, no repetitivo e reconhecvel pelo usurio

24

Tabela de referncia - Complexidade de ALIs e AIEs

25

Peso das Funes de Dados

26

Funes de transao
Representam a funcionalidade oferecida ao usurio para processar dados da aplicao Podem ser de trs tipos:
Entrada Externa (EE) Sada Externa (SE) Consulta Externa (CE)

27

Entrada Externa (EE)


Cada transao de entrada contada. A transao deve atualizar uma base de dados com incluso, alterao ou excluso.
Transao pode ser interpretada como uma rotina/processo que executa um conjunto de aes atmicas que produz um resultado visvel e de valor ao usurio do sistema. Pode ser mapeado em telas, formulrios (em janelas), pginas, etc.
28

Sada Externa (SE)


o Relatrios, telas, mensagens de erros e qualquer processo que visvel externamente ao sistema (caso de uso). o Deve obrigatoriamente calcular ou criar dados derivados como detalhes de subtotais, arquivos intermedirios internos ou alterar o resultado do comportamento do sistema.
29

Consulta Externa (CE)


o uma funcionalidade de consulta simples, que atravs de uma solicitao do usurio (uma entrada on-line), resulta na gerao de uma resposta imediata sob a forma de uma sada on-line. o Exemplo: consulta ao cadastro de clientes.

30

Atribuindo complexidade a uma Funo de Transao


Identificar os TARs e TEDs
TAR Tipos de arquivos referenciados
Quantidade de ALI/ AIE mantidos (exceto CE) ou referenciados pela funo de transao

TED Tipos de elementos de dados


Campos reconhecveis pelo usurio, que cruzam a fronteira da aplicao durante a funo de transao

31

Tabela de referncia - Complexidade de EEs

Pontuao Para cada Entrada Externa ser atribudo um nmero de Pontos de Funo, de acordo com a sua complexidade funcional relativa:
BAIXA (SIMPLES COMPLEXIDADE): 3 (trs) Pontos por Funo; MDIA COMPLEXIDADE: 4 (quatro) Pontos por Funo; ALTA (COMPLEXA): 6 (seis) Pontos por Funo.

32

Complexidade de Sadas Externas


ITENS DE DADOS REFERENCIADOS (TED)
N DE ARQUIVOS REFERENCIADOS (TAR)

1A5
SIMPLES SIMPLES MDIA

6 A 19
SIMPLES MDIA COMPLEXA

20 OU MAIS
MDIA COMPLEXA COMPLEXA

Apenas 1

De 2 ou 3 4 ou mais

Pontuao Para cada Sada Externa ser atribudo um nmero de Pontos de Funo, de acordo com a sua complexidade funcional relativa:
SIMPLES: 4 (quatro) Pontos por Funo; MDIA: 5 (cinco) Pontos por Funo; COMPLEXA: 7 (sete) Pontos por Funo.

33

Complexidade de Consultas Externas


ITENS DE DADOS REFERENCIADOS (TED)
N DE ARQUIVOS REFERENCIADOS (TAR)

1A5
SIMPLES SIMPLES MDIA

6 A 19
SIMPLES MDIA COMPLEXA

20 OU MAIS
MDIA COMPLEXA COMPLEXA

Apenas 1 De 2 a 3 4 ou mais

Pontuao Para cada Consulta Externa ser atribudo um nmero de Pontos por Funo, de acordo com a sua complexidade funcional relativa:
SIMPLES: 3 (trs) Pontos por Funo; MDIA: 4 (quatro) Pontos por Funo; COMPLEXA: 6 (seis) Pontos por Funo
34

Resumo dos pesos das Funes de Transao

35

Resumo do Clculo dos PF no ajustados

Parametro de Medio EE Entradas Externas SE Sadas Externas CE Consultas Externas

Fator de peso da Complexidade Contagem baixa media alta X X X X X 3 4 3 7 5 4 5 4 10 7 6 7 6 15 10 = = = = =

ALI Arquivos Lgicos Internos AIE Arquivos de interfaces ext.

Contagem total - Pontos por funo (no ajustado)

36

Etapa 5: Determinar o Fator de Ajuste Fator de Ajuste de Valor (VAF)


Passo final na contagem de pontos de funo Avalia restries de negcio adicionais do software no consideradas pelos cinco tipos de funes. Todas as funes avaliadas na contagem de Pontos de Funo so funes do software Baseado na influncia de 14 Caractersticas Gerais do Sistema
37

Fator de Ajuste
O IFPUG (International Function Point Users Group), rgo responsvel pela tcnica, tornou o fator de ajuste opcional para adequar-se ao padro ISO/IEC. O objetivo do fator ajustar os pontos de funo no-ajustados em 35% de acordo com a influncia de 14 caractersticas gerais. No processo aqui apresentado, no ser utilizado no clculo final.
38

Clculo do Fator de Ajuste


Caractersticas no funcionais interferem na complexidade do produto. Calcular o Fator de Ajuste:
Avaliar o impacto de cada uma das quatorze caractersticas (prximo slide)
atribuir a cada caracterstica um peso de 0 a 5.

Calcular o nvel de influncia:


Somando-se os pesos de cada uma das caractersticas.

Aplicar a frmula de clculo do fator de ajuste (variao de + 35%).


39

Clculo do Fator de Ajuste


Caractersticas Gerais:
1. Comunicao de Dados 2. Processamento de Dados Distribudo (Funes Distribudas) 3. Desempenho 4. Configurao do equipamento 5. Volume de Transaes 6. Entrada de Dados On-Line 7. Interface com o usurio 8. Atualizao On-Line 9. Processamento Complexo 10.Reusabilidade 11.Facilidade de Implantao 12.Facilidade Operacional 13.Mltiplos Locais 14.Facilidade de mudanas

atribuda uma nota de 0 5


a cada uma das Caractersticas Gerais do Sistema correspondendo ao seguinte critrio: (nenhuma influncia, influncia incidental, moderada, mdia, significante, essencial) Fator de Ajuste: 14 Nt(total) = Nt i=1
VAF = 0,65 + (0,01 X Nt(total)) (0,65 <= VAF <= 1,35)
40

Tamanho de produtos conhecidos*

Fonte: *Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998


41

Correspondncia aproximada entre PF e linhas de cdigo


LOC/FP
Produtividade
Linguagem
Access JSP JavaScript
Mdia Mediana Baixa Alta Mdia Cons

35 59 58

38 63

15 42

47 75

50

ASP
Java Visual Basic VBScript

69
62 47 36

62
63 42 34

32
53 16 27

127
77 158 50

80 50
42

Fonte: http://www.qsm.com/FPGearing.html

Fatores de McConnell
Variao da produtividade em funo da escala

PM Pessoa Ms

43

Aplicaes da Tcnica FPA


Produtividade no desenvolvimento Horas por PF Esforo de desenvolvimento Produtividade (H/PF) * Tamanho (PF)

Custo de software Tamanho (PF) * Custo (R$/PF)


Taxa de produo de software PF/Ms; PF/Ano Taxa de manuteno de software PF manuteno / PF aplicativo
44

Qual o valor / preo de um ponto de funo (R$/PF)?


O valor R$/PF ir variar de acordo com as funcionalidades do software, considerando:
a produtividade e experincia da equipe nas tecnologias e padres; o grau de qualidade solicitado pelo cliente; a complexidade do software, a quantidade de entregveis (artefatos, documentos, modelos, etc).
FONTE: http://www.fattocs.com.br/blog/index.php/2012/04/569?lang=pt

45

Qual o preo de um PF?


Em resumo, tudo aquilo que afeta custo de forma significativa mas que no tem relao direta com o tamanho medido pela APF acaba sendo computado no preo do ponto de funo.

46

Qual o preo de um PF em uma tecnologia especfica?


As tecnologias disponveis para desenvolvimento de sistemas podem influenciar diretamente na produtividade (tanto positivamente quanto negativamente) Assim, bastante comum no mercado a diferenciao do valor do PF (R$/PF) de acordo com a plataforma tecnolgica (mainframe, web, cliente-servidor, etc) e a linguagem de programao (Cobol, C, Java, .net, etc).

47

Licitaes pblicas com PF


O Governo Federal aplica PF em contratos para desenvolvimento e manuteno de software (por recomendao do Tribunal de Contas da Unio).
PF so usados como medio para o pagamento e verificao dos servios.

Na tabela http://www.fattocs.com.br/editais.asp, h exemplos de editais e valores.


Pode-se observar que a variao dos nmeros muito significativa, com valores na faixa de R$100/PF a R$1.000/PF.
48

EXEMPLOS E ESTUDO DE CASO


49

Estudo de Caso: Sistema de Controle de Ponto


O sistema tem por objetivo registrar a entrada e sada de funcionrios de uma determinada empresa. O exemplo serve para ilustrar a tcnica de PF. Portanto, o sistema uma simplificao de um sistema real. A seguir, apresentada uma pequena documentao necessria para compreenso do sistema e serve de base para o clculo dos PF.
50

Descrio do Sistema
No sistema de controle de pontos, um trabalhador registra suas entradas e sadas do ambiente do trabalho. Caso o trabalhador esquea o carto de ponto, ele pode justificar tal ocorrncia. O trabalhador tambm pode acompanhar a sua freqncia, onde o sistema apresenta os totais de horas trabalhadas em um determinado perodo. Cada trabalhador pode ter acesso apenas s suas informaes. Alm disso, o gerente pode emitir um relatrio com as informaes de freqncia de todos os funcionrios de seu departamento.
51

Viso do Sistema de Ponto

52

Casos de Uso
Registrar freqncia
Registrar justificativa Acompanhar freqncia Emitir relatrio de freqncia Efetuar Logon

Permite ao trabalhador inserir, alterar, excluir as informaes de entrada e sada em uma data.
O trabalhador insere uma justificativa em caso de alterao ou excluso de horrio. Exibe ao trabalhador o acompanhamento de seus registros de ponto em um perodo escolhido. Permite ao gerente acompanhar o registro de presena dos trabalhadores em um determinado perodo informado. Permite que o funcionrio (trabalhador ou gerente) efetue a autenticao no sistema e, a partir deste ponto, escolher as opes disponveis para acesso ao sistema dependendo do perfil do usurio.
53

Diagrama de Classes de Domnio

Observar que a classe Funcionrio faz parte de outro sistema (Controle de Segurana) e a aplicao de controle de ponto apenas faz referncia a ela.

54

Modelo de Banco de Dados (ER)

Observe que a classe Justificativa (do modelo de classes) foi mapeada para duas tabelas: JUSTIFICATIVA e LINHAS.
55

Transaes (Campos e Arquivos Referenciados)


Transao (Tela/Rel) Campos
Logon
Registro de Ponto Consultar Freqncia Registrar (incluir) freqncia com Justificativa Excluir Apontamento Alterar Apontamento Acompanhar Freqncia
Matricula, Senha, Mensagens, Comando Indicador de entrada e sada, Mensagens, Comando Data do ponto, Horrio de entrada, Hora de sada, Mensagens, Comando Indicador de entrada ou sada, Horrio, Justificativa, Mensagens, Comando Mensagens, Comando Horrio anterior, Horrio novo, Justificativa, Mensagens, Comando Data inicial, Data final, Total de horas no perodo, nome do funcionrio, data do ponto, horrio do ponto, indicador de ent/sada, justificativa, Mensagens, Comando Data Inicial, Data final, Matricula, Nome, Total de horas, Quantidade de Justificativas, Total de horas geral, Mensagens, Comando

Arquivo (Tabela)
Funcionrio Apontamento (Ponto) Apontamento Apontamento, Justificativa

Apontamento, Justificativa Apontamento, Justificativa Apontamento, Justificativa, Funcionrio

Emitir Relatrio de Freqncia

Apontamento, Justificativa, Funcionrio 56

Contagem: Entradas Externas


Descrio da funo
Registro de Ponto Registrar (incluir) freqncia com Justificativa Excluir Apontamento

TAR
1 2 2

TED
3 5 2

Compl ex.
S M S

PF
3 4 3

Alterar Apontamento
TOTAL (EE)

4
14
57

Contagem: Sadas Externas


Descrio da funo TAR TED Compl ex. S PF

Logon

Acompanhar Frequencia

10

Emitir Relatrio de Frequencia

TOTAL (SE)

14

58

Contagem: Consultas Externas

Descrio da funo

TAR

TED

Complex

PF

Consultar Freqncia TOTAL (CE)

3 3

59

Contagem: Arquivos Lgicos Internos

Descrio da funo

TER

TED

Complex.

PF

Apontamento

Justificativa

TOTAL (ALI)

14

60

Contagem: Arquivos de Interface Externa

Descrio da funo

TER

TED

Complex

PF

Funcionrio

TOTAL (AIE)

61

Contagem Final de PF (no ajustados)


Item
Entradas Externas Sadas Externas

PF Brutos
14 14

Consultas Externas
Arquivos Lgicos Internos Arquivos Lgicos Externos

3
14 5

Pontos Funo (no-ajustados)

50
62

Exerccio 1
Utilizando a definio do sistema para o consultrio odontolgico (ver material anexo):
Elabore a documentao dos requisitos/funcionalidades do sistema; Calcule os pontos de funo no ajustados do sistema; Calcule os pontos de funo considerando os fatores de ajuste: sistema on-line (na web), desenvolvido para alta disponibilidades, prevendo o reuso de componentes, com poucas transaes e desempenho mdio.
63

Exerccio 2
Considere a tela para uma aplicao de cadastro (ver figura no prximo slide) Aplique a tcnica de estimativa de pontos de funo para calcular os PF no ajustados. Para calcular os PF no ajustados voc ter que modelar o banco de dados a partir da tela em questo. Considere um modelo de dados normalizado.
64

Formulrio de Cadastro Criar Conta email

65

Exerccio resolvido.
Contagem de Pontos de Funo Transaes para incluir, alterar, excluir e consultar Mercadorias em Estoque.

66

Contagem de Pontos de Funo

67

Exerccio resolvido. Estimativas


Considere um projeto estimado em 100 PF Numa fase que corresponde a 20% do Projeto Numa equipe de 4 pessoas Considerando uma produtividade mdia de 20 horas/PF Considerando uma jornada de 6 horas dirias Considerando um valor de R$35,00 o valor de 1h de Trabalho

Calcule os valores
Do tamanho em PF dos 20% do projeto Do Esforo total em horas Do Prazo em dias Do Custo em R$
68

Estimativas. Resoluo
20% de 100 PF = 20 PF Esforo - 20hs/PF ento: 20hs/PF x 20PF = 400h Prazo - 400h/(4 x 6) = 16,7 Dias Custo - 400h x R$ 35,00 = R$ 14.000,00

69

Referncias
Paula Filho, Wilson de Pdua. Engenharia de Software Fundamentos, Mtodos e Padres. 2. edio. LTC, 2003. Carlos Eduardo Vasquez, Guilherme Siqueira Simes, Renato Machado Albert. ANLISE DE PONTOS DE FUNO: medio, estimativas e gerenciamento de projetos de software. rica, 2003.
http://www.fattocs.com.br/citacao-livro-apf.asp
70

You might also like