15/03/2010 Professor Gledson Pompeu [email protected] Análise por pontos de função Análise por Pontos de Função Técnica que permite medir a funcionalidade de um software ou aplicativo, sob a visão do usuário, a partir da descrição dos requisitos do usuário Objetivos da técnica: Referência: Manual de práticas de contagem IFPUG Versão 4.2.1 Medir sistemas, com base nas funções executadas, independentemente da tecnologia utilizada Identificar um padrão de medida para a produtividade e qualidade da área de sistemas Fornecer ferramenta para auxiliar nas estimativas de recursos para o desenvolvimento de software Possibilitar o uso em diferentes projetos, em diferentes empresas e ambientes variados, demonstrando consistência na comparação Professor Gledson Pompeu [email protected] Componentes dos Pontos de Função Arquivo Lógico Interno (ALI) Arquivo Lógico Interno (ALI) Arquivo de Interface Externa (AIE) Entrada Externa (EE) Saída Externa (SE) Consulta Externa (CE) Professor Gledson Pompeu [email protected] Componentes dos Pontos de Função O Manual de Práticas de Contagem do International Function Point Users Group (IFPUG) identifica cinco tipos de funções que são contadas e avaliadas: Entidade lógica e persistente, a respeito da qual dados serão mantidos pela aplicação Baseia-se em requisitos lógicos dos usuários e são independentes da implementação ou meios de armazenamento Contado com base na quantidade de campos de dados e de registros lógicos nele contidos Arquivo de Interface Externa (AIE) 3 2 Entidade lógica e persistente, requerida para referência ou validação pelo software sendo contado, mas que é mantido por outro aplicativo de software Também é parte dos requisitos lógicos dos usuários e é contado com base no número de campos de dados e de registros lógicos Professor Gledson Pompeu [email protected] 4 1 15/03/2010 Componentes dos Pontos de Função Entrada Externa (EE) Processo do negócio que mantém os dados em um ou mais arquivos lógicos internos, ou processo de controle que direciona o software para atender os requisitos de negócio do usuário Contada com base no número de campos de dados do usuário envolvidos e na soma dos ALI e AIE participantes do processo Processo do negócio que gera dados novos (não armazenados) para um usuário ou para outro aplicativo externo ao software Par gatilho-resposta por meio do qual uma solicitação entra no aplicativo (tipicamente a partir de um usuário ou de outro aplicativo) e provoca a recuperação dos dados necessários para atender à solicitação Professor Gledson Pompeu [email protected] Situação de existência de demandas do usuário relativas a um novo sistema, ou mesmo de um projeto, cujo desenvolvimento ainda não tenha sido concluído Neste caso será feita uma estimativa do tamanho do sistema a ser desenvolvido A fronteira separa o sistema sob avaliação das aplicações externas, ou seja, permite identificar os limites do sistema que está sendo medido Trata-se da situação quando ocorrerem solicitações de alterações corretivas ou evolutivas em sistemas existentes Neste caso será feita uma estimativa do tamanho da modificação a ser realizada Situação em que o sistema já está em plena utilização Neste caso será avaliado o tamanho real do sistema Professor Gledson Pompeu [email protected] 7 Definir a fronteira da aplicação baseada na visão do usuário, ou seja, refletir o sistema como percebido pelo usuário; Observar os relacionamentos do sistema com o meio externo, externo focalizando os processos voltados para o negócio Neste momento, são identificados: Projeto de Aplicação 6 Etapa II - Definição da fronteira Projeto de manutenção Correção das possíveis distorções acometidas durante o cálculo dos pontos de função não ajustados Professor Gledson Pompeu [email protected] 5 Projeto de desenvolvimento Fatores relacionados com características da aplicação que afetam o tamanho funcional de um sistema Etapa V - Contagem de pontos de função ajustados Etapa I - Tipos de contagem Reflete o conjunto de funções disponibilizadas ao usuário Etapa IV - Cálculo do fator de ajuste Escopo do sistema objeto da avaliação Etapa III - Contagem Et C t de d pontos t de d ffunção ã não ã ajustados j t d - Como C vou medir? Projeto de desenvolvimento, manutenção ou aplicação Etapa II - Definição da fronteira da aplicação - Quais os limites do que vou medir? Consulta Externa (CE) Etapa I - Identificação do tipo de contagem a ser utilizado - O quê vou medir? Saída Externa (SE) Etapas para avaliação todos os relacionamentos do sistema com o seu exterior a pertinência dos dados, ou seja, a quem é confiada a responsabilidade de manutenção das informações, residentes no sistema os processos suportados pelo sistema que está sendo contado Professor Gledson Pompeu [email protected] 8 2 15/03/2010 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Arquivos Lógicos Internos – ALI O resultado da contagem pode ser considerado como pontos de função brutos, face a necessidade de se observar outras variáveis que influenciam o processo de desenvolvimento do sistema Grupos de funções tipo DADOS: Arquivos Lógicos Internos Arquivos de Interface Externa Grupos de funções tipo TRANSAÇÕES: Grupo de dados ou informações de controle, interrelacionados, requisitados pelo usuário como necessidades de informação, cuja manutenção é realizada por um processo elementar da aplicação. Critérios de identificação dos ALI Entradas Externas Saídas Externas Consultas Externas Professor Gledson Pompeu [email protected] Informação de controle é o dado utilizado pelo sistema para garantir que todas as funções sejam realizadas conforme solicitado p pelo usuário. Processo elementar é menor atividade percebida pelo usuário que deve ser realizada pelo sistema. Os dados são manutenidos pelo usuário, através de rotinas implementadas no sistema; Os dados foram requisitados pelo usuário refletindo suas necessidades de informação; Os dados são armazenados dentro da fronteira da aplicação. Professor Gledson Pompeu [email protected] 9 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Arquivos Lógicos Internos – ALI Arquivos de Interface Externa – AIE Exemplos de ALI: Os ALI são dados que residem no sistema, ou podem ser modificados por suas rotinas, tais como cadastros, dados de segurança, dados de auditoria, mensagens de auxílio e de erro. Grupo de dados, inter-relacionados, necessários para a aplicação, mantidos e armazenados fora do sistema que está sendo dimensionado. Critérios para Identificação dos AIE Exemplo de arquivos que não são ALI: Grupo de dados temporários, dados inseridos no sistema devido à tecnologia utilizada, dados relativos a índices alternativos para recuperação da informação, dados de backup que não foram exigidos pelo usuário. Professor Gledson Pompeu [email protected] 11 10 Dados armazenados fora da fronteira da aplicação; Dados que não sofrem manutenções pela aplicação que está sendo avaliada; Dados identificados como necessidades de informação do usuário; e Dados que são contados como ALI para outra aplicação. Professor Gledson Pompeu [email protected] 12 3 15/03/2010 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Arquivos de Interface Externa – AIE Registros Lógicos de ALI e AIE Exemplos de AIE: Dados de referência – dados externos utilizados pela aplicação mas que não são usados para manutenção de arquivos lógicos internos. Mensagens de auxílio e mensagens de erro, recebidos pela aplicação que está sendo avaliada. Um registro lógico é um subgrupo de elementos de dados, reconhecido pelo usuário dentro dos arquivos lógicos internos ou de arquivos de interface externa. Para os ALI Nã Não são ã arquivos i d de iinterface t f externa: t Dados que sejam recebidos de outra aplicação e utilizados para adicionar, alterar/remover dados em arquivo lógico interno; Dados cuja manutenção é feita pela aplicação, mas que sejam acessados e utilizados por outra aplicação; Dados formatados e processados para uso por outra aplicação. Para os AIE Professor Gledson Pompeu [email protected] Contar um registro lógico para cada subgrupo de dados em que pelo menos um dado é obrigatório p g p para a criação ç de um item num arquivo, pelo usuário Contar um registro lógico para cada subgrupo de dados opcionais para a criação de um item num arquivo, pelo usuário Caso não haja subgrupos, contar um Registro lógico para cada arquivo lógico identificado Contar um registro lógico para cada subgrupo cujos dados sejam opcionais ou não, utilizados pela aplicação Professor Gledson Pompeu [email protected] 13 14 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Itens de dados de ALI e AIE Complexidade funcional dos ALI e AIE Um item de dado ou dado elementar é um campo, reconhecido pelo usuário dentro dos arquivos lógicos internos (ALI) ou dentro de arquivos de interface externa (AIE). Contar um item para p cada campo p reconhecido pelo p usuário dentro dos ALI ou AIE Contar somente um item para campos armazenados em múltiplos lugares. (ex: data) Contar somente um item de dados para campos que aparecem mais de uma vez em um ALI por causa da tecnologia utilizada. (ex: chaves de tabelas de BD) Contar somente um item de dado para campos repetitivos Professor Gledson Pompeu [email protected] A complexidade é determinada em função da quantidade de registros lógicos e itens de dados referenciados. 15 A matriz de complexidade funcional é a mesma para ALI e AIE, mas a quantidade de pontos de função atribuídos é dif diferente 1 a 19 Itens de Dados 20 a 50 Itens de Dados 51 ou mais Itens de Dados 1 Registro Lógico {BAIXA} {BAIXA} {MÉDIA} 2 a 5 Registros Lógicos {BAIXA} {MÉDIA} {ALTA} 6 ou mais Registros Lógicos {MÉDIA} {ALTA} {ALTA} Professor Gledson Pompeu [email protected] 16 4 15/03/2010 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Contagem de PF dos ALI e AIE Entradas Externas – EE ALI AIE Grupo de dados que entram no sistema, utilizados para a manutenção dos Arquivos Lógicos Internos, ou seja, que provocam inclusão, exclusão ou alteração nos dados. Critérios de Identificação das Entradas Externas Complexidade p Pontos de ffunção ã Complexidade p Pontos de f função ã Baixa 7 Baixa 5 Média 10 Média 7 Alta 15 Alta 10 Contagem das Entradas Externas Professor Gledson Pompeu [email protected] Identificar processos que recebem dados externos e que atualizam arquivos lógicos internos; Identificar processos que permitem entrada de informações de controle, dentro da fronteira da aplicação, para atender requisitos do usuário; Contar uma entrada externa para cada formato de tela de entrada de dados; Contar uma entrada externa para cada atividade de manutenção executada (adição, alteração e remoção); Contar uma entrada externa se o processo necessitar de uma lógica de processamento diferente da utilizada em outras entradas externas que tenham o mesmo formato. Professor Gledson Pompeu [email protected] 17 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Entradas Externas – EE Itens de Dados das Entradas Externas Exemplo de Entradas Externas Dados externos utilizados para a manutenção dos dados dos arquivos lógicos internos de um sistema Entradas externas duplicadas, oriundas de fontes diversas. Cada campo que é atualizado no arquivo lógico interno, pela entrada externa. Contagem dos itens de dados das EE Exemplos do que não são Entradas Externas Dados externos utilizados pela aplicação, mas que não atualizam d dados d d dos arquivos i ló lógicos i iinternos t d da aplicação; li ã Parâmetros de entrada que direcionam a recuperação de dados de uma consulta; Telas de Logon (quando não alimentam logs de segurança internos no sistema, apenas permitem acessos ao sistema); Telas de menu (que fornecem somente funcionalidade de seleção e não atualizam ALI) e Múltiplos métodos de executar uma mesma lógica de entrada. Professor Gledson Pompeu [email protected] 19 18 Contar um único item de dado para campos armazenados em múltiplos locais; Contar um único item de dado para campos que aparecem múltiplas vezes por causa da tecnologia utilizada; vezes, Contar um único item de dados adicional para teclas de função/linhas de comandos que direcionam a entrada. Não considerar um item para cada tecla de função ou linha de comando; Contar os campos atualizados em um ALI, embora não sejam informados pelo usuário (por exemplo, chaves seqüenciais geradas automaticamente, devem ser contadas como um item de dados); Contar um item de dado adicional para mensagens de erro ou confirmação solicitadas pelos usuários, independente da quantidade de mensagens previstas. Professor Gledson Pompeu [email protected] 20 5 15/03/2010 Etapa III - Contagem de PF não-ajustados Complexidade das Entradas Externas Etapa III - Contagem de PF não-ajustados Contagem das Entradas Externas A complexidade é determinada em função da quantidade de arquivos lógicos internos e itens de dados referenciados EE Complexidade Pontos de f função ã Simples 3 1 a 4 Itens de Dados 5 a 15 Itens de Dados 16 ou mais Itens de Dados {BAIXA} {BAIXA} {MÉDIA} 2 Arquivos lógicos Referenciados {BAIXA} {MÉDIA} {ALTA} Média 4 3 ou mais Arquivos lógicos referenciados {MÉDIA} {ALTA} {ALTA} Complexa 6 1 Arquivo lógico Referenciado Professor Gledson Pompeu [email protected] Professor Gledson Pompeu [email protected] 21 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Saídas Externas – SE Saídas Externas – SE Atividades do sistema que transformam dados dos arquivos lógicos internos e geram resultados que são exibidos ao usuário. Processos que enviam dados para fora da fronteira da aplicação; Processos que enviam informações para fora da fronteira da aplicação. Contagem das SE Exemplos de Saídas Externas A contagem das saídas externas é baseada na quantidade de arquivos lógicos referenciados e na quantidade de itens de dados referenciados. Critérios de Identificação de Saídas Externas Professor Gledson Pompeu [email protected] 23 Dados derivados que são exibidos aos usuários ou transferidos a outros sistemas Relatórios de formato idêntico, mas que se valem de lógicas diferentes para serem produzidos Relatórios duplicados produzidos em meios diferentes Relatórios on on-line line resultantes de processamentos e formatos gráficos. Exemplo do que não são Saídas Externas: Cada processo que envia dados ou informações para fora da fronteira da aplicação; Cada processo que necessitar de lógica de processamento diferente da utilizada em outras saídas externas que tenham o mesmo formato. 22 Telas de help (são consultas externas); Múltiplas formas de executar uma mesma lógica de saída (conta-se como uma SE); Relatórios múltiplos com mesma lógica e formato (neste caso contase apenas uma saída externa, para cada tipo de relatório); Relatórios ad-hoc (quando o usuário é responsável direto pela criação). Professor Gledson Pompeu [email protected] 24 6 15/03/2010 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Complexidade das Saídas Externas Arquivos e Itens de Dados das SE Contagem da quantidade de arquivos referenciados das SE Contar cada arquivo lógico interno ou de interface externa consultado para o processamento de cada processo de Saída Externa. A complexidade é determinada em função da quantidade de arquivos lógicos e itens de dados referenciados Contagem da quantidade de Itens de dados das SE Contar cada campo, distinto, exibido ao usuário; Contar cada tipo de legenda em gráficos. Contar um item adicional para cada campo de sumário ou de totalização; Não devem ser contados como itens de dados: Literais, data, hora e controles de paginação. Professor Gledson Pompeu [email protected] 1 a 5 Itens de Dados 6 a 19 Itens de Dados 20 ou mais Itens de Dados 1 Arquivo lógico Referenciado {BAIXA} {BAIXA} {MÉDIA} 2 a 3 Arquivos lógicos Referenciados {BAIXA} {MÉDIA} {ALTA} 4 ou mais Arquivos lógicos Referenciados {MÉDIA} {ALTA} {ALTA} Professor Gledson Pompeu [email protected] 25 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Contagem das Saídas Externas Consultas Externas – CE SE Complexidade Pontos de ffunção ã Simples 4 Média 5 Complexa 7 Professor Gledson Pompeu [email protected] Requisições de informações que, para serem satisfeitas, precisam que sejam combinadas com parâmetros de entradas e saídas que permitem a recuperação da informação solicitada pelo usuário. Nenhum arquivo lógico interno é manutenido durante o processo As informações ç que q compõem p a saída não são dados derivados,, ou seja, correspondem, exatamente, aos dados solicitados, na forma em que estiverem armazenados nos arquivos lógicos internos. Critério de Identificação das CE 27 26 Identificar os Processos onde uma entrada está associada a uma recuperação e exibição de dados, sem que haja processamentos, ou seja, não acontece transformações dos dados para serem exibidos aos usuários. Professor Gledson Pompeu [email protected] 28 7 15/03/2010 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Consultas Externas – CE Contagem das Consultas Externas Exemplos de Consultas externas. Seleção de dados de uma base em função de uma solicitação Telas que mostram o que será alterado antes da efetivação da alteração Telas de menus que admitem fornecimento de parâmetros para consulta na tela escolhida além de orientar navegação C Consultas lt em fformato t gráfico. áfi Exemplos de situações que não são consultas externas. Múltiplas formas de executar uma mesma consulta (considera-se uma consulta só); Telas de menus que fornecem somente funcionalidade de seleção de telas; Dados derivados exibidos; Subsistema de help e tutoriais (considerar como uma aplicação distinta). Professor Gledson Pompeu [email protected] Os arquivos lógicos e itens de dados referenciados deverão ser contados, considerando as entradas e saídas, separadamente. Contar cada processo de recuperação de dados que os seleciona com base em parâmetros de entrada fornecidos; Deve ser calculada a complexidade funcional da parte da entrada e da saída da consulta, separadamente. A maior complexidade encontrada será considerada como a complexidade da consulta externa avaliada. Para cada processo identificado, verificar se a lógica de processamento envolvida, tanto na entrada quanto na saída é diferente da lógica de outras consultas externas; Contar as telas de alteração/remoção que mostrem o que vai ser alterado, se a entrada e saída for idêntica para as operações de alteração e remoção, contar apenas uma consulta; Contar telas com resultados de saída disponibilizados para fora do sistema. Professor Gledson Pompeu [email protected] 29 30 Etapa III - Contagem de PF não-ajustados Etapa III - Contagem de PF não-ajustados Contagem das Consultas Externas Totalização dos PF não-ajustados Descrição CE Complexidade funcional Peso (Qtde de ALI de Complexidade Baixa) (Qtde de ALI de Complexidade Média) (Qtde de ALI de Complexidade Alta) X 7 X 10 X 15 (Qtde de AIE de Complexidade Baixa) Arquivo de (Qtde de AIE de Complexidade Média) Interface Externa (Qtde de AIE de Complexidade Alta) X 5 X 7 X 10 Entrada Externa (Qtde de EE de Complexidade Baixa) (Qtde de EE de Complexidade Média) (Qtde de EE de Complexidade Alta) X 3 X 4 X 6 Arquivo Lógico Interno Complexidade Pontos de ffunção ã Simples 3 Média 4 Saída Externa (Qtde de SE de Complexidade Baixa) (Qtde de SE de Complexidade Média) (Qtde de SE de Complexidade Alta) X 4 X 5 X 7 Complexa 6 Consulta Externa (Qtde de CE de Complexidade Baixa) (Qtde de CE de Complexidade Média) (Qtde de CE de Complexidade Alta) X 3 X 4 X 6 Total por Tipo de função Total de Pontos de Função não-ajustados Professor Gledson Pompeu [email protected] 31 Professor Gledson Pompeu [email protected] 32 8 15/03/2010 Etapa IV - Cálculo do fator de ajuste Etapa IV - Cálculo do fator de ajuste O fator de ajuste é responsável pela correção das distorções da etapa anterior. A metodologia de pontos de função considera que outros fatores afetam o tamanho funcional de um sistema. Estes fatores estão relacionados com características da aplicação: 1. 2. 3. 4. 5. 6. 7. Comunicação de dados; Funções distribuídas; Performance; Configuração do equipamento; Volume de transações; Entrada de dados on-line; 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. Professor Gledson Pompeu [email protected] Processo de Cálculo Professor Gledson Pompeu [email protected] 34 A Netherlands Software Metrics Users Association (NESMA) reconhece outros dois tipos de contagens, além do método detalhado do IFPUG: Contagem estimativa PF = (PF não-ajustado) * (Fator de ajuste) O cálculo de Pontos de Função ajustados também não tem sido usado, pelos problemas de aplicação a sistemas em plataforma web ou cliente-servidor Professor Gledson Pompeu [email protected] Avaliar o impacto de cada uma das 14 características em relação ao sistema que está sendo avaliado, atribuindo pontuação de 0 a 5 para cada característica. Calcular o nível de influência através da soma dos pontos obtidos em cada uma das 14 características. Aplica-se a seguinte fórmula: Fator de Ajuste = (NI * 0,01) + 0,65 Atualmente o fator de ajuste não tem sido utilizado, pois grande parte das características não se aplica a sistemas em plataformas web ou cliente-servidor Isto implica em um intervalo de variação para o fator de ajuste da ordem de 0,65 a 1,35. Contagens NESMA Trata-se do processo que realiza a correção das possíveis distorções acometidas durante o cálculo dos pontos de função não- ajustados, aproximando as medidas à situação real com base no fator de ajuste. Aplica-se a seguinte fórmula: As características gerais do sistema podem influenciar no seu tamanho variando no intervalo de –35% a +35%. 33 Etapa V - Contagem de PF ajustados Contagem indicativa 35 Requer informações gerais sobre quais grupamentos de dados devem ser utilizados (ALI e AIE) e quais transações serão executadas sobre os mesmos (EE, SE e CE) Adota estimativas fixas para complexidade Requer somente informações genéricas sobre grupamentos de dados (ALI e AIE) que serão acessados ou manipulados pela aplicação Adota estimativas fixas para transações e complexidade Professor Gledson Pompeu [email protected] 36 9 15/03/2010 Contagem Estimativa (NESMA) Contagem Indicativa (NESMA) Determina-se o número de grupamentos de dados (ALI e AIE) e de transações (EE, SE e CE) da aplicação Considera-se que todos os arquivos (ALI e AIE) possuem complexidade l id d b baixa i e que ttodas d as transações (EE, SE e CE) são de complexidade média Calcula-se o número de pontos de função nãoajustados pela aplicação dos pesos recomendados pelo manual de práticas de contagem do IFPUG Professor Gledson Pompeu [email protected] Determina-se o número de grupamentos de dados (ALI e AIE) da aplicação Calcula-se o número de pontos de função nãoajustados pela seguinte fórmula: 37 Tamanho = 35 * ALI + 15 * AIE A contagem t indicativa i di ti é b baseada d na premissa i d de que, em média, uma aplicação terá: 3 EE para cada ALI (incluir, alterar, excluir) 1 CE para cada ALI (consultar) 2 SE para cada ALI (2 relatórios) 1 CE para cada AIE (consultar) 1 SE para cada AIE (1 relatório) Professor Gledson Pompeu [email protected] 38 10