Métricas de Software

48
7/21/2019 Métricas de Software http://slidepdf.com/reader/full/metricas-de-software-56da5fc36da5a 1/48 Karina Guarizzo 0502050 MÉTRICAS DE SOFTWARE Jaguariúna 2008

description

Métricas de Software

Transcript of Métricas de Software

Page 1: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 148

Karina Guarizzo

0502050

MEacuteTRICAS DE SOFTWARE

Jaguariuacutena

2008

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 248

983145983145

Karina Guarizzo

0502050

MEacuteTRICAS DE SOFTWARE

Monografia apresentada agrave disciplinaTrabalho de Graduaccedilatildeo III do Curso deCiecircncia da Computaccedilatildeo da Faculdade deJaguariuacutena sob a orientaccedilatildeo do Prof MsPeter Jandl Jr como exigecircncia parcialpara conclusatildeo do curso de graduaccedilatildeo

Jaguariuacutena

2008

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 348

983145983145983145

GUARIZZO Karina Meacutetricas de Software Monografia defendida e aprovada na FAJ em 11

de Dezembro de 2008 pela banca examinadora constituiacuteda pelos professores

Prof Ms Peter Jandl Jr ndash FAJ Orientador

Prof Joseacute Arnaldo G Nunes - FAJ

Prof ordf Selma Cintra

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 448

983145983158

Agradeccedilo a Deus pois sem ele natildeo estaria aqui aos

meus pais e ao meu namorado pelo incentivo pela forccedila e

apoio nos momentos mais difiacuteceis O meu muito obrigado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 548

983158

AGRADECIMENTOS

A realizaccedilatildeo deste Trabalho teve a colaboraccedilatildeo de muitas pessoas com muito

carinho manifesto minha gratidatildeo em especial

Ao MestreProfessor Peter pela atenccedilatildeo e dedicaccedilatildeo que ao longo deste trabalho

esteve presente auxiliando nas dificuldades e contribuindo para o sucesso desta jornada

Ao meu namorado que foi meu maior presente na faculdade que estaacute sempre ao

meu lado pelo amor carinho compreensatildeo e a disposiccedilatildeo que sempre teve em me ajudar eme levantar nos momentos mais difiacuteceis durante esses quatros anos

Aos Professores do Curso de Ciecircncia da Computaccedilatildeo pelo ensino e sabedoria que

me proporcionaram durante esses quatro anos

Agrave minha famiacutelia por ser a pessoa que sou hoje sempre me mostrando o melhor

caminho me incentivando para sempre lutar pelos ideais sem desistir durante todo o

tempo foram minha luz para prosseguir esta caminhada

Aos amigos(as) que tive a oportunidade de conhecer em especial no meu primeiro

ano de faculdade tivemos momentos inesqueciacuteveis na qual vou guardar boas lembranccedilas

para o resto de minha vida

Ao meu chefe pela ajuda os conhecimentos que me proporcionou contribuindo para

a realizaccedilatildeo deste trabalho

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 648

983158983145

GUARIZZO Karina Meacutetricas de Software 2008 Monografia (Bacharelado em Ciecircncia da

Computaccedilatildeo) ndash Curso de Ciecircncia da Computaccedilatildeo da Faculdade de Jaguariuacutena Jaguariuacutena

RESUMO

Com o crescimento constante da demanda pelos serviccedilos de desenvolvimento de

software vem aumentando a procura por teacutecnicas e ferramentas de melhoria da qualidade

Essa melhoria do processo de software eacute um objetivo fundamental para as organizaccedilotildees e

deve estar baseada em mediccedilotildees No entanto definir coletar e analisar um conjunto de

meacutetricas natildeo eacute uma tarefa trivial

Pressman (1995) afirma que ao solicitar e avaliar as medidas da produtividade e da

qualidade de software a alta administraccedilatildeo pode estabelecer metas significativas de

melhoria do processo de Engenharia de Software

Este Trabalho foi desenvolvido com o objetivo de mostrar a importacircncia que as

meacutetricas (mediccedilotildees de software) tecircm em seu ciclo de vida Com a aplicaccedilatildeo das meacutetricas de

software o resultado final eacute favoraacutevel para as organizaccedilotildees para o cliente e principalmente

para o usuaacuterio final Antes de o software ser entregue eacute possiacutevel detectar e prever erros

falhas e possiacuteveis empecilhos decorrentes do desenvolvimento

Palavras- chave ENGENHARIA DE SOFTWARE QUALIDADE MEacuteTRICAS

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 2: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 248

983145983145

Karina Guarizzo

0502050

MEacuteTRICAS DE SOFTWARE

Monografia apresentada agrave disciplinaTrabalho de Graduaccedilatildeo III do Curso deCiecircncia da Computaccedilatildeo da Faculdade deJaguariuacutena sob a orientaccedilatildeo do Prof MsPeter Jandl Jr como exigecircncia parcialpara conclusatildeo do curso de graduaccedilatildeo

Jaguariuacutena

2008

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 348

983145983145983145

GUARIZZO Karina Meacutetricas de Software Monografia defendida e aprovada na FAJ em 11

de Dezembro de 2008 pela banca examinadora constituiacuteda pelos professores

Prof Ms Peter Jandl Jr ndash FAJ Orientador

Prof Joseacute Arnaldo G Nunes - FAJ

Prof ordf Selma Cintra

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 448

983145983158

Agradeccedilo a Deus pois sem ele natildeo estaria aqui aos

meus pais e ao meu namorado pelo incentivo pela forccedila e

apoio nos momentos mais difiacuteceis O meu muito obrigado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 548

983158

AGRADECIMENTOS

A realizaccedilatildeo deste Trabalho teve a colaboraccedilatildeo de muitas pessoas com muito

carinho manifesto minha gratidatildeo em especial

Ao MestreProfessor Peter pela atenccedilatildeo e dedicaccedilatildeo que ao longo deste trabalho

esteve presente auxiliando nas dificuldades e contribuindo para o sucesso desta jornada

Ao meu namorado que foi meu maior presente na faculdade que estaacute sempre ao

meu lado pelo amor carinho compreensatildeo e a disposiccedilatildeo que sempre teve em me ajudar eme levantar nos momentos mais difiacuteceis durante esses quatros anos

Aos Professores do Curso de Ciecircncia da Computaccedilatildeo pelo ensino e sabedoria que

me proporcionaram durante esses quatro anos

Agrave minha famiacutelia por ser a pessoa que sou hoje sempre me mostrando o melhor

caminho me incentivando para sempre lutar pelos ideais sem desistir durante todo o

tempo foram minha luz para prosseguir esta caminhada

Aos amigos(as) que tive a oportunidade de conhecer em especial no meu primeiro

ano de faculdade tivemos momentos inesqueciacuteveis na qual vou guardar boas lembranccedilas

para o resto de minha vida

Ao meu chefe pela ajuda os conhecimentos que me proporcionou contribuindo para

a realizaccedilatildeo deste trabalho

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 648

983158983145

GUARIZZO Karina Meacutetricas de Software 2008 Monografia (Bacharelado em Ciecircncia da

Computaccedilatildeo) ndash Curso de Ciecircncia da Computaccedilatildeo da Faculdade de Jaguariuacutena Jaguariuacutena

RESUMO

Com o crescimento constante da demanda pelos serviccedilos de desenvolvimento de

software vem aumentando a procura por teacutecnicas e ferramentas de melhoria da qualidade

Essa melhoria do processo de software eacute um objetivo fundamental para as organizaccedilotildees e

deve estar baseada em mediccedilotildees No entanto definir coletar e analisar um conjunto de

meacutetricas natildeo eacute uma tarefa trivial

Pressman (1995) afirma que ao solicitar e avaliar as medidas da produtividade e da

qualidade de software a alta administraccedilatildeo pode estabelecer metas significativas de

melhoria do processo de Engenharia de Software

Este Trabalho foi desenvolvido com o objetivo de mostrar a importacircncia que as

meacutetricas (mediccedilotildees de software) tecircm em seu ciclo de vida Com a aplicaccedilatildeo das meacutetricas de

software o resultado final eacute favoraacutevel para as organizaccedilotildees para o cliente e principalmente

para o usuaacuterio final Antes de o software ser entregue eacute possiacutevel detectar e prever erros

falhas e possiacuteveis empecilhos decorrentes do desenvolvimento

Palavras- chave ENGENHARIA DE SOFTWARE QUALIDADE MEacuteTRICAS

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 3: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 348

983145983145983145

GUARIZZO Karina Meacutetricas de Software Monografia defendida e aprovada na FAJ em 11

de Dezembro de 2008 pela banca examinadora constituiacuteda pelos professores

Prof Ms Peter Jandl Jr ndash FAJ Orientador

Prof Joseacute Arnaldo G Nunes - FAJ

Prof ordf Selma Cintra

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 448

983145983158

Agradeccedilo a Deus pois sem ele natildeo estaria aqui aos

meus pais e ao meu namorado pelo incentivo pela forccedila e

apoio nos momentos mais difiacuteceis O meu muito obrigado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 548

983158

AGRADECIMENTOS

A realizaccedilatildeo deste Trabalho teve a colaboraccedilatildeo de muitas pessoas com muito

carinho manifesto minha gratidatildeo em especial

Ao MestreProfessor Peter pela atenccedilatildeo e dedicaccedilatildeo que ao longo deste trabalho

esteve presente auxiliando nas dificuldades e contribuindo para o sucesso desta jornada

Ao meu namorado que foi meu maior presente na faculdade que estaacute sempre ao

meu lado pelo amor carinho compreensatildeo e a disposiccedilatildeo que sempre teve em me ajudar eme levantar nos momentos mais difiacuteceis durante esses quatros anos

Aos Professores do Curso de Ciecircncia da Computaccedilatildeo pelo ensino e sabedoria que

me proporcionaram durante esses quatro anos

Agrave minha famiacutelia por ser a pessoa que sou hoje sempre me mostrando o melhor

caminho me incentivando para sempre lutar pelos ideais sem desistir durante todo o

tempo foram minha luz para prosseguir esta caminhada

Aos amigos(as) que tive a oportunidade de conhecer em especial no meu primeiro

ano de faculdade tivemos momentos inesqueciacuteveis na qual vou guardar boas lembranccedilas

para o resto de minha vida

Ao meu chefe pela ajuda os conhecimentos que me proporcionou contribuindo para

a realizaccedilatildeo deste trabalho

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 648

983158983145

GUARIZZO Karina Meacutetricas de Software 2008 Monografia (Bacharelado em Ciecircncia da

Computaccedilatildeo) ndash Curso de Ciecircncia da Computaccedilatildeo da Faculdade de Jaguariuacutena Jaguariuacutena

RESUMO

Com o crescimento constante da demanda pelos serviccedilos de desenvolvimento de

software vem aumentando a procura por teacutecnicas e ferramentas de melhoria da qualidade

Essa melhoria do processo de software eacute um objetivo fundamental para as organizaccedilotildees e

deve estar baseada em mediccedilotildees No entanto definir coletar e analisar um conjunto de

meacutetricas natildeo eacute uma tarefa trivial

Pressman (1995) afirma que ao solicitar e avaliar as medidas da produtividade e da

qualidade de software a alta administraccedilatildeo pode estabelecer metas significativas de

melhoria do processo de Engenharia de Software

Este Trabalho foi desenvolvido com o objetivo de mostrar a importacircncia que as

meacutetricas (mediccedilotildees de software) tecircm em seu ciclo de vida Com a aplicaccedilatildeo das meacutetricas de

software o resultado final eacute favoraacutevel para as organizaccedilotildees para o cliente e principalmente

para o usuaacuterio final Antes de o software ser entregue eacute possiacutevel detectar e prever erros

falhas e possiacuteveis empecilhos decorrentes do desenvolvimento

Palavras- chave ENGENHARIA DE SOFTWARE QUALIDADE MEacuteTRICAS

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 4: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 448

983145983158

Agradeccedilo a Deus pois sem ele natildeo estaria aqui aos

meus pais e ao meu namorado pelo incentivo pela forccedila e

apoio nos momentos mais difiacuteceis O meu muito obrigado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 548

983158

AGRADECIMENTOS

A realizaccedilatildeo deste Trabalho teve a colaboraccedilatildeo de muitas pessoas com muito

carinho manifesto minha gratidatildeo em especial

Ao MestreProfessor Peter pela atenccedilatildeo e dedicaccedilatildeo que ao longo deste trabalho

esteve presente auxiliando nas dificuldades e contribuindo para o sucesso desta jornada

Ao meu namorado que foi meu maior presente na faculdade que estaacute sempre ao

meu lado pelo amor carinho compreensatildeo e a disposiccedilatildeo que sempre teve em me ajudar eme levantar nos momentos mais difiacuteceis durante esses quatros anos

Aos Professores do Curso de Ciecircncia da Computaccedilatildeo pelo ensino e sabedoria que

me proporcionaram durante esses quatro anos

Agrave minha famiacutelia por ser a pessoa que sou hoje sempre me mostrando o melhor

caminho me incentivando para sempre lutar pelos ideais sem desistir durante todo o

tempo foram minha luz para prosseguir esta caminhada

Aos amigos(as) que tive a oportunidade de conhecer em especial no meu primeiro

ano de faculdade tivemos momentos inesqueciacuteveis na qual vou guardar boas lembranccedilas

para o resto de minha vida

Ao meu chefe pela ajuda os conhecimentos que me proporcionou contribuindo para

a realizaccedilatildeo deste trabalho

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 648

983158983145

GUARIZZO Karina Meacutetricas de Software 2008 Monografia (Bacharelado em Ciecircncia da

Computaccedilatildeo) ndash Curso de Ciecircncia da Computaccedilatildeo da Faculdade de Jaguariuacutena Jaguariuacutena

RESUMO

Com o crescimento constante da demanda pelos serviccedilos de desenvolvimento de

software vem aumentando a procura por teacutecnicas e ferramentas de melhoria da qualidade

Essa melhoria do processo de software eacute um objetivo fundamental para as organizaccedilotildees e

deve estar baseada em mediccedilotildees No entanto definir coletar e analisar um conjunto de

meacutetricas natildeo eacute uma tarefa trivial

Pressman (1995) afirma que ao solicitar e avaliar as medidas da produtividade e da

qualidade de software a alta administraccedilatildeo pode estabelecer metas significativas de

melhoria do processo de Engenharia de Software

Este Trabalho foi desenvolvido com o objetivo de mostrar a importacircncia que as

meacutetricas (mediccedilotildees de software) tecircm em seu ciclo de vida Com a aplicaccedilatildeo das meacutetricas de

software o resultado final eacute favoraacutevel para as organizaccedilotildees para o cliente e principalmente

para o usuaacuterio final Antes de o software ser entregue eacute possiacutevel detectar e prever erros

falhas e possiacuteveis empecilhos decorrentes do desenvolvimento

Palavras- chave ENGENHARIA DE SOFTWARE QUALIDADE MEacuteTRICAS

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 5: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 548

983158

AGRADECIMENTOS

A realizaccedilatildeo deste Trabalho teve a colaboraccedilatildeo de muitas pessoas com muito

carinho manifesto minha gratidatildeo em especial

Ao MestreProfessor Peter pela atenccedilatildeo e dedicaccedilatildeo que ao longo deste trabalho

esteve presente auxiliando nas dificuldades e contribuindo para o sucesso desta jornada

Ao meu namorado que foi meu maior presente na faculdade que estaacute sempre ao

meu lado pelo amor carinho compreensatildeo e a disposiccedilatildeo que sempre teve em me ajudar eme levantar nos momentos mais difiacuteceis durante esses quatros anos

Aos Professores do Curso de Ciecircncia da Computaccedilatildeo pelo ensino e sabedoria que

me proporcionaram durante esses quatro anos

Agrave minha famiacutelia por ser a pessoa que sou hoje sempre me mostrando o melhor

caminho me incentivando para sempre lutar pelos ideais sem desistir durante todo o

tempo foram minha luz para prosseguir esta caminhada

Aos amigos(as) que tive a oportunidade de conhecer em especial no meu primeiro

ano de faculdade tivemos momentos inesqueciacuteveis na qual vou guardar boas lembranccedilas

para o resto de minha vida

Ao meu chefe pela ajuda os conhecimentos que me proporcionou contribuindo para

a realizaccedilatildeo deste trabalho

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 648

983158983145

GUARIZZO Karina Meacutetricas de Software 2008 Monografia (Bacharelado em Ciecircncia da

Computaccedilatildeo) ndash Curso de Ciecircncia da Computaccedilatildeo da Faculdade de Jaguariuacutena Jaguariuacutena

RESUMO

Com o crescimento constante da demanda pelos serviccedilos de desenvolvimento de

software vem aumentando a procura por teacutecnicas e ferramentas de melhoria da qualidade

Essa melhoria do processo de software eacute um objetivo fundamental para as organizaccedilotildees e

deve estar baseada em mediccedilotildees No entanto definir coletar e analisar um conjunto de

meacutetricas natildeo eacute uma tarefa trivial

Pressman (1995) afirma que ao solicitar e avaliar as medidas da produtividade e da

qualidade de software a alta administraccedilatildeo pode estabelecer metas significativas de

melhoria do processo de Engenharia de Software

Este Trabalho foi desenvolvido com o objetivo de mostrar a importacircncia que as

meacutetricas (mediccedilotildees de software) tecircm em seu ciclo de vida Com a aplicaccedilatildeo das meacutetricas de

software o resultado final eacute favoraacutevel para as organizaccedilotildees para o cliente e principalmente

para o usuaacuterio final Antes de o software ser entregue eacute possiacutevel detectar e prever erros

falhas e possiacuteveis empecilhos decorrentes do desenvolvimento

Palavras- chave ENGENHARIA DE SOFTWARE QUALIDADE MEacuteTRICAS

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 6: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 648

983158983145

GUARIZZO Karina Meacutetricas de Software 2008 Monografia (Bacharelado em Ciecircncia da

Computaccedilatildeo) ndash Curso de Ciecircncia da Computaccedilatildeo da Faculdade de Jaguariuacutena Jaguariuacutena

RESUMO

Com o crescimento constante da demanda pelos serviccedilos de desenvolvimento de

software vem aumentando a procura por teacutecnicas e ferramentas de melhoria da qualidade

Essa melhoria do processo de software eacute um objetivo fundamental para as organizaccedilotildees e

deve estar baseada em mediccedilotildees No entanto definir coletar e analisar um conjunto de

meacutetricas natildeo eacute uma tarefa trivial

Pressman (1995) afirma que ao solicitar e avaliar as medidas da produtividade e da

qualidade de software a alta administraccedilatildeo pode estabelecer metas significativas de

melhoria do processo de Engenharia de Software

Este Trabalho foi desenvolvido com o objetivo de mostrar a importacircncia que as

meacutetricas (mediccedilotildees de software) tecircm em seu ciclo de vida Com a aplicaccedilatildeo das meacutetricas de

software o resultado final eacute favoraacutevel para as organizaccedilotildees para o cliente e principalmente

para o usuaacuterio final Antes de o software ser entregue eacute possiacutevel detectar e prever erros

falhas e possiacuteveis empecilhos decorrentes do desenvolvimento

Palavras- chave ENGENHARIA DE SOFTWARE QUALIDADE MEacuteTRICAS

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 7: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 748

983158983145983145

SUMAacuteRIO

Lista de Figurasix

Lista de Tabelasx1 INTRODUCcedilAtildeO1

2 AS MEacuteTRICAS DE SOFTWARE 3

21 Definiccedilotildees de meacutetricas de software 3

22 Definiccedilotildees complementares4

23 Categorizaccedilatildeo das meacutetricas 4

231 Meacutetricas diretas e indiretas 4

232 Meacutetricas orientadas a tamanho e a funccedilatildeo 5

233 Meacutetricas de produto e produtividade 6

234 Meacutetricas de qualidade e meacutetricas teacutecnicas 6

235 Meacutetricas privadas e puacuteblicas 7

24 Utilizaccedilatildeo das meacutetricas7

25 Justificativa do uso das meacutetricas 7

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricas 8

27 Mediccedilatildeo o software 8

271 Medidas teacutecnicas928 Processo de mediccedilatildeo do software 9

281 Os quatro papeacuteis da mediccedilatildeo 9

29 O limite de medir 10

3 METODOLOGIAS11

31 Goal Question Metrics 11

32 Metodologia cascata11

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS 13

41 Estimativas 13

42 Etiquetas de meacutetricas 13

43 Principais barreiras para utilizaccedilotildees das meacutetricas 14

44 Vantagens das meacutetricas de software 14

45 Desvantagem das meacutetricas de software 15

5 TESTE DE SOFTWARE16

51 Objetivos da atividade de teste 16

6 FERRAMENTAS17

61 Criteacuterio de escolha da linguagem de programaccedilatildeo 17

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 8: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 848

983158983145983145983145

62 O software escolhido 18

63 Ferramenta AppPerfect 19

64 Ferramenta Eclipse Metrics Plugin 24

65 Ferramenta FindBugs 287 COMPARACcedilAtildeO DOS RESULTADOS 34

71 Tabela de resultados 34

72 Quadro comparativo 35

73 Avaliaccedilatildeo geral 35

74 Conclusatildeo das ferramentas e das meacutetricas 36

8 CONCLUSOtildeES37

9 REFEREcircNCIAS BIBLIOGRAacuteFICAS 38

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 9: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 948

983145983160

LISTA DE FIGURAS

Figura 01 Processo de mediccedilatildeo de produto 09

Figura 02 Modelo Cascata 12

Figura 03 Iacutendice de linguagem de programaccedilatildeo 18

Figura 04 Inclusatildeo do software na plataforma Eclipse 19

Figura 05 Execuccedilatildeo da ferramenta AppPerfect 20

Figura 06 Ferramenta apresenta o nome do autor do software 20

Figura 07 Ferramenta analisa o software 21

Figura 08 Algumas meacutetricas obtidas 21

Figura 09 Relatoacuterio exportado pra PDF 22

Figura 10 Relatoacuterio exportado para EXCEL 22

Figura 11 Relatoacuterio exportado para HTML 23

Figura 12 Relatoacuterio exportado para XML 23

Figura 13 Resumo do projeto 24

Figura 14 Execuccedilatildeo da ferramenta Metrics 24

Figura 15 Algumas meacutetricas do Eclipse Metrics Plugin 25

Figura 16 Meacutetricas da classe Frame 26

Figura 17 Alerta de nuacutemero de paracircmetros 26

Figura 18 Erros e advertecircncias 27

Figura 19 Pacote padratildeo do software (default package) 27

Figura 20 Relatoacuterio exportado para XML 28

Figura 21 Execuccedilatildeo da ferramenta FindBugs 29

Figura 22 Teste de ponto flutuante 29

Figura 23 Meacutetodo se manifesta 30

Figura 24 Alerta que meacutetodo pode falhar 31

Figura 25 Variaacutevel com valor nulo 32

Figura 26 Chamar meacutetodo desliga maacutequina virtual Java 33

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 10: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1048

983160

LISTA DE TABELAS

Tabela 01 Ferramenta para as meacutetricas 17

Tabela 02 Resultados (nuacutemeros quantitativos) das meacutetricas 34

Tabela 03 Resultados descritivos das meacutetricas 35

Tabela 04 Avaliaccedilatildeo das meacutetricas 36

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 11: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1148

983089

1 INTRODUCcedilAtildeO

Segundo Sommerville (Engenharia de Software - 2003) Engenharia de Software eacute

uma disciplina da engenharia que se ocupa de todos os aspectos da produccedilatildeo de software

Em geral os engenheiros de software adotam uma abordagem sistemaacutetica e organizada em

seu trabalho uma vez que essa eacute com frequumlecircncia a maneira mais eficaz de produzir

software de alta qualidade No entanto a engenharia tem a ver em grande parte com a

questatildeo de selecionar o meacutetodo mais apropriado para um conjunto de circunstacircncias e uma

abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas

circunstacircncias

Atraveacutes da Engenharia de Software pode-se buscar um dos fatores essenciais no

processo de desenvolvimento que eacute a qualidade Poreacutem para produzir um processo comqualidade aacute princiacutepio eacute necessaacuterio conhecer seu conceito suas caracteriacutesticas e aplicar

seus meacutetodos e teacutecnicas para obter os resultados desejados

Os pontos principais de qualidade satildeo verificar se o produto foi desenvolvido

corretamente e validar se o produto ficou de acordo com a especificaccedilatildeo de requisitos

Algumas organizaccedilotildees de desenvolvimento de software sabem da importacircncia de ter

um produto com qualidade natildeo apenas seu conceito mas a colocaccedilatildeo de todo processo em

praacutetica Mas infelizmente natildeo satildeo todas que pensam desta forma Mesmo que algumas

tenham o objetivo de aplicar meacutetodos de qualidade elas natildeo possuem o conhecimento de

como medir essa qualidade

Pressman (Engenharia de Software - 1995) afirma que a mediccedilatildeo faz parte de uma

seacuterie de ldquomedicaccedilotildeesrdquo que podem ajudar a curar a afliccedilatildeo de software ela oferece

benefiacutecios em niacutevel estrateacutegico em niacutevel de projeto e em niacutevel teacutecnico

Este trabalho mostra a importacircncia de serem aplicados testes nos softwares

desenvolvidos e para isso satildeo necessaacuterias meacutetricas de software Assim eacute necessaacuterio um

estudo sobre as medidas do software seus conceitos ferramentas de meacutetricas e sua

utilizaccedilatildeo no sentido de explorar suas funcionalidades

A organizaccedilatildeo deste trabalho eacute a seguinte no capiacutetulo 2 foram apresentadas as

meacutetricas de software suas definiccedilotildees e tipos aleacutem do tratamento de algumas medidas No

capiacutetulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o

processo de software Em seguida no capiacutetulo 4 foram citadas meacutetricas para organizaccedilotildees

de pequeno porte uma empresa quando estaacute em seu momento de crescimento esta fase eacute

a hora certa de se aplicar a engenharia de software assim acompanhando todo o ciclo de

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 12: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1248

983090

vida do projeto No capiacutetulo 5 foi apresentado um breve comentaacuterio sobre os testes de

software prosseguindo no capiacutetulo 6 foram mostradas as ferramentas utilizadas para

extrair as meacutetricas inclusive o software escolhido para a realizaccedilatildeo dos testes No capiacutetulo

7 foi feita uma comparaccedilatildeo com os resultados das meacutetricas analisando as diferenccedilas entreas trecircs ferramentas utilizadas E para finalizar no capiacutetulo 8 foi feita a conclusatildeo de todo

este trabalho ou seja a comparaccedilatildeo dos resultados das meacutetricas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 13: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1348

983091

2 AS MEacuteTRICAS DE SOFTWARE

21 Definiccedilotildees de meacutetricas de software

Uma meacutetrica de software eacute qualquer tipo de mediccedilatildeo que se refira a um sistema de

software processo ou documentaccedilatildeo relacionada diz Sommerville (Engenharia de Software

- 2003) Coletadas essas mediccedilotildees as questotildees em relaccedilatildeo ao software poderatildeo ser

respondidas e confirmaccedilotildees poderatildeo ser feitas de que as melhorias do software

alcanccedilaram ou natildeo a meta desejada

A meacutetrica de software tem como princiacutepio especificar as funccedilotildees de coleta de dados

de avaliaccedilatildeo e desempenho atribuindo essas responsabilidades a toda a equipe envolvida

no projeto e analisar os histoacutericos dos projetos anteriores

Quando se fala de meacutetricas deve-se ter em mente que se trata de dados nuacutemeros

quantitativos que iratildeo mostrar em forma de indicadores o estado atual de um determinado

projeto A mediccedilatildeo sendo tatildeo importante assim deveria ser aplicada em todas as fases do

ciclo de vida do projeto e natildeo somente na fase de desenvolvimento o que eacute mais comum

Isso faraacute com que a proacutepria equipe do projeto fique mais confiante diante dos resultados

obtidos e melhore cada vez mais o processo pelo qual o projeto eacute desenvolvido evoluindo

sempre para a qualidade do processo e do produto

A mediccedilatildeo tem seu papel muito importante dentro da engenharia de software

especialmente na gerecircncia de projetos de software seja qual for agrave metodologia a ser

utilizada Ela eacute analisada por gerentes de projetos de software e coletada pelos engenheiros

de software Entatildeo sem as meacutetricas dispotildee-se apenas de dados subjetivos os quais natildeo

seratildeo de grande importacircncia pois como foi visto anteriormente as meacutetricas satildeo expressas

de forma quantitativa ou seja em nuacutemeros As meacutetricas satildeo feitas entatildeo em trecircs fases

coleta de dados caacutelculo dos dados e anaacutelise dos dados Eacute importante saber escolher ametodologia que melhor se encaixa no projeto trazendo resultados mais precisos sejam

eles bons ou ruins

Tendo entatildeo realizada a mediccedilatildeo poderatildeo ser feitas estimativas de custos e prazos

de teacutermino do projeto ou entrega do produto final O mais importante a ser ressaltado eacute que

a aplicaccedilatildeo das meacutetricas deve ser muito bem planejada e que seus resultados devem ser

apresentados de uma forma clara de modo que todos possam entender os resultados

obtidos Feito isso o resultado que se tem eacute um conjunto de dados que apresenta a ideacuteia do

processo e um entendimento do projeto Permite aos gerentes de projetos de software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 14: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1448

983092

aperfeiccediloar e melhorar o processo de desenvolvimento do produto e avaliar a qualidade do

produto que estaacute sendo produzido

22 Definiccedilotildees complementares

Esta seccedilatildeo inclui outras definiccedilotildees importantes para o entendimento das meacutetricas de

software que satildeo

Medida Fornece uma indicaccedilatildeo quantitativa da extensatildeo quantidade dimensatildeo

capacidade ou tamanho de algum atributo de um produto ou processo

Segundo Vasconcelos (Meacutetricas de Software - 2005) medida eacute uma funccedilatildeo demapeamento

Mediccedilatildeo Ato de determinaccedilatildeo de uma medida

Meacutetrica Medida quantitativa do grau em que um sistema se encontra em relaccedilatildeo a

um determinado atributo

Indicadores Meacutetrica ou combinaccedilatildeo de meacutetricas que fornece uma compreensatildeo deum processoprojetoproduto

23 Categorizaccedilatildeo das meacutetricas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees entre outras que seratildeo

citadas neste capiacutetulo

231 Meacutetricas diretas e indiretas

As meacutetricas podem ser categorizadas de maneiras diferentes tais como meacutetricas

diretas e indiretas ou meacutetricas orientadas a tamanho ou funccedilotildees

As meacutetricas diretas satildeo aquelas onde os atributos satildeo observados (por exemplo

custo esforccedilo quantidade de linhas de coacutedigo produzidas total de defeitos registrados)

As meacutetricas indiretas satildeo aquelas obtidas a partir de outras meacutetricas (por exemplo

eficiecircncia confiabilidade qualidade funcionalidade)

O custo e o esforccedilo exigidos para se construir o software o nuacutemero de linhas decoacutedigo produzido e outras medidas diretas satildeo relativamente faacuteceis de serem reunidas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 15: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1548

983093

desde que convenccedilotildees especiacuteficas para mediccedilatildeo sejam estabelecidas antecipadamente

Poreacutem a qualidade e a funcionalidade do software ou seja eficiecircncia e capacidade de

manutenccedilatildeo satildeo mais difiacuteceis de serem avaliadas e somente podem ser medidas

indiretamente

232 Meacutetricas orientadas a tamanho e funccedilatildeo

As meacutetricas orientadas a tamanho consideram o tamanho do software produzido

(linhas de coacutedigo) referem-se a todas as atividades da engenharia (anaacutelise projeto coacutedigo

teste) tais como

Produtividade KLOCpessoa-mecircs

Qualidade defeitosKLOC

Custo $LOC

Documentaccedilatildeo paacuteginas de documentaccedilatildeoKLOC

As meacutetricas orientadas a funccedilatildeo em vez de contar as linhas de coacutedigo a meacutetrica

orientada agrave funccedilatildeo concentra-se na funcionalidade do software (o que eacute entregue) Essa

meacutetrica consiste em um meacutetodo para mediccedilatildeo de software do ponto de vista do usuaacuterio que

determina de forma consistente o tamanho e complexidade de um software

Uma abordagem foi sugerida por Allan Albrecht (IFPUG 1994) baseada nesta

proposta chamada de pontos por funccedilatildeo A anaacutelise de pontos por funccedilatildeo focaliza a

perspectiva de como os usuaacuterios ldquoenxergamrdquo os resultados que um sistema produz Ela se

baseia parcialmente em dados subjetivos implicando a organizaccedilatildeo estabelecer um plano

de implantaccedilatildeo da sistemaacutetica da mediccedilatildeo definindo padrotildees para contagem Isto eacute

fundamental para que os resultados das mediccedilotildees possam ser comparados entre os

projetos gerando uma linha de referecircncia (baseline ) das informaccedilotildees histoacutericas coletadas e

armazenadas

FP (Function Points)

FP = contagem total [065 + 001 sum (Fi)]

Fi = valores de ajuste de complexidade ( i= 114)

Produtividade FPpessoa-mecircs

Qualidade defeitosFP

Custo $ FPDocumentaccedilatildeo paacuteginas de documentaccedilatildeoFP

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 16: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1648

983094

233 Meacutetricas de produto e produtividade

As meacutetricas de produto se ocupam com as caracteriacutesticas do proacuteprio software elas

se dividem em duas classes diz (CLARO ndash Meacutetricas de Software)

bull Meacutetricas estaacuteticas que satildeo coletadas por mediccedilotildees feitas das

representaccedilotildees do sistema como projeto programa ou documentaccedilatildeo

bull Meacutetricas dinacircmicas que satildeo coletadas por mediccedilotildees feitas de um programa

em execuccedilatildeo

bull Meacutetricas de produtividade concentram-se na saiacuteda do processo de

engenharia de software (por exemplo nuacutemero de casos de uso iteraccedilatildeo)

234 Meacutetricas de qualidade e meacutetricas teacutecnicas

As meacutetricas de qualidade oferecem uma indicaccedilatildeo de quanto o software se adequa

agraves exigecircncias impliacutecitas e expliacutecitas do cliente (por exemplo erros fase)

Segundo Pressman (Engenharia de Software ndash 1995) existem muitas medidas de

qualidade de software elas incluem

bull Corretitude um programa deve operar corretamente caso contraacuterio

ofereceraacute pouco valor aos seus usuaacuterios Corretitude eacute o grau em que o

software executa a funccedilatildeo que eacute dele exigidabull Manutenibilidade agrave manutenccedilatildeo de software eacute responsaacutevel por mais esforccedilo

do que qualquer outra atividade de engenharia de software Manutenibilidade

eacute a facilidade com que um programa pode ser corrigido se um erro for

encontrado adaptado se o seu ambiente se modificar ou ampliado se o

cliente desejar inclusotildees e alteraccedilotildees nos requisitos funcionais Natildeo existe

nenhuma forma de se medir a manutenibilidade diretamente deve-se usar

medidas indiretas

bull Integridade a integridade de software vem tornando-se cada vez mais

importante na era dos hackers e dos viacuterus Esse atributo mede a capacidade

que um sistema tem de se suportar ataques agrave sua integridade ataques

podem ser feitos a todos os trecircs componentes do software programas dados

e documentos

bull Usabilidade se um programa natildeo for user friendly (amigaacutevel ao usuaacuterio)

estaraacute destinado ao fracasso mesmo que as funccedilotildees que eles executem

sejam valiosas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 17: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1748

983095

E as meacutetricas teacutecnicas concentram-se nas caracteriacutesticas do software e natildeo no

processo por meio do qual o software foi desenvolvido por exemplo complexidade loacutegica

manutenibilidade

235 Meacutetricas privadas e puacuteblicas

As meacutetricas privadas se referem ao escopo da equipe do projeto de software (por

exemplo defeitos para funccedilotildees importantes do software erros encontrados durante revisotildees

teacutecnicas formais)

As meacutetricas puacuteblicas geralmente assimilam informaccedilotildees que anteriormente eram

privadas de uma equipe (por exemplo proporccedilotildees de defeitos de projeto esforccedilo tempo

transcorrido e dados relacionados) satildeo coletados e avaliados tentando descobrir

indicadores

24 Utilizaccedilatildeo das meacutetricas

Para um bom desempenho das meacutetricas de software eacute preciso antes de utilizaacute-las

planejar organizar e identificar os pontos principais diz Sommerville (Engenharia de

Software ndash 2003)

Inicialmente definir um padratildeo para as meacutetricas

bull Escolha de mediccedilotildees a serem feitasbull Seleccedilatildeo de componentes a serem avaliados

bull Mediccedilatildeo de caracteriacutesticas dos componentes

bull Adquirir as ferramentas necessaacuterias

bull Identificar mediccedilotildees anocircmalas

25 Justificativa do uso das meacutetricas

Com a utilizaccedilatildeo das meacutetricas eacute possiacutevel conseguir melhorias e resultados mais

satisfatoacuterios do software mais seguranccedila para os gerentes de projeto Eacute uma maneira de

eliminar os obstaacuteculos corrigir erros e falhas antes mesmo do produto ser entregue ao

cliente Alguns itens a serem analisados

bull Entender e aperfeiccediloar o processo de desenvolvimento

bull Melhorar a gerecircncia de projetos e o relacionamento com clientes

bull Avaliar produtividade do processo

bull Reduzir frustraccedilotildees e pressotildees de cronograma

bull

Embasar solicitaccedilotildees de novas ferramentas e treinamentosbull Formar uma linha baacutesica para estimativas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 18: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1848

983096

bull No niacutevel teacutecnico as mediccedilotildees satildeo importantes para determinar paracircmetros

como quantidade de teste necessaacuterio e impacto de mudanccedilas

26 Coleta computaccedilatildeo e avaliaccedilatildeo das meacutetricasIdealmente os dados necessaacuterios para se estabelecer uma linha baacutesica foram

compilados continuamente Infelizmente isso raramente acontece Por conseguinte a coleta

de dados requer uma investigaccedilatildeo histoacuterica dos projetos passados para se reconstruir os

dados exigidos Logo que os dados foram coletados a computaccedilatildeo das meacutetricas eacute possiacutevel

A avaliaccedilatildeo dos dados concentra-se nas razotildees subjacentes para os resultados obtidos

27 Mediccedilatildeo do software

Se natildeo medir natildeo haveraacute nenhuma maneira real de determinar se estaacute ou natildeo

melhorando Pressman (1995) afirma a mediccedilatildeo faz parte de uma seacuterie de ldquomedicaccedilotildeesrdquo

que podem ajudar a curar a afliccedilatildeo de software ela oferece benefiacutecios em niacutevel estrateacutegico

em niacutevel de projeto e em niacutevel teacutecnico

As mediccedilotildees e as meacutetricas ajudam a entender o processo teacutecnico usado para

desenvolver um produto O processo eacute medido num esforccedilo para melhoraacute-lo assim como o

produto eacute medido num esforccedilo para aumentar sua qualidade Tambeacutem satildeo necessaacuterias para

analisar a qualidade e a produtividade do processo de desenvolvimento bem como amanutenccedilatildeo do produto de software construiacutedo

Medir ajuda a obter o auto-conhecimento para saber se o que se tem eacute o suficiente

quem eacute a empresa envolvida e em qual ponto se encontra o projeto Tambeacutem ajuda a

entender a pressatildeo imediata saber o que dever ser feito e qual o caminho a seguir

Tambeacutem entender porque a mediccedilatildeo eacute importante para avaliaccedilatildeo e garantia de qualidade

de software conhecer algumas meacutetricas e suas aplicaccedilotildees entender o que eacute um plano de

meacutetricas e como escrever um

Gomes A (Metricas e Estimativas de Software - 2008) afirma medir e estimar eacute aparte mais importante de um projeto de sistema bem-sucedido

Assim preparar-se para o futuro sabendo da atual situaccedilatildeo qual o proacuteximo passo e

se caso precisar mudar a direccedilatildeo ter a confianccedila que natildeo haveraacute impactos causando

problemas futuros

Pode-se utilizar a aplicaccedilatildeo de mediccedilatildeo em

bull Processo de software com o objetivo de melhoraacute-lo de forma contiacutenua visatildeo

estrateacutegica de organizaccedilatildeo

bull Projeto de software para auxiliar na estimativa no controle de qualidade na

avaliaccedilatildeo de produtividade e no controle de projeto

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 19: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 1948

983097

271 Medidas teacutecnicas

Medidas teacutecnicas satildeo necessaacuterias para qualificar a performance teacutecnica dos

produtos do ponto de vista do desenvolvedor diz (CORDEIRO ndash Meacutetricas de Software) Por

outro lado medidas funcionais satildeo necessaacuterias para qualificar a performance dos produtos

pela perspectiva do usuaacuterio Medidas funcionais devem ser independentes das decisotildees do

desenvolvimento teacutecnico e implementaccedilatildeo Tais medidas podem ser utilizadas para

comparar a produtividade de diferentes teacutecnicas e tecnologias

28 Processo de mediccedilatildeo do software

Sommerville (2003) afirma que um processo de mediccedilatildeo de software pode ser parte

de um processo de controle de qualidade cada componente do sistema eacute analisado e osdiferentes valores da meacutetrica devem ser comparados entre si Mediccedilotildees anocircmalas devem

ser utilizadas para enfocar o esforccedilo de garantia de qualidade nos componentes que

possam apresentar problemas de qualidade Como pode ser observado na Figura 01

Figura 01 ndash Processo de mediccedilatildeo de produto (Fonte Sommerville 2003)

281 Os quatro papeacuteis da mediccedilatildeo

Os papeacuteis da mediccedilatildeo podem ser considerados como quatro caracterizar avaliar

prever e aperfeiccediloar

1 Caracterizar

bull Caracterizar para ter entendimento do processo produtos e recursos

bull Estabelecer marcos baacutesicos

bull Prever ou aperfeiccediloar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 20: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2048

983089983088

2 Avaliar

bull Avaliar para determinar o status com referecircncia aos planos

bull Sensores para avaliar quanto os projetos e processos estatildeo fora de

controlebull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

3 Prever

bull Para poder planejar

bull Observaccedilatildeo de todo o processo e do produto como forma de utilizar

valores observados para prever outros

bull Ajudam a extrapolar tendecircncias onde as estimativas de custos prazos e

qualidade podem ser atualizadas

4 Aperfeiccediloar

bull Coletar informaccedilotildees quantitativas para ajudar a identificar bloqueios

causas fundamentais ineficiecircncias

bull Melhorar a qualidade do produto e o desempenho do sucesso

bull Avaliamos para determinar o status com referecircncia aos planos

bull

Sensores para avaliar quanto os projetos e processos estatildeo fora decontrole

bull Verificar o modo para trazer os projetos de volta ao controle

bull Verificar o cumprimento de metas de qualidade

bull Verificar os impactos de melhoramentos de tecnologias

29 O limite de medir

Medir eacute importante poreacutem esta medida eacute limitada Gerentes de projetos devem

saber o momento exato de encerrar as mediccedilotildees para que o software natildeo seja prejudicado

e as outras fases do projeto tambeacutem

Medir ateacute o momento de se alinhar os objetivos do projeto (necessidades) com os

objetivos da empresa estabelecer um programa de meacutetricas adequado fundamentado e

gradual e natildeo medir mais do que eacute necessaacuterio Natildeo eacute possiacutevel medir se natildeo conseguir

bull controlar

bull gerenciar

bull melhorar e

bull trabalhar

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 21: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2148

983089983089

3 METODOLOGIAS

Metodologia na engenharia de software pode ser considerada como um conjunto

estruturado de praacuteticas que pode ser seguido e repetido durante todo o processo de

produccedilatildeo de software

Seguem duas metodologias que podem ser utilizadas GQM e Cascata

31 GQM (Goal Question Metrics)

Vasconcelos (2005) explica que esta metodologia eacute usada para definir o conjunto de

meacutetrica a ser coletado proposto por Basili e Rombachrsquos (IEEE - 1988) E eacute baseada no fato

de que deve existir uma necessidade clara e objetiva associada a cada meacutetrica

O significado de GQM (Goal Question Metrics ) eacutebull GOAL Quais satildeo as metasobjetivos

bull QUESTION Quais questotildees se deseja responder

bull METRICS Quais meacutetricas poderatildeo ajudar

O objetivo da GQM eacute assegurar que todos os defeitos satildeo corrigidos antes do

software ser liberado para uso Suas fases satildeo

I Planejamento

II Definiccedilatildeo

III Coleta de dadosIV Interpretaccedilatildeo

32 Metodologia Cascata

Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008) no

modelo em cascata o projeto segue uma seacuterie de passos ordenados Ao final de cada fase

a equipe do projeto finaliza uma revisatildeo o desenvolvimento natildeo continua ateacute que o cliente

esteja satisfeito com os resultados Pode ser observado o modelo cascata na Figura 02

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 22: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2248

983089983090

Planejamento inicial ePlanejamento inicial ePlanejamento inicial ePlanejamento inicial e DocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeoDocumentaccedilatildeo

Figura 02 ndash Modelo Cascata (Fonte Sommerville 2003)

Se for necessaacuterio efetuar alguma modificaccedilatildeo voltar os passos de desenvolvimento

do projeto eacute complicado A metodologia em cascata eacute extremamente formal pode-se afirmar

que eacute baseada em documentos e com certeza possui uma enorme quantidade de

ldquoentregaacuteveisrdquo e saiacutedas que nada mais satildeo do que documentos Outras caracteriacutesticas deste

modelo eacute o alto valor dado ao planejamento O forte planejamento inicial reduz a

necessidade de planejamento contiacutenuo conforme o andamento do projeto

concepccedilatildeo

requisitos

modelagem

codificaccedilatildeo

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 23: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2348

983089983091

4 MEacuteTRICAS PARA ORGANIZACcedilOtildeES PEQUENAS

Pequenas organizaccedilotildees satildeo empresas que possuem uma quantidade pequena de

funcionaacuterios consideradas de pequeno porte Assim a estrateacutegia eacute iniciar um processo demelhoria na fase de crescimento da empresa com poucos desenvolvedores com projetos

pequenos o gerenciamento ainda eacute controlaacutevel e o tempo ainda natildeo eacute um problema

As meacutetricas citadas abaixo podem ser consideradas para pequenas organizaccedilotildees

iniciantes em projetos de software adquirindo desde o comeccedilo a disciplina da engenharia

de software

bull Tempo (horas ou dias) transcorridos entre o momento em que o pedido foi

feito ateacute que a avaliaccedilatildeo seja completada

bull Esforccedilo (pessoashoras) para realizar a avaliaccedilatildeo

bull Esforccedilo necessaacuterio para fazer a modificaccedilatildeo (pessoashora)

bull Tempo necessaacuterio

bull Erros descobertos durante o trabalho

bull Defeitos descobertos

41 Estimativas

Uma das atividades fundamentais do processo de gerenciamento de projetos desoftware eacute o planejamento do esforccedilo humano exigido duraccedilatildeo cronoloacutegica do projeto e

custo deve ser derivadas Uma seacuterie de teacutecnicas de estimativas foram disponibilizadas para

o desenvolvimento de software segundo Pressman (Engenharia de Software ndash 1995)

bull O escopo do projeto deve ser estabelecido antecipadamente

bull Meacutetricas de software satildeo utilizadas e o histoacuterico de afericcedilotildees passadas eacute

usado como uma base a partir da qual estimativas satildeo feitas

bull O projeto eacute dividido em pequenas partes que satildeo estimadas

individualmente

42 Eacutetica das meacutetricas

As meacutetricas devem sempre fornecer benefiacutecios para a organizaccedilatildeo com o intuito de

aperfeiccediloar o seu niacutevel de maturidade seguem algumas etiquetas

Bom senso e sensibilidade empresarial quando interpretar dados de meacutetricas

bull Fornecer realimentaccedilatildeo aos indiviacuteduos que coletam medidas e meacutetricas

bull

Natildeo usar meacutetricas para avaliar indiviacuteduos

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 24: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2448

983089983092

bull Trabalhar com profissionais e indiviacuteduos para estabelecerem metas claras

e meacutetricas que devem ser usadas para alcanccedilaacute-las

bull Nunca usar meacutetricas para ameaccedilar indiviacuteduos

bull Dados de meacutetricas que indicam uma aacuterea problemaacutetica natildeo devem serconsiderados negativos

43 Principais barreiras para utilizaccedilotildees das meacutetricas

As organizaccedilotildees de software muitas delas tem o planejamento das meacutetricas poreacutem

devido alguns fatores natildeo eacute possiacutevel desenvolver o processo de mediccedilatildeo Abaixo seguem

alguns desses fatores

bull Falta de comprometimento da alta gerecircncia

bull Medir custo caro

bull Os maiores benefiacutecios vecircm a longo prazo

bull Maacute utilizaccedilatildeo das meacutetricas

bull Grande mudanccedila cultural necessaacuteria

bull Dificuldade de estabelecer mediccedilotildees apropriadas e uacuteteis

bull Interpretaccedilotildees de dados realizadas de forma incorreta

bull Obter o comprometimento de todos os envolvidos e impactados

bull Estabelecer um programa de mediccedilotildees eacute faacutecil o difiacutecil eacute manter

44 Vantagens das meacutetricas de software

O uso das meacutetricas de software permite obter uma seacuterie de vantagens

Diminuir

bull Defeitos

bull Prazo de entrega

bull Desperdiacutecio

bull Custo

Aumentar

bull Satisfaccedilatildeo do cliente

bull Produtividade dos recursos

bull Visibilidade das accedilotildees

bull Qualidade de gerenciamento

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 25: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2548

983089983093

45 Desvantagem das meacutetricas de software

Uma desvantagem eacute que a meacutetrica de software natildeo oferece cem por cento de

confianccedila em seus resultados A meacutetrica serve de base para o conhecimento no campo da

mediccedilatildeo na gestatildeo de projetos com ajuda de projetos que jaacute foram concluiacutedos no passado

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 26: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2648

983089983094

5 TESTE DE SOFTWARE

Segundo Pressman (Engenharia de Software ndash 1995) a atividade de teste de

software eacute um elemento criacutetico da garantia de qualidade de software e representa a uacuteltima

revisatildeo de especificaccedilatildeo projeto e codificaccedilatildeo

Realizados de forma cuidadosa e criteriosa o teste assume uma importacircncia cada

vez maior dado o impacto sobre o funcionamento e o custo estaacute sendo portanto um fator de

muita importacircncia nas empresas de software

51 Objetivos da atividade de teste

Os objetivos das atividades de teste satildeo

bull

A atividade de teste eacute o processo de executar um programa com aintenccedilatildeo de descobrir um erro

bull Um bom caso de teste eacute aquele que tem uma elevada probabilidade de

revelar um erro ainda natildeo descoberto

bull Um teste bem sucedido eacute aquele que revela um erro ainda natildeo

descoberto

Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de

informaccedilatildeo

bull A falta de maturidadebull O desinteresse das empresas de desenvolvimento de sistemas

bull A baixa popularidade deste assunto entre os profissionais da aacuterea de

informaacutetica

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 27: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2748

983089983095

6 FERRAMENTAS

A maioria das aplicaccedilotildees hoje eacute concebida e desenvolvida para uso simultacircneo por

um grande nuacutemero de usuaacuterios Agraves vezes existem problemas subjacentes no coacutedigo que

podem causar erros assim torna-se particularmente criacutetico para o dono da obra garantir

que a aplicaccedilatildeo estaacute disponiacutevel e confiaacutevel

Atraveacutes das meacutetricas surge a coleta de dados observando se existem meacutetricas

adequadas se as comparaccedilotildees foram produtivas e se alguns dos resultados contribuiacuteram

para a melhoria do software Durante os estudos realizados foi pesquisado e encontrada

muitas ferramentas de meacutetricas de diversos tipos de varias linguagens

Na Tabela 01 satildeo relacionadas algumas ferramentas pesquisadas

Tabela 01 ndash Ferramentas para meacutetricas

LINGUAGEM FERRAMENTAS

C CQual Splint Frama-C CCured

CC++ QA-C HP Code Advisor CMT++ PREfast

JAVA AppPerfect Metrics FindBugs SCL

C SLOCCount Stonehenge MyscoolPlan Black

As ferramentas de teste escolhidas foram AppPerfect (Open source software)

Eclipse Metrics Plugin (Open source software) e FindBugs (Open source software)

61 Criteacuterio de escolha da linguagem de programaccedilatildeo

Antes de se ser definida a escolha do software e as seleccedilotildees das ferramentas foi

feita uma pesquisa sobre a utilizaccedilatildeo (popularidade) das linguagens de programaccedilatildeo Como

mostra a Figura 03 a linguagem Java estaacute na primeira posiccedilatildeo

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 28: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2848

983089983096

Figura 03 - Iacutendice de linguagem de programaccedilatildeo (Fonte httpwwwtiobecom)

62 O software escolhido

O software utilizado para a realizaccedilatildeo das meacutetricas foi o AS - Autocircmata Simuladorum programa desenvolvido em Java (Jandl 1999) que simula um robocirc em um ambiente

fechado de quatro paredes cuja funccedilatildeo eacute percorrer o espaccedilo sem encostar nas paredes

A figura 04 mostra a inclusatildeo deste software na plataforma Eclipse para os devidos

testes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 29: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 2948

983089983097

Figura 04 - Inclusatildeo do software na plataforma Eclipse

63 Ferramenta AppPerfect

O AppPerfect Java Profiler eacute uma ferramenta open source para programas em Java

Projetada para ajudar a encontrar erros bem como recursos vitais do sistema em que vocecirc

estaacute executando o aplicativo Ele elimina a necessidade de passar longas horas a

atravessar o coacutedigo alertando os problemas de sua aplicaccedilatildeoObjetivos

bull Encontrar e traccedilar erros

Caracteriacutesticas

bull Aponta os problemas associados agrave sua aplicaccedilatildeo

bull Fornece informaccedilotildees estatiacutesticas completas e precisas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 30: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3048

983090983088

Figura 05 - Execuccedilatildeo da ferramenta AppPerfect

A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e apoacutes

verificaccedilatildeo mostra que eacute um software sem irregularidades

Figura 06 - Ferramenta apresenta o nome do autor do software

A Figura 07 mostra o momento em que a ferramenta analisa todo o projeto Podem

ser acompanhados o tempo restante e a quantidade jaacute verificada

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 31: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3148

983090983089

Figura 07 - Ferramenta analisa o software

Os resultados satildeo observados na Figura 08

Figura 08 ndash Algumas meacutetricas obtidas

Esta ferramenta apresenta nuacutemero total de linhas de coacutedigo por completo

bull Linhas do coacutedigo

bull Linhas em branco e

bull Linhas comentadas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 32: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3248

983090983090

Essa ferramenta tem a funccedilatildeo de gerar um relatoacuterio dos resultados das meacutetricas e

permite exportar seus resultados nos formatos PDF (Figura09) Excel (Figura 10) HTML

(Figura 11) e XML (Figura 12)

Figura 09 - Relatoacuterio exportado para PDF

Figura 10 - Relatoacuterio exportado para EXCEL

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 33: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3348

983090983091

Figura 11 - Relatoacuterio exportado para HTML

Figura 12 ndash Relatoacuterio exportado para XML

A ferramenta tambeacutem fornece um graacutefico com um resumo do projeto avaliado

(Figura 13) trazendo os resultados

bull em azul rigor-meacutedio

bull em vermelho rigor-baixo

bull em verde rigor-alto

bull em amarelo rigor-criacutetico

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 34: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3448

983090983092

Figura 13 - Resumo do projeto

64 Ferramenta Eclipse Metrics Plugin

O Eclipse Metrics Plugin eacute uma ferramenta open source que apresenta meacutetricas para

programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java) como

ilustrado na Figura 14 Seu objetivo eacute fornecer meacutetricas e caacutelculo Sua principal

caracteriacutesticas eacute medir meacutetricas com meacutedia e desvio padratildeo

Figura 14 - Execuccedilatildeo da ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 35: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3548

983090983093

Alguns resultados obtidos com esta ferramenta ilustrados na Figura 15 satildeo

bull Total de linhas de coacutedigo

bull Nuacutemero de classes

bull Nuacutemero de atributosbull Nuacutemero de pacotes e

bull Nuacutemero de meacutetodos

Figura 15 ndash Algumas meacutetricas do Eclipse Metrics Plugin

Em geral a ferramenta apresenta meacutetricas do projeto como um todo poreacutem caso o

usuaacuterio necessite somente das meacutetricas das classes tem-se essa opccedilatildeo (Figura 16)

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 36: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3648

983090983094

Figura 16 - Meacutetricas da classe Frame

A Figura 17 apresenta um alerta da quantidade de paracircmetros do trecho de coacutedigo

pode ser observado que a ferramenta traz a mensagem em vermelho para se destacar

entre as outras jaacute que estaacute apontando um alerta

Figura 17 - Alerta de nuacutemeros de paracircmetros

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 37: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3748

983090983095

A Figura 18 ilustra como a ferramenta traz os erros e advertecircncias do software

Figura 18 ndash Erros e advertecircncias

A Figura 19 mostra o default package do software do que ele eacute composto

Figura 19 - Pacote padratildeo do software (default package)

A Figura 20 ilustra um relatoacuterio exportado em formato XML

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 38: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3848

983090983096

Figura 20 ndash Relatoacuterio exportado para XML

65 Ferramenta FindBugs

FindBugs tambeacutem eacute uma ferramenta open source utilizada juntamente com a

plataforma Eclipse

Objetivos

bull Encontrar erros em programa Java

Caracteriacutesticas

bull Baseia-se em bugs padrotildees (um padratildeo eacute uma maneira de dizer que o

coacutedigo eacute muitas vezes um erro)

bull Utiliza anaacutelise estaacutetica para analisar bytecodes (arquivo binaacuterio Java)

bull Gera uma listagem trazendo um resumo dos nuacutemeros de bugsencontrados

bull Exibe as advertecircncias e as fontes relevantes

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 39: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 3948

983090983097

Figura 21 - Execuccedilatildeo da Ferramenta FindBugs

Figura 22 ndash Teste de ponto flutuante

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 40: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4048

983091983088

Teste de ponto flutuante em igualdade (float)

Esta operaccedilatildeo compara dois valores de ponto flutuante para a igualdade melhor

dizendo caacutelculos de ponto flutuante pois pode envolver o arredondamento calculado float e

duplos valores podem natildeo ser exatos Para os valores que devem ser precisos tais comovalores monetaacuterios considere o uso de um determinado tipo de precisatildeo tais como

bigdecimal

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapa eacute parede (int int int int)

Em Mapjava [linha 781]

Uma outra ocorrecircncia no Mapjava

Figura 23 ndash Meacutetodo se manifesta

Interruptor - declaraccedilatildeo encontrada em um caso em que se registra ateacute o proacuteximo

caso

Este meacutetodo conteacutem uma declaraccedilatildeo onde um interruptor se manifesta caso ramo

caia ateacute o proacuteximo caso Normalmente para eliminar este caso ele executa um break ou um

return

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 41: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4148

983091983089

Detalhes Bug

Na classe ASDialog

No novo meacutetodo ASDialog (Frame string int)

Em ASDialogjava [linhas 70-72]

Figura 24 ndash Alerta que o meacutetodo pode falhar

Meacutetodo pode falhar

Este meacutetodo pode falhar para limpar o banco de dados ou outros recursos que

exigem uma limpeza expliacutecita Em geral se o meacutetodo abre um outro recurso ele deveraacute usar

um ldquotente um uacuteltimo blocordquo para garantir que o fluxo ou recurso seja limpo antes que o

meacutetodo retorne

Detalhes Bug

Na classe robotMap

No meacutetodo robotMapload (String)

Referecircncia tipo javaioReader

1 caso de obrigaccedilatildeo remanescente

Obrigaccedilatildeo de limpar recurso criado pelo mapa [linha 272] natildeo eacute descarregada

Caminho continua no mapa [linha 274]Caminho continua no mapa [linha 276

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 42: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4248

983091983090

Figura 25 ndash Variaacutevel com valor nulo

Carga de valor nulo em conhecer variaacutevel IEngine

A variaacutevel referenciada nesta altura eacute conhecida como um valor nulo devido a uma

verificaccedilatildeo antecipada de encontrar valores nulos Embora isso seja vaacutelido pode ser um

erro

Detalhes Bug

Na classe IEngine

No meacutetodo IEngineinterpretStatement

Em IEnginejava [linha 356]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 43: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4348

983091983091

Figura 26 ndash Chamar meacutetodo desliga maacutequina virtual Java

Isso somente deve ser feito se for apropriado tais chamadas torna difiacutecil ou

impossiacutevel para este coacutedigo de ser chamado por outro O aplicativo recomenda lanccedilar a

exceccedilatildeo RuntimeException ao inveacutes do uso de Systemexit ()

Detalhes Bug

Na classe ASFrama

No meacutetodo ASFramequit()

Em AS Framejava [linha 211]

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 44: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4448

983091983092

7 COMPARACcedilAtildeO DOS RESULTADOS

71 Tabela de resultadosA Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect Metrics e

FindBugs

Tabela 02 ndash Resultados quantitativos das meacutetricas

Quesito Meacutetrica AppPerfect Metrics FindBugs

1 Nuacutemero de linhas de coacutedigo 6507 3433 ND

2 Nuacutemero de atributos 137 175 ND

3 Nuacutemero de meacutetodos 244 237 ND

4 Numero de classes 56 56 ND

5 Nuacutemero de pacotes ND 3 ND

6 Nuacutemero de interfaces ND 0 ND

7 Teste ponto flutuante ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

8 Alerta meacutetodo pode falhar ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

9 Alerta variaacutevel com valornulo ND ND Natildeo apresentavalores apenasaponta asadvertecircncias e lista osbugs

Como pode ser observado na Tabela 02

Resultados diferentes

Quesito 1

Possui o mesmo tipo de meacutetrica mas com resultados diferentesQuesito 2

Possui o mesmo tipo de meacutetrica mas com resultados diferentes

Quesito 3

Possui o mesmo tipo de meacutetricas mas com resultados diferentes

Quesito 5

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta Metrics

Quesito 6

Ferramenta AppPerfect e FindBugs natildeo possui a meacutetrica da ferramenta da

ferramenta Metrics

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 45: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4548

983091983093

Quesito 7

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 8

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Quesito 9

Ferramenta AppPerfect e Metrics natildeo possui a meacutetrica da ferramenta da ferramenta

FindBugs

Resultados iguais

Quesito 4

Meacutetricas iguais com valores iguais

72 Quadro comparativoA Tabela 03 faz uma comparaccedilatildeo dos resultados das meacutetricas

Tabela 03 ndash Resultados descritivos das meacutetricas

FERRAMENTA RESULTADO

983105983152983152983120983141983154983142983141983139983156 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983117983141983156983154983145983139983155 983156983137983149983138983273983149 983152983151983155983155983157983145983086

983117983141983156983154983145983139983155 983124983154983137983162 983137983148983143983157983149983137983155 983149983273983156983154983145983139983137983155 983153983157983141 983137 983142983141983154983154983137983149983141983150983156983137

983105983152983152983120983141983154983142983141983139983156 983150983267983151 983152983151983155983155983157983145983086

983110983145983150983140983106983157983143983155 983124983154983137983162 983149983273983156983154983145983139983137983155 983140983145983142983141983154983141983150983156983141983155 983140983137983155 983142983141983154983154983137983149983141983150983156983137983155

983105983152983152983120983141983154983142983141983139983156 983141 983117983141983156983154983145983139983155983086

73 Avaliaccedilatildeo geralNa Tabela 04 podem ser observadas uma breve avaliaccedilatildeo de cada uma das

ferramentas

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 46: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4648

983091983094

Tabela 04 ndash Avaliaccedilatildeo das meacutetricas

AppPerfect

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

Metrics

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

OK

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

FindBugs

INSTALACcedilAtildeO OK

OPEN-SOURCE SIM

USO FAacuteCIL UTILIZACcedilAtildeO

COEREcircNCIA DOSRESULTADOS

NAtildeO TRAZ MEacuteTRICAS EM VALORES

UTILIDADE DOS RESULTADOS POSITIVO PARA O SOFTWARE

74 Conclusatildeo das ferramentas e das meacutetricas

Com as ferramentas utilizadas todas de open-source e faacutecil utilizaccedilatildeo concluiu-se

que elas satildeo distintas com meacutetricas diferentes uma das outras trazendo vaacuterios resultados

da mediccedilatildeo do software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 47: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4748

983091983095

8 CONCLUSOtildeES

Colocando todo o estudo em praacutetica pode-se perceber que existem muitas

ferramentas e diversos tipos de meacutetricas facilitando as organizaccedilotildees de iniciarem um

processo de mediccedilatildeo do software

Apoacutes o uso de cada uma delas pode ser feita a comparaccedilatildeo entre ambas a

diferenccedila que existe uma da outra as qualidades os tipos de meacutetricas facilidade de uso e

por conseguinte analisar os resultados Com os resultados foi possiacutevel tambeacutem uma

comparaccedilatildeo onde pode ser observado que as meacutetricas trouxeram valores diferentes

diferenciando-se uma das outras

Foi possiacutevel mostrar a importacircncia de se medir um software encontrar bugs atraveacutes

das ferramentas apontar falhas e exibir as advertecircncias Com todas essas funccedilotildees pode-se

dizer que um software depois de ter sido verificado por elas estaacute pronto para as correccedilotildees e

em seguida quando estiver realmente corrigido e testado novamente estaacute apto para a

entrega

Os resultados esperados foram positivos pois foi realmente mostrado o que satildeo as

meacutetricas de software porque utilizaacute-las mostrou-se como medir um software foi mostrado

como as meacutetricas satildeo importantes e como se inicia o processo de mediccedilatildeo

As ferramentas tambeacutem contribuiacuteram para este trabalho mostrando as qualidades e

funcionalidades existentes cada meacutetrica contida na ferramenta trouxe um ponto positivo

para o software com elas foram possiacuteveis mostrar que um software pode ser verificado linha

por linha do coacutedigo analisando cada trecho Mas por outro lado tambeacutem trouxe alguns

pontos negativos as ferramentas trouxeram algumas falhas erros e alertas que na verdade

podem ser considerados bons pois satildeo com esses avisos de falhas e erros de software que

se tem um produto de qualidade como foi citado nos primeiros capiacutetulos as meacutetricas natildeo

apresentam 100 de garantia nos resultados

Sem a anaacutelise das ferramentas seria quase impossiacutevel descobrir esses erros esse eacute

um dos fatores principais das ferramentas de meacutetricas encontrar bugs um outro fatorimportante eacute a busca das meacutetricas diretas indiretas e meacutetricas orientadas aacute tamanho que

mostraram o software em relaccedilatildeo ao seu conteuacutedo fazendo a validaccedilatildeo e garantindo a

qualidade

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008

Page 48: Métricas de Software

7212019 Meacutetricas de Software

httpslidepdfcomreaderfullmetricas-de-software-56da5fc36da5a 4848

9 REFEREcircNCIAS BILIOGRAacuteFICAS

APPPERFECT Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=appperfectgt Acesso em 01 de out de2008

CLARO Daniela B Meacutetricas de Software Disponiacutevel em

lthttpwwwinfufscbr~danclarodownloaddisciplinasME9tricas20de20Softwaredocgt Acesso

em 20 de fev de 2008

CORDEIRO Marco Aureacutelio Meacutetricas de Software Disponiacutevel em

lthttpwwwprgovbrbatebyteedicoes2000bb101metricashtmgt Acesso em 20 de fev de 2008

FINDBUGS Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=findbugsgt Acesso em 01 de out de2008

GOMES Alvaro Eduardo Meacutetricas e Estimativas de Software ndash O iniacutecio de um rally de

regularidade Disponiacutevel em lthttpwwwapinfocomartigo44htmgt Acesso em 20 de fev

de 2008

GOMES Andrey Metodologias de Desenvolvimento de Software 2008 Disponiacutevel em

lthttpwwwandreygomescomindexphpoption=com_contentampview=articleampid=1metodologias-de-

desenvolvimento-de-softwareampcatid=1metodologiasampItemid=2gt Acesso em 06 de nov de 2008

IEEE Transactions on Software Engineering 1998 Acesso em 15 de jul de 2008

IFPUG Function point counting practices manual V40 Atlanta 1994 Acesso em 22 de

ago de 2008

JANDL Peter Introduccedilatildeo ao Java 1999

METRICS PLUGIN Eclipse Open Source Software Disponiacutevel em

lthttpsourceforgenetsearchtype_of_search=softampwords=eclipse+metrics+plugingt Acesso em 01

de out de 2008

PRESSMAN Roger S Engenharia de Software Satildeo Paulo Makron Books 1995

SOMMERVILLE I Engenharia de Software 6ordf Ed Satildeo Paulo Addison Wesley 2003

TIOBE Programaccedilatildeo comunitaacuteria iacutendice de novembro de 2008 Linguagens populares

Disponiacutevel em lthttpwwwtiobecomindexphpcontentpaperinfotpciindexhtmlgt Acesso em 11

de set de 2008

VASCONCELOS Alexandre Meacutetricas de Software 2005 Disponiacutevel em

lthttpwwwcinufpebr~if720slidesintroducao-a-metricas-de-softwarepptgt Acesso em 20 de fev de

2008