Download - 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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