Métricas de Software

Documentos relacionados
Medidas de Esforço de Desenvolvimento de Software

Plano de Projeto. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Estimativas e Métricas Engenharia de Software

Análise de Ponto de Função APF. Aula 01

Estimativa de Esforço. Estimativas de Software. Subjetividade da Estimativa. Incerteza de Estimativa. Técnicas de Estimativas

Engenharia de Software II

Revisão: Estimando o tamanho do projeto

Métricas de processo e projeto de software

Medição, Estimativas e Gerenciamento de Projetos de Software

Análise de Requisitos

Estimativas de software

Medidas de Esforço de Desenvolvimento de Software

PSP: Personal Software Process. PSP- Personal Software Process. PSP: Personal Software Process. PSP: Personal Software Process

Estimação com Métricas Indiretas e Contagem de Pontos de Função

Engenharia de Software II

Administração. Previsão de Estoques. Professor Rafael Ravazolo.

ANÁLISE DE PONTOS DE FUNÇÃO E SUA IMPORTÂNCIA PARA PROJETOS DE DESENVOLVIMENTO DE SOFTWARE

Medidas de Esforço de Desenvolvimento de Software

Exercícios 2ª Avaliação

Tipos de Indicadores. Conceito. O que medir... 25/08/2016

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

Engenharia de Requisitos: Software Orientado ao Negócio

empowering talents UM PRODUTO:

"A estimativa de tamanho de software é o coração do processo de estimativas de um projeto de software". (PUTMAN,1992)

Bruno Hott COCOMO II

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Medição de Sofware

Prof. Esp. Fabiano Taguchi

ITIL v3 Desenho de Serviço Parte 1

Ciência da Computação ENGENHARIA DE SOFTWARE. Métricas e Estimativas do Projeto

Métricas de Software Importância e Aplicação

Capítulo 23. Planejamento de Projeto Pearson PrenticeHall. Todos os direitos reservados. slide 1

Indicadores de Desempenho

Workshop Paraense de Tecnologia de Software PROCESSO DE MEDIÇÃO. Fabrício Medeiros Alho

Estimativa por Pontos de Caso de Uso

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Lista de Exercícios AV1

Sistema de Gestão Avícola SYSAVES. O sistema SYSAVES controla todo o processo, desde a saída dos

Desenvolvedor Android: Avançado. Plano de Estudo

Estimativa por Use Case Point (UCP)

Custo de Oportunidade do Capital

INTRODUÇÃO. Noções preliminares. Um pouco de matemática. 100 Pb

Prova Discursiva Engenharia de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Eletrotécnica. Potência aparente, fator de potência Potência complexa. Joinville, 21 de Março de 2013

Uso das ferramentas APF e COCOMO para estimativa da capacidade produtiva da TI

O que é um banco de dados? Banco de Dados. Banco de dados

18/10/2013. Resumo. Os mecanismos. Introdução. Padrões de projeto (OO) Compilação condicional

Projeto de Desenvolvimento de Software

INTRODUÇÃO À GESTÃO DE PROCESSOS. Professora: Vanessa Leonardo de Araujo

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Avaliação de Interfaces Humano- Computador

Métricas. Métricas. [Engenharia de Software II] Adriano J. Holanda 11/9/2017

Lista de Exercícios 02: Revisão

Prof. Marcelo Mello. Unidade IV GERENCIAMENTO DE SERVIÇOS

SIGRH Módulos: Férias e Cadastro

Gerenciamento Objetivo de Projetos com PSM

ENGENHARIA DE SOFTWARE

Desenvolvimento de Software

Fundamentos de Teste de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Transcrição:

Métricas de Software Plácido Antônio de Souza Neto 1 1 Gerência Educacional de Tecnologia da Informação Centro Federal de Educação Tecnologia do Rio Grande do Norte 2006.1 - Planejamento e Gerência de Projetos

Introdução Pergunta Por que medir? Obter auto conhecimento (interno); Atender a uma pressão imediata (externa); Preparar-se para o futuro (tendências).

Introdução Pergunta Obter auto conhecimento? Se não sabemos onde estamos... Não conseguimos...... Saber para onde se quer ir.... Saber o que será feito. É importante ter saber o que se tem, o que se está produzindo e aonde se quer chegar.

Introdução Pergunta Atender a uma pressão imediata? Saber o que fazer em uma necessidade a curto prazo. Ex.: Ser aprovado na concorrência de um projeto de desenvolvimento de software. É importante saber o que se deve fazer HOJE.... Saber para onde caminhar. Se o ambiente de desenvolvimento não tiver uma estrutura concreta de produção, como serão os próximos projetos?

Introdução Possíveis Riscos... Se não se consegue MEDIR...... Não se consegue... Controlar; Gerenciar; Melhorar; Trabalhar.

Introdução Pergunta Até onde medir? Alinhar os objetivos dos projetos (necessidades) com os objetivos da empresa. Estabelecer um programa de métricas: Adequado; Fundamentado; Gradual. Não medir mais do que é necessário

Introdução Pergunta Mas... Quais as vantagens de utilizar métricas no desenvolvimento de sistemas? Diminuir: Defeitos; Prazo de entrega; Disperdício; Custo; Aumentar: Satisfação do cliente; Produtividade dos recursos; Visibilidade das ações; Qualidade do gerenciamento; Qualidade do produto.

Tipos de Ambiente Figura: Painel Comparativo.

Ambientes para Aplicaçãode Métricas Figura: Possibilidades de Métricas.

Tipos de Métricas Pergunta Como podemos classificas as métricas em um projeto? Métricas Primárias (1a Ordem); Métricas Secundárias (2a Ordem);

Métricas Primárias (1a Ordem) Apontamentos dos fatos (reais) -> MEDIDAS; Informações objetivas da realidade; Exemplo: defeitos, horas trabalhadas, custo, reclamações,... ; Tendência à expressão numérica.

Riscos Processo de captura -> credibilidade; Meio de captura -> facilidade, entendimento, objetividade; independência da análise -> confiabilidade.

Métricas Secundárias (2a Ordem) Indicadores (expressam um comportamento além dos números); Resultado de uma relação de: Métrica / Fator; Informações objetivas da realidade; Exemplo: densidade de defeitos (defeitos por fase do projeto,...).

Riscos Processo de definição e análise cos dados -> corretude; Processo de uso -> utilidade, poder de explicação, relevância.

Estruturas e Objetivos Objetiva o Processo e suas atividades e os projetos e suas atividades; Medições Operacionais: Processo; Projeto; Atividades; Objetiva o ambiente de desenvolvimento, mudanças e tendências; Medições táticas: Tendências; Impactos (Tradeoffs); Atributos;

Estruturas e Objetivos Objetiva comparações com outras organizações e melhorias contínuas; Medições estratégicas: Benchmarking; Melhoria Contínua; Avaliação Econômica;

Possibilidades de Métricas em Software Tamanho do software; Quantidade de defeitos; Complexidade do software; Acesso e segurança; Qualidade do produto; Utilidade do produto; Usabilidade do produto; Estimativa de durabilidade; Comportamento dos defeitos; Taxa de inovação: novas funcionalidades (Entre versões); Dentre outras... como... Medir a quantidade de funcionalidades incluídas em um software -> tamanho do produto

Métodos para medir tamanho do produto Linhas de código - lines of code (Kloc); Análise de Pontos de função (APF); Constructive Cost Model (COCOMO); Metodologias ágeis; Pontos de casos de uso.

Métodos para medir tamanho do produto Métricas para Planejamento e Gerenciamento Dimensão dos produtos: Modelos, protótipos, documentos e software; Esforço de produção: Pessoas necessárias em um periodo de tempo; Produtividade: Quantidade produzida por esforço; Defeitos: Número de erros encontrados; Custo de produção: Valor do esforço de produção e correçao de erros.

Métodos para medir tamanho do produto LOC - Linha de Código Fonte: Mede todo o esforço necessário para entregar um código correto, sem erro; Depende da linguagem. Funções: Determinada pela funcionalidade do sistema; Independe da linguagem. Para qualquer abordagem é importante: Ter experiência; Utilizar dados históricos.

Métodos para medir tamanho do produto MÉTRICAS Linhas de Código (LOC) Pontos por Função (PF) LOC/FP Pessoa/Mês (PM) Pessoa-Mês/LOC Defeitos/LOC Custo/LOC OBJETIVOS Dimensão do Produto Dimensão do Produto Dimensão do Produto Esforço Humano Produtividade Linear Qualidade Custo Tabela: Outros tipos de métricas

Estimativa Estimar a dimensão do programa; Calcular o esfoço humano; Aplicar penalidades de produtividade; Realizar ajustes; Calcular Reuso; Identificar e corrigir defeitos. OBS.: Muito importante ter base histórica de desenvolvimento

Calculando Dimensão do programa Pontos por Função Depende da funcionalidade; Baseado nos dados empíricos e o software a ser desenvolvido; É definido a partir de: No de entradas do usuário; No de saídas do usuário; No de consultas do usuário; No de interfaces;...

Exemplo PF Suponha que será construido um sistema se submissão de artigos: Foram identificados dados de acordo com os requisitos coletados inicialmente: FP = (25*4)+(15*5)+(7*5)+(10*4) = 250FP Número Fator de conversão Entradas 25 4 Saídas 15 5 Consultas 10 4 Interfaces 5 7 Tabela: Exemplo

Calculando Dimensão do programa Esforço Humano Determina o número de pessoas para realizar uma atividade num período de tempo; Exemplo: Construir um programa com 50 KLOC == 50.000 LOC; Produtividade linear dos programadores: 2,4 Pessoa-mês/KLOC. O esforço depende do tamanho do software; A produtividade diminui em equipes maiores, principalmente deviso à necessidade de comunicação e interação. Tamanho Equipe Esforço Prazo total 1 150 Pes.Mes 150 meses 10 150 Pes.Mes 15 meses 100 150 Pes.Mes 1,5 meses Tabela: Exemplo RH

Variação entre as Linguagens O número de linhas de códigos e a produtividade variam de acordo com a linguagem utilizada. Linguagem de Programação LOC por PF C++ 53 Java 46 Delphi 18 VB 24 HTML 14 Tabela: LOC por PF

Exemplo Calculando LOC e Esforço Humano Pergunta Suponha que o sistema de submissão de artigos está sendo análisado (Sistema feito em Java); Com base na tabela de LOC-por-PF, tem-se 46 LOC por PF, para programas feito em Java; O Esforço humano tem como base PRODUTIVIDADE x No LOC; Considerando que é produtividade para o sistema de submissão de artigos seja de 3,1 Pes.Mes/LOC e que existem 280 PF a partir da análise prévia. Qual será o esforço para produzir este sistema? Qual quantidade de linhas de código?

Exemplo Calculando LOC e Esforço Humano Resposta LOC = FP*(LOCporFP) LOC = 280*46 LOC = 12,88 KLOC (12.880 LOC) - Esforço = Produtividade*KLOC Esforço = 3,1 * 12,88 Esforço = 39,928 PM

Exemplo Calculando LOC e Esforço Humano Resposta Com 7 membros na equipe a quantidade de meses para construir o sistema é? QtdMES = Esforço / No Membros QtdMES = 39,928 PM / 7 QtdMES = 5,7 Meses

Aplicando Penalidades Determinou-se empiricamente que a produtividade diminui com o aumento do tamanho do software; Esta produtividade depende do tipo de sistema de acordo com a tabela abaixo; Tipos de Sistema Fator de Penalidade Sistema Web 1,030 Sistema Militar 1,072 Sistema embutido 1,110 Tabela: Fator Exponencial de Penalidade

Exemplo Calculando Fator de Penalidade Resposta Esforço = Produtividade*KLOC Esforço = 3,1 * 12,88 Esforço = 39,928 PM EsforçoPEN = (Esforco) (fator) EsforçoPEN = (39,928) (1,030) EsforçoPEN = 44,598 PM - QtdMES = 44,598 PM PM / 7 QtdMES = 6,37 Meses

Aplicando Penalidades O custo e os prazos é calculado em função do esforço, da equipe e do custo da mão de obra; Custo de mão de obra (CM) é dado em Valor/PM; Exemplo: Programa com 12,88 KLOC; Esforço de 44,598 PM; Com uma equipe de 7 programadores; Salário mensal é R$ 1780,00. Esforço Custo MO Equipe Prazo Custo Mensal Custo Total 44,598 R$ 1780,00 7 6 Meses R$ 12.460,00 R$ 74.760,00 44,598 R$ 450,00 7 6 Meses R$ 3.150,00 R$ 18.900,00 Tabela: Exemplo Custo

Conclusão É importante ter saber o que se tem, o que se está produzindo e aonde se quer chegar. É importante estabelecer um programa de métricas; Métricas são classificadas em: Métricas Primárias (1a Ordem); Métricas Secundárias (2a Ordem); As métricas são utilizadas para: Estimar a dimensão do programa; Calcular o esfoço humano; Aplicar penalidades de produtividade; Realizar ajustes; Calcular Reuso; Identificar e corrigir defeitos.