+ All Categories
Home > Technology > Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic...

Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic...

Date post: 02-Jul-2015
Category:
Upload: thiago-colares
View: 1,574 times
Download: 0 times
Share this document with a friend
Description:
Thiago Colares e Vagner Amaral
84
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes. Mestrado em Ciência da Computação - UFBA/UEFS Thiago Colares Vagner Amaral Salvador, 28/03/2013
Transcript
Page 1: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Aplicação da Teoria dos Grafose Algoritmos na Engenharia de Software:

Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Mestrado em Ciência da Computação - UFBA/UEFS

Thiago ColaresVagner Amaral

Salvador, 28/03/2013

Page 2: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Agenda

• Problema da busca textual

• Hyperlink-Induced Topic Search (HITS)

• Por que identificar God Classes?

• HITS para identificação de God Classes

• Conclusão / Trabalhos Futuros

Page 3: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Quero comprarum carro.

http://www.flickr.com/photos/buzrael/4981570801/sizes/l/in/photostream/

Page 4: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Pergunta para amigos.“melhores fabricantes de carro?”

Page 5: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Quero compraruma bicicleta.

http://www.flickr.com/photos/buzrael/4981570801/sizes/l/in/photostream/

“melhores fabricantes de carro dos últimos 4 anos”

A busca na Webpor termos.

http://www.flickr.com/photos/daniel_gies/5427386376/sizes/l/in/photostream/

Page 6: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Maecenas sed diam eget risus varius blandit sit amet non melhores fabricantes. Donec id elit non mi porta gravida at eget metus. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Etiam porta sem malesuada magna mollis euismod. Carros mollis interdum. Cras justo odio, dapibus ac facilisis in, egestas ege últimos 4 anos.

Page 7: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores

Page 8: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores melhores fabricantes carro automóvel veículo melhores

Ocorrência de termos não implica em relevância.

Page 9: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Grandes marcas falam mais sobre seus produtos,

não sobre si mesmas.

Page 10: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Milhões de resultados.Como trazer primeiro os

mais relevante para a busca?

Page 11: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Precisamos identificar as Autoridades sobre a

busca realizada.

Page 12: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Classificação de resultados em Autoridades e Hubs.

Através da análise de links.

Page 13: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

FerrariWebsite oficial da Ferrari.http://www.ferrari.com

FiatGrande empresa italiana.http://www.ferrari.com

FordFabricante de carros.http://www.ferrari.com

ChyrslerCompania america de jeep e carros esportivos.http://www.ferrari.com

Car Rankingshttp://www.Edmunds.com

Car Rankingshttp://www.ConReport.com

Manufacturer Websiteshttp://www.CarManu.com

Page 14: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

FerrariWebsite oficial da Ferrari.http://www.ferrari.com

FiatGrande empresa italiana.http://www.ferrari.com

FordFabricante de carros.http://www.ferrari.com

ChyrslerCompania america de jeep e carros esportivos.http://www.ferrari.com

Car Rankingshttp://www.Edmunds.com

Car Rankingshttp://www.ConReport.com

Manufacturer Websiteshttp://www.CarManu.com

Autoridades

Page 15: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

FerrariWebsite oficial da Ferrari.http://www.ferrari.com

FiatGrande empresa italiana.http://www.ferrari.com

FordFabricante de carros.http://www.ferrari.com

ChyrslerCompania america de jeep e carros esportivos.http://www.ferrari.com

Car Rankingshttp://www.Edmunds.com

Car Rankingshttp://www.ConReport.com

Manufacturer Websiteshttp://www.CarManu.com

Hubs

Autoridades

Page 16: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

FerrariWebsite oficial da Ferrari.http://www.ferrari.com

FiatGrande empresa italiana.http://www.ferrari.com

FordFabricante de carros.http://www.ferrari.com

ChyrslerCompania america de jeep e carros esportivos.http://www.ferrari.com

Car Rankingshttp://www.Edmunds.com

Car Rankingshttp://www.ConReport.com

Manufacturer Websiteshttp://www.CarManu.com

Hubs

Autoridades

Page 17: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Hyperlink-Induced Topic Search (HITS) (“hubs and authorities”)

Algoritmo de análise de links para classificar páginas na Web

Jon Kleinberg, 99 (IBM)

Precursor do PageRank

Page 18: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Pré-processamento

Page 19: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Documentos na Web

Page 20: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

conectados por hyperlinks

Page 21: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

1º Passo: Busca textual

Page 22: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Q: “melhores fabricantes de carro dos últimos 4 anos”

Page 23: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Q: “melhores fabricantes de carro dos últimos 4 anos”

Page 24: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Resultado: subgrafo R (root)

Page 25: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Resultado: subgrafo R (root)

Características(1) Ainda é proporcionalmente pequeno(2) Deve ser rico em páginas importantes(3) Provavelmente não contém autoridades

Page 26: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

2º Passo: Expande-se o subgrafo R(Region Growing Method)

Page 27: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

2º Passo: Expande-se o subgrafo R(Region Growing Method)

Page 28: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Resultado: subgrafo S (seed)Base do algoritmo

Page 29: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Resultado: subgrafo S (seed)Base do algoritmo

Page 30: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Resultado: subgrafo S (seed)

Características(1) Ainda é proporcionalmente pequeno(2) Provavelmente conterá autoridades

Page 31: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Definições

• Cada página tem dois índices

• ai authority weight da página i

• hi hub weight da página i

• Páginas com grande ai são Autoridades

• Páginas com grande hi são Hubs

Page 32: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Atualizando pesos de S

ap é...

soma do hi de todos os nós i apontando para p

i2

pi1

Page 33: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Atualizando pesos de S

hp é...

soma do ai de todos os nós i apontados por p

i1

i2p

Page 34: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Atualizando pesos de S

Ou seja,

Um bom Hub aumenta o a de quem aponta;

Uma boa Autoridade aumenta o h de quem aponta para ela.

Page 35: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Atualizando pesos de S

Seja,A a matriz de adjacência de S;a vetor com pesos de autoridade de S;h vetor com pesos de hubs do subgrafo S;O sistema que atualiza os pesos de S é:

• a = At . h (Eq. 1)

• h = A . a (Eq. 2)

Page 36: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Exemplo

2

3

1

Page 37: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

[ ]Exemplo

2

3

10 0 10 0 10 0 0

A =

Page 38: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

[ ][ ]

Exemplo

2

3

10 0 10 0 10 0 0

A =

0 0 00 0 01 1 0

At =

Page 39: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

[ ][ ]

Exemplo

2

3

10 0 10 0 10 0 0

A =

0 0 00 0 01 1 0

At =

ht = [1,1,1]

Page 40: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

[ ]Exemplo

0 0 00 0 01 1 0

a = At . h = [ ]111 =[ ]002

Page 41: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

[ ]Exemplo

0 0 00 0 01 1 0

a = At . h = [ ]111 =[ ]002[ ]0 0 10 0 10 0 0

h = A . a = [ ]111 =[ ]220

Page 42: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Exemplo

2

3

1a1 = 0

h1 = 2

a2 = 0

h2 = 2

a3 = 2

h3 = 0

Page 43: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Observações

• Neste caso, novas iterações irão gerar vetores equivalentes ao atuais, mas multiplicados por um escalar;

• O algoritmo deve se repetir até o critério de parada ou equilíbrio;

• Em grafos mais complexos, o equilíbrio pode não existir.

Page 44: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

O Algoritmo

Page 45: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Itere(G,k)G:  coleção  de  n  páginas  linkadask:  um  número  naturalz  é  o  vetor  (1;1;1;...;1)  E  RnSet  x0  :=  z:Set  y0  :=  z:For  i  =  1;2;...;k   Opere  (xi−1;  yi−1),  set  x’i    //  Eq.  1   Opere  (x’i;  yi−1),  set  y’i      //  Eq.  2   Normalize  x'i,  set  xi   Normalize  y'i,  set  yiEndReturn  (xk;  yk).

Page 46: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Análise da Complexidade

• Eq. 1 é uma multiplicação matriz-vetor

• Eq. 2 é uma multiplicação matriz-vetor

• Ambas são executas k vezes.

• O(k)[O(n2) + O(n2)] = O(k.n2)

• Existem formas de melhorar

• (vide anexos e referências)

Page 47: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Por que identificar God Classes?

Page 48: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

God Classes

Centralização da inteligência / complexidade de um sistema (herança da programação procedural)

http://www.corej2eepatterns.com/Patterns2ndEd/images/SLMainClass.gif

Page 49: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

God Classes

Violam o princípio da distr ibuição uni forme de responsabilidades.

http://www.corej2eepatterns.com/Patterns2ndEd/images/SLMainClass.gif

Page 50: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

God Classes

Difíceis de implementar, manter e testar.

http://www.corej2eepatterns.com/Patterns2ndEd/images/SLMainClass.gif

Page 51: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

God Classes

Delegam pequenos detalhes e utilizam dados de outras classes mais triviais do sistema.

http://www.corej2eepatterns.com/Patterns2ndEd/images/SLMainClass.gif

Page 52: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

God Classes

Impacto negativo na reutilização de componentes e na compreensão do sistema.

http://www.corej2eepatterns.com/Patterns2ndEd/images/SLMainClass.gif

Page 53: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

http://doi.ieeecomputersociety.org/cms/Computer.org/dl/trans/ts/2009/03/figures/tts20090303471.gif

Estratégia para Detecção de God Classes [Lanza, 2006]

Acessam diretamente muitos dados de outras classes mais simples.

Page 54: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

http://doi.ieeecomputersociety.org/cms/Computer.org/dl/trans/ts/2009/03/figures/tts20090303471.gif

São grandes (LOC) e complexas.

Estratégia para Detecção de God Classes [Lanza, 2006]

Page 55: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

http://doi.ieeecomputersociety.org/cms/Computer.org/dl/trans/ts/2009/03/figures/tts20090303471.gif

Baixa coesão entre os métodos da classe.

Estratégia para Detecção de God Classes [Lanza, 2006]

Page 56: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

http://doi.ieeecomputersociety.org/cms/Computer.org/dl/trans/ts/2009/03/figures/tts20090303471.gif

Estratégia para Detecção de God Classes [Lanza, 2006]

Page 57: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Exemplo: Forno Elétrico

Page 58: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Page 59: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Page 60: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Page 61: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Page 62: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Page 63: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

a = vetor dos pesos das autoridades;

h = vetor dos pesos dos hubs;

A = matriz de adjacência do Grafo;

AT = matriz transposta de A;

Page 64: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Page 65: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Resolução do sistema: iterativa (Gauss-Seibel) ou utlizando o Teorema de Perron ou o Método das Potências

Page 66: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Os vetores a e h podem ser obtidos através do principal autovetor normalizado de ATA e AAT. O principal autovetor é aquele associado ao maior autovalor.

Page 67: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Autovetor e Autovalor?

Seja V um espaço vetorial sobre um corpo F e A: V→ V uma transformação linear.

v é um autovetor quando v não é um vetor não nulo e existe um escalar k tal que

A * v = k * v

Nesse caso, pode-se dizer também que k é um autovalor.

Page 68: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

HITS x God Classes

Como identificar a God Class?

Peso do HUB é alto: Behavioral God Class

Peso da Autoridade é alto: Structure God Class

Utilizar a média entre os dois pesos

Page 69: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Forno Elétrico: Cadê a God Class?

Page 70: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Forno Elétrico: Cadê a God Class?

Page 71: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Forno Elétrico: Cadê a God Class?

Page 72: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

A classe 3 é uma God Class?

a3 = 0

Pois nenhum dos hubs associados a ele recebe mensagens de outra classe que não da própria 3.

Page 73: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

A classe 3 é uma God Class?

h3 = 1

Essa classe é a única que inicia alguma atividade no sistema.

Page 74: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Conclusões / Trabalhos Futuros

• O HITS é uma boa solução para “rankeamento” de documentos resultantes de busca textual, do qual o PageRank também se utilizou como inspiração.

• O HITS é indicado para “rankeamento” onde se precisa identificar autoridades e hubs.

• O PageRank usa abordagem parecida, mas apenas se preocupa com autoridades e apresenta uma complexidade melhor O(n).

Page 75: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Conclusões / Trabalhos Futuros

• Análise de outras informações do software que podem ser identificadas com o uso do HITS.

• Benchmarking com outras técnicas da área de Engenharia de Software para extração de God Classes.

• Aplicação do algoritmo PageRank para extração de God Classes.

Page 76: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Referências[1] Riel, A. J. Object-Oriented Design Heuristics. Addison- Wesley, Boston, MA, 1996.

[2] Lanza, Michele and Radu Marinescu. Object Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems. Springer, 2006.

[3] Chatzigeorgiou, Alexander, Nikolaos Tsantalis, and George Stephanides. "Application of graph theory to OO software engineering." Proceedings of the 2006 international workshop on Workshop on interdisciplinary software engineering research. ACM, 2006.

Page 77: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Referências[4] Chatzigeorgiou, Alexander, Spiros Xanthos, and George Stephanides. "Evaluating object-oriented designs with link analysis." Proceedings of the 26th International Conference on Software Engineering. IEEE Computer Society, 2004.

[5] Fokaefs, Marios, et al. "Identification and application of Extract Class refactorings in object-oriented systems." Journal of Systems and Software(2012).

[6] Chatzigeorgiou, Alexander. "Mathematical assessment of object-oriented design quality." Software Engineering, IEEE Transactions on 29.11 (2003): 1050-1053.

Page 78: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Referências[7] Fowler, Martin, and Kent Beck. Refactoring: improving the design of existing code. Addison-Wesley Professional, 1999.

[8] Kleinberg, Jon M. "Authoritative sources in a hyperlinked environment." Journal of the ACM (JACM) 46.5 (1999): 604-632

[9] Kleinberg, Jon M. "Hubs, authorities, and communities." ACM Computing Surveys (CSUR) 31.4es (1999): 5.

[10] Sergey Brin and Lawrence Page. 1998. The anatomy of a large-scale hypertextual Web search engine. In Proceedings of the seventh international conference on World Wide Web 7 (WWW7), Philip H. Enslow, Jr. and Allen Ellis (Eds.). Elsevier Science Publishers B. V., Amsterdam, The Netherlands, The Netherlands, 107-117.

Page 79: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Anexo 1: Convergência

• Na prática, estipula-se um número máximo de iterações para o algoritmo convergir;

• Ou verifica se houve alterações significativas nos x primeiras autoridades e hubs, pois é bastante custoso realizar esse procedimento.

• Não é possível garantir que sempre irá convergir.

• O critério de parada é escolhido de acordo com objetivo ou contexto do problema. Pode ser um número fixo ou porcentagem de modificação ao fim de cada ciclo.

Page 80: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Anexo II: Multiplicação Matriz-Vetor

Algoritmo Sequencial SimplesInput: Matrix mat[m][n]Vector vec[n]Output: out[m]for ( i = 0; i < m; i++ ){

out[i] = 0;for ( j = 0; j < n; j++ )

out[i] += mat[i][j] * vec[j];}

Vê-se claramente que a complexidade é da ordem de O(n2).Veja mais: http://www.cs.umsl.edu/~sanjiv/classes/cs5740/lectures/mvm.pdf

Page 81: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Anexo III: Normalização

• Normalização de um vetor (mx1): dividir cada elemento pela raiz quadrada da soma dos quadrados de cada elemento;

• Normalizar uma matriz: dividir cada elemento da matriz pelo determinante da matriz.

Page 82: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Anexo IV: Generalização do Sistema de Equeções

• Iteração 0: (inicializando os pesos)

a0 = [1,1,1...1]t e h0 = [1,1,1...1]t Iteração 1:a1 = At . h0 h1 = A . a1

Iteração 2:a2 = At . h1 h2 = A . a2

Iteração 3:a3 = At . h2 h3 = A . a3

Page 83: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Anexo IV: Generalização do Sistema de Equeções

Iteração k-1:ak-1 = At . hk-2 hk-1 = A . ak-1

Iteração k:ak = At . hk-1 hk = A . ak

Page 84: Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperlink-Induced Topic Search (HITS) e Identificação de God Classes.

Anexo IV: Generalização do Sistema de Equeções

Iteração k-1:ak-1 = At . hk-2 hk-1 = A . ak-1

Iteração k:ak = At . hk-1 hk = A . ak

Então:ak = At . hk-1 -> ak = (At . A) ak-1

hk = A . ak -> hk = (A . At) hk-1


Recommended