Departamento de Informática BFPUG Brazilian Function Point Users Group Implantação de um Processo de Medições de Software Claudia Hazan, MSc., CFPS claudinhah@yahoo.com
Agenda Introdução Processo de Medições de Software PSM PA: Medições e Análise Análise de Pontos de Função
Processo de Medições POR QUE MEDIR? Não se pode gerenciar o que não se pode medir
Processo de Medições Por Que Medir Indicar a qualidade do Produto Avaliar a produtividade do processo Melhorar a gerência de projetos e relacionamento com clientes Formar uma Baseline para estimativas Gerenciar contratos de software
Processo de Medições Um Processo de Medições deve: Fornecer uma base para melhoria contínua do processo Quantificar qualidade e produtividade Estar integrado com o ciclo de vida Medir o impacto de vários métodos, ferramentas, e técnicas de melhoria
Processo de Medições Princípios para um Processo de Medições Medições devem ser usadas para medir processos, não pessoas O processo de medição deve ter objetivos claros e bem-definidos O processo de medição deve ser fortemente acoplado com o processo de gerência da qualidade e integrado dentro de planos e orçamentos O processo de coleta de dados deve ser simples, e ferramentas automáticas para extração de dados devem ser usadas. As medições devem ser repetíveis e independente do observador O processo de medição é um processo contínuo e sujeito a melhoria Os resultados das métricas deve ser compartilhado com os desenvolvedores
PROBLEMAS: Blindly Jump into a Software Measurement Program Overkill Processo de Medições Muitos dados, desperdício de esforço Measurement Dysfunction Avaliação de pessoas- Tell-Them-What-They-Want-to-Hear Measurement Mismatch Medidas erradas, ambíguas ou inconsistentes Process Mismatch Medidas que reforçam os processos errados
PSM PSM -Practical Software Measurement
PSM O que é o PSM Uma abordagem para o gerenciamento a partir de fatos, destinada aos gerentes de projetos de software.
PSM Como Funciona o PSM O PSM utiliza dois modelos integrados: Modelo de Informação para Medição Fornece um caminho para a seleção das medidas a serem utilizadas. - Modelo do Processo de Medição Serve de guia para a implementação do PSM
Modelo de Informação Necessidades de Informação Produtos de Informação
Modelo de Processo Objetivos e Questões Processos Técnicos e Gerenciais Feedback do Usuário Resultados de Análise Estabelecer e Sustentar Compromissos Atividades Centrais da Medição Planejar Medição Plano de Medição Novas Questões Executar Medição Escopo do PSM Ações de Melhoria Avaliar Medição Resultados de Análise e Medidas de Desempenho
Processo disciplinado Introdução ao CMMI Processo padronizado, consistente Processo previsível 3 - Definido Foco no Processo da Organização Definição do Processo da Organização Programa de Treinamento Gerência de Software Integrada Engenharia de Produto de Software Coordenação entre Grupos Revisão por Pares 2 - Repetível Gerência de Requisitos Planejamento de Projetos de Software Acompanhamento de Projetos de Software Garantia da Qualidade de Software Gerência de Configuração de Software Gerência de Subcontratação de Software Melhoria contínua 4 - Gerenciado Gerência Quantitativa de Processos Gerência Qualitativa de Software 5 - Otimização Prevenção de Defeitos Gerência de Mudança de Tecnologia Gerência de Mudança de Processo
Introdução ao CMMI Modelo CMMI Nível de Maturidade 1 Inicial 2 Gerenciado 3 Definido Representação por estágios 4 Gerenciado Quantitativamente 5 Otimização
Introdução ao CMMI Estrutura do Modelo CMMI Níveis de Maturidade Área de Processo 1 Área de Processo 2 Área de Processo n Objetivos Específicos Objetivos Genéricos Características Comuns Compromisso para realizar Habilidade para executar Diretrizes para implementação Verificação da implementação Práticas Específicas Práticas Genéricas
Medição e Análise O propósito da Medição e Análise é desenvolver e sustentar uma capacidade de medição que é usada para suportar gerencialmente as necessidades de informação. Necessidades de Informação Produtos de Medição
Medição e Análise A PA Medição e Análise envolve o seguinte: Especificação dos objetivos de medição e análise de forma que estes sejam alinhados com as necessidades de informação identificadas e objetivos; Especificação das medidas, mecanismos de coleta de dados e de armazenamento, técnicas de análise, e mecanismos de comunicação e de feedback; Implementação da coleta, armazenamento, análise, e comunicação dos dados; Fornecimento de resultados objetivos que podem ser usados na tomada de decisão e implementação de ações corretivas apropriadas.
Medição e Análise Planejamento de Projeto Controle e Acompanhamento do Projeto Gerência de Configuração Desenvolvimento de Requisitos Gerência de Requisitos Definição do Processo Organizacional Gerência de Projeto Quantitativa
Medição e Análise Objetivos Específicos (SGs) SG1: Alinhar as Atividades de Medição e de Análise Os objetivos e as atividades de medição devem ser alinhados com as necessidades de informação e objetivos identificados. Práticas Específicas (SPs) SP 1.1 Estabelecer Objetivos de Medição SP 1.2 Especificar medidas SP 1.3 Especificar Procedimentos de coleta e armazenamento de dados SP 1.4 Especificar Procedimentos de Análise
Medição e Análise Objetivos Específicos (SGs) SG2: Fornecer Resultados de Medição Os resultados de medição relativos às necessidades de informação e objetivos devem ser fornecidos. Práticas Específicas (SPs) SP 2.1 Coletar Dados de Medição SP 2.2 Analisar Dados de Medição SP 2.3 Armazenar Dados e Resultados SP 2.4 Comunicar Resultados
Medição e Análise Objetivos Genéricos (SGs) GG2: Institucionalizar um Processo Gerenciado O processo é institucionalizado como um processo gerenciado. Práticas Genéricas (GPs) GP 2.1 (CO 1)Estabelecer a Política Organizacional GP 2.2 (AB 1) Planejar o Processo GP 2.3 (AB 2) Fornecer Recursos GP 2.4 (AB 3) Associar Responsabilidade GP 2.5 (AB 4) Treinar Pessoas GP 2.6 (DI 1) Gerenciar Configurações GP 2.7 (DI 2) Identificar e Envolver Stakeholders Relevantes GP 2.8 (DI 3) Monitorar e Controlar o Processo GP 2.9 (VE 1) Avaliar Objetivamente a Aderência GP 2.10 (VE 2)Rever o Status com Alta Administração
Medição e Análise Objetivos Genéricos (SGs) GG3: Institucionalizar um Processo Definido O Processo é institucionalizado como um processo definido. Este objetivo não é requerido pelo nível 2, no entanto é requerido pelo nível 3. Práticas Genéricas (GPs) GP 3.1 Estabelecer um Processo Definido GP 3.2 Coletar Informação de Melhoria
Análise de Pontos por Função = 1000 PF Pontos de Função (PF) É uma medida de dimensionamento de software através da funcionalidade implementada em um sistema, sob o ponto de vista do usuário.
Análise de Pontos por Função Medir a funcionalidade requisitada e recebida pelo usuário Medir Projetos de Desenvolvimento e de Manutenção independentemente da tecnologia utilizada Publicado como Padrão Internacional - ISO/IEC 20926
Análise de Pontos por Função APF relata diretamente os requisitos do negócio. APF é independente da tecnologia utilizada. APF torna possível as estimativas nas fases iniciais do processo de desenvolvimento de software. APF fornece facilidade para uma reestimativa APF fornece suporte ao gerenciamento do Projeto APF apoia a análise de produtividade e qualidade
Análise de Pontos por Função Visão Geral Consultas Externas (Sem Dados Derivados) Fronteira da Aplicação APLICAÇÃO Saídas Externas ( Com Dados Derivados) Arquivos Lógicos Internos Entradas Externas Funções de dados Funções transacionais Arquivos de Interface Externa Outra Aplicação Arquivo Lógico Interno
Contagem de PF Determinar Tipo de Contagem Identificar Escopo de Contagem e Fronteira da Aplicação Contar Funções de Dados Contar Funções Transacionais Determinar os PF Não Ajustados Determinar o Fator de Ajuste Calcular os PF Ajustados
Contagem de PF Determinar Tipo de Contagem TIPOS DE CÁLCULO DE PONTOS DE FUNÇÃO Contagem de PF de Projetos de Desenvolvimento - PF associados com a instalação inicial de um software novo Contagem de PF de Projetos de Manutenção - PF associados com a melhoria de um software já existente (inclui funcionalidade que é adicionada, modificada ou excluída) Contagem de PF de Aplicações - PF associados com uma aplicação instalada - Funcionalidade da aplicação no ponto de vista do usuário
Contagem de PF Identificar Escopo de Contagem e Fronteira da Aplicação A fronteira é determinada baseada na visão do usuário. O foco é no que o usuário pode entender e descrever. É a interface conceitual entre a aplicação Interna e o mundo do usuário externo Ponto de vista do usuário Baseada na funcionalidade do negócio, Não na implementação tecnológica
Contagem de PF Contar Funções de Dados Arquivos Lógicos Internos São grupos de dados ou informações de controle especificados pelo usuário logicamente relacionados, cuja manutenção é efetuada dentro da fronteira da aplicação. Armazenar dados mantidos através de um ou mais processos elementares da aplicação sendo contada.
Contagem de PF Contar Funções de Dados Arquivos de Interface Externa São grupos de dados ou informações de controle especificados pelo usuário logicamente relacionados, cuja manutenção é efetuada dentro da fronteira de outra aplicação Armazenar dados referenciados através de um ou mais processos elementares da aplicação sendo contada.
Contagem de PF Contar Funções Transacionais Entradas Externas Uma Entrada Externa é um processo elementar que processa dados ou informações de controle que vem do lado de fora da fronteira da aplicação. Manter um ou mais Arquivo Lógico Interno e/ou alterar o comportamento do sistema.
Contagem de PF Contar Funções Transacionais EXEMPLO: ENTRADA EXTERNA http://www.receita.fazenda.gov.br
Contagem de PF Contar Funções Transacionais Saídas Externas Uma Saída Externa é um processo elementar que envia dados ou informação de controle para fora da fronteira da aplicação. Apresentar informação para um usuário através de processamento lógico adicional a recuperação de dados ou informação de controle. O processamento lógico deve conter no mínimo uma fórmula matemática ou cálculo, ou criar de dados derivados.
Contagem de PF Contar Funções Transacionais Saídas Externas Uma Saída Externa PODE também manter um ou mais Arquivos Lógicos Internos e/ou alterar o comportamento do sistema.
Contar Funções Transacionais Contagem de PF EXEMPLO: SAÍDA EXTERNA Gráfico de Distribuição das Funções
Contagem de PF Contar Funções Transacionais Consultas Externas Consulta Externa é um processo elementar que envia dados ou informação de controle para fora da fronteira da aplicação. Apresentar informação para o usuário através da recuperação de dados ou informação de controle de um ALI ou AIE. O processamento Lógico NÃO contém fórmulas matemáticas ou cálculos, NÃO cria dados derivados. Além disso, NÃO mantém Arquivos Lógicos Internos durante o processamento, nem altera o comportamento do sistema.
Contagem de PF Contar Funções Transacionais EXEMPLO: CONSULTA EXTERNA http://www.receita.fazenda.gov.br
Contagem de PF Determinar os PF Não Ajustados Tabela de Cálculo TIPO DE COMPLEXIDADE TOTAL TOTAL FUNÇÃO FUNCIONAL COMPLEX. TIPO FUNÇÃO ARQUIVO LÓGICO INTERNO ARQUIVO DE INTERFACE EXTERNA ENTRADA EXTERNA SAÍDA EXTERNA CONSULTA EXTERNA SIMPLES X 7 = MÉDIA X 10 = COMPLEXA X 15 = SIMPLES X 5 = MÉDIA X 7 = COMPLEXA X 10 = SIMPLES X 3 = MÉDIA X 4 = COMPLEXA X 6 = SIMPLES X 4 = MÉDIA X 5 = COMPLEXA X 7 = SIMPLES X 3 = MÉDIA X 4 = COMPLEXA X 6 = * * * TOTAL DE PONTOS DE FUNÇÃO NÃO - AJUSTADOS =
Contagem de PF Determinar o Fator de Ajuste Cálculo do Fator de Ajuste Nível de Influência Total (NIT) NIT = Σ Características Gerais do Sistema FATOR DE AJUSTE (FA) FA = ( NIT * 0,01 ) + 0,65
Contagem de PF Calcular os PF Ajustados Cálculo de PFs Ajustados - Cálculo de PF de um Projeto de Desenvolvimento PF_DESENVOLVIMENTO = PF_NÃO_AJUSTADO * FATOR_AJUSTE - Cálculo de PF de um Projeto de Manutenção PF_MANUTENÇÃO = ((PF_INCLUÍDO + PF_ALTERADO)* FA_ATUAL) + (PF_EXCLUÍDO*FA_ANTERIOR)
Contagem de PF Calcular os PF Ajustados Cálculo de PFs Ajustados - Cálculo de PF de uma Aplicação já Implantada PF_APLICAÇÃO = PF_NÃO_AJUSTADO * FATOR_AJUSTE - Cálculo de PF de uma Aplicação a partir de um Desenvolvimento PF_APLICAÇÃO = PF_DESENVOLVIMENTO - (PF_CONVERSÃO * FATOR_AJUSTE) - Cálculo de PF de uma Aplicação após um Projeto de Manutenção PF_APLICAÇÃO = (PF_NÃO_AJUSTADO + PF_INCLUÍDO + PF_ALTERADO_ATUAL - PF_ALTERADO_ANTERIOR - PF_EXCLUÍDO) * FA_ATUAL
Requisitos Medições para Mudança de Escopo Gerencial Projeto Funcional Projeto Detalhado Aplicação Entregue 100 PFs 120 PFs 130 PFs 135 PFs Tela para entrada de dados modificada (3PFs) Arquivo adicionado (10 PFs) Consulta adicionada (7 PFs) Nova tabela adicionada (10 PFs) Relatório de sumário adicionado (5 PFs) Impacto Esforço Cronograma Custo + 1 mês + 2 semanas + $5000 + 0.5 mês + 1 semana + $2500 + 0.25 mês + 2.5 dias + $1250
Medições & Qualidade Total Quality Management Melhoria Contínua Foco no Cliente Melhoria do Processo Métricas, Modelos, Medições e Análises Peopleware A C P D
Medições & Qualidade Resultados Melhorias Produtividade Qualidade Satisfação do Cliente Custos Medições Baseline Estatísticas de Projeto/Aplicação Atributos de Projeto/Aplicação Programas Pessoal Métodos/técnicas Tecnologia Ambiente Ações Decisões Oportunidades Quais são nossos pontos fortes? Quais são nossas oportunidades de melhoria?
Contato Claudia Hazan claudinhah@yahoo.com MSc. Qualidade de Software Certified Function Point Specialist Consultora de Qualidade de Software Tel: (21) 9124-6579 SERPRO: www.serpro.gov.br BFPUG: www.bfpug.com.br DI PUC-Rio: www.inf.puc-rio.br