• Like
Estimativa de software usando pontos de função
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Estimativa de software usando pontos de função

  • 4,827 views
Published

Aula sobre medição e estimativa de tamanho de software usando Análise de Pontos de Função.

Aula sobre medição e estimativa de tamanho de software usando Análise de Pontos de Função.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,827
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
170
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 1 Estimativas e Medição em Projeto de Software Métrica com Pontos de Função (PF) Cláudio Roberto Martins claudiomartins2000@gmail.com Gerência de Projetos de Informática
  • 2. 2 Objetivos • Apresentar os conceitos de Estimativas e Medição em Projeto de Software • Apresentar a técnica de Pontos de Função para estimativa de medição de projeto de software.
  • 3. 3 O problema • Dado um projeto de desenvolvimento de software, estabelecer: – Tamanho e perfil da equipe – Prazos – Custos
  • 4. 4 Conceitos Básicos • Métrica – Uma medida quantitativa do grau que um sistema, componente, ou processo possui um determinado atributo (IEEE Std 610.12-1990). – As métricas vão permitir que um processo ou um produto do ciclo de desenvolvimento de um sistema seja analisado da mesma forma que um objeto físico pode ser caracterizado através do seu tamanho, cor ou peso.
  • 5. 5 Métricas de Projeto • Primeiro uso: nas estimativas • Após: monitoração e controle • Objetivo: – minimizar (e prever) o prazo de desenvolvimento – medir a qualidade do produto
  • 6. 6 Métricas de Projeto • Cada projeto deve medir: – Entradas (recursos, pessoal, ambiente), – Saídas (medida dos produtos intermediários durante o processo de Eng.Software), e – Resultados (indicam a efetividade dos produtos finais)
  • 7. 7 Tipos de Medidas • Medidas diretas (Ex: comprimento do parafuso), e • Medidas indiretas (Ex: qualidade dos parafusos produzidos).
  • 8. 8 Medidas Em Relação ao Software... • Diretas - linhas de código (LOC) produzidas, velocidade de execução, defeitos relatados. • Indiretas: funcionalidade, qualidade, complexidade, confiabilidade, manutenibilidade.
  • 9. 9 Métricas Orientadas a Tamanho • Consideram o tamanho do software produzido. • Referem-se a todas as atividades da Engenharia (análise, projeto, codificação, teste). – Ex: Linhas de código (LOC)
  • 10. 10 Linhas de código (LOC) • Cada projeto pode obter as seguintes métricas a partir das linhas de código: – Erros por KLOC (K = milhares) – Defeitos por KLOC – $ por LOC – Páginas de documentação por KLOC – Erros por pessoa/mês – LOC por pessoa/mês – $ por pagina de documentação
  • 11. 11 Exemplo de métricas orientadas a tamanho Projeto LOC Esforço (mês) $ (Mil) Pág. Doc Erros Defeitos Pessoas Alfa 12.100 24 168 365 134 29 3 Beta 27.200 62 440 1.224 321 86 5 Gama 20.200 43 314 1.050 256 64 6 ... ... ... ... ... ... ... ...
  • 12. 12 Linha de Código - Observações • Não é muito utilizada como parâmetro de estimativa, pois requer um nível de detalhes difícil de alcançar: – Padronização na forma de codificar – Manter apenas uma linguagem de programação – Não diferencia linhas de código geradas por ferramentas CASE daquelas criadas manualmente
  • 13. 13 Métricas Orientadas por Função • Consiste em um método para medição de software do ponto de vista do usuário • Tem a funcionalidade como fator de normalização. • Dimensiona um software, quantificando a funcionalidade proporcionada ao usuário a partir do seu desenho (projeto) lógico e não dos detalhes de implementação. • A medida é PONTO por FUNÇÃO (FP – Function Point). – Pontos de Função (FP) definem uma relação empírica baseada em medidas de contagem do domínio de aplicação do software (requisitos) e à avaliação da complexidade do software.
  • 14. 14 Objetivo da análise de PF • A análise considera as várias formas com que os usuários interagem com o sistema, com os seguintes objetivos: 1. Fornecer medidas consistentes; 2. Medir funcionalidades que o usuário solicita ou recebe; 3. Independência da tecnologia; 4. Método simples.
  • 15. 15 O Processo de Contagem de PF 1 Determinar tipo de Contagem 2 Identificar escopo da contagem e fronteira da aplicação 3.1 Contar funções do tipo dados 3.2 Contar funções do tipo transação 4 Totalizar PF não ajustados (3.1 + 3.2) 5 (opcional) Determinar valor do fator de ajuste 6 Calcular os PF ajustados (5 + 4)
  • 16. 16 Elementos da contagem de PF Fronteira da Aplicação Entradas Externas (EE) Consultas Externas (CE) Arquivos de Interfaces Externas (AIE) Saídas Externas (SE) Arquivos Lógicos Internos (ALI)
  • 17. 17 Tipo de Contagem • São três: – Contagem de um projeto de desenvolvimento (incluindo migração) – Contagem de um projeto de melhoria – Contagem de uma aplicação em produção (ou baseline)
  • 18. 18 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 disponíveis – Apenas as funcionalidades efetivamente utilizadas pelo usuário – Apenas algumas funcionalidades específicas (relatórios, transações cadastrais, etc.)
  • 19. 19 Fronteira da Aplicação • É 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 aplicação, recebendo ou enviando dados
  • 20. 20 Algumas regras para identificar as fronteiras • Deve ser feita com base no Ponto de Vista do Usuário (que ele pode entender e descrever) • Baseada na separação das funções relacionadas pelos processos do negócio, não considerando tecnologias (banco de dados, p. ex.) • Obter a documentação do sistema • Verificar como os grupos de dados são mantidos • Identificar as entidades (dados) e processos (casos de uso, por exemplo)
  • 21. 21 Funções do Tipo Dado • Representam a funcionalidade oferecida ao usuário para cumprir requisitos de dados • Podem ser de dois tipos: – Arquivo Lógico Interno (ALI) – Arquivo de Interface Externa (AIE) • O nome “arquivo” refere-se a grupos de dados logicamente correlatos e não à sua implementação física
  • 22. 22 Arquivo Lógico Interno (ALI) • Um grupo lógico de dados ou de informações de controle, identificável pelo usuário, mantido dentro da fronteira da aplicação que está sendo contada. • Armazena dados mantidos por um ou mais processos (transações) da aplicação em questão. – Ex: tabelas de banco de dados atualizadas pela aplicação (não considerar chaves primárias do tipo identificador, como “id” ou “seqüência”).
  • 23. 23 Arquivo de Interface Externa (AIE) • Um grupo lógico de dados ou informações de controle, identificável pelo usuário, mantido fora da fronteira da aplicação que está sendo contada. • Exemplos: – tabelas de banco de dados lidas pela aplicação, mas mantidas por outra – Arquivos externos (gerados externamente) – Mensagens de dados (em um protocolo) gerados externamente
  • 24. 24 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 reconhecível pelo usuário – TED – Tipo de elemento de dado • Campo único, não repetitivo e reconhecível pelo usuário
  • 25. 25 Tabela de referência - Complexidade de ALI’s e AIE’s
  • 26. 26 Peso das Funções de Dados
  • 27. 27 Funções de transação • Representam a funcionalidade oferecida ao usuário para processar dados da aplicação • Podem ser de três tipos: – Entrada Externa (EE) – Saída Externa (SE) – Consulta Externa (CE)
  • 28. 28 Entrada Externa (EE) • Cada transação de entrada é contada. • A transação deve atualizar uma base de dados com inclusão, alteração ou exclusão. – Transação pode ser interpretada como uma rotina/processo que executa um conjunto de ações atômicas que produz um resultado visível e de valor ao usuário do sistema. – Pode ser mapeado em telas, formulários (em janelas), páginas, etc.
  • 29. 29 Saída Externa (SE) o Relatórios, telas, mensagens de erros e qualquer processo que é visível externamente ao sistema (caso de uso). o Deve obrigatoriamente calcular ou criar dados derivados como detalhes de subtotais, arquivos intermediários internos ou alterar o resultado do comportamento do sistema.
  • 30. 30 Consulta Externa (CE) o É uma funcionalidade de consulta simples, que através de uma solicitação do usuário (uma entrada on-line), resulta na geração de uma resposta imediata sob a forma de uma saída on-line. o Exemplo: consulta ao cadastro de clientes.
  • 31. 31 Atribuindo complexidade a uma Função de Transação • Identificar os TARs e TEDs – TAR – Tipos de arquivos referenciados • Quantidade de ALI/ AIE mantidos (exceto CE) ou referenciados pela função de transação – TED – Tipos de elementos de dados • Campos reconhecíveis pelo usuário, que cruzam a fronteira da aplicação durante a função de transação
  • 32. 32 Tabela de referência - Complexidade de EE’s Pontuação • Para cada Entrada Externa será atribuído um número de Pontos de Função, de acordo com a sua complexidade funcional relativa: – BAIXA (SIMPLES COMPLEXIDADE): 3 (três) Pontos por Função; – MÉDIA COMPLEXIDADE: 4 (quatro) Pontos por Função; – ALTA (COMPLEXA): 6 (seis) Pontos por Função.
  • 33. 33 Complexidade de Saídas Externas ITENS DE DADOS REFERENCIADOS (TED) Nº DE ARQUIVOS REFERENCIADOS (TAR) 1 A 5 6 A 19 20 OU MAIS Apenas 1 SIMPLES SIMPLES MÉDIA De 2 ou 3 SIMPLES MÉDIA COMPLEXA 4 ou mais MÉDIA COMPLEXA COMPLEXA Pontuação • Para cada Saída Externa será atribuído um número de Pontos de Função, de acordo com a sua complexidade funcional relativa: – SIMPLES: 4 (quatro) Pontos por Função; – MÉDIA: 5 (cinco) Pontos por Função; – COMPLEXA: 7 (sete) Pontos por Função.
  • 34. 34 Complexidade de Consultas Externas ITENS DE DADOS REFERENCIADOS (TED) Nº DE ARQUIVOS REFERENCIADOS (TAR) 1 A 5 6 A 19 20 OU MAIS Apenas 1 SIMPLES SIMPLES MÉDIA De 2 a 3 SIMPLES MÉDIA COMPLEXA 4 ou mais MÉDIA COMPLEXA COMPLEXA Pontuação • Para cada Consulta Externa será atribuído um número de Pontos por Função, de acordo com a sua complexidade funcional relativa: – SIMPLES: 3 (três) Pontos por Função; – MÉDIA: 4 (quatro) Pontos por Função; – COMPLEXA: 6 (seis) Pontos por Função
  • 35. 35 Resumo dos pesos das Funções de Transação
  • 36. 36 Resumo do Cálculo dos PF não ajustados Contagem total - Pontos por função (não ajustado) EE – Entradas Externas SE – Saídas Externas CE – Consultas Externas ALI – Arquivos Lógicos Internos AIE – Arquivos de interfaces ext. Parametro de Medição 3 4 3 7 5 Contagem Fator de peso da Complexidade baixa media alta 4 5 4 10 7 6 7 6 15 10 = = = = = X X X X X
  • 37. 37 Etapa 5: Determinar o Fator de Ajuste • Fator de Ajuste de Valor (VAF) – Passo final na contagem de pontos de função – Avalia restrições de negócio adicionais do software não consideradas pelos cinco tipos de funções. – Todas as funções avaliadas na contagem de Pontos de Função são funções do software – Baseado na influência de 14 Características Gerais do Sistema
  • 38. 38 Fator de Ajuste • O IFPUG (International Function Point Users Group), órgão responsável pela técnica, tornou o fator de ajuste opcional para adequar-se ao padrão ISO/IEC. • O objetivo do fator é ajustar os pontos de função não-ajustados em ± 35% de acordo com a influência de 14 características gerais. • No processo aqui apresentado, não será utilizado no cálculo final.
  • 39. 39 Cálculo do Fator de Ajuste • Características não funcionais interferem na complexidade do produto. • Calcular o Fator de Ajuste: – Avaliar o impacto de cada uma das quatorze características (próximo slide) • atribuir a cada característica um peso de 0 a 5. – Calcular o nível de influência: • Somando-se os pesos de cada uma das características. – Aplicar a fórmula de cálculo do fator de ajuste (variação de + − 35%).
  • 40. 40 Cálculo do Fator de Ajuste Características Gerais: 1. Comunicação de Dados 2. Processamento de Dados Distribuído (Funções Distribuídas) 3. Desempenho 4. Configuração do equipamento 5. Volume de Transações 6. Entrada de Dados On-Line 7. Interface com o usuário 8. Atualização On-Line 9. Processamento Complexo 10.Reusabilidade 11.Facilidade de Implantação 12.Facilidade Operacional 13.Múltiplos Locais 14.Facilidade de mudanças É atribuída uma nota de 0 à 5 a cada uma das Características Gerais do Sistema correspondendo ao seguinte critério: (nenhuma influência, influência incidental, moderada, média, significante, essencial) Fator de Ajuste: Nt(total) = Nt VAF = 0,65 + (0,01 X Nt(total)) (0,65 <= VAF <= 1,35) 14 i=1
  • 41. 41 Tamanho de produtos conhecidos* Fonte: *Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998
  • 42. 42 Correspondência aproximada entre PF e linhas de código Fonte: http://www.qsm.com/FPGearing.html LOC/FP Produtividade  Linguagem Média Mediana Baixa Alta Média Cons Access 35 38 15 47 - JSP 59 - - - - JavaScript 58 63 42 75 50 ASP 69 62 32 127 - Java 62 63 53 77 80 Visual Basic 47 42 16 158 - VBScript 36 34 27 50 50
  • 43. 43 Fatores de McConnell • Variação da produtividade em função da escala PM – Pessoa Mês
  • 44. 44 Aplicações da Técnica FPA • Produtividade no desenvolvimento – Horas por PF • Esforço de desenvolvimento – Produtividade (H/PF) * Tamanho (PF) • Custo de software – Tamanho (PF) * Custo (R$/PF) • Taxa de produção de software – PF/Mês; PF/Ano • Taxa de manutenção de software – PF manutenção / PF aplicativo
  • 45. Qual o valor / preço de um ponto de função (R$/PF)? • O valor R$/PF irá variar de acordo com as funcionalidades do software, considerando: – a produtividade e experiência da equipe nas tecnologias e padrões; – o grau de qualidade solicitado pelo cliente; – a complexidade do software, – a quantidade de entregáveis (artefatos, documentos, modelos, etc). 45 FONTE: http://www.fattocs.com.br/blog/index.php/2012/04/569?lang=pt
  • 46. Qual o preço de um PF? • Em resumo, tudo aquilo que afeta custo de forma significativa mas que não tem relação direta com o tamanho medido pela APF acaba sendo computado no preço do ponto de função. 46
  • 47. Qual o preço de um PF em uma tecnologia específica? • As tecnologias disponíveis para desenvolvimento de sistemas podem influenciar diretamente na produtividade (tanto positivamente quanto negativamente) • Assim, é bastante comum no mercado a diferenciação do valor do PF (R$/PF) de acordo com a plataforma tecnológica (mainframe, web, cliente-servidor, etc) e a linguagem de programação (Cobol, C, Java, .net, etc). 47
  • 48. Licitações públicas com PF • O Governo Federal aplica PF em contratos para desenvolvimento e manutenção de software (por recomendação do Tribunal de Contas da União). – PF são usados como medição para o pagamento e verificação dos serviços. • Na tabela http://www.fattocs.com.br/editais.asp, há exemplos de editais e valores. – Pode-se observar que a variação dos números é muito significativa, com valores na faixa de R$100/PF a R$1.000/PF. 48
  • 49. EXEMPLOS E ESTUDO DE CASO 49
  • 50. 50 Estudo de Caso: Sistema de Controle de Ponto • O sistema tem por objetivo registrar a entrada e saída de funcionários de uma determinada empresa. • O exemplo serve para ilustrar a técnica de PF. Portanto, o sistema é uma simplificação de um sistema real. • A seguir, é apresentada uma pequena documentação necessária para compreensão do sistema e serve de base para o cálculo dos PF.
  • 51. 51 Descrição do Sistema • No sistema de controle de pontos, um trabalhador registra suas entradas e saídas do ambiente do trabalho. • Caso o trabalhador esqueça o cartão de ponto, ele pode justificar tal ocorrência. • O trabalhador também pode acompanhar a sua freqüência, onde o sistema apresenta os totais de horas trabalhadas em um determinado período. • Cada trabalhador pode ter acesso apenas às suas informações. • Além disso, o gerente pode emitir um relatório com as informações de freqüência de todos os funcionários de seu departamento.
  • 52. 52 Visão do Sistema de Ponto
  • 53. 53 Casos de Uso Registrar freqüência Permite ao trabalhador inserir, alterar, excluir as informações de entrada e saída em uma data. Registrar justificativa O trabalhador insere uma justificativa em caso de alteração ou exclusão de horário. Acompanhar freqüência Exibe ao trabalhador o acompanhamento de seus registros de ponto em um período escolhido. Emitir relatório de freqüência Permite ao gerente acompanhar o registro de presença dos trabalhadores em um determinado período informado. Efetuar Logon Permite que o funcionário (trabalhador ou gerente) efetue a autenticação no sistema e, a partir deste ponto, escolher as opções disponíveis para acesso ao sistema dependendo do perfil do usuário.
  • 54. 54 Diagrama de Classes de Domínio Observar que a classe Funcionário faz parte de outro sistema (Controle de Segurança) e a aplicação de controle de ponto apenas faz referência a ela.
  • 55. 55 Modelo de Banco de Dados (ER) Observe que a classe Justificativa (do modelo de classes) foi mapeada para duas tabelas: JUSTIFICATIVA e LINHAS.
  • 56. 56 Transações (Campos e Arquivos Referenciados) Transação (Tela/Rel) Campos Arquivo (Tabela) Logon Matricula, Senha, Mensagens, Comando Funcionário Registro de Ponto Indicador de entrada e saída, Mensagens, Comando Apontamento (Ponto) Consultar Freqüência Data do ponto, Horário de entrada, Hora de saída, Mensagens, Comando Apontamento Registrar (incluir) freqüência com Justificativa Indicador de entrada ou saída, Horário, Justificativa, Mensagens, Comando Apontamento, Justificativa Excluir Apontamento Mensagens, Comando Apontamento, Justificativa Alterar Apontamento Horário anterior, Horário novo, Justificativa, Mensagens, Comando Apontamento, Justificativa Acompanhar Freqüência Data inicial, Data final, Total de horas no período, nome do funcionário, data do ponto, horário do ponto, indicador de ent/saída, justificativa, Mensagens, Comando Apontamento, Justificativa, Funcionário Emitir Relatório de Freqüência Data Inicial, Data final, Matricula, Nome, Total de horas, Quantidade de Justificativas, Total de horas geral, Mensagens, Comando Apontamento, Justificativa, Funcionário
  • 57. 57 Contagem: Entradas Externas Descrição da função TAR TED Compl ex. PF Registro de Ponto 1 3 S 3 Registrar (incluir) freqüência com Justificativa 2 5 M 4 Excluir Apontamento 2 2 S 3 Alterar Apontamento 2 5 M 4 TOTAL (EE) 14
  • 58. 58 Contagem: Saídas Externas Descrição da função TAR TED Compl ex. PF Logon 1 4 S 4 Acompanhar Frequencia 3 10 M 5 Emitir Relatório de Frequencia 3 9 M 5 TOTAL (SE) 14
  • 59. 59 Contagem: Consultas Externas Descrição da função TAR TED Complex PF Consultar Freqüência 1 5 S 3 TOTAL (CE) 3
  • 60. 60 Contagem: Arquivos Lógicos Internos Descrição da função TER TED Complex. PF Apontamento 1 4 S 7 Justificativa 1 3 S 7 TOTAL (ALI) 14
  • 61. 61 Contagem: Arquivos de Interface Externa Descrição da função TER TED Complex PF Funcionário 1 4 S 5 TOTAL (AIE) 5
  • 62. 62 Contagem Final de PF (não ajustados) Item PF Brutos Entradas Externas 14 Saídas Externas 14 Consultas Externas 3 Arquivos Lógicos Internos 14 Arquivos Lógicos Externos 5 Pontos Função (não-ajustados) 50
  • 63. 63 Exercício 1 • Utilizando a definição do sistema para o consultório odontológico (ver material anexo): – Elabore a documentação dos requisitos/funcionalidades do sistema; – Calcule os pontos de função não ajustados do sistema; – Calcule os pontos de função considerando os fatores de ajuste: sistema on-line (na web), desenvolvido para alta disponibilidades, prevendo o reuso de componentes, com poucas transações e desempenho médio.
  • 64. 64 Exercício 2 • Considere a tela para uma aplicação de cadastro (ver figura no próximo slide) • Aplique a técnica de estimativa de pontos de função para calcular os PF não ajustados. • Para calcular os PF não ajustados você terá que modelar o banco de dados a partir da tela em questão. Considere um modelo de dados normalizado.
  • 65. 65 Formulário de Cadastro “Criar Conta email”
  • 66. 66 Exercício resolvido. Contagem de Pontos de Função – Transações para incluir, alterar, excluir e consultar “Mercadorias em Estoque”.
  • 67. 67 Contagem de Pontos de Função
  • 68. 68 Exercício 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 média de 20 horas/PF • Considerando uma jornada de 6 horas diárias • 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 Esforço total em horas • Do Prazo em dias • Do Custo em R$
  • 69. 69 Estimativas. Resolução • 20% de 100 PF = 20 PF • Esforço - 20hs/PF então: 20hs/PF x 20PF = 400h • Prazo - 400h/(4 x 6) = 16,7 Dias • Custo - 400h x R$ 35,00 = R$ 14.000,00
  • 70. 70 Referências • Paula Filho, Wilson de Pádua. Engenharia de Software - Fundamentos, Métodos e Padrões. 2ª. edição. LTC, 2003. • Carlos Eduardo Vasquez, Guilherme Siqueira Simões, Renato Machado Albert. ANÁLISE DE PONTOS DE FUNÇÃO: medição, estimativas e gerenciamento de projetos de software. Érica, 2003. – http://www.fattocs.com.br/citacao-livro-apf.asp