Download - 03 - Métricas de Software
Universidade Federal de SergipeCentro de Cincias Exatas e Tecnologia Departamento de Computao
Mtricas de Software
Professor Felipe Cardoso, M.Sc.Slide 1
Objetivo da AulaIntroduzir os conceitos bsicos sobre mtricas de software, mostrando os benefcios de sua utilizao no processo de engenharia de software.
Slide 2
ContedoConceitos Gerais Medio Medida Mtrica Indicador Movitao Exemplos de Mtricas LoC PF Complexidade Ciclomtica Mtricas de QualidadeSlide 3
Na aula anterior...Os modelos de qualidade podem ser utilizados para definir os requisitos de qualidade de um software. A partir de um conjunto de caractersticas e subcaractersticas de qualidade. As caractersticas de qualidade so abstratas. Para que a qualidade do software possa ser avaliada, de fato, considerando as caractersticas de qualidade do modelo, algum critrio objetivo deve ser utilizado. Para isso, utilizam-se mtricas.
Slide 4
Mtricas Conceitos GeraisMedio A medio o ato de medir atributos de uma entidade, a fim de descrev-la de acordo com determinadas regras. Uma entidade o objeto da medio Um atributo uma propriedade ou caracterstica da entidade sendo medida.
Exemplo Na medio de uma pessoa (entidade) pode-se medir sua altura (atributo). Quais so as regras? A unidade mtrica Vamos representar a altura em centmetros ou metros?
O processo de medio A pessoa pode estar com sapatos?
Slide 5
Mtricas Conceitos GeraisMedida Uma medida o resultado de uma medio na forma de dados quantitativos. Mtrica So as regras para o mapeamento de atributos de uma entidade em algo que nos d poder de discernimento. o processo de medio considerando a unidade mtrica, a escala, etc.
Slide 6
Mtricas Conceitos GeraisIndicador Um indicador uma mtrica, ou uma combinao de mtricas, que fornece a compreenso sobre uma entidade (projeto, processo ou produto). uma instncia de uma mtrica.
Indicadores so utilizados como valores de referncia. A comparao entre os Defeitos/LoC entre dois softwares nos permite compreender qual o mais confivel. Observa-se que indicadores so especficos de cada empresa. Depende da natureza de cada empresa. Depende de quais aspectos ela julga ser importante.Slide 7
Mtricas Processo de Medio
Entidade Atributos
Mtricas (Regras: como medir, unidade de medida, escala)
A partir da anlise dos indicadores pode-se compreender a entidade medida com relao a determinado aspecto.
Medio
Medida
Anlise
Slide 8
Motivao Por que usar mtricas em software?You cant manage what you cant measure! Tom De Marco A utilizao de mtricas permite aperfeioar o processo de desenvolvimento e o produto a ser desenvolvido. Avaliar o impacto de uma modificao no software. Estimar custo e cronograma do projeto. Alocar equipes a tarefas. Avaliar equipes. Avaliar a qualidade do produto.
Slide 9
Motivao Os quatro papis das mtricas
Entender
Controlar
Produtos, Processos e Servios de Software
Avaliar
Prever
Slide 10
Mtricas PropriedadesPara que uma mtrica seja satisfatria, ela deve ser: Vlida Quantificar o que se quer medir.
Confivel Produzir os valores iguais em medies para uma mesma entidade, utilizando as mesmas condies.
Factvel Barata, fcil de medir, computar e interpretar.
Slide 11
Mtricas CategoriasAs mtricas podem ser categorizadas de vrias formas: Observao: diferentes autores, propem diferentes categorias. ObjetivoTamanho x Funo (Qualidade)
Direta x Indireta
ContextoProduto x Processo
Obteno
Slide 12
Mtricas CategoriasMtricas Diretas So as mtricas fundamentais As medidas podem ser obtidas diretamente a partir da observao do produto. Ex.: LoC, n diagramas, capacidade de memria, etc.
Mtricas Indiretas So as mtricas derivadas. As medidas so obtidas a partir de outras medidas. Ex.: As mtricas relacionadas s caractersticas de qualidade, eficincia, manutenabilidade, usabilidade, etc.Slide 13
Mtricas CategoriasMtricas Orientada ao Tamanho So medidas diretas do artefato do software que est sendo medido. Ex.: KLoC, n casos de uso, etc. Mtricas Orientada Funo So medidas que visam estabelecer o tamanho do software considerando as funcionalidades por ele implementadas. Ex.: Ponto de Funo. Mtricas de Qualidade Permitem avaliar quanto um software satisfaz seus requisitos de qualidade. Normalmente so obtidas a partir da combinao de mtricas orientadas a tamanho e funo. Ex.: Defeitos/Kloc, testes implementados/testes projetados, etc.Slide 14
Mtricas Orientadas ao TamanhoLoC Lines of Code Mtrica simples de se obter e de baixo custo. Corresponde ao total de linhas de cdigo. No faz distino entre cdigo ou comentrios.
Algumas Variaes SLoC Fsicas (Source Line of Code) Desconsidera linhas de comentrio.
SloC Lgicas
Considera quantos comandos existem em cada linha de cdigo. Exemplo//Comparao if (a > b) { a++; puts(ok); } 3 LoC 2 SLoC Fsicas 3 SLoCs Lgicas Slide 15
Mtricas Orientadas ao TamanhoOs pontos fracos da mtrica LoC: Dependente da linguagem de programao. Desconsidera a complexidade do cdigo. Exemplo Programa 1 Int i = 10;
Programa 2 List vetor = new QuickSort().sort(vetor);
Os dois programas tm o mesmo tamanho, mas tm a mesma complexidade?Slide 16
Mtricas Orientadas FunoPontos de Funo (PF) uma medida da dimenso de um software atravs de suas funcionalidades implementadas em um sistema, sob o ponto de vista do usurio. Diferente da mtrica LoC, a anlise por PF (APF) considera a complexidade do software, levando em considerao suas caractersticas. Alm disso, independente da linguagem de programao utilizada. a forma indicada pelo SEI para medir a dimenso de um software.Slide 17
Mtricas Orientadas FunoComo funciona a APF?Contar a Funes de Dados
Determinar PF Brutos
Tipo de contagem?
Identificar o Escopo e a Fronteira da Aplicao
Contar a Funes Transacionais
Determinar o Fator de Ajuste (FA)
Determinar PF Ajustados
Slide 18
Mtricas Orientadas FunoContagem das funes de dadosALI Grupo lgico de dados mantido pelo aplicativo. AIE Grupo lgico de dados mantido fora da fronteira do aplicativo.
Arquivos Lgicos Internos
Funes de DadosArquivos de Interface Externa
Slide 19
Mtricas Orientadas FunoContagem das funes transacionaisEntrada Externa Dados que vm de fora da aplicao a fim de manter um ALI. Sada Externa Envia dados ou informaes de controle para fora da aplicao. Altera o comportamento do sistema. Consulta Externa Uma combinao de entrada/sada de dados onde uma entrada de dados causa uma recuperao e sada de dados correspondente. Slide 20
Entrada Externa Funes de Transaes
Sada Externa
Consulta Externa
Mtricas Orientadas FunoViso Geral
Slide 21
Mtricas Orientadas FunoComo contar a funes de dados e transacionais?TD Tipo de Dados Elemento nico reconhecvel pelo usurio, no repetitivo. Exemplo: cada campo de um tabela um TD. TR - Tipo de Registro Subgrupo reconhecvel de elementos de dados dentro de um ALI ou AIE. Exemplo: Uma tabela pode ser considerada um TR.
Slide 22
Mtricas Orientadas FunoComo contar a funes de dados e transacionais? Deve-se mapear a complexidade de cada funo para sua contribuio em PF.
Slide 23
Mtricas Orientadas FunoA contagem dos dados e transaes resulta nos pontos de funo brutos. Deve-se avaliar o software com relao a 14 caractersticas, a fim de determinar o nvel de influncia de cada caracterstica no software. [01] Comunicao de Dados [02] Processamento Distribudo [03] Performance [04] Configurao Altamente Utilizada [05] Volume de Transaes [06] Entrada de Dados On-Line [07] Eficincia do Usurio Final [08] Atualizao On-Line [09] Complexidade de Processamento [10] Reusabilidade [11] Facilidade de Instalao [12] Facilidade de Operao [13] Mltiplos Locais [14] Facilidade de mudanasSlide 24
Mtricas Orientadas FunoPara cada caractersticas, deve-se dar uma valor de influncia entre 0 e 5 Nveis de Influncia Nvel de Influncia [DI] = 0..50 1 2 3 4 5 Nenhuma Influncia Influncia Mnima Influncia Moderada Influncia Mdia Influncia Significativa Grande Influncia
Calcula-se o Nvel de Influncia Total [TDI] = DI Calcula-se o Fator de Ajuste [VAF] = [TDI] x 0,01 + 0,65
Por fim, multiplica-se os PF Brutos pelo Fator de Ajuste Resultado so os PF ajustados.
Slide 25
Mtricas Orientadas FunoOs PFs, mesmo os ajustados, nos diz alguma coisa? No. Indicadores devem ser definidos, para que as medidas da mtrica possam ser avaliadas. Os indicadores podem ser determinados a partir de uma base histrica. Formada a partir de projetos anteriores.
Slide 26
Mtricas de Qualidade
Slide 27
Mtricas QualidadeAs mtricas de qualidade so geralmente indiretas. Obtidas a partir de outras mtricas. Estima-se que existam em torno de 250 mtricas. Logo, convm avaliar quais so necessrias, considerando os requisitos de qualidade do projeto.
Slide 28
Funcionalidade: MtricasMtricas para avaliar a dimenso FuncionalidadeMtrica NFunProj NFunImpl NFunTesteOk NFunAccOk NInteropOk NTesteInterop NDataTrans Nmero de Funes Projetadas Nmero de Funes Implementadas Nmero de Funes Validadas (Testes) Nmero de Funes cuja acurcia foi validade Nmero de Tarefas de interoperabilidade testadas Nmero de Testes de interoperabilidade executados. Total de dados transmitido entre o software e outras aplicaes. Descrio
Mtrica Derivada PFunImpl
Descrio Porcentagem de funes implementadas. NFunImpl/NFunProj
Slide 29
Manutenabilidade: MtricasMtricas para avaliar a dimenso ManutenabilidadeMtrica PF LOC SLOC Nclicomtico LD NRot NRot_comentadas. TFan_out Mtrica Derivada PRot_comentadas ILoc_doc Medfan_out Pontos de Funo Linhas de Cdigo Linhas de Cdigo, exceto comentrios e linhas em branco. Complexidade Ciclomtica: nmero de caminhos diferentes de execuo. Linhas de documentao. Nmero de rotinas. Nmero de rotinas comentadas. Total de rotinas referenciadas por todos os mdulos. Descrio Porcentagem de rotinas comentadas. Nrot_comentadas/Nrot. ndice de documentao de cdigo. LD/LOC. Mdia de fan-out. Tfan_out/Nrot. Descrio
Slide 30
Manutenabilidade: MtricasComplexidade Ciclomtica uma mtrica para avaliar a complexidade estrutural do software, ou seja, sua construo interna. De maneira sucinta, o nmero de caminhos de execuo que um cdigo pode tomar. Quanto maior o nmero de caminhos de execuo, pior a manutenabilidade. Pior para analisar. Pior para testar (teste de caminho bsico com muitos casos de teste). Pior para modificar. McCabe et al define um valor mximo de 10 para uma complexidade ciclomtica de baixo risco.Slide 31
Manutenabilidade: MtricasClculo da Complexidade Ciclomtica Cria-se um grafo G representando a execuo do cdigo Cada n do grafo corresponde a um trecho de cdigo ou a um comando de deciso. Cada ponto de sada (return) corresponde a um componente de conexo.
O clculo feito da seguinte forma: V(G) = E N + P, onde: E = Nmero de arestas do Grafo G; N = Nmero de nodos; P = Nmero de componentes conexos.
Slide 32
Manutenabilidade: Mtricasint fib (int n) { int a = 1; 1 int b = 1; int c = 2; 2 if (0 == n) return 0; 3 if (3 > n) return 1; 4 while ( n > 2) { c = a + b; 5 a = b; b = c; n = n 1; } 6 return c; 1
2 3 4 5
7 8
127 1238 12346 1 2 3 5 4 5 - ... - 4 - 6
V(G) = 9 8 + 3 Complexidade = 4
6Slide 33
Manutenabilidade: MtricasUma maneira mais simples: CC = Nmero de decises + 1Operao if else if else case for/for each do while while catch Efeito na CC +1 +1 0 +1 para cada caso. +1 +1 +1 +1
Slide 34
Manutenabilidade: MtricasFan-in e Fan-out Quo dependente um mdulo de outros. Deve-se maximizar o fan-in e minimizar o fan-out. Fan-out alto quer dizer alta dependncia do mdulo.
Modulo B
Modulo A
Modulo D
Modulo CSlide 35
Usabilidade: MtricasMtricas para avaliar a dimenso UsabilidadeMtricaTAprendizado TExec_tarefa NConsult_help NProb_interface NMax_cores NMax_elementos NFalta_padro_inter
DescrioTempo gasto pelo testador para aprender a utilizar uma funo. Tempo gasto pelo testador para executar determinada funo. Nmero de consultas ao sistema de ajuda. Nmero de problemas de compreenso de interface detectados durante testes. Nmero mximo de cores em uma janela. Nmero mximo de elementos em uma janela. Nmero de problemas de falta de padronizao de interfaces.
Normalmente a medio das mtricas de usabilidade ocorre nos testes alfa e beta.Slide 36
Confiabilidade: MtricasMtricas para avaliar a dimenso ConfiabilidadeMtrica NFalhas_total NFalhas_corrigidas TOper_acumulada NTestes NTestes_real NTestes_OK Descrio Total de falhas relatadas durante testes. Nmero de falhas corrigidas. Tempo acumulado de operao durante testes. Testes projetados. Testes realizados Testes em que o software foi bem sucedido.
Mtrica Derivada PTestes_real PFalhas_corigidas QFalhas_PF
Descrio Porcentagem de testes realizados. Ntestes_real / Ntestes. Porcentagem de falhas corrigias. Nfalhas_corrigidas/Nfalhas_total. Quantidade de falhas por ponto de funo. Nfalhas_total/PF
Slide 37
Eficincia: MtricasMtricas para avaliar a dimenso EficinciaMtricaTTarefa_execucao TTarefa_resposta TIO TIndisponvel HDInstalao RAMRequerido NTransao Tempo de resposta de uma tarefa. Tempo de I/O Tempo em que o usurio impedido de interagir com o software. Espao em disco ocupado para instalao. Quantidade de RAM requerido. Nmero de transaes.
DescrioTempo total para execuo de uma tarefa.
Mtrica Derivada Throughput
Descrio Transaes por unidade de tempo.
Slide 38
Portabilidade: MtricasMtricas para avaliar a dimenso PortabilidadeMtrica NInstSuc NInstProb Descrio Nmero de instalaes efetuadas com sucesso. Nmero de problemas enfrentados ao instalar o software.
Slide 39
Referncias BibliogrfiasKan, Stephen. Metrics And Models In Software Quality Engineering. Second Edition, Addison-Wesley, 2002. Koscianski, Andr; Soares, Michel. Qualidade de Software. 2 Edio, Novatec, 2007
Slide 40