AMÉLIORATION DE LA DÉTECTION D'ANTI-PATRONS DANS
LES SYSTÈMES
À
BASE DE SERVICES PAR LA FOUILLE DE
TRACES D'EXÉCUTION
MÉMOIRE
PRÉSENTÉ
COMME EXIGENCE PARTIELLE
DE LA MAÎTRISE EN INFORMATIQUE
PAR
MAT
HIEU NAYROLLES
Avertissement
La diffusion de ce mémoire se fait dans le respect des droits de son auteu
r,
qui a signé
le formulaire
Autorisation de reproduire et de diffuser un travail de recherche de cycles
supérieurs
(SDU-522 - Rév.01-2006)
.
Cette autorisation stipule que
«
conformément
à
l'
article 11 du Règlement no 8 des études de cycles supérieurs
,
[l
'
auteur] concède
à
l'Université du Québec
à
Montréal une licence non exclusive d
'
utilisation et de
publication de la totalité ou d
'
une partie importante de [son] travail de recherche pour
des fins pédagogiques et non commerciales.
Plus précisément
,
[l'auteur] au
t
orise
l'
Université du Québec à
Montréal
à
reproduire, diffuser
,
prêter
,
distribuer ou vendre des
c
opies de [son] travail de recherche
à
des fins non commerciales sur quelque support
que ce soit
,
y compris l'Internet. Cette licence et cette autorisation n
'
entraînent pas une
renonciation de [la] part [de l'auteur]
à
[ses] droits moraux ni
à
[ses] droits de propr
i
été
intellectuelle. Sauf entente contraire, [l
'
auteur] conserve la liberté de diffuser et de
commercialiser ou non ce travail dont [il] possède un exemplaire.
»
Au
cours
de ces
mois au
Canada,
de
nombreuses
personnes
m'o
nt
aidé
et so
u-te
nu
afin que je
puisse
m'intégrer
au mieux
dans ce
nouveau
pays ainsi que dans
cette
nouve
lle
université
.
Ce sont ces
personnes
qu
e
je souhaite
remercier
tout
particulièrement.
P
r.Naouel
Moha,
ma
direct
rice
de
recherche
pour m'avoir
init
ié
à
la qualité
lo-gicielle et aux ap
plications
à
base
de services
. Je
la
remercie
égalem
e
nt
pour
sa
disponibilité
co
nstante et
pour m'avoir
fait découvrir le
monde
de
la recherch
e
.
Pr.P
etko Valtchev,
mon
co
direct
eur d
e
recherche
pour
avoir
accepté
de
me
co-encadrer dans
mes
recherches et m
'avoir initié au monde de la
fouille de données.
Pr. Privat
,
Pr. Beaudry et Pr. Tremblay
pour
l
es connaissances acquises
dans
l
eurs cours
respectifs
de
prin
cip
es avancés de
l
angages
à
obj
ets,
planification
eb
inte
lli
gence art
ificie
ll
e et para
ll
é
li
sme hautes perform
ances.
J
e remercie aussi
Mes-sieurs Berger
et Levesque d
'avoir fait app
e
l
à
moi pour les ass
i
ster dans leurs cour
s
respectifs
de
Programmation
Agile et Mo
délisation avancée.
Alexandre Sbriglio, pilote
du
cy
cle
supé
rieur
eXia
.Ces
i
d'Aix-En-Provence, pour
m
'a
voir
suivi de près malgré
la
distance
et
pour m'avoir décharg
é
d
e
nombreux
soucis
li
és
à
ma vie au Canada ou aux interactions
ent
r
e
l
'UQAM et
l
'eX
ia.C
es
i.
Pr. Yann
-
Gaël
Guéhéneuc
de
l
'
École
Polytechnique
de
Montréal
pour m
'
avoir
donné accès aux
différentes recher
c
h
es
menées dans
son
laboratoir
e,
m'avoir
in-vité
à
certains sém
in
a
ir
es, et
pour nos discussions
sur
l
a généricité en
Java.
Pr.
maturation de
nos id
ées et approches
basées sur
l
es t
races
d'exéc
utions
.
Je
souhaite auss
i
remercier Phillipe Merle
et Lione
l
Seinturier pour leurs va
lid
a-t
ions
de
notre approche sur
l
e système
FraSCAti
et Francis Palma
pour la sa
va
lidation
du
système
Hom
e-Aut
om
atio
n
.
Les stag
i
a
ir
es
du LATECE, étudiant
s
à
l
a
maîtrise et au doctorat, qui
ont
contri-bué
à
créer une atmos
phère
de travail
agréable et qui ont touj
ours été disponibles
en cas de
besoin. Guillaume,
Benj
amin
, Nicolas, Choukri,
Gino, Anis, Ant
hony,
Franc
i
s et to
us ce
u
x
qu
e je
ne
peux pas citer. Les personnes qui
ont cont
ribués
à rendre ma vie à
Mont
réa
l
plus qu
'agréable : Samuel, Clarisse, David
, Tiphaine,
Sébast
i
en, Benj
amin
et tant
d'aut
res.
Caroline
Lafarie
-
Gremillet et
Marie
De Abreu pour
l
es
relectures
profon
des et
complètes
de ce
mémoire.
Fina
l
ement,
Lakmé
Gremillet
pour m'avoir
so
utenu
au
t
ravers
de cette
maîtrise
et
ce
, que
l
qu
e soit
l
es
doutes et
les difficult
és.
LISTE DES FIGURES ..
LISTE DES
TABLEAUX
RÉSUMÉ . . .
INTRODUCTION
CHAPITRE
I
Vll lXx
1
ÉTAT DE L'ART SUR LA DÉTECTIO
N
DE PATRO
NS
DE
CONCE
PTIO
N 5
1.1
D
étect
ion
d'anti-patrons orientés
ob
j
ets
.
5
1.2 D
étect
ion
de
patron
s
SOA
.
.
8
1.3 D
étect
ion
d'anti-patrons SOA
10
1.4
SODA,
l
'
approche
de l
'état
de
l
'a
rt
pour
la détection
a
utomatiqu
e
d'anti-
patrons SOA.
12
1.5
Conclusion . .
. .
.
. . . .
.
.
.
. . .
.
.
. .
.
.
. .
.
.
. .
.
.
16
CHAPITRE
II
ÉTAT DE L
'AR
T
SUR L
'
EXTRA
CT
ION DE CONNAISSANCES
ÀPAR-TIR DE TRACES D
'
EXÉCUTION
.
.
.
.
.
. . .
.
.
.
. .
18
2.1
Extraction de
connaissances d
e
pui
s
d
es
trac
es
d'exécution
19
2.2
Intr
o
duction
à
la fouill
e
de règles d'association
.
21
2.2.1
L
'
algorithme Apriori . . .
2
.3
Règles d
'
association séquentielles
2.3.1
L
'a
lgorithme
RuleGrowth
2.4
Conclusion
.
. . . .
CHAPITRE
III
L'APPROCHE SOMAD
3.1
Méthodologie de SOMAD
3
.1.1
Étape
1. Inférenc
e
de métriques
22
23
24
26
27
28
28
3.1.2
Étape 2. Spécification d'anti-patrons SOA
3.1.3
Étape 3. Génération
des al
gorithmes
de détection
3.1.4
Étap
e 4.
Fouille
de
s
r
ègles
d'as
soc
iation
3.1.5
Étape 5.
Détection d
'anti-p
atron
SOA
CHAPITRE
IV
IMPLÉMENTATION DE
SOMAD
4.1
Génération
de trac
es
d'exéc
ution
4.2
Collecte des
traces d'exécution
et agrégation
4.3
Identificat
ion des
transactions
. .
.
.
.
. .
.
4.4
Adaptation d
e
RuleGrowth pour
la
d
étection
d
'
anti-patrons
:
SOARu-33
34
38
40
43
43
45
46
leGrowt
h
.
.
.
.
.
51
4.4.1
RuleGrowth
. . .
..
.
.
.
.
4.4.2
Mot
ivations et changement
s
4.4.3
Impacts
des
mod
ifications
4.5 Changement
d
'o
bjectif
4.6 Conclus
ion
.
. . . .
. .
CHAPITRE V
EXPÉRIMENTATIONS ET VALIDATION
5.
1 Hypot
hèses
5.2
Sujets
5.3
Objets
5.4 Matérie
l et
langage
5.5 L'outil SOMAD
5.6 Processus
5.7
Résultats
5.8 Détails des
résultats
5.8
.1
Horn
ek
utornation
.
5.8.2
FraSCAti . . .
..
51
54
59
65
66
68
68
70
70
74
74
76
79
82
82
83
5.8.3
Etude des faux
positifs .
85
5.9 Discussion
sur les
hypot
hèses
.
86
5.10 Obstacles possibles
à
la validité
88
CONCLUSION
.
.
. .
.
.
.
.
. .
.
.
90
APPENDICE
A
IMPROVING SOA ANTIPATTERNS DETECTION IN
SERVICE BASED
SYSTEMS BY MINING EXECUTION TRACES
. .
. .
.
93
BIBLIOGRAPHIE
.
. .
.
. . .
.
.
.
.
. . .
. .
. .
. .
. .
.
.
.
. .
.
.
.
.
104
Figure
Page
1.1 Le
blob objet
.
.
. . .
. . .
.
. .
. . . .
7
1.2 Le
pa
tron facade
(Demange
e
t al.
,
2013).
10
1.3 L'a
pproche SODA
.
. .
.
.
.
. .
. . .
. .
12
3.1 Les approches
SODA et SOMAD.
Les cases grises
correspondent
a
ux
nouvelles étapes
de SOMAD
ajoutées aux
étapes de SODA en
blanc. . .
. .
.
.
. .
.
.
.
.
. .
.
28
3.2
É
tap
e
1 : Inférence
de
métriques.
28
3.3 Exemple de l'utilisation des hypothèses et métriques
: Le
T
'
i
ny S
e
r
vice
.
30
3.4 Gr
ammaire
BNF ut
ilisée
pour
co
nstruire les
cartes
de
règles.
33
3.5 Étape
2
: Sp
écification d'anti-patrons SOA.
.
34
3.6 Cartes
de r
ègles
p
our nos anti-patrons.
35
3. 7 Étape 3 :
Générat
ion d'al
gorithmes.
. .
36
3.8
Ga
barit pour la génér
ation
automatique.
37
3.9 Capture d
'éc
ran du
code
gén
éré
pour le
Mu
lt
i-serv'
ice. .
37
3.
10 Étape 4 : Fouille de règles
d'assoc
iation
.
.
. . . .
38
3.11 Fouille
de règles d'association dep
uis
les traces
d
'exécution
Le
Tiny Ser-vice.
. .
.
.
. .
.
.
.
. . .
. .
.
41
3.12 Étape
5 : Détection d'anti-patrons SOA
.
3.13 Détection d'un
Tiny Ser-vice .
.
4.1 Modèle
de
trace.
4.2 DSL
associé au mod
èle
de
la
figur
e 4.1
.
41
42
44
45
4.3 Traces
d
'exécut
ion indentées
par transaction
..
4.4 Exemple de
fenêtres
de temps.
4.5 Appels quasi-simultanés.
4.6
Nombre
de règles
. . .
4.7
Longueur
moyenne des
règles
d'association ..
4.8 Mémoire
requise.
.
4.9 Temps
d
'exécution.
47
55
57
61
62
63
64
4.10 Représentation pseudo-UML du
Half-Deprecated Service
.
66
5.1
Diagramme SCA d' Horn
eAutornation
.
.
.
71
5.2
Int
erface grap
hique
d'
Horn
eAutornation
.
5.3
Diagramme
SCA principal de
FraSCAti.
5.4
Int
erface graphique
de
l'exp
lorer
FraSCAti.
5.5
Interface
de
l'outil
SOMAD . . .
.
. . . .
71
72
73
75
Tabl
eau
1.1 Anti-patr
ons SOA (M
oha et
al.
,
2012) .
2.1 T
able d
e t
ransact
ions.
2.2 Itemsets
fréquents avec
un
support minimum de 50%.
2.
3 Exemples
de
règles
fouillées depuis
le
tableau
2.2.
P
age
15
22
23
23
2.4
Base
de
données
de séquences
d
'achat
de
livres.
25
2.
5
Exemp
les
de règles d'association
séquentielles
.
25
3.1
Mét
riques simples.
.
31
3.2 Métriques
co
mplexes.
32
4.1
Ex
tr
action désirée.
.
47
5.
1 Propr
iétés
d
'
Hume
-A·
utumatiun
et
FraSCAti
(N
DS
:
ombr
e
De
Services, NDM : Nombre
de Méthodes, NDC : No
mbre
de
classe,
MLDC
: Milliers
de lignes
de
code).
.
. .
. .
.
. . . .
.
. . .
.
.
.
73
5.
2
Comparaison des
résultats de SOMA
D
et
SODA sur
HorneAuto-rnation.
Les
ser
vices
barrés
indiquent des
faux-positifs détectés
par
RuleGmwth
et
pas par
SOA
R·
uleGmwth
.
.
.
.
. . . .
.
. .
80
5.3 Comparaison des
résultats de
SOMAD
et SODA
sur FraSCAti. .
81
L
es systè
m
es
à
b
ase
d
e se
r
vices
(SBS
s),
à
l
'
in
st
ar d
es a
u
t
r
es
sys
t
è
m
es
co
mpl
exes,
é
v
olue
nt pour
s'a
d
a
pt
e
r
àd
es
n
o
uv
elles
d
e
m
a
nd
e
s utili
sa
t
e
ur
s
ou
co
nt
ex
t
es
d
'exé
-c
uti
o
n
.
Ce
tt
e é
v
olu
t
ion
c
on
t
inu
e
p
e
ut f
ac
il
e
m
e
nt d
été
ri
o
r
e
r
la
qu
alité
d
e se
r
v
i
ce
(Q
o
S)
e
t d
e c
on
ce
pti
o
n d
e
s SBS
s e
t intr
o
duir
e
d
es
d
é
f
a
u
ts
d
e co
n
ce
p
t
i
o
n
,
co
nnu
s
so
u
s
le
n
o
m d
'a
nti-p
a
tron
s
SOA
(
Ser-vice
Or-iented ATc
hit
ect
'Un
;).
L
es
a
n ti-p
at
r
o
n
s
d
e
co
n
ce
ption
so
nt d
es s
olu
t
i
o
n
s
r
éc
urr
e
n
tes e
t r
eco
nnu
es
so
u
s
-
o
p
t
imum
s
à
d
es
pr
o
bl
è
m
es
c
o
nnu
s.
L
es
anti-p
a
tr
o
n
s so
n
t
d
o
n
c
l'
inv
e
r
se
d
es
p
at
r
o
n
s
d
e co
n
ce
p
-tio
n qui
so
nt d
e
b
o
nn
es s
olu
t
i
o
n
s
àd
es
pr
o
bl
è
m
es co
nnu
s
. L
es a
nti-p
at
r
o
n
s S
O
A
condui
se
nt à un
e
m
a
int
e
nabili
té e
t un
e
r
é
u
t
ili
sa
bilit
é
r
é
dui
tes
d
es
S
B
Ss.
Il
est
d
o
n
c
imp
o
r
ta
nt d
e
les
d
é
t
ec
t
e
r pui
s
d
e
les
s
upprim
e
r.
Ce
p
e
nd
a
nt
,
l
es
tec
hniqu
es
p
o
ur
le
ur d
étection
e
n
so
nt
à
le
ur
s
b
albutie
m
e
nt
s, e
t il n
'y
a ac
tu
ell
e
m
e
nt qu
'
un
se
ul
o
util
,
n
o
mm
é
SODA
(Ser-vice
Or'ient
e
d D
e
t
ec
tion joT Antipatt
e
m
s),
p
e
rm
e
t
ta
n
t
le
ur d
étec
i
o
n
a
u
to
ma
tique. S
OD
A est
b
asé s
ur un
e
n
se
mbl
e
d
e
m
ét
riqu
es
m
a-j
o
rit
a
ir
e
m
e
nt
s
t
at
iqu
es e
t
s
ur qu
elques
m
é
triqu
es
d
y
n
a
miqu
es
qui
so
n
t
c
a
lcul
ées
g
r
âce
àd
es
t
ec
hniqu
es
d
e
pr
og
r
a
mm
at
i
o
n
o
ri
e
n
tée as
p
ect.
D
a
n
s
ce
m
é
m
o
ir
e,
n
o
u
s
pr
o
p
oso
n
s
un
e
n
o
uv
elle
appr
oc
h
e
n
o
mm
ée
S
OMAD
(
S
eTv
ice
Oriented Mining for
Antipattem
s
D
e
t
ectio
n
)
qui
est
un
e
é
v
olut
i
o
n d
e S
ODA
.
L
e
bu
t
d
e
S
OM
A
D
est
d
'a
m
é
lio
r
e
r
la
d
é
t
ect
i
on
a
ut
o
m
a
tiqu
e
d
es
a
n
t
i-pa
t
r
o
n
s S
O
A
e
n f
o
uill
a
nt
les t
r
aces
d
'exéc
uti
o
n qu
e
pr
o
dui
se
n
t l
es
SBS
s.
L
es
tr
aces
d
'exéc
uti
o
n r
e
pr
ése
n
te
nt plu
s
i
e
ur
s
a
v
a
nt
ages
qui p
e
rm
e
ttr
o
n
t
d
'a
m
é
lio
r
e
r
la
d
étec
ti
o
n
ca
r
e
ll
es
p
e
rm
ette
n
t de ca
p-tur
e
r pl
eineme
nt
la
n
a
tur
e
h
a
ut
e
m
e
nt d
y
n
a
miqu
e
d
es
S
BS
s
tout
e
n n
écess
i
ta
nt
un ni
vea
u d
e
co
n
t
r
ôl
e
r
elat
i
ve
m
e
n
t
f
a
ibl
e
s
ur l
es
systè
m
es
c
ibl
es
.
S
O
MA
D min
e
d
es
r
ègles
d
'assoc
i
a
ti
o
n p
e
rtin
e
n
tes
d
a
n
s
l
es
t
r
aces
d
'exéc
u
t
i
o
n d
es S
B
Ss,
pui
s
l
es
fil
tre v
i
a
un
e
s
ui
te de
m
étr
i
q
u
es
dé
di
ées
.
No
u
s
di
sc
u
to
n
s
d'a
b
ord
l
es
m
o
d
è
l
es
de
r
ègles
d
'associat
i
on
sous
-
jacents
et
les intuitions
sout
enant le
s m
é
triqu
e
s d
é
di
ées
a
u
x
S
B
Ss.
L
es
règ
l
es
d
'assoc
i
at
i
o
n
pe
rm
ette
n
t
d
e
d
éco
u
vr
i
r
d
es
re
l
at
i
o
n
s
e
n
tre
différents
o
bj
ets
da
n
s
un
gra
n
d
e
n
sem
bl
e
de
d
o
nn
ées
.
o
u
s p
r
ése
n
to
n
s
a
u
ss
i d
e
u
x
ex
p
é
rim
e
n
tat
i
o
n
s v
i
sa
nt l
a
v
a
li
dat
i
o
n f
o
rm
e
ll
e
d
e
n
ot
r
e
ap
pr
oc
h
e
.
U
n
e
co
mp
a
r
a
i
-son e
n
tre
SOMAD
et
SODA
est effect
u
ée et
révè
l
e
l
'
efficac
i
té
de
SOMAD
face
àSODA
:
sa précision est
me
ill
eure
d'une
marge a
ll
ant
de
8.3%
à20% tout en
gardant
l
e
r
a
p
pe
l
à
100
%.
F
i
na
l
eme
n
t, SOMAD est, au
m
i
n
i
mum,
2
.
5
fois p
l
us
rap
i
de que SO
D
A sur
l
es
mêmes
s
u
jets d'expér
im
e
n
tatio
n
.
Cont
ex
t
e
d
e
l
'é
tud
e
L
es a
ppli
ca
ti
o
n
s
à
b
ase
d
e se
r
v
i
ces et
l
es a
n
t
i-p
a
tron
s
Les systèmes à
base
de service (SBSs)
so
nt composés
de services
déjà
prêts et
accessibles
par Inte
rnet (Erl
, 200
8)
. Les services so
nt
des
unités
logicielles
auto-nomes,
interopérables,
et réut
ilisables
qui
peuvent
être impl
émentées
en
ut
ilisant
un large choix
de technologies tels
que
les services we
b,
REST
(
REpresentatio
-nal Stat
e
Transf
ert),
ou
SCA
(Service Component Architecture,
une surco
uche au
SOA).
La
plupart
des plateformes we
b
connues
du
grand public sont de parfaits
exemples
de SBSs comme Amazon,
P
ayPal
et eBay.
De tels sytèmes sont
com-plexes
-
ils génère
nt
des
fl
ôts
massifs
de
communi
cation
ent
re les services
-
et
hautement
dynamiques : des services apparaissent, disparaissent ou sont mo
difiés.
L'évolut
ion
constante des SOAs
(Service
Oriented Architecture Systems)
peut
fa-cilement dé
t
ériorer la qualité de
leurs architectures par l'int
roduct
ion de défauts
architecturaux connus sous
le
nom d'anti-patrons SOA (Moha
et
al.
,
2012). Un
anti-
patron de conception est
une solution connue et
non-optimale à
un
problème
co
nnu. Les ant
i-patrons sont opposés aux patrons de concept
ion qui sont eux des
bonnes pratiqUes
en
réponse
à
des
problèmes connus.
Les
anti-patrons
peuvent
donc
être
qualifiés de mauvaises pratiques d
e
conception.
Par exemple,
le
Tiny S
ervice est
un
a
nti-patron largement
répandu d
a
ns l
es
sys-tèmes
à
base de services. Ce service
a
une
très
petite taille avec très peu de mé-
.
thodes
qui implémentent seulement
une partie d'une abstraction
(Dudney, 2003).
2
Les
Tiny Services
sont généra
l
ement accompagnés de plusieurs
autres services
for-tement
coup
l
és, ce
qui induit
un
e
complexité dans le développement
et
réduit
l
a
réutilisabilité. De plus, il
a été
prouvé que les
Tiny
Services
sont
une
des princi
-pales raisons d
'échecs
(failure)
des
systèmes à base de
services (Kral
et
Z
emlicka,
2009).
Problème étud
ié
: La
détection des
anti-p
atrons
Étant
donné
l
'impact
néfaste des
anti
-p
atrons sur
la
réutilisabilité
et
la
main-tenabi
lit
é
des SBS, il
existe
un besoin clair
et
urg
ent de
techniques
et
d'outils
visant leur détection.
Cependant,
la nature
hautement
dynamique et
distribuée
des SBSs rend
l
a
détect
ion
automatique
des
anti-patrons SOA compliquée. C'est
un véritable défi
, surtout en comparaison avec
d'autres
outils visant
la détection
d'anti-patrons
dans
les
systèmes objets (Marinescu, 2004; Fokaefs
et
al.,
2007;
Moha
et al.,
2010). En 2012,
notre équip
e,
composée
de
Naouel Moha, Francis
Palma, Benjamin Joyen-Conseil
,
Yann-Gaël
Guéhéneuc,
Benoit Beaudry,
Jean-Marc
Jézéquel
et
moi même, a
déve
l
oppé
une
approche
nomm
ée
SODA
(Service
Oriented D
etection
for
Anti-patterns)
(Nayrolles
et
al.,
2012; Moha
et
al.,
2012)
qui vise
l
a
détection des
anti-patrons SOA. Cette approche
repose
sur
un
lan-gage spécifique au
domaine
(Domain Specifie
Languag
e,
DSL)
pour
spécifier les
anti
-p
atrons SOA
et est
basée sur des métriques (majoritairement statiques)
d'un
côté, et sur une méthode de génération automatique d'algorithmes de détection,
de l'autre.
Bien qu'étant
efficace et
précise, SODA
so
uffre
de sérieuses
limitations.
En
ef-fet, SODA
exécute
deux phases d
'
analyse
,
une première statique
,
suivie
d
'
une
seconde,
dynamique
.
La
première
analyse statique requiert
un
accès aux
inter-fa
c
es des s
e
rvi
ce
s. En
c
onséqu
e
n
ce,
SOD
A
n
e
p
e
u
t
pa
s
anal
y
s
e
r dont
l
es s
our
ces
n
e so
nt p
as
disponibl
e.
L
a seco
nde pha
se,
à
moindre port
ée,
d
'a
n
a
l
yse
dynamiqu
e
requi
e
rt
l'é
xécution
concrète
du
système
e
t de
ce
fait,
l
a création
de
scénarios
exécutables.
De plus
,
SODA
a
é
té
créé spécifiquement
pour l
es systèmes
d
e
type
SCA
et sa
précision tend
à
faiblir lorsqu
e
l
a
taille des
systèmes
a
u
g
ment
e
.
Étant
donn
é
le
s
limitations de
SODA,
il
y
a
un
es
p
ace
pour l
'a
m
é
lior
at
ion d
e
no
s a
p
-proches
et
outi
l
s
pour la d
étect
ion d
'a
nti-p
at
rons SOA
.
Ces
a
m
é
lior
at
ions doiv
e
nt
apporter
une détection pr
éc
is
e,
efficace
et a
ppli
ca
bl
e
à toutes
l
es
techno
l
ogies SOA
(REST
,
SCA
,
service web,
..
.
) et ce
qu
elqu
e soit
l
a ta
ille
du
systè
m
e.
Dan
s ce
mé-moire, nous proposons un
e
approche
nomm
ée
SOMAD
(Se
rvic
e Ori
ented Mining
f
or AntiPatterns Detection).
Cette approche
n
e
requiert
p
as
de
scé
n
a
rio
s,
à
l
'
in-v
e
rs
e
de SODA,
et
repos
e
uniquement
sur
les
tr
aces
d
'exécution qui
p
e
uv
e
nt
êt
r
e
disponibles dans tout
es
les
techno
l
ogies SOA.
SOMAD
est
capable d'éliminer
l
es
donn
ées
non pertinente
s e
n utilisant un
e
technique
d
e
fouill
e
d
e
données
:
l
a
fouill
e
d
e
rè
gles
d'association
séquentie
ll
e.
L
a
fouill
e
d
e
r
ègles
d'
assoc
i
at
ion
(Agrawa
l et
Srikant
,
1994)
et a
fortiori la fouill
e
d
e
r
ègles
d
'assoc
i
ation
séq
u
e
nti
e
ll
es
-
e
n p
ar
-ticuli
e
r l'algorithme
RuleGrowth
(Fournier
-
Vig
e
r
et al.,
2011)
-
son
t des m
é
thod
es
servant
à
découvrir d
es
r
el
ations
int
é
r
essa
nt
es
dans d
e
la
r
ges
b
ases
d
e
donn
ées
.
SOMAD
a
pplique
ses
m
ét
hod
es
sur
l
es
tr
aces
d
'exéc
ution pour d
éco
uvrir des
a
nti-p
at
ron
s
SOA
sous
form
e
d
e co
nfigur
at
ions
particulières dans
l
a co
mposition
des
r
èg
l
es
d
'association.
Pour
ce
faire
,
nous utilisons un
e
variante
d
e
l
a
fouille d
e
r
ègles
d'association
bas
ée sur
l
es séq
u
ences o
u
ép
i
sodes.
Dans notre
cas,
l
es séq
u
ences
représentent
d
es s
ui
tes
d'appels de
serv
i
ces et
de méthodes
. Ensuite, nous filtrons
ces
règles
d'association
en
uti
l
isant
une
suite de métriques dédiées
afin
d'extraire
la
co
nn
a
is
sa
n
ce
p
e
r
t
in
e
nt
e
des règles d'association.
Con tri
bu ti ons
1.
Une
nouvelle
approche
nommée SOMAD pour la détection desanti-patrons
SOA.
Cette approche est basée sur
des règles d
'assoc
iation fouillées
sur
des
traces
d
'exéc
ution qui peuvent provenir de
toutes
les
technologies SOA.
2.
une
validation empirique
de notre
approche
qui démontr
e
l
'amé
lioration
apportée
par SOMAD
en terme
de précision
(8.3%
à
20%)
et
de vitesse
(2.5
fois plus rapid
e)
.
3. Une évolution
de l
'a
lgorithme
Rul
e
Growth
visant
la fouille
de règles
d
'as
-sociation séquentielles
dans d
es
séquences
d
'a
ppels
des SBSs.
D
e
ce
fait
,
nous
améliorons
la
détection d'anti-patrons SOA.
Les
contributions
1
et
2 ont été présentées
à
la
20ieme édition de
la
conférence
internationale de
travail sur
la rétro-ingénierie
(WCRE
2013,
Working
Conference
on
Rev
erse
Engineering)
(Nayrolles
et
al.
,
2013).
Structure du document
Ce
mémoire
est organisé
de la manière
suivante.
Les deux premi
ers
chapitres
pré-sentent respectivement
l
'état
de
l'art
sur
la détection de patrons
de conceptions et
l'
ext
raction de
connaissances depuis
l
es
traces
d'exécution. L
e
troisiéme
c
hapitre
,
quant à
lui
,
présente l
'approc
h
e
SOMAD.
Le quatriéme présente l
'
impl
éme
ntation
de SOMAD tandis que
le
cinquième
et
dernier chapitre présente nos
expérimenta
ÉTAT DE
L
'ART SUR
LA DÉTECTION
DE PATRONS DE
CONCEPTION
C
on
serve
r un
e
b
o
nn
e
qu
a
li
té a
r
c
hi
tect
ur
a
le
est essent
iel
po
ur
co
ns
tr
uir
e
d
es sys
-t
è
m
es
m
a
in
te
n
a
bl
es e
t
é
volutif
s.
L
es patro
n
s et a
n
t
i-
pat
r
o
n
s o
n
t été
r
econ
nu
s
c
om
me
un
e
d
es
m
e
ill
e
ur
es
f
aço
n
s d
'
expr
im
e
r
ces
p
réocc
u
pat
i
o
n
s a
r
c
hi
tect
ur
a
l
es.
C
e
p
e
nd
a
nt
, a
u
co
n
t
r
a
ir
e
d
es a
n
t
i-
pa
t
ro
n
s o
ri
e
nt
é
s
o
bj
et,
l
a d
é
tect
i
o
n d
e
l
e
ur
s é
qui-va
l
e
n
ts or
i
e
nt
és se
r
v
i
ces e
n
es
t
e
n
co
r
e à ses
d
é
bu
ts
.
D
a
n
s ce c
h
a
pi
t
r
e
d
é
di
é
à
l
'état
d
e
l
'art s
u
r
l
a
d
étect
i
o
n de
pat
r
o
n
s
d
e co
n
cept
i
o
n,
n
o
u
s ve
rr
o
n
s to
u
t
d
'a
b
o
rd l
a
d
étect
i
o
n
desa
n
t
i-p
at
r
o
n
s ob
j
et s
ui
v
i
pa
r l
a
d
étect
i
o
n
d
e
p
a
t
ro
n
s S
O
A. E
n
s
ui
te,
un
e
t
ro
i
s
iè
me so
u
s sect
i
o
n
co
u
vr
i
ra
l
'état de
l
'a
r
t
d
e
l
a
d
étect
i
o
n
d'ant
i-
patro
n
s S
O
A
.
F
in
a
l
em
en
t
,
n
o
u
s ex
pliquer
ons
l
e
f
o
n
ct
i
o
n
nem
en
t
du
se
ul
out
il
,
nommé S
OD
A
,
perm
e
tt
a
nt
l
a
d
étect
i
o
n
a
u
tom
a
tiqu
e
d'a
n
t
i-
patrons
SOA
.
1.1
Détection d
'anti-patrons orientés objets
C
e c
h
a
mp
s
d
e
r
ec
h
e
r
c
h
e e
s
t to
ujour
s
l
a
r
ge
m
e
n
t o
u
ve
r
t,
m
ê
m
e s
i l
es co
n
t
ribu
t
i
o
n
s
ré
c
ent
e
s
se
r
é
v
è
l
e
nt plus incr
é
m
e
nt
ales
qu
e
r
ée
l
e
m
e
nt nouv
elles
.
i-patrons
objet (Lanza
et
Marin
esc
u
,
2006;
Moha
et al., 2010
;
K
esse
ntini
et al.,
2010,
2011
) et
d
e
nombr
e
ux livres
ont
a
u
ss
i
porté
s
ur l
e
sujet. En
effet,
Brown
et
al.
(1998) ont
produit un
catalogue
d
e
40
a
nti-p
at
rons
tandis
qu
e
B
ee
k
,
d
a
n
s
l
e
livr
e
à
succès
R
efactoring
d
e
Fowl
er
et al.
(
1999
), a
id
e
n
t
ifi
é 22
mauvaises
ode
ur
s
de
code (ou
code smells
e
n
anglais)
qui doi
ve
nt
êt
r
e
traquées
et é
limin
ées a
fin d
'
avoir
un
co
d
e
d
e
meilleure
qualit
é. U
n
exemp
l
e s
impl
e
d'an
t
i-p
atron or
ie
nté objet
est
le
11blob ",
aussi
co
nnu
sous
le nom d
e
u
god
abject"
(figure
1.1)
, corres
pond
à
un
c
ontr
ô
l
e
ur d
e g
r
an
d
e ta
ille
(grand
nombr
e
d'at
tributs
et
de méthodes) qui
d
épe
nd
de donn
ées stoc
k
ées
d
a
ns des cl
asses a
dj
aca
nt
es
.
L
e
blob
est
un
e très g
rande cl
asse
qui
d
éclare
de
nombr
e
u
x c
h
amps et
méthodes
avec
un
e
f
aib
l
e co
h
és
ion.
Une classe de type
co
n
trô
l
e
ur
monopolise
l
a
m
a
jori
té
du
traitement
effect
u
é
par l
e système,
prend
l
a
m
a
jorit
é
des décisions
et
diri
ge
l
e
traitement
e
ff
éct
u
é
p
a
r les
a
utr
es
classes.
D
e
plus
, il
est
f
orteme
nt
co
upl
é a
u
x
cla
sses
de données
ad
j
ace
nt
es.
Afin de détecter
un
blob
d
a
n
s
un
programme
à
base d
'o
bjets
,
il
faut
id
entifier
l
e
nombr
e
d
e
classes de
donn
ées
qui
e
nt
o
ur
e
nt un
co
ntrol
e
ur
, calc
ul
er sa co
h
és
ion
,
l
e
nombr
e
d
e c
h
amps et
d
e
méthod
es
déclarés
.
Au
se
in d
es
travaux
s
ur les
anti-patrons objet,
ce
rtain
s so
n
t
particulièrement
in-téressants pour
nos
ob
j
ect
if
s. Notamment
DECOR
(Moha
et
al.,
2010) qu
i
est
un
e approche basée sur des
r
ègles
visant la spécification
et
la détection de motifs
dans le
code ou
l
a concept
ion
des
systèmes ob
j
ets.
Les
motifs sont
des morceaux
de
code ou de conception qui
sont
reconnaissab
l
es,
car
ils
ont été
id
ent
ifiés
et
nommés dans
l
e
but de
facilit
er
l
a communicat
ion
entre
l
es
membres d'une même
équipe
et
d
'amé
lior
e
r
l
a
qualité logi
c
iel
en
généra
l.
Les
a
ut
eurs
de cette étude
utilisent un langag
e
spécifique au domaine (ou
DSL)
pour
spécifier
l
es
motifs
et,
e
n
s
ui
te,
ils
génèrent automatiquement des algorithmes de détection
qui
sont
di-1\1b:rl!_1 ~t l~ .. (;.:W ~
....__...,...--t::J
·
~
Figure
1.1:
Le blob objet
rectem
ent exécutab
les. DECOR
peut détecter
l
es anti
-p
atrons
objets
avec
une
pr
écision
d
e
60.5
%
et
un
rapp
e
l
de 100
%.
Une a
u
tre approche
propos
ée
p
a
r K
es
-sentini
e
t al.
(2011) a obtenues de meilleurs résultats que DECOR
et a apporté
une
construction
a
utomatique
des règles de détection.
D
e
plus
,
l
es
auteurs ont
uti-lisé
des algorithmes génétiques pour maximiser
l
a
détéction via
l
'
optimisation des
ensembl
es
d
e
règles. Les
a
l
gorithmes
gé
n
ét
iques
imi
tent
l
e
pro
cess
us d
e
l
a sé
l
ect
ion
naturell
e
pour
produire des
solutions
approc
h
a
nt l
e
résultat optimal
e
n un
te
mps
raisonnabl
e.
Fin
a
l
e
m
e
nt
,
Khomh
et
al.
(2011) ont
à
nouv
ea
u
obtenu
d
e
m
e
ill
e
urs
résultats
e
n
utilisant des réseaux
bayésiens.
Les réseaux bayésiens
sont
un
mo-dèle probabiliste qui
r
e
prés
e
nt
ent
des variables
a
l
éato
ir
es et
l
e
ur
s
dépendances
conditionn
e
ll
es g
r
âce
à
un
graphe
diri
gé acy
cliqu
e
(DAG).
U
n
e
alterna·
tive
à
la
spéci
fi
cation
par un
lang
age
dédié, nommée SPARSE,
a été
présentée par Settas
e
t
al.
(2011).
SPARSE p
e
rmet d
e
d
éc
rir
e
l
es
anti-patrons
e
n utilisant des
onto-lo
g
i
es
OWL
ag
r
é
m
e
ntées
avec
des
règles SWRL (
Semantic
W
e
b Rul
e
Languag
e)
tandis
qu
e
l
e
urs
occurrences sont testées en
utilisant l
e
raisonneur sémantique
P
e
ll
et
(Sir
in
et
al.,
2007).
Un
raisonn
e
ur
sémantique
est capab
l
e
de déduire
d
es
consé
qu
e
n
ces
lo
g
iqu
es
d
e
puis un
e
n
se
mbl
e
d
e
f
a
it
s avérés.
D'
a
utr
es t
r
a
v
a
u
x
pertinents
se sont
fo
ca
li
sés s
ur l
a
d
étect
ion
d'anti-patrons s
p
éc
i-fiquement
li
és
aux
p
e
rformances
et aux ressources
systèmes.
Par exemp
l
e,
(Wong
et
al.,
2010),
utilis
e
nt un
algorithme
gé
n
ét
iqu
e
p
our
l
a
détection de défauts
d
a
n
s
l
es
logiciels.
D
a
n
s
un
autre travail
p
ert
in
e
nt
, Parsons (2007)
s'occ
up
e
d
e la
d
étec-tion d'anti-patrons
de p
e
rform
a
nc
e.
Il utilis
e
un
e approc
h
e
basée sur
d
es
règles
stat
iqu
es et
d
y
namiqu
es
visant
l
es a
ppli
cat
ion
s à base de
composants
(plus
p
art
i-c
uli
èreme
n
t
l
es
applications
Ja
va
EE
1 ).D
e plu
s,
il
ex
ist
e
un
e grande
vari
été
d
'o
util
s
développés par
l
'
indu
str
i
e et
l
a
com-mun
a
ut
é aca
d
é
mique qui
visent
la détection
a
ut
omat
iqu
e
d
'ant
i-p
at
r
o
n
s
dan
s
l
es
systèmes ob
j
et;
l
es
plus
co
nnus
éta
nt
: FindBugs
,
iPl
asma,
JDeodorant
, PMD
et
SonarQube (Rutar
et
al.,
2004).
1.2
Détect
ion
de patrons SOA
L
e cata
lo
g
u
e act
u
el
d
e
patrons
SOA
est
r
elat
i
veme
nt
riche.
En e
ff
et,
il
ex
i
ste
de nombreux
livr
es
(Er:l, 2009; Daigneau, 2011) portant
sur ce s
uj
et et
plus
en-core
(Rotem-Gal-Oz
et
al.,
2012).
Ces ouvrages fournissent
de bonnes pratiques
à
adopter pour
concevoir des
app
li
cations
à base de services.
Par exemp
l
e
,
Rotem-Gal-Oz
et
al.
(2012) introduisent 23 patrons SOA
et
quatre
anti-patrons suivi
de
discussions sur les raisons de leurs
apparitions et
les
solutions
&
problèmes qu'ils
1.