Escolar Documentos
Profissional Documentos
Cultura Documentos
0502050
MTRICAS DE SOFTWARE
Jaguarina
2008
Karina Guarizzo
0502050
MTRICAS DE SOFTWARE
Jaguarina
2008
ii
iii
iv
AGRADECIMENTOS
RESUMO
vi
SUMRIO
Lista de Figuras........................................................................................................................ix
Lista de Tabelas........................................................................................................................x
1.
INTRODUO................................................................................................................ 1
2.
2.2.
Definies complementares..................................................................................... 4
2.3.
2.3.1.
2.3.2.
2.3.3.
2.3.4.
2.3.5.
2.4.
2.5.
2.6.
2.7.
Medio o software.................................................................................................. 8
2.7.1.
2.8.
2.8.1.
2.9.
3.
4.
5.
METODOLOGIAS......................................................................................................... 11
3.1.
3.2.
Metodologia cascata.............................................................................................. 11
Estimativas ............................................................................................................ 13
4.2.
4.3.
4.4.
4.5.
6.
Medidas tcnicas.............................................................................................. 9
FERRAMENTAS........................................................................................................... 17
6.1.
7.
6.2.
6.3.
6.4.
6.5.
7.2.
7.3.
7.4.
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
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
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
KLOC/pessoa-ms
Qualidade:
defeitos/KLOC
Custo:
$/LOC
Documentao:
pginas de documentao/KLOC
FP/pessoa-ms
Qualidade:
defeitos/FP
Custo:
$ /FP
Documentao:
pginas de documentao/FP
5
Mtricas
estticas,
que
so
coletadas
por
medies
feitas
das
Prever ou aperfeioar
9
2. Avaliar
3. Prever
4. Aperfeioar
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.
Planejamento
II.
Definio
III.
Coleta de dados
IV.
Interpretao
11
concepo
requisitos
modelagem
codificao
testes
12
Tempo necessrio
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):
13
Defeitos
Prazo de entrega
Desperdcio
Custo
Aumentar:
Satisfao do cliente
Qualidade de gerenciamento
14
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.
Alguns fatos das principais causas para o insucesso e o alto custo dos sistemas de
informao:
A falta de maturidade
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
17
18
Caractersticas:
19
20
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).
22
em azul: rigor-mdio
em vermelho: rigor-baixo
em verde: rigor-alto
em amarelo: rigor-crtico
23
Alguns resultados obtidos com esta ferramenta, ilustrados na Figura 15, so:
Nmero de classes;
Nmero de atributos;
Nmero de pacotes; e
Nmero de mtodos.
25
27
Caractersticas:
28
29
30
Detalhes Bug
Na classe ASDialog
No novo mtodo ASDialog (Frame, string, int)
Em ASDialog.java [linhas 70-72]
32
33
Quesito / Mtrica
Metrics
FindBugs
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
N/D
N/D
N/D
N/D
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.
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
Metrics
FindBugs
35
AppPerfect
INSTALAO
OK
OPEN-SOURCE
SIM
USO
FCIL UTILIZAO
COERNCIA DOS
RESULTADOS
OK
Metrics
INSTALAO
OK
OPEN-SOURCE
SIM
USO
FCIL UTILIZAO
COERNCIA DOS
RESULTADOS
OK
FindBugs
INSTALAO
OK
OPEN-SOURCE
SIM
USO
FCIL UTILIZAO
COERNCIA DOS
RESULTADOS
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:
Marco
Aurlio.
Mtricas
de
Software.
Disponvel
em:
PLUGIN,
Eclipse.
Open
Source
Software.
Disponvel
em:
Alexandre.
Mtricas
de
Software,
2005.
Disponvel
em:
38