Gestão da Qualidade de Software
Análise por Pontos de Função
Prof. José Jorge Dias
Departamento de Ciências Exatas
Introdução
• Qual destes sistemas exige mais esforço, mais tempo e
mais custo?
1) Sistema standalone para automação de um supermercado
2) Sistema Web para uma loja virtual
Introdução
• O gerenciamento de projetos deve ser auxiliado pela utilização de
uma métrica
• geração de sua estimativa de prazo, custo e recursos.
• KLOC só pode ser medido depois do software pronto
• Que unidade de medida padronizada e uniforme deve ser adotada
para mensurar o tamanho de um projeto ?
• Como comparar projetos diferentes em empresas diferentes?
• Conseguiríamos fazer isso com pontos de esforço por exemplo?
Objetivos
• Medir a Funcionalidade de Sistemas de acordo com a perspectiva do usuário
• Medir o desenvolvimento e a manutenção de software
independentemente da tecnologia usada para implementação • Comparar a produtividade entre ambientes de desenvolvimento
(P=PF/Esforço)
• Melhorar as estimativas de projetos de desenvolvimento de softwares • Criar uma unidade padrão de medida de software
Análise de Pontos de Função Histórico
• Allan Albrecht da IBM, em uma conferência da Guide/Share (1979). • Metodologia formal e publicação no domínio público.
- IBM CIS & A Guideline 313, AD/M Productivity Measurement and Estimate Validation, November 1, 1984.
• Grupo Internacional de Usuários de Pontos de Função (1986) • Manual de Práticas de Contagem
IFPUG Function Point Counting Practices Manual, atualmente no Release 4.1, January 1999. • Criação de um grupo de trabalho na ISO sobre Medidas Funcionais de Tamanho (1994)
• Padrão Internacional ISO/IEC 20926 (2002)
Contagem de linhas de código fonte – SLOC
Análise de Pontos de Função – FPA (1979)
Pontos de Casos de Uso – UCP (1993)
Tempo
Processo de contagem
• Funções de dados:
• Arquivo Lógico Interno
• Arquivo de Interface Externa
• Funções Transacionais
• Consulta Externa • Entrada Externa • Saída Externa
Arquivos de Interface Externa Entrada Externa Saída Externa Consulta Externa Aplicativo Outros Aplicativos Saída Externa Entrada Externa Consulta Externa Arquivo Lógico Interno
Funções de dados
• ARQUIVO LÓGICO INTERNO (ALI): Representam os requisitos de
armazenamento de grupos de dados logicamente relacionados, cuja
manutenção é efetuada pela própria aplicação
• Exemplo: Em um sistema onde tem-se o cadastro de alunos, ALUNO é um ALI.
• ARQUIVO DE INTERFACE EXTERNA (AIE): Representam os requisitos
de grupos de dados logicamente relacionadas, utilizados pela
aplicação, mas que sofrem manutenção a partir de outra aplicação
• Exemplo: Utilizamos informações de um outro registro que está fora do escopo do nosso sistema
Não Considerar
• Os arquivos Lógicos internos a que o usuário não tenha
acesso
• Arquivos internos do sistema (temporários ou de trabalho)
• Mais de uma vez o mesmo arquivo classificado em
seqüência(s) diferente(s)
Funções de Transação
• Entrada Externa (EE): é um processo elementar que trata os dados ou
informações de controle vindas de fora da fronteira da aplicação que
está sendo contada com o objetivo de inserir, alterar ou excluir
dados dos arquivos lógicos internos (ALIs).
• Todos os elementos utilizados pelo usuário para dar entrada aos dados
Funções de Transação
• Consultas Externas (EE): é um processo elementar que envia dados
ou informações de controle para fora da fronteira da aplicação que
está sendo contada.
• A intenção de uma CE é exibir informação para o usuário através de uma recuperação de dados ou informação de controle
• Não pode conter fórmulas, cálculos ou criar dados derivados
• Exemplos: Dropdown (desde que recuperem dados de ALIs); Telas de help; consultas sem totalizadores e que não atualizem ALIs
Funções de Transação
• Saídas Externas (SE): é um processo que envia dados para fora da
fronteira da aplicação
• A intenção de um SE é exibir informação para o usuário através de um
processamento lógico que resulte numa recuperação de dados de controle • Exemplos: relatórios com totalização de dados, informações em formato de
gráfico; relatórios que também atualizam arquivos, consultas com filtros (há processamento e resolve casos particulares).
Tabela de complexidade de ALI e AIE
ALIs
Determinação de Pontos de Função Brutos
Tipo de Função
Complexidade Funcional
Complexidade Total Total do Tipo de Função ALIs 4 Simples X 7 = 28 0 Média X 10 = 0 0 Co,mplexa X 15 = 0 28 AIEs 4 Simples X 5 = 20 0 Média X 7 = 0 0 Complexa X 10 = 0 20 EEs 4 Simples X 3 = 12 2 Média X 4 = 8 1 Complexa X 6 = 6 26 SEs 4 Simples X 4 = 16 2 Média X 5 = 10 0 Complexa X 7 = 0 26 CEs 5 Simples X 3 = 15 0 Média X 4 = 0 0 Complexa X 6 = 0 15 Total de Pontos de Função Brutos (Não ajustados) = 115
Determinação do Fator de Ajuste
• O FA (Fator de Ajuste) é baseado em 14 características gerais de
sistema que determina a funcionalidade geral da aplicação que
está sendo contada.
• O nível (grau) de influência varia em uma escala de 0 a 5.
0 - Nenhuma influência 1 - Influência mínima 2 - Influência moderada 3 - Influência média 4 - Influência significante 5 - Influência forte
• Vai ajustar os Pontos de função brutos em 35% para mais ou
para menos.
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
Fator de Ajuste
Características Gerais: 1. Comunicação de Dados
2. Processamento de Dados Distribuído (Funções Distribuídas)
3. Performance
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
Fator de Ajuste: Nt(total) = Nt VAF = 0,65 + (0,01 X Nt(total)) (0,65 <= VAF <= 1,35) 14 i=1 PFA(total) = PFB * VAF
Exemplo
• Um sistema com os seguintes requisitos:
RF01 – Manter departamento: o sistema deve permitir manter
departamentos com as seguintes informações: descrição.
RF02 – Manter funcionário: o sistema deve permitir manter
funcionários com as seguintes informações: nome, cpf, identidade e
departamento o qual está alocado.
Estimativas
• Imaginemos um projeto no qual obtemos um total de 100 PF • Numa fase que corresponde a 20% do Projeto
• Numa equipe de 4 pessoas
• Considerando uma produtividade média de 20hs/PF • Considerando uma jornada de 6 horas diárias
Estimativas
• 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
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
Influências
• Linguagem de Codificação • Tamanho do software
• Experiência da equipe
• Ambiente de desenvolvimento (CASE) • Qualidade de expansão/manutenção • Reutilização de código
• Métodos de remoção de erros • Organização da equipe
Algumas Limitações e Desvantagens
• Para ter uma boa utilização é necessária uma base histórica
• É necessário ter uma boa visão (profundidade do sistema para poder estimar com mais segurança)