03 - métricas de software

Upload: felipemcardoso

Post on 16-Jul-2015

206 views

Category:

Documents


0 download

TRANSCRIPT

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