Você está na página 1de 48

Karina Guarizzo

0502050

MTRICAS DE SOFTWARE

Jaguarina
2008

Karina Guarizzo
0502050

MTRICAS DE SOFTWARE

Monografia apresentada disciplina


Trabalho de Graduao III, do Curso de
Cincia da Computao da Faculdade de
Jaguarina, sob a orientao do Prof. Ms.
Peter Jandl Jr, como exigncia parcial
para concluso do curso de graduao.

Jaguarina
2008
ii

GUARIZZO, Karina. Mtricas de Software. Monografia defendida e aprovada na FAJ em 11


de Dezembro de 2008 pela banca examinadora constituda pelos professores:

Prof. Ms. Peter Jandl Jr FAJ Orientador

Prof. Jos Arnaldo G. Nunes - FAJ

Prof . Selma Cintra

iii

Agradeo a Deus, pois sem ele no estaria aqui, aos


meus pais e ao meu namorado, pelo incentivo, pela fora e
apoio nos momentos mais difceis. O meu muito obrigado.

iv

AGRADECIMENTOS

A realizao deste Trabalho teve a colaborao de muitas pessoas, com muito


carinho, manifesto minha gratido, em especial:
Ao Mestre/Professor Peter, pela ateno e dedicao, 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 est sempre ao
meu lado, pelo amor, carinho, compreenso e a disposio que sempre teve em me ajudar e
me levantar nos momentos mais difceis durante esses quatros anos.
Aos Professores do Curso de Cincia da Computao, pelo ensino e sabedoria que
me proporcionaram durante esses quatro anos.
minha famlia, 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 inesquecveis na qual vou guardar boas lembranas
para o resto de minha vida.
Ao meu chefe pela ajuda, os conhecimentos que me proporcionou, contribuindo para
a realizao deste trabalho.

GUARIZZO, Karina. Mtricas de Software. 2008. Monografia (Bacharelado em Cincia da


Computao) Curso de Cincia da Computao da Faculdade de Jaguarina, Jaguarina.

RESUMO

Com o crescimento constante da demanda pelos servios de desenvolvimento de


software, vem aumentando a procura por tcnicas e ferramentas de melhoria da qualidade.
Essa melhoria do processo de software um objetivo fundamental para as organizaes e
deve estar baseada em medies. No entanto, definir, coletar e analisar um conjunto de
mtricas no uma tarefa trivial.
Pressman (1995) afirma, que ao solicitar e avaliar as medidas da produtividade e da
qualidade de software, a alta administrao pode estabelecer metas significativas de
melhoria do processo de Engenharia de Software.
Este Trabalho foi desenvolvido com o objetivo de mostrar a importncia que as
mtricas (medies de software) tm em seu ciclo de vida. Com a aplicao das mtricas de
software, o resultado final favorvel para as organizaes, para o cliente e principalmente
para o usurio final. Antes de o software ser entregue, possvel detectar e prever erros,
falhas e possveis empecilhos decorrentes do desenvolvimento.

Palavras- chave: ENGENHARIA DE SOFTWARE, QUALIDADE, MTRICAS.

vi

SUMRIO
Lista de Figuras........................................................................................................................ix
Lista de Tabelas........................................................................................................................x
1.

INTRODUO................................................................................................................ 1

2.

AS MTRICAS DE SOFTWARE .................................................................................... 3


2.1.

Definies de mtricas de software ......................................................................... 3

2.2.

Definies complementares..................................................................................... 4

2.3.

Categorizao das mtricas .................................................................................... 4

2.3.1.

Mtricas diretas e indiretas ............................................................................... 4

2.3.2.

Mtricas orientadas a tamanho e a funo ....................................................... 5

2.3.3.

Mtricas de produto e produtividade. ................................................................ 6

2.3.4.

Mtricas de qualidade e mtricas tcnicas ....................................................... 6

2.3.5.

Mtricas privadas e pblicas............................................................................. 7

2.4.

Utilizao das mtricas............................................................................................ 7

2.5.

Justificativa do uso das mtricas ............................................................................. 7

2.6.

Coleta, computao e avaliao das mtricas ......................................................... 8

2.7.

Medio o software.................................................................................................. 8

2.7.1.
2.8.

Processo de medio do software ........................................................................... 9

2.8.1.
2.9.
3.

4.

5.

Os quatro papis da medio ........................................................................... 9

O limite de medir ................................................................................................... 10

METODOLOGIAS......................................................................................................... 11
3.1.

Goal Question Metrics ........................................................................................... 11

3.2.

Metodologia cascata.............................................................................................. 11

MTRICAS PARA ORGANIZAES PEQUENAS ...................................................... 13


4.1.

Estimativas ............................................................................................................ 13

4.2.

Etiquetas de mtricas ............................................................................................ 13

4.3.

Principais barreiras para utilizaes das mtricas.................................................. 14

4.4.

Vantagens das mtricas de software ..................................................................... 14

4.5.

Desvantagem das mtricas de software ................................................................ 15

TESTE DE SOFTWARE ............................................................................................... 16


5.1.

6.

Medidas tcnicas.............................................................................................. 9

Objetivos da atividade de teste .............................................................................. 16

FERRAMENTAS........................................................................................................... 17
6.1.

Critrio de escolha da linguagem de programao ................................................ 17


vii

7.

6.2.

O software escolhido ............................................................................................. 18

6.3.

Ferramenta AppPerfect ......................................................................................... 19

6.4.

Ferramenta Eclipse Metrics Plugin ........................................................................ 24

6.5.

Ferramenta FindBugs ............................................................................................ 28

COMPARAO DOS RESULTADOS .......................................................................... 34


7.1.

Tabela de resultados ............................................................................................. 34

7.2.

Quadro comparativo .............................................................................................. 35

7.3.

Avaliao geral ...................................................................................................... 35

7.4.

Concluso das ferramentas e das mtricas ........................................................... 36

8.

CONCLUSES............................................................................................................. 37

9.

REFERNCIAS BIBLIOGRFICAS.............................................................................. 38

viii

LISTA DE FIGURAS
Figura 01: Processo de medio de produto................................................................ 09
Figura 02: Modelo Cascata........................................................................................... 12
Figura 03: ndice de linguagem de programao ........................................................ 18
Figura 04: Incluso do software na plataforma Eclipse................................................ 19
Figura 05: Execuo 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 mtricas obtidas............................................................................ 21
Figura 09: Relatrio exportado pra PDF....................................................................... 22
Figura 10: Relatrio exportado para EXCEL................................................................ 22
Figura 11: Relatrio exportado para HTML.................................................................. 23
Figura 12: Relatrio exportado para XML..................................................................... 23
Figura 13: Resumo do projeto...................................................................................... 24
Figura 14: Execuo da ferramenta Metrics................................................................. 24
Figura 15: Algumas mtricas do Eclipse Metrics Plugin............................................... 25
Figura 16: Mtricas da classe Frame............................................................................ 26
Figura 17: Alerta de nmero de parmetros................................................................. 26
Figura 18: Erros e advertncias.................................................................................... 27
Figura 19: Pacote padro do software (default package)............................................. 27
Figura 20: Relatrio exportado para XML..................................................................... 28
Figura 21: Execuo da ferramenta FindBugs............................................................. 29
Figura 22: Teste de ponto flutuante.............................................................................. 29
Figura 23: Mtodo se manifesta................................................................................... 30
Figura 24: Alerta que mtodo pode falhar.................................................................... 31
Figura 25: Varivel com valor nulo............................................................................... 32
Figura 26: Chamar mtodo desliga mquina virtual Java............................................. 33
ix

LISTA DE TABELAS

Tabela 01: Ferramenta para as mtricas....................................................................... 17


Tabela 02: Resultados (nmeros quantitativos) das mtricas ...................................... 34
Tabela 03: Resultados descritivos das mtricas .......................................................... 35
Tabela 04: Avaliao das mtricas ............................................................................... 36

1 INTRODUO
Segundo Sommerville (Engenharia de Software - 2003), Engenharia de Software
uma disciplina da engenharia que se ocupa de todos os aspectos da produo de software.
Em geral os engenheiros de software adotam uma abordagem sistemtica e organizada em
seu trabalho, uma vez que essa , com freqncia, a maneira mais eficaz de produzir
software de alta qualidade. No entanto a engenharia tem a ver, em grande parte, com a
questo de selecionar o mtodo mais apropriado para um conjunto de circunstncias, e uma
abordagem mais criativa e informal para o desenvolvimento pode ser eficaz em algumas
circunstncias.
Atravs da Engenharia de Software pode-se buscar um dos fatores essenciais no
processo de desenvolvimento que a qualidade. Porm, para produzir um processo com
qualidade, princpio necessrio conhecer seu conceito, suas caractersticas e aplicar
seus mtodos e tcnicas para obter os resultados desejados.
Os pontos principais de qualidade so, verificar se o produto foi desenvolvido
corretamente, e validar se o produto ficou de acordo com a especificao de requisitos.
Algumas organizaes de desenvolvimento de software sabem da importncia de ter
um produto com qualidade, no apenas seu conceito, mas a colocao de todo processo em
prtica. Mas, infelizmente no so todas que pensam desta forma. Mesmo que algumas
tenham o objetivo de aplicar mtodos de qualidade, elas no possuem o conhecimento de
como medir essa qualidade.
Pressman (Engenharia de Software - 1995) afirma que a medio faz parte de uma
srie de medicaes que podem ajudar a curar a aflio de software, ela oferece
benefcios em nvel estratgico, em nvel de projeto e em nvel tcnico.
Este trabalho mostra a importncia de serem aplicados testes nos softwares
desenvolvidos, e para isso so necessrias mtricas de software. Assim necessrio um
estudo sobre as medidas do software, seus conceitos, ferramentas de mtricas e sua
utilizao no sentido de explorar suas funcionalidades.
A organizao deste trabalho a seguinte: no captulo 2 foram apresentadas as
mtricas de software, suas definies e tipos, alm do tratamento de algumas medidas. No
captulo 3 foram apresentadas algumas metodologias que podem ser utilizadas durante o
processo de software. Em seguida, no captulo 4, foram citadas mtricas para organizaes
de pequeno porte, uma empresa quando est em seu momento de crescimento, esta fase,
a hora certa de se aplicar a engenharia de software, assim, acompanhando todo o ciclo de
1

vida do projeto. No captulo 5, foi apresentado um breve comentrio sobre os testes de


software, prosseguindo, no captulo 6, foram mostradas as ferramentas utilizadas para
extrair as mtricas, inclusive o software escolhido para a realizao dos testes. No captulo
7, foi feita uma comparao com os resultados das mtricas, analisando as diferenas entre
as trs ferramentas utilizadas. E para finalizar, no captulo 8, foi feita a concluso de todo
este trabalho, ou seja, a comparao dos resultados das mtricas.

2 AS MTRICAS DE SOFTWARE
2.1 Definies de mtricas de software
Uma mtrica de software qualquer tipo de medio que se refira a um sistema de
software, processo ou documentao relacionada, diz Sommerville (Engenharia de Software
- 2003). Coletadas essas medies, as questes em relao ao software podero ser
respondidas e confirmaes podero ser feitas, de que as melhorias do software
alcanaram, ou no, a meta desejada.
A mtrica de software tem como princpio especificar as funes de coleta de dados
de avaliao e desempenho, atribuindo essas responsabilidades a toda a equipe envolvida
no projeto e analisar os histricos dos projetos anteriores.
Quando se fala de mtricas deve-se ter em mente que se trata de dados, nmeros
quantitativos que iro mostrar em forma de indicadores o estado atual de um determinado
projeto. A medio, sendo to importante assim, deveria ser aplicada em todas as fases do
ciclo de vida do projeto, e no somente na fase de desenvolvimento, o que mais comum.
Isso far com que a prpria equipe do projeto fique mais confiante diante dos resultados
obtidos e melhore cada vez mais o processo pelo qual o projeto desenvolvido, evoluindo
sempre para a qualidade do processo e do produto.
A medio tem seu papel muito importante dentro da engenharia de software,
especialmente na gerncia de projetos de software, seja qual for metodologia a ser
utilizada. Ela analisada por gerentes de projetos de software e coletada pelos engenheiros
de software. Ento sem as mtricas dispe-se apenas de dados subjetivos os quais no
sero de grande importncia, pois como foi visto anteriormente, as mtricas so expressas
de forma quantitativa, ou seja, em nmeros. As mtricas so feitas ento em trs fases:
coleta de dados, clculo dos dados e anlise dos dados. importante saber escolher a
metodologia que melhor se encaixa no projeto, trazendo resultados mais precisos, sejam
eles bons ou ruins.
Tendo ento realizada a medio, podero ser feitas estimativas de custos e prazos
de trmino do projeto ou entrega do produto final. O mais importante a ser ressaltado que
a aplicao das mtricas 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 um conjunto de dados que apresenta a idia do
processo e um entendimento do projeto. Permite aos gerentes de projetos de software

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


produto que est sendo produzido.

2.2 Definies complementares


Esta seo inclui outras definies importantes para o entendimento das mtricas de
software, que so:
Medida: Fornece uma indicao quantitativa da extenso, quantidade, dimenso,
capacidade ou tamanho de algum atributo de um produto ou processo.
Segundo Vasconcelos (Mtricas de Software - 2005), medida uma funo de
mapeamento.
Medio: Ato de determinao de uma medida.
Mtrica: Medida quantitativa do grau em que um sistema se encontra em relao a
um determinado atributo.
Indicadores: Mtrica ou combinao de mtricas que fornece uma compreenso de
um processo/projeto/produto.

2.3 Categorizao das mtricas


As mtricas podem ser categorizadas de maneiras diferentes, tais como mtricas
diretas e indiretas, ou mtricas orientadas a tamanho, ou funes, entre outras que sero
citadas neste captulo.

2.3.1 Mtricas diretas e indiretas


As mtricas podem ser categorizadas de maneiras diferentes, tais como mtricas
diretas e indiretas; ou mtricas orientadas a tamanho ou funes.
As mtricas diretas so aquelas onde os atributos so observados (por exemplo:
custo, esforo, quantidade de linhas de cdigo produzidas, total de defeitos registrados).
As mtricas indiretas so aquelas obtidas a partir de outras mtricas (por exemplo:
eficincia, confiabilidade, qualidade, funcionalidade).
O custo e o esforo exigidos para se construir o software, o nmero de linhas de
cdigo produzido e outras medidas diretas so relativamente fceis de serem reunidas,
4

desde que convenes especficas para medio sejam estabelecidas antecipadamente.


Porm, a qualidade e a funcionalidade do software, ou seja, eficincia e capacidade de
manuteno, so mais difceis de serem avaliadas e somente podem ser medidas
indiretamente.

2.3.2 Mtricas orientadas a tamanho e funo


As mtricas orientadas a tamanho, consideram o tamanho do software produzido
(linhas de cdigo), referem-se a todas as atividades da engenharia (anlise, projeto, cdigo,
teste), tais como:
Produtividade:

KLOC/pessoa-ms

Qualidade:

defeitos/KLOC

Custo:

$/LOC

Documentao:

pginas de documentao/KLOC

As mtricas orientadas a funo, em vez de contar as linhas de cdigo, a mtrica


orientada funo concentra-se na funcionalidade do software (o que entregue). Essa
mtrica consiste em um mtodo para medio de software do ponto de vista do usurio, 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 funo. A anlise de pontos por funo focaliza a
perspectiva de como os usurios enxergam os resultados que um sistema produz. Ela se
baseia parcialmente em dados subjetivos, implicando a organizao estabelecer um plano
de implantao da sistemtica da medio, definindo padres para contagem. Isto
fundamental para que os resultados das medies possam ser comparados entre os
projetos, gerando uma linha de referncia (baseline) das informaes histricas coletadas e
armazenadas.
FP (Function Points)
FP = contagem total * [0.65 + 0.01 * (Fi)]
Fi = valores de ajuste de complexidade ( i= 1,...14)
Produtividade:

FP/pessoa-ms

Qualidade:

defeitos/FP

Custo:

$ /FP

Documentao:

pginas de documentao/FP
5

2.3.3 Mtricas de produto e produtividade


As mtricas de produto se ocupam com as caractersticas do prprio software, elas
se dividem em duas classes, diz (CLARO Mtricas de Software):

Mtricas

estticas,

que

so

coletadas

por

medies

feitas

das

representaes do sistema, como projeto, programa ou documentao.

Mtricas dinmicas, que so coletadas por medies feitas de um programa


em execuo.

Mtricas de produtividade, concentram-se na sada do processo de


engenharia de software (por exemplo: nmero de casos de uso, iterao).

2.3.4 Mtricas de qualidade e mtricas tcnicas


As mtricas de qualidade, oferecem uma indicao de quanto o software se adequa
s exigncias implcitas e explcitas do cliente (por exemplo: erros, fase).
Segundo Pressman (Engenharia de Software 1995) existem muitas medidas de
qualidade de software, elas incluem:

Corretitude: um programa deve operar corretamente, caso contrrio,


oferecer pouco valor aos seus usurios. Corretitude o grau em que o
software executa a funo que dele exigida.

Manutenibilidade: manuteno de software responsvel por mais esforo


do que qualquer outra atividade de engenharia de software. Manutenibilidade
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 incluses e alteraes nos requisitos funcionais. No existe
nenhuma forma de se medir a manutenibilidade diretamente, deve-se usar
medidas indiretas.

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


importante na era dos hackers e dos vrus. Esse atributo mede a capacidade
que um sistema tem de se suportar ataques sua integridade, ataques
podem ser feitos a todos os trs componentes do software: programas, dados
e documentos.

Usabilidade: se um programa no for user friendly (amigvel ao usurio)


estar destinado ao fracasso, mesmo que as funes que eles executem
sejam valiosas.

E as mtricas tcnicas, concentram-se nas caractersticas do software e no no


processo por meio do qual o software foi desenvolvido, por exemplo complexidade lgica,
manutenibilidade.

2.3.5 Mtricas privadas e pblicas


As mtricas privadas se referem ao escopo da equipe do projeto de software (por
exemplo: defeitos para funes importantes do software, erros encontrados durante revises
tcnicas formais).
As mtricas pblicas geralmente assimilam informaes que anteriormente eram
privadas de uma equipe (por exemplo: propores de defeitos de projeto, esforo, tempo
transcorrido e dados relacionados), so coletados e avaliados tentando descobrir
indicadores.

2.4 Utilizao das mtricas


Para um bom desempenho das mtricas de software, preciso antes de utiliz-las,
planejar, organizar e identificar os pontos principais, diz Sommerville (Engenharia de
Software 2003)
Inicialmente, definir um padro para as mtricas:

Escolha de medies a serem feitas

Seleo de componentes a serem avaliados

Medio de caractersticas dos componentes

Adquirir as ferramentas necessrias

Identificar medies anmalas

2.5 Justificativa do uso das mtricas


Com a utilizao das mtricas possvel conseguir melhorias e resultados mais
satisfatrios do software, mais segurana para os gerentes de projeto. uma maneira de
eliminar os obstculos, corrigir erros e falhas, antes mesmo do produto ser entregue ao
cliente. Alguns itens a serem analisados:

Entender e aperfeioar o processo de desenvolvimento

Melhorar a gerncia de projetos e o relacionamento com clientes

Avaliar produtividade do processo

Reduzir frustraes e presses de cronograma

Embasar solicitaes de novas ferramentas e treinamentos

Formar uma linha bsica para estimativas


7

No nvel tcnico, as medies so importantes para determinar parmetros


como quantidade de teste necessrio e impacto de mudanas.

2.6 Coleta, computao e avaliao das mtricas


Idealmente, os dados necessrios para se estabelecer uma linha bsica foram
compilados continuamente. Infelizmente, isso raramente acontece. Por conseguinte, a coleta
de dados requer uma investigao histrica dos projetos passados para se reconstruir os
dados exigidos. Logo que os dados foram coletados, a computao das mtricas possvel.
A avaliao dos dados concentra-se nas razes subjacentes para os resultados obtidos.

2.7 Medio do software


Se no medir, no haver nenhuma maneira real de determinar se est ou no
melhorando. Pressman (1995) afirma, a medio faz parte de uma srie de medicaes
que podem ajudar a curar a aflio de software, ela oferece benefcios em nvel estratgico,
em nvel de projeto e em nvel tcnico.
As medies e as mtricas ajudam a entender o processo tcnico usado para
desenvolver um produto. O processo medido num esforo para melhor-lo, assim como o
produto medido num esforo para aumentar sua qualidade. Tambm so necessrias para
analisar a qualidade e a produtividade do processo de desenvolvimento; bem como a
manuteno do produto de software construdo.
Medir ajuda a obter o auto-conhecimento para saber se o que se tem o suficiente,
quem a empresa envolvida, e em qual ponto se encontra o projeto. Tambm ajuda a
entender a presso imediata, saber o que dever ser feito, e qual o caminho a seguir.
Tambm, entender porque a medio importante para avaliao e garantia de qualidade
de software, conhecer algumas mtricas e suas aplicaes, entender o que um plano de
mtricas e como escrever um.
Gomes A (Metricas e Estimativas de Software - 2008) afirma, medir e estimar a
parte mais importante de um projeto de sistema bem-sucedido.
Assim, preparar-se para o futuro, sabendo da atual situao, qual o prximo passo e
se caso precisar mudar a direo, ter a confiana que no haver impactos, causando
problemas futuros.
Pode-se utilizar a aplicao de medio em:

Processo de software, com o objetivo de melhor-lo de forma contnua, viso


estratgica de organizao.

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


avaliao de produtividade e no controle de projeto.
8

2.7.1 Medidas tcnicas


Medidas tcnicas so necessrias para qualificar a performance tcnica dos
produtos do ponto de vista do desenvolvedor, diz (CORDEIRO Mtricas de Software). Por
outro lado, medidas funcionais so necessrias para qualificar a performance dos produtos
pela perspectiva do usurio. Medidas funcionais devem ser independentes das decises do
desenvolvimento tcnico e implementao. Tais medidas podem ser utilizadas para
comparar a produtividade de diferentes tcnicas e tecnologias.

2.8 Processo de medio do software


Sommerville (2003) afirma que, um processo de medio de software, pode ser parte
de um processo de controle de qualidade, cada componente do sistema analisado, e os
diferentes valores da mtrica devem ser comparados entre si. Medies anmalas devem
ser utilizadas para enfocar o esforo de garantia de qualidade nos componentes que
possam apresentar problemas de qualidade. Como pode ser observado na Figura 01.

Figura 01 Processo de medio de produto (Fonte: Sommerville, 2003)

2.8.1 Os quatro papis da medio


Os papis da medio podem ser considerados como quatro: caracterizar, avaliar,
prever e aperfeioar.
1. Caracterizar

Caracterizar para ter entendimento do processo, produtos e recursos

Estabelecer marcos bsicos

Prever ou aperfeioar
9

2. Avaliar

Avaliar para determinar o status com referncia aos planos

Sensores para avaliar quanto os projetos e processos esto fora de


controle

Verificar o modo para trazer os projetos de volta ao controle

Verificar o cumprimento de metas de qualidade

Verificar os impactos de melhoramentos de tecnologias

3. Prever

Para poder planejar

Observao de todo o processo e do produto como forma de utilizar


valores observados para prever outros

Ajudam a extrapolar tendncias, onde as estimativas de custos, prazos e


qualidade podem ser atualizadas.

4. Aperfeioar

Coletar informaes quantitativas para ajudar a identificar bloqueios,


causas fundamentais, ineficincias.

Melhorar a qualidade do produto e o desempenho do sucesso

Avaliamos para determinar o status com referncia aos planos

Sensores para avaliar quanto os projetos e processos esto fora de


controle

Verificar o modo para trazer os projetos de volta ao controle

Verificar o cumprimento de metas de qualidade

Verificar os impactos de melhoramentos de tecnologias

2.9 O limite de medir


Medir importante, porm, esta medida limitada. Gerentes de projetos, devem
saber o momento exato de encerrar as medies, para que o software no seja prejudicado,
e as outras fases do projeto tambm.
Medir at o momento de se alinhar os objetivos do projeto (necessidades), com os
objetivos da empresa, estabelecer um programa de mtricas adequado, fundamentado e
gradual e no medir mais do que necessrio. No possvel medir, se no conseguir:

controlar;

gerenciar;

melhorar; e

trabalhar.
10

3 METODOLOGIAS
Metodologia, na engenharia de software, pode ser considerada como um conjunto
estruturado de prticas, que pode ser seguido e repetido durante todo o processo de
produo de software.
Seguem duas metodologias que podem ser utilizadas: GQM e Cascata.

3.1 GQM (Goal Question Metrics)


Vasconcelos (2005) explica que esta metodologia usada para definir o conjunto de
mtrica a ser coletado, proposto por Basili e Rombachs (IEEE - 1988). E baseada no fato
de que deve existir uma necessidade clara e objetiva associada a cada mtrica.
O significado de GQM (Goal Question Metrics) :

GOAL: Quais so as metas/objetivos?

QUESTION: Quais questes se deseja responder?

METRICS: Quais mtricas podero ajudar?

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


software ser liberado para uso. Suas fases so:
I.

Planejamento

II.

Definio

III.

Coleta de dados

IV.

Interpretao

3.2 Metodologia Cascata


Segundo Gomes B (Metodologias de Desenvolvimento de Software - 2008), no
modelo em cascata o projeto segue uma srie de passos ordenados. Ao final de cada fase,
a equipe do projeto finaliza uma reviso, o desenvolvimento no continua at que o cliente
esteja satisfeito com os resultados. Pode ser observado o modelo cascata na Figura 02.

11

Planejamento inicial e Documentao

concepo

requisitos

modelagem

codificao

testes

Figura 02 Modelo Cascata (Fonte: Sommerville, 2003)


Se for necessrio efetuar alguma modificao, voltar os passos de desenvolvimento
do projeto complicado. A metodologia em cascata extremamente formal, pode-se afirmar
que baseada em documentos e com certeza possui uma enorme quantidade de
entregveis e sadas que nada mais so do que documentos. Outras caractersticas deste
modelo o alto valor dado ao planejamento. O forte planejamento inicial reduz a
necessidade de planejamento contnuo conforme o andamento do projeto.

12

4 MTRICAS PARA ORGANIZAES PEQUENAS


Pequenas organizaes so empresas que possuem uma quantidade pequena de
funcionrios, consideradas de pequeno porte. Assim, a estratgia iniciar um processo de
melhoria na fase de crescimento da empresa, com poucos desenvolvedores, com projetos
pequenos, o gerenciamento ainda controlvel e o tempo ainda no um problema.
As mtricas citadas abaixo podem ser consideradas para pequenas organizaes,
iniciantes em projetos de software, adquirindo desde o comeo, a disciplina da engenharia
de software.

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


feito at que a avaliao seja completada

Esforo (pessoas/horas) para realizar a avaliao

Esforo necessrio para fazer a modificao (pessoas/hora)

Tempo necessrio

Erros descobertos durante o trabalho

Defeitos descobertos

4.1 Estimativas
Uma das atividades fundamentais do processo de gerenciamento de projetos de
software o planejamento do esforo humano exigido, durao cronolgica do projeto e
custo deve ser derivadas. Uma srie de tcnicas de estimativas foram disponibilizadas para
o desenvolvimento de software, segundo Pressman (Engenharia de Software 1995):

O escopo do projeto deve ser estabelecido antecipadamente

Mtricas de software so utilizadas e o histrico de aferies passadas


usado como uma base a partir da qual estimativas so feitas

O projeto dividido em pequenas partes que so estimadas


individualmente

4.2 tica das mtricas


As mtricas devem sempre fornecer benefcios para a organizao com o intuito de
aperfeioar o seu nvel de maturidade, seguem algumas etiquetas:
Bom senso e sensibilidade empresarial quando interpretar dados de mtricas

Fornecer realimentao aos indivduos que coletam medidas e mtricas

No usar mtricas para avaliar indivduos

13

Trabalhar com profissionais e indivduos para estabelecerem metas claras


e mtricas que devem ser usadas para alcan-las

Nunca usar mtricas para ameaar indivduos

Dados de mtricas que indicam uma rea problemtica no devem ser


considerados negativos

4.3 Principais barreiras para utilizaes das mtricas


As organizaes de software, muitas delas, tem o planejamento das mtricas, porm,
devido alguns fatores, no possvel desenvolver o processo de medio. Abaixo seguem
alguns desses fatores:

Falta de comprometimento da alta gerncia

Medir custo caro

Os maiores benefcios vm a longo prazo

M utilizao das mtricas

Grande mudana cultural necessria

Dificuldade de estabelecer medies apropriadas e teis

Interpretaes de dados realizadas de forma incorreta

Obter o comprometimento de todos os envolvidos e impactados

Estabelecer um programa de medies fcil, o difcil manter

4.4 Vantagens das mtricas de software


O uso das mtricas de software permite obter uma srie de vantagens:
Diminuir:

Defeitos

Prazo de entrega

Desperdcio

Custo

Aumentar:

Satisfao do cliente

Produtividade dos recursos

Visibilidade das aes

Qualidade de gerenciamento

14

4.5 Desvantagem das mtricas de software


Uma desvantagem que a mtrica de software no oferece cem por cento de
confiana em seus resultados. A mtrica serve de base para o conhecimento no campo da
medio na gesto de projetos, com ajuda de projetos que j foram concludos no passado.

15

5 TESTE DE SOFTWARE
Segundo Pressman (Engenharia de Software 1995), a atividade de teste de
software um elemento crtico da garantia de qualidade de software e representa a ltima
reviso de especificao, projeto e codificao.
Realizados de forma cuidadosa e criteriosa, o teste assume uma importncia cada
vez maior dado o impacto sobre o funcionamento e o custo, est sendo portanto um fator de
muita importncia nas empresas de software.

5.1 Objetivos da atividade de teste


Os objetivos das atividades de teste so:

A atividade de teste o processo de executar um programa com a


inteno de descobrir um erro

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


revelar um erro ainda no descoberto

Um teste bem sucedido aquele que revela um erro ainda no


descoberto

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

A falta de maturidade

O desinteresse das empresas de desenvolvimento de sistemas

A baixa popularidade deste assunto entre os profissionais da rea de


informtica

16

6 FERRAMENTAS
A maioria das aplicaes hoje concebida e desenvolvida para uso simultneo por
um grande nmero de usurios. s vezes, existem problemas subjacentes no cdigo, que
podem causar erros, assim, torna-se particularmente crtico para o dono da obra garantir
que a aplicao est disponvel e confivel.
Atravs das mtricas, surge a coleta de dados, observando se existem mtricas
adequadas, se as comparaes foram produtivas e se alguns dos resultados contriburam
para a melhoria do software. Durante os estudos realizados, foi pesquisado e encontrada
muitas ferramentas de mtricas, de diversos tipos, de varias linguagens.
Na Tabela 01 so relacionadas algumas ferramentas pesquisadas.
Tabela 01 Ferramentas para mtricas
LINGUAGEM

FERRAMENTAS

CQual

Splint

Frama-C

CCured

C/C++

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).

6.1 Critrio de escolha da linguagem de programao


Antes de se ser definida a escolha do software e as selees das ferramentas, foi
feita uma pesquisa sobre a utilizao (popularidade) das linguagens de programao. Como
mostra a Figura 03, a linguagem Java, est na primeira posio.

17

Figura 03 - ndice de linguagem de programao (Fonte: http://www.tiobe.com)

6.2 O software escolhido


O software utilizado para a realizao das mtricas foi o AS - Autmata Simulador,
um programa desenvolvido em Java (Jandl, 1999), que simula um rob em um ambiente
fechado de quatro paredes, cuja funo percorrer o espao sem encostar nas paredes.
A figura 04, mostra a incluso deste software na plataforma Eclipse, para os devidos
testes.

18

Figura 04 - Incluso do software na plataforma Eclipse

6.3 Ferramenta AppPerfect


O AppPerfect Java Profiler uma ferramenta open source, para programas em Java.
Projetada para ajudar a encontrar erros, bem como recursos vitais do sistema em que voc
est executando o aplicativo. Ele elimina a necessidade de passar longas horas a
atravessar o cdigo, alertando os problemas de sua aplicao.
Objetivos:

Encontrar e traar erros.

Caractersticas:

Aponta os problemas associados sua aplicao;

Fornece informaes estatsticas completas e precisas.

19

Figura 05 - Execuo da ferramenta AppPerfect


A Figura 06 mostra que a ferramenta apresenta o nome do autor do software e, aps
verificao, mostra que 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 j verificada.

20

Figura 07 - Ferramenta analisa o software


Os resultados so observados na Figura 08.

Figura 08 Algumas mtricas obtidas


Esta ferramenta apresenta nmero total de linhas de cdigo, por completo:

Linhas do cdigo;

Linhas em branco; e

Linhas comentadas.
21

Essa ferramenta tem a funo de gerar um relatrio dos resultados das mtricas e
permite exportar seus resultados nos formatos: PDF (Figura09), Excel (Figura 10), HTML
(Figura 11) e XML (Figura 12).

Figura 09 - Relatrio exportado para PDF

Figura 10 - Relatrio exportado para EXCEL

22

Figura 11 - Relatrio exportado para HTML

Figura 12 Relatrio exportado para XML


A ferramenta tambm fornece um grfico com um resumo do projeto avaliado
(Figura 13), trazendo os resultados:

em azul: rigor-mdio

em vermelho: rigor-baixo

em verde: rigor-alto

em amarelo: rigor-crtico
23

Figura 13 - Resumo do projeto

6.4 Ferramenta Eclipse Metrics Plugin


O Eclipse Metrics Plugin uma ferramenta open source que apresenta mtricas para
programas em Java e funciona como um plugin para a plataforma Eclipse (IDE Java), como
ilustrado na Figura 14. Seu objetivo fornecer mtricas e clculo. Sua principal
caractersticas medir mtricas com mdia e desvio padro.

Figura 14 - Execuo da ferramenta Metrics


24

Alguns resultados obtidos com esta ferramenta, ilustrados na Figura 15, so:

Total de linhas de cdigo;

Nmero de classes;

Nmero de atributos;

Nmero de pacotes; e

Nmero de mtodos.

Figura 15 Algumas mtricas do Eclipse Metrics Plugin


Em geral, a ferramenta apresenta mtricas do projeto como um todo, porm, caso o
usurio necessite somente das mtricas das classes, tem-se essa opo (Figura 16).

25

Figura 16 - Mtricas da classe Frame


A Figura 17 apresenta um alerta da quantidade de parmetros do trecho de cdigo,
pode ser observado que a ferramenta traz a mensagem em vermelho, para se destacar
entre as outras, j que est apontando um alerta.

Figura 17 - Alerta de nmeros de parmetros


26

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

Figura 18 Erros e advertncias


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

Figura 19 - Pacote padro do software (default package)


A Figura 20 ilustra um relatrio exportado em formato XML.

27

Figura 20 Relatrio exportado para XML

6.5 Ferramenta FindBugs


FindBugs tambm uma ferramenta open source, utilizada juntamente com a
plataforma Eclipse.
Objetivos:

Encontrar erros em programa Java.

Caractersticas:

Baseia-se em bugs padres (um padro uma maneira de dizer que o


cdigo muitas vezes um erro).

Utiliza anlise esttica para analisar bytecodes (arquivo binrio Java).

Gera uma listagem, trazendo um resumo dos nmeros de bugs


encontrados.

Exibe as advertncias e as fontes relevantes

28

Figura 21 - Execuo da Ferramenta FindBugs

Figura 22 Teste de ponto flutuante

29

Teste de ponto flutuante, em igualdade (float)


Esta operao compara dois valores de ponto flutuante para a igualdade, melhor
dizendo clculos de ponto flutuante, pois pode envolver o arredondamento, calculado float e
duplos valores podem no ser exatos. Para os valores que devem ser precisos, tais como
valores monetrios, considere o uso de um determinado tipo de preciso tais como
bigdecimal.
Detalhes Bug
Na classe robot.Map
No mtodo robot.Mapa, parede (int, int, int, int)
Em Map.java [linha 781]
Uma outra ocorrncia no Map.java

Figura 23 Mtodo se manifesta


Interruptor - declarao encontrada em um caso em que se registra at o prximo
caso
Este mtodo contm uma declarao onde um interruptor se manifesta, caso ramo
caia at o prximo caso. Normalmente para eliminar este caso, ele executa um break ou um
return.

30

Detalhes Bug
Na classe ASDialog
No novo mtodo ASDialog (Frame, string, int)
Em ASDialog.java [linhas 70-72]

Figura 24 Alerta que o mtodo pode falhar


Mtodo pode falhar
Este mtodo pode falhar para limpar o banco de dados , ou outros recursos que
exigem uma limpeza explcita. Em geral se o mtodo abre um outro recurso, ele dever usar
um tente um ltimo bloco, para garantir que o fluxo ou recurso seja limpo antes que o
mtodo retorne.
Detalhes Bug
Na classe robot.Map
No mtodo robot.Map.load (String)
Referncia tipo java.io.Reader
1 caso de obrigao remanescente
Obrigao de limpar recurso criado pelo mapa [linha 272] no descarregada
Caminho continua no mapa [linha 274]
Caminho continua no mapa [linha 276
31

Figura 25 Varivel com valor nulo


Carga de valor nulo em conhecer varivel IEngine
A varivel referenciada nesta altura , conhecida como um valor nulo, devido a uma
verificao antecipada de encontrar valores nulos. Embora isso seja vlido, pode ser um
erro.
Detalhes Bug
Na classe IEngine
No mtodo IEngine.interpretStatement
Em IEngine.java [linha 356]

32

Figura 26 Chamar mtodo desliga mquina virtual Java


Isso somente deve ser feito se for apropriado, tais chamadas torna difcil ou
impossvel para este cdigo de ser chamado por outro. O aplicativo recomenda lanar a
exceo RuntimeException ao invs do uso de System.exit ().
Detalhes Bug
Na classe ASFrama
No mtodo ASFrame.quit()
Em AS Frame.java [linha 211]

33

7 COMPARAO DOS RESULTADOS


7.1 Tabela de resultados
A Tabela 02 sumariza os resultados obtidos pelas ferramentas AppPerfect, Metrics e
FindBugs.
Tabela 02 Resultados quantitativos das mtricas
AppPerfect

Quesito / Mtrica

Metrics

FindBugs

1. Nmero de linhas de cdigo

6.507

3.433

N/D

2. Nmero de atributos

137

175

N/D

3. Nmero de mtodos

244

237

N/D

4. Numero de classes

56

56

N/D

5. Nmero de pacotes

N/D

N/D

6. Nmero de interfaces

N/D

N/D

7. Teste ponto flutuante

N/D

N/D

8. Alerta: mtodo pode falhar

N/D

N/D

9. Alerta: varivel com valor


nulo

N/D

N/D

No apresenta
valores, apenas
aponta as
advertncias e lista os
bugs
No apresenta
valores, apenas
aponta as
advertncias e lista os
bugs.
No apresenta
valores, apenas
aponta as
advertncias e lista os
bugs.

Como pode ser observado na Tabela 02:


Resultados diferentes:
Quesito 1
Possui o mesmo tipo de mtrica, mas com resultados diferentes
Quesito 2
Possui o mesmo tipo de mtrica, mas com resultados diferentes
Quesito 3
Possui o mesmo tipo de mtricas, mas com resultados diferentes
Quesito 5
Ferramenta AppPerfect e FindBugs no possui a mtrica da ferramenta Metrics
Quesito 6
Ferramenta AppPerfect e FindBugs no possui a mtrica da ferramenta da
ferramenta Metrics
34

Quesito 7
Ferramenta AppPerfect e Metrics no possui a mtrica da ferramenta da ferramenta
FindBugs
Quesito 8
Ferramenta AppPerfect e Metrics no possui a mtrica da ferramenta da ferramenta
FindBugs
Quesito 9
Ferramenta AppPerfect e Metrics no possui a mtrica da ferramenta da ferramenta
FindBugs
Resultados iguais:
Quesito 4
Mtricas iguais com valores iguais

7.2 Quadro comparativo


A Tabela 03 faz uma comparao dos resultados das mtricas
Tabela 03 Resultados descritivos das mtricas
FERRAMENTA RESULTADO
AppPerfect

Traz algumas mtricas que a ferramenta


Metrics tambm possui.

Metrics

Traz algumas mtricas que a ferramenta


AppPerfect no possui.

FindBugs

Traz mtricas diferentes das ferramentas


AppPerfect e Metrics.

7.3 Avaliao geral


Na Tabela 04 podem ser observadas uma breve avaliao de cada uma das
ferramentas

35

Tabela 04 Avaliao das mtricas

AppPerfect
INSTALAO

OK

OPEN-SOURCE

SIM

USO

FCIL UTILIZAO

COERNCIA DOS
RESULTADOS

OK

UTILIDADE DOS RESULTADOS

POSITIVO PARA O SOFTWARE

Metrics
INSTALAO

OK

OPEN-SOURCE

SIM

USO

FCIL UTILIZAO

COERNCIA DOS
RESULTADOS

OK

UTILIDADE DOS RESULTADOS

POSITIVO PARA O SOFTWARE

FindBugs
INSTALAO

OK

OPEN-SOURCE

SIM

USO

FCIL UTILIZAO

COERNCIA DOS
RESULTADOS

NO TRAZ MTRICAS EM VALORES

UTILIDADE DOS RESULTADOS

POSITIVO PARA O SOFTWARE

7.4 Concluso das ferramentas e das mtricas


Com as ferramentas utilizadas, todas de open-source e fcil utilizao, concluiu-se
que, elas so distintas, com mtricas diferentes uma das outras, trazendo vrios resultados
da medio do software.

36

8 CONCLUSES
Colocando todo o estudo em prtica, pode-se perceber que existem muitas
ferramentas e diversos tipos de mtricas, facilitando as organizaes, de iniciarem um
processo de medio do software.
Aps o uso de cada uma delas, pode ser feita a comparao entre ambas, a
diferena que existe uma da outra, as qualidades, os tipos de mtricas, facilidade de uso e,
por conseguinte, analisar os resultados. Com os resultados, foi possvel tambm uma
comparao onde pode ser observado que as mtricas trouxeram valores diferentes,
diferenciando-se uma das outras.
Foi possvel mostrar a importncia de se medir um software, encontrar bugs atravs
das ferramentas, apontar falhas e exibir as advertncias. Com todas essas funes, pode-se
dizer que um software depois de ter sido verificado por elas est pronto para as correes, e
em seguida, quando estiver realmente corrigido e testado novamente, est apto para a
entrega.
Os resultados esperados foram positivos, pois foi realmente mostrado o que so as
mtricas de software, porque utiliz-las, mostrou-se como medir um software, foi mostrado
como as mtricas so importantes, e como se inicia o processo de medio.
As ferramentas tambm contriburam para este trabalho, mostrando as qualidades e
funcionalidades existentes, cada mtrica contida na ferramenta, trouxe um ponto positivo
para o software, com elas foram possveis mostrar que um software pode ser verificado linha
por linha do cdigo, analisando cada trecho. Mas, por outro lado, tambm trouxe alguns
pontos negativos, as ferramentas trouxeram algumas falhas, erros e alertas, que na verdade
podem ser considerados bons, pois so com esses avisos de falhas e erros de software que
se tem um produto de qualidade, como foi citado nos primeiros captulos, as mtricas no
apresentam 100% de garantia nos resultados.
Sem a anlise das ferramentas, seria quase impossvel descobrir esses erros, esse
um dos fatores principais das ferramentas de mtricas, encontrar bugs, um outro fator
importante a busca das mtricas diretas, indiretas e mtricas orientadas tamanho, que
mostraram o software em relao ao seu contedo, fazendo a validao e garantindo a
qualidade.

37

9 REFERNCIAS BILIOGRFICAS
APPPERFECT.

Open

Source

Disponvel

Software.

em:

<http://sourceforge.net/search/?type_of_search=soft&words=appperfect>. Acesso em: 01 de out. de


2008.
CLARO, Daniela B. Mtricas de Software. Disponvel em:
<http://www.inf.ufsc.br/~danclaro/download/disciplinas/M%E9tricas%20de%20Software.doc>. Acesso
em: 20 de fev. de 2008.
CORDEIRO,

Marco

Aurlio.

Mtricas

de

Software.

Disponvel

em:

<http://www.pr.gov.br/batebyte/edicoes/2000/bb101/metricas.htm>. Acesso em 20 de fev. de 2008.


FINDBUGS. Open Source Software . Disponvel em:
<http://sourceforge.net/search/?type_of_search=soft&words=findbugs>. Acesso em: 01 de out. de
2008.
GOMES, Alvaro Eduardo. Mtricas e Estimativas de Software O incio de um rally de
regularidade. Disponvel em: <http://www.apinfo.com/artigo44.htm>. Acesso em: 20 de fev.
de 2008.
GOMES, Andrey. Metodologias de Desenvolvimento de Software, 2008 Disponvel em:
<http://www.andreygomes.com/index.php?option=com_content&view=article&id=1:metodologias-dedesenvolvimento-de-software&catid=1:metodologias&Itemid=2>. 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: V4.0. Atlanta, 1994. Acesso em: 22 de
ago. de 2008.
JANDL, Peter. Introduo ao Java, 1999.
METRICS

PLUGIN,

Eclipse.

Open

Source

Software.

Disponvel

em:

<http://sourceforge.net/search/?type_of_search=soft&words=eclipse+metrics+plugin>. Acesso em: 01


de out. de 2008.
PRESSMAN, Roger S. Engenharia de Software, So Paulo: Makron Books, 1995.
SOMMERVILLE, I. Engenharia de Software. 6 Ed. So Paulo: Addison Wesley, 2003.
TIOBE. Programao comunitria ndice de novembro de 2008. Linguagens populares.
Disponvel em: <http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html>. Acesso em: 11
de set. de 2008.
VASCONCELOS,

Alexandre.

Mtricas

de

Software,

2005.

Disponvel

em:

<http://www.cin.ufpe.br/~if720/slides/introducao-a-metricas-de-software.ppt>. Acesso em: 20 de fev. de


2008.

38

Você também pode gostar