Escolar Documentos
Profissional Documentos
Cultura Documentos
1 CIn.ufpe.
br
Objetivos
Auxiliar na modernizao de sistemas monolticos
orientados a objetos e em camadas para SOA
Utiliza como base apenas o cdigo fonte
Tcnicas semi-automatizadas
Sem alterar as funcionalidades
2 CIn.ufpe.
br
Motivao e Justificativa
Sistemas legados (ADJOYAN et al, 2014)
Tecnologia/Arquitetura ultrapassada
Possui valor para organizao
Alta complexidade na manuteno
Arquitetura em camadas o padro mais utilizado em
aplicaes Java EE (BAZZ et al, 2012)
Sistemas baseados em servios (ZHAO et al, 2014)
Menor custo de manuteno
Alta escalabilidade
Propostas encontradas no so eficientes quando
aplicadas em sistemas em camadas (WANG et al,
2008)
3 CIn.ufpe.
br
Proposta de Soluo
Catlogo de tcnicas semi-automatizadas para auxlio
na modernizao de sistemas monolticos, orientados
a objetos e em camadas, para SOA
1. Diminuio das dependncias das classes
2. Clusterizao das classes
3. Criao dos servios
Estudo de caso no sistema acadmico SIGA-EPCT
200 classes de negcio
244 classes de persistncia
474 entidades
4 CIn.ufpe.
br
Diminuio das Dependncias
N1 N2
P1 P2
N1 N2
P1 P2 P3
N1 N2
N3
N4
N5
6 CIn.ufpe.
br
Clusterizao: Algoritmo Fast
Community
Encontrar community structures (ERDEMIR et al, 2014)
Conjunto de vrtices com alta densidade nas arestas internas e baixa
densidade nas arestas externas
Baseado no clculo da modularidade
7 CIn.ufpe.
br
Clusterizao: Algoritmo Fast
Community
1. Inicialmente, considere cada vrtice como um
cluster diferente
2. Junte os dois clusters que tiveram o maior
crescimento, ou menor reduo, da modularidade
3. Repita o passo 2 at que reste apenas um cluster Q=0,500 / Q=0,6250
4. Selecione o ponto de corte do dendrograma
resultante analisando o maior valor de Qw
N1
Q=1,000 / Q=1,000
N2
N3 Q=0,000 / Q=0,500
N4
8 CIn.ufpe.
br
Clusterizao: Algoritmo Fast
Community
Superior a outros algoritmos da literatura (ACDC, Bunch,
K-Means e LIMBO) quando observados sob os critrios
(ERDEMIR et al, 2014):
Authoritativeness: medida de similaridade entre a decomposio feita
por profissionais e a feita automaticamente por um algoritmo de
clusterizao
Estabilidade: extrao automtica no deve produzir resultados
drasticamente diferentes quando executados sobre verses similares de
um software com pequenas alteraes
Extremity of cluster distribution: no se deve produzir componentes
muito grandes ou muito pequenos
9 CIn.ufpe.
br
Criao dos Servios
Mtodos das classes de negcio
Restries (GUO et al, 2005)
O tipo do mtodo deve ser pblico
Mtodos abstratos no podem ser publicados
Mtodos com mesmo nome devem possuir nomes de
servio diferentes
Transaes entre servios
ACID (Atomicidade, Consistncia, Isolamento e
Durabilidade)
WS-Transaction e WS-Coordination (IBM +
Microsoft)
10 CIn.ufpe.
br
Criao dos Servios: Nomes de
mtodos duplicados
11 CIn.ufpe.
br
Criao dos Servios: Transao entre
servios
@com.sun.xml.ws.api.tx.at.Transactional
TransactionFlowType
NEVER
SUPPORTS (padro)
MANDATORY
12 CIn.ufpe.
br
Ferramentas
JTransformer: Anlise e Refatorao
13 CIn.ufpe.
br
Ferramentas
JCluster
Clculo da fora de conectividade entre as classes
Exportao dos resultados para o JTransformer
14 CIn.ufpe.
br
Avaliao da Soluo: GQM
(Goal/Question/Metric)
Objetivo(Goal): Analisar a abordagem proposta, em
relao a sua eficcia, do ponto de vista do engenheiro
de software e no contexto de sistemas monolticos,
orientados a objetos e com arquitetura de trs camadas
Questo 1: Que tipo de melhoria a refatorao das
classes traz?
Questo 2: Quais foram as melhorias obtidas nos
componentes gerados?
Questo 3: A funcionalidade original mantida
aps a criao dos servios?
15 CIn.ufpe.
br
Questo 1: Que tipo de melhoria a
refatorao das classes traz?
16 CIn.ufpe.
br
Questo 2: Quais foram as melhorias
obtidas nos componentes gerados?
Aps Clusterizao
Quantidade de 1 2 3 4 5
Componentes
18 CIn.ufpe.
br
Question 3: A funcionalidade original
mantida aps a criao dos servios?
19 CIn.ufpe.
br
Limitaes e Pontos Fracos
Limitaes
No aborda a refatorao da camada de apresentao
No realiza a separao do banco de dados e consequentemente
das entidades
Pontos Fracos
Comparao de tcnicas de anlise de relacionamentos entre classes
Comparao de tcnicas de clusterizao
20 CIn.ufpe.
br
Concluses
Contribuies
Diminuio da quantidade de classes em cada web
service
Transao entre web services
Ferramentas
Trabalhos futuros
Abordagem da camada de apresentao
Separao do banco de dados/entidades
Comparao de tcnicas de identificao de
componentes/servios
21 CIn.ufpe.
br