Pontos por Função medindo tamanho de software Prof. Rodrigo Nin [email protected] 1 Medidas NÃO Funcionais de Software Linhas de Código Categoria Fonte: Jair C Leite Tamanho em linhas de código Trivial 500 Pequeno 1000 a 2000 Médio 5000 a 50.000 Grande 50.000 a 100.000 Muito grande 1 milhão Extremamente grande 1 a 10 milhões 2 Medidas NÃO Funcionais de Software Linhas de Código • VANTAGENS – Fácil de coletar usando ferramentas – Histórico disponível na organização – Esforço/LOC mais ou menos equivalente nas linguagens – Medidas LOC aplicam-se entre projetos (comparação) – Muito usado em ferramentas comerciais • DESVANTAGENS – Não aplicável para estimativas individuais – Acurada apenas em projetos semelhantes – Difícil estimar LOC diretamente; usa-se comparação – Contra-intuitivo para estimar trabalho de requisitos, análise, projeto – Como definir exatamente o critério de contagem? Adaptado de: Steve McConnel 3 Medidas Funcionais de Software • Medem a funcionalidade entregue ao usuário, independentemente da forma de implementação • Independem de plataforma ou linguagem de programação • Independem do estilo de programação utilizado • Permitem comparações entre empresas, linguagens, etc. A norma ISO/IEC 14143-1:1998 trata da definição dos conceitos referentes às medidas funcionais de tamanho de software Adaptado de http://www.bfpug.com.br/ 4 Medidas Funcionais de Software • Pontos de Função do IFPUG (International Function Point Users Group) • Mark II Function Points de Charles Symons • Full Function Points (Cosmic) de Alain Abran • 3D Function Points da BOEING • Bang de Tom DeMarco Adaptado de http://www.bfpug.com.br/ 5 Pontos de Função (IFPUG) • Mede o software através da quantificação da funcionalidade solicitada e adquirida pelo cliente, tendo como base primária o projeto lógico • Mede o software independentemente da tecnologia utilizada na implementação • Mede o o software consistentemente em todos os projetos e organizações Adaptado de http://www.bfpug.com.br/ 6 Pontos de Função (IFPUG) Telas Relatórios Arquivos internos Arquivos externos Interfaces c/sistemas Outras interfaces Adaptado de http://www.bfpug.com.br/ Tamanho em PF ALGORÍTMO 7 Pontos de Função – Exemplos Software PF ––––––––––––––––––––––––––––––––––––––––––• Microsoft Word 2.500 Fonte: Caper Jones • Microsoft Excel 2.500 • Microsoft Project 3.000 • Microsoft Visual Basic 3.000 • Ferramenta CASE IEF (Texas) 20.000 8 Pontos de Função X Medidas de Produtividade quantidade produzida Produtividade = –––––––––––––––––– recursos para produzir ($, tempo, pessoas, etc.) 1600 PF por hora 300 PF por pessoa-ano 0,17 PF por pessoa-hora R$ 350,00 por PF 6 horas por PF 9 Pontos de Função X Medidas de Produtividade 10 Pontos de Função – Administração do Patrimônio Ativo de Software A B C D G H E I F J K L • Tamanho do ativo = 1.800.000 Pontos de Função • Custo de Substituição = R$ 30.000.000 (depende do mercado) • Crescimento/ano = 7% • Custo de Suporte/ano = R$ 0,71 / PF Adaptado de http://www.bfpug.com.br/ 11 Pontos de Função – Cálculo 1. Identificação do escopo do cálculo 2. Identificação e contagem das funções do software 3. Classificação de cada função quanto à complexidade funcional relativa como: simples, média ou complexa 4. Cálculo dos pontos de função brutos através da aplicação dos pesos de acordo com tabela específica 5. Avaliação das 14 características gerais do sistema 6. Determinação do Fator de Ajuste 7. Cálculo dos pontos de função ajustados Adaptado de http://www.bfpug.com.br/ 12 Pontos de Função – Cálculo 1. Identificação do escopo do cálculo Vendas Marketing Cobrança Relacionamento com os Clientes Et coetera ... Jurídico 13 Pontos de Função – Cálculo 2. Identificação e contagem das funções do software Funções de Dados • Arquivos Lógicos Internos (ALI) • Arquivos de Interface Externa (AIE) Funções Transacionais • Entradas Externas (EE) • Saídas Externas (SE) • Consultas Externas (CE) Adaptado de http://www.bfpug.com.br/ 14 Funções Transacionais Funções de Dados Pontos de Função – Cálculo 3. Classificação de cada função quanto à complexidade Adaptado de http://www.bfpug.com.br/ 15 Pontos de Função – Cálculo Adaptado de http://www.bfpug.com.br/ 4. Cálculo dos pontos de função brutos 16 Pontos de Função – Cálculo 5. Avaliação das 14 características gerais do sistema 1. 3. Comunicação de Dados Processamento de Dados Distribuído 2. 4. Atualização On - Line Processamento Complexo 5. Performance 6. Reusabilidade 7. Configuração do equipamento 8. 9. Volume de Transações 10. Facilidade Operacional 12. Múltiplos Locais 14. Facilidade de mudanças 11. 13. Entra da de Dados On - Line Interface com o usuário Facilidade de Implantação Nível de Influência Descrição –––––––––––––––––––––––––––––––––––––––––––0 Não existe 1 Pouca 2 Moderada 3 Média 4 Significativa 5 Total ou muito forte Adaptado de http://www.bfpug.com.br/ 17 Pontos de Função – Cálculo 6. Determinação do Fator de Ajuste FAV = 0,65 + ( das Características do Sistema x 0,01) 7. Cálculo dos pontos de função ajustados PF = Pontos de Função Brutos x FAV Adaptado de http://www.bfpug.com.br/ 18 Pontos de Função – Precisão Portanto: Medir é preciso ... ... ou não? 19 Pontos de Função - Cálculo Aproximado Segundo as 3 Tabelas de Capers Jones¹ • Este método pode ser utilizado com muito pouca informação • Precisão muito pequena • Dá apenas para “ter uma idéia” do tamanho Tabela 1 - Escopo da Aplicação Tabela 2 - Classe da Aplicação Tabela 3 - Tipo da Aplicação ¹ Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998. 20 Pontos de Função - Cálculo Aproximado Segundo as 3 Tabelas de Capers Jones¹ Tabela 1 - Escopo da Aplicação Índice 1 2 3 4 5 Escopo Índice Escopo Subrotina 6 Programa Isolado Módulo 7 Componente de Sistema Módulo Reutilizável 8 Versão de Sistema Protótipo Descartável 9 Novo Sistema Protótipo Evolutivo 10 Sistema Composto Exemplo: Índice de Escopo 9 - Novo Sistema ¹ Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998. 21 Pontos de Função - Cálculo Aproximado Segundo as 3 Tabelas de Capers Jones¹ Tabela 2 - Classe da Aplicação Índice 1 2 3 4 5 6 7 8 Classe Software Individual Shareware Software Acadêmico 1 Site - Interno Multi-Site - Interno Projeto Contratado - Civil Time Sharing Serviço Militar Índice 9 10 11 12 13 14 15 Classe Internet Software Alugado Software Bundled Software Comercial (*) Contrato de Outsourcing Contrato Governamental Contrato Militar Exemplo: Índice de Escopo 9 - Novo Sistema Índice de Classe 5 - Multi-Site - Interno ¹ Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998. 22 Pontos de Função - Cálculo Aproximado Segundo as 3 Tabelas de Capers Jones¹ Tabela 3 - Tipo da Aplicação Índice 1 2 3 4 5 6 7 8 9 10 Tipo Não Procedural Web Applet Batch Interativa GUI Interativa Batch DB DB Interativa Cliente/Servidor Matemática Sistema (Operacional) Índice 11 12 13 14 15 16 17 18 19 20 Comunicações Controle de Processo Sistema Confiável (Trusted) Sistema Embedded Processamento de Imagem Multimídia Robótica Inteligência Artificial Rede Neural Híbrido: Misto Exemplo: Índice de Escopo 9 - Novo Sistema Índice de Classe 5 - Multi-Site - Interno Índice de Tipo 8 - Cliente/Servidor ¹ Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998. 23 Pontos de Função - Cálculo Aproximado Segundo as 3 Tabelas de Capers Jones¹ • Somar os 3 índices obtidos: 9 + 5 + 8 = 22 • Elevar o resultado a 2,35 • 22 ** 2,35 = 1428 PF • Sistemas C/S costumam ficar entre 1000-1500 PF • A previsão obtida baseia-se no banco de dados da SPR (Software Productivity Research) ¹ Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998. 24 Pontos de Função - Outra Aproximação 25 Pontos de Função - Outra Aproximação Total por ALI = 35 PF 26 Pontos de Função - Outra Aproximação 27 Pontos de Função - Outra Aproximação 28 Pontos de Função - Outra Aproximação 29 Pontos de Função - Outra Aproximação 30 Custo do Esforço Pontos de Função - Outra Aproximação Região Impossível (75% de Td) Td To Tempo de Desenvolvimento 31 Pontos de Função - Outra Aproximação 32 Pontos de Função - Outra Aproximação 33 Pontos de Função - Outra Aproximação 34 Pontos de Função - Outra Aproximação 35 Pontos de Função - Usando Ferramentas 36 Pontos de Função - Banco de Dados 37 Pontos de Função 38