Felipe Ribeiro Katia Barros Katya Lyra Luanna Brito Luis Augusto Guimarães NESMA A associação É uma associação de usuários de métricas que tem proposto alternativas de contagem, utilizando a Análise de Pontos de Função, de forma a possibilitar medir um produto de software no início do processo, mesmo não possuindo todas as informações sobre as funções de dados, transações e características gerais do sistema bem definidas. NESMA A associação • Associação fundada em 12 de maio de 1989 na Holanda • Sob o nome de NEFPUG - Netherlands Function Point Users Group • Em 1995, tornou-se NESMA - Netherlands Software Metrics Users Association NESMA A associação • Em 1991, a NESMA formou o grupo de trabalho “FPA para melhoramento e Manutenção” para desenvolver e publicar as orientações para a aplicação da melhoria e manutenção do software de analise de ponto de função. • Após vários anos de pesquisa e desenvolvimento, o grupo de trabalho publicou seu manual de orientações em 1998. • Sua tradução para o inglês foi publicada em 2001. NESMA Objetivos • Uso de Métricas de Software: • Promover o uso responsável • Promover e incentivar a padronização • Incentivar o desenvolvimento e aplicação • Reunir indivíduos e organizações para a troca de conhecimentos e experiência no desenvolvimento e aplicação de métricas de software; NESMA Método • NESMA busca atingir esses objetivos através de: • Atividades dos seus grupos de estudo e grupos de trabalho; • Investigação realizada por seus membros; • Apresentações, treinamento, simpósios e similares; • Recomendações sobre o uso de métricas de software; • Pesquisa e publicação de literatura de métricas de software; • Colaboração com as organizações com interesses semelhantes, e com os outros grupos de usuários de métricas de software e associações a nível mundial, incluindo IFPUG (E.U.A.), ASMA (Austrália) e FESMA (Europa). NESMA Membros • Para se associar, a composição de custos varia em 250 € por ano. A NESMA não tem fins lucrativos. • Benefícios ASSOCIADOS NESMA: • Têm acesso ilimitado ao site NESMA • De cada novo produto NESMA uma cópia gratuita • Podem participar nas comissões e conferências da NESMA • Obter descontos em atividades (conferências, simpósios, workshops, etc) e produtos (estudos, relatórios e manuais) do NESMA • São mais de 100 associados: ABN-AMRO Bank NV ; IBM Nederland BV NESMA IFPUG - International Function Point Users Group http://www.ifpug.org/ NESMA IFPUG - International Function Point Users Group • A NESMA é um dos maiores grupos de usuários de pontos por função da Europa, utilizando filosofia, conceitos, termos e regras bem parecidos com as do IFPUG, mas com algumas diretrizes diferentes. • Desde 1990, possui seu próprio manual de contagem, atualmente na versão 2.2, sendo que sua forma de contagem é bem próxima da do manual do IFPUG. • Usa a classificação de complexidades do IFPUG. NESMA Métricas As métricas de tamanho de projeto de software mais utilizadas pela indústria são as seguintes: • Pontos de Função (PF); • Linhas de Código (LOC - Line of Code); • Pontos por Casos de Uso (PCU). NESMA Métricas O principal benefício da métrica PF sobre a LOC é que os Pontos de Função podem ser obtidos no início do ciclo de vida, diretamente das especificações de requisitos do projeto. Além disso, os PFs são úteis para a geração das estimativas de tamanho do projeto, independentemente da metodologia e linguagem de programação utilizada no desenvolvimento. NESMA Métricas Um dos maiores problemas associados à Análise de Pontos de Função é que os dados necessários para essa análise são bastante imprecisos no início de um projeto. NESMA Métricas A abordagem da NESMA, não leva em conta qualquer característica especial do projeto, necessitando apenas de uma classificação dos objetos obtidos através de uma pesquisa no escopo do projeto para a execução de uma função e geração da quantidade de pontos de função, agilizando o processo de estimativa de tamanho. NESMA Análise de Pontos de Função A Análise por Pontos de Função (FPA) é um técnica de medição do tamanho de softwares que tenta relacionar a complexidade inerente ao processamento com as funcionalidades solicitadas/oferecidas ao usuário através do software. NESMA Análise de Pontos de Função • Objetivos • Medir a funcionalidade que o usuário solicita e recebe; • Medir o desenvolvimento e manutenção de software de forma independente da tecnologia utilizada na implementação. • Simples o suficiente para minimizar o trabalho adicional envolvido no processo de medição; • Uma medida consistente entre vários projetos e organizações. NESMA Análise de Pontos de Função • Uso pelas organizações • Como ferramenta para determinar o tamanho de pacotes de software adquiridos; • Como ferramenta para apoiar a análise da qualidade e da produtividade; • Como um mecanismo para estimar custos e recursos envolvidos em projetos de desenvolvimento e manutenção de software; • Como um fator de normalização para comparação de software; • Como uma ferramenta para fundamentar a negociação de contratos. NESMA Análise de Pontos de Função • Etapas da Análise de Pontos de Função • Identificação do Tipo de Contagem a ser Utilizado • Definição da Fronteira da Aplicação • Contagem de Pontos de Função não Ajustados • Cálculo do Fator de Ajuste • Contagem de Pontos de Função Ajustados NESMA Análise de Pontos de Função • Identificação do Tipo de Contagem a ser Utilizado O que vou medir? Consiste na identificação do objeto a ser medido, como sendo um projeto de desenvolvimento, manutenção ou produção. NESMA Análise de Pontos de Função • Definição da Fronteira da Aplicação Quais os limites do que vou medir? Esta é a etapa em que é estabelecido o escopo do sistema objeto da avaliação, sob a visão do usuário. NESMA Análise de Pontos de Função • Contagem de Pontos de Função não Ajustados Arquivo Lógico Interno (ALI) Arquivo de Interface Externa (AIE) Entradas Externas (EE) Saídas Externas (SE) Consultas Externas (CE) NESMA Análise de Pontos de Função • Cálculo do Fator de Ajuste Características gerais do sistema: 1. 2. 3. 4. 5. 6. 7. Comunicação de dados Funções distribuídas Desempenho Utilização do equipamento Volume de transações Entrada de dados on-line Interface com o usuário 8. 9. 10. 11. 12. 13. 14. Atualizações on-line Processamento complexo Reusabilidade Facilidade de implantação Facilidade operacional Múltiplos locais Facilidade de mudanças NESMA Análise de Pontos de Função • Contagem de Pontos de Função Ajustados Processo que realiza a correção das possíveis distorções ocorridas durante o cálculo dos pontos de função não ajustados, aproximando as medidas à situação real. Formas de cálculo: Cálculo de PFs ajustados de um projeto de desenvolvimento Cálculo de PFs ajustados de um projeto de manutenção Cálculo de PFs ajustados de uma aplicação (sistemas em produção) NESMA Abordagem NESMA • Tipos de Contagem contagem indicativa de pontos de função contagem estimada de pontos de função contagem detalhada de pontos de função NESMA Contagem Indicativa A contagem Indicativa fornece um valor indicativo da quantidade de pontos de função do sistema proposto sem conhecer detalhes do modelo nem do processo, possibilitando medir um produto de software no início do processo, mesmo não possuindo todas as informações sobre as funções de dados, transações e características gerais de sistema definidas. NESMA Contagem Indicativa Pode ser usada na fase inicial da proposta de desenvolvimento. É importante ressaltar que o método Contagem Indicativa foi reconhecido pelo IFPUG em Junho de 2003, como um método potencialmente valioso para a estimativa do tamanho funcional. NESMA Contagem Indicativa No entanto, isto não significa que o IFPUG endosse o método como válido, acurado ou preferível em relação a quaisquer outros métodos. NESMA Contagem Indicativa A contagem indicativa é realizada da seguinte forma: Determina-se a quantidade das funções do tipo dado (ALIs e AIEs). O tamanho é dado contando 35 PFs para cada ALI identificado e 15 PFs para cada AIE identificado. NESMA Contagem Indicativa Esta estimativa é baseada somente na quantidade de arquivos lógicos existentes (ALIs e AIEs). Calcula-se o total de pontos de função não ajustados da aplicação da seguinte forma: tamanho indicativo (pf) = 35 x número de ALIs + 15 x número de AIEs. NESMA Contagem Indicativa • EXEMPLO Função do Tipo Dado Tipo de Função Pontos de Função (pré-definido) Cliente ALI 35 Produto ALI 35 Fornecedor AIE 15 Indicativo do tamanho funcional • • • ALI – Arquivos Lógicos Internos AIE – Arquivos de Interface Externas (pf) = 35 x número de ALIs + 15 x número de AIEs 35 x 2 + 15 x 1 = 70 + 15 = 85 pf 85 pf NESMA Contagem Estimada • QUANDO USAR? É utilizada na fase inicial da proposta de desenvolvimento, quando se possuem dados detalhados do processo, apenas informações preliminares sobre os processos e o modelo de dados. São necessárias informações um pouco mais detalhadas sobre a funcionalidade da aplicação, levantadas a partir das exigências do usuário NESMA Contagem Estimada • COMO USAR? 1º PASSO Determina-se todas as funções de todos os tipos (ALI, AIE, EE, SE, CE). Não é necessário a identificação dos elementos de dados de cada função. NESMA Contagem Estimada • COMO USAR? 2º PASSO Toda função do tipo ALI e AIE tem sua complexidade funcional avaliada como baixa. Toda função transacional EE, SE, CE é avaliada como de complexidade funcional média. NESMA Contagem Estimada • COMO USAR? 3º PASSO Calcula-se o total de pontos de função não ajustados, utilizando a classificação de complexidade do IFPUG. A única diferença em relação à contagem usual de pontos de função é que a complexidade funcional não é determinada individualmente para cada função, mas pré-definida para todas elas. NESMA Contagem Estimada • COMO USAR? TABELA DE COMPLEXIDADE IFPUG Tipo de Função ALI AIE EE SE CE Nível de complexidade Baixo Médio 7 10 5 7 13 4 4 5 3 4 Alto 15 10 6 7 6 NESMA Contagem Estimada • EXEMPLO 1 Requisitos do usuário: O usuário deseja adicionar, alterar, excluir e consultar dados de Clientes. Também necessita de 4 diferentes tipos de relatórios contendo dados calculados. O usuário deseja adicionar, alterar, excluir e consultar dados de Produtos. Também necessita de um relatório de produtos. O usuário deseja consultar o Fornecedor através de seu número e um relatório sobre Fornecedor com totalização de resultados. NESMA Contagem Estimada • EXEMPLO 1 Função do tipo Dado ou Transação Tipo de Função Complexidade Pontos de Função (não ajustados) Cliente Produto Fornecedor ALI ALI AIE Baixa Baixa Baixa 7 7 5 Incluir Cliente Alterar Cliente Excluir Cliente Consultar Cliente Relatório 1 de Cliente Relatório 2 de Cliente Relatório 3 de Cliente Relatório 4 de Cliente EE EE EE CE SE SE SE SE Média Média Média Média Média Média Média Média 4 4 4 4 5 5 5 5 NESMA Contagem Estimada • EXEMPLO 1 Função do tipo Dado ou Transação Tipo de Função Complexidade Pontos de Função (não ajustados) Incluir Produto Alterar Produto Excluir Produto Consultar Produto Relatório de Produto EE EE EE CE SE Média Média Média Média Média 4 4 4 4 5 Consultar Fornecedor Relatório de Fornecedor CE SE Média Média 4 5 Estimativa do tamanho funcional 85 fp NESMA Contagem Estimada • EXEMPLO 2: Health-Watcher Função do tipo Dado ou Transação Tipo de Função Complexidade Pontos de Função (não ajustados) Unidades de saúde Especialidade Funcionário Queixa Doença Sintoma ALI ALI ALI ALI ALI ALI Baixa Baixa Baixa Baixa Baixa Baixa 7 7 7 7 7 7 Consultar guia de saúde Consultar queixa Consultar doença CE CE CE Média Média Média 4 4 4 NESMA Contagem Estimada • EXEMPLO 2: Health-Watcher Função do tipo Dado ou Transação Tipo de Função Complexidade Pontos de Função (não ajustados) Inserir unid. de saúde Alterar unid. de saúde Consultar unid. de saúde Excluir unid. de saúde Imprimir unid. de saúde EE EE CE EE SE Média Média Média Média Média 4 4 4 4 5 Inserir especialidade Alterar especialidade Consultar especialidade Excluir especialidade Imprimir especialidade EE EE CE EE SE Média Média Média Média Média 4 4 4 4 5 NESMA Contagem Estimada • EXEMPLO 2: Health-Watcher Função do tipo Dado ou Transação Tipo de Função Complexidade Pontos de Função (não ajustados) Inserir doença Alterar doença Consultar doença Excluir doença Imprimir doença EE EE CE EE SE Média Média Média Média Média 4 4 4 4 5 Inserir sintoma Alterar sintoma Consultar sintoma Excluir sintoma Imprimir sintoma EE EE CE EE SE Média Média Média Média Média 4 4 4 4 5 NESMA Contagem Estimada • EXEMPLO 2: Health-Watcher Função do tipo Dado ou Transação Tipo de Função Complexidade Pontos de Função (não ajustados) Inserir funcionário Alterar funcionário Consultar funcionário Excluir funcionário Imprimir funcionário EE EE CE EE SE Média Média Média Média Média 4 4 4 4 5 Inserir queixa Atualizar queixa Consultar queixa Imprimir queixa EE EE CE SE Média Média Média Média 4 4 4 5 Estimativa do tamanho funcional 176 fp NESMA Comparativo Exemplo 2 • EXEMPLO 2: Health-Watcher Contagem Indicativa Estimativa do tamanho funcional Contagem Estimativa Estimativa do tamanho funcional Método Pontos de Função (não ajustados) (35 x nº de ALIs) + (15 x nº AIEs) Nº de ALIs = 6 Nº de AIEs = 0 210 fp Método Pontos de Função (não ajustados) Utilização da tabela de complexidade funcional com dados pré-definidos 176 fp NESMA Contagem Detalhada • QUANDO USAR? É utilizada na fase onde se possui um grande conhecimento da proposta de desenvolvimento (dados detalhados do processo), somente o número de funções de cada tipo (EE, SE, CE, ALI, AIE) não é suficiente, também é necessário determinar a complexidade funcional (Baixa, Média, Alta) de cada função individualmente. Os requisitos dos usuários precisam ser analisados com mais detalhes: quais elementos de dados e arquivos lógicos são usados por cada função transacional, e quais os grupo lógicos e elementos de dados compõem cada função. NESMA Contagem Detalhada • COMO USAR? 1º PASSO Determina-se todas as funções de todos os tipos (ALI, AIE, EE, SE, CE). 2º PASSO Determina-se a complexidade de cada função (Baixa, Média, Alta) 3º PASSO Calcula-se o total de pontos de função não ajustados. NESMA Contagem Detalhada • EM QUE FASE UTILIZAR? As contagens indicativa e estimada foram idealizadas pelo NESMA para serem utilizadas em etapas iniciais do ciclo de vida de desenvolvimento do sistema, onde ainda não existem definições detalhadas dos requisitos da aplicação, isto é, em momentos bem cedo no processo de estimativa de tamanho. A contagem detalhada de pontos de função é obviamente mais exata que a contagem estimativa e indicativa; mas em contrapartida consome mais tempo e necessita de especificações mais detalhadas. NESMA Contagem Detalhada Cabe ao gerente do projeto e à fase do ciclo de vida em que se encontra o sistema, decidir qual tipo de contagem de pontos de função pode ser usada. Geralmente os resultados não são exatamente os mesmos, mas ainda assim são próximos entre si. NESMA Quanto vale o software? Tomando como base isoladamente a contagem estimada do projeto Health-Watcher (176 fp), nada significa, ou seja, precisamos identificar quanto tempo, esforço, custo, pessoas envolvidas, etc; foi necessário para desenvolver o projeto. Quando podemos comparar medidas feitas em APF é que as coisas começam a fazer sentido. Assim se temos dois projetos, um com 176 fp e outro com 352 fp, podemos concluir que o segundo tem o dobro do tamanho do primeiro. NESMA Quanto vale o software? Após a coleta das métricas, é possível determinar indicadores para avaliação de novos projetos. Levando em consideração: 1. 2. 3. 4. que uma produtividade média de 5 hs / fp; que a média de jornada de trabalho é de 6 horas; que a equipe possui 3 pessoas; que o valor de uma hora de trabalho é de R$ 25,00. • • • Esforço = 5hs / fp = 5 x 176 fp = 880 horas Prazo = 880 h / ( 6h x 3 pessoas) = 49 dias Custo = 880 h x R$ 25,00 = R$ 22.000,00