• Aucun résultat trouvé

Amélioration de la détection d'anti-patrons dans les systèmes à base de services par la fouille de traces d'exécution

N/A
N/A
Protected

Academic year: 2021

Partager "Amélioration de la détection d'anti-patrons dans les systèmes à base de services par la fouille de traces d'exécution"

Copied!
121
0
0

Texte intégral

(1)

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

(2)

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.

»

(3)

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

à

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.

(4)

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.

(5)

LISTE DES FIGURES ..

LISTE DES

TABLEAUX

RÉSUMÉ . . .

INTRODUCTION

CHAPITRE

I

Vll lX

x

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

uleGmwth

.

.

.

.

. . . .

.

. .

80

5.3 Comparaison des

résultats de

SOMAD

et SODA

sur FraSCAti. .

81

(11)

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

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

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

.

(12)

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

(13)

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

: 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

(14)

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

é

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

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

(15)

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

(16)

É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

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

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

.

(17)

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

11

blob ",

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

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

(18)

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

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

(19)

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

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.

Java Enterprise Edition, ou Java EE (anciennement J2EE),

est

un

e spéc

ification

pour

l

a

technologie

Java

de

Sun

Microsystems (Oracle)

plus particuli

è

rement destinée

aux applications

Figure

Tabl eau
Figure  1.1:  Le  blob  objet
Tableau  1.1:  Anti-patrons  SOA  (Moha  et  a l.,  2012)  .
Tableau  2.4: Base  de  données  de séquences  d 'achat  de  livres.
+7

Références

Documents relatifs

La première résume les actions recensées avant 2004 par le SIEVE (Summits of Independant European Vaccination Experts) dans les pays développés européens à destination du public

Water retention curves fitted to wetting (open squares) and drying (solid circles) data measured for the sand soil taken from Dane and Hruska [1983] using (a) the van Genuchten

First, in section 3a , we describe the variability of the fluxes and storages and the contribution of each component to the water budget. In section 3b , the atmospheric–

falls near the psocomorphan family Bryopsocidae Mockford, 1984 after the following combina- tion of characters: macropterous insect; legs with trimerous tarsi; absence of

Suite à la définition dans la section 2.4 du métamodèle général Aspect/UML, et des deux métamodèles AspectJ/UML (cf. 2.3) spécifiques, respectivement, à AspectJ et Hyper/J, nous

Nous présentons ici un exemple de méta-modèle de processus qui contient trois imitations du patron « Concept- Catégorie de Concepts » pour les concepts unité de travail et

Comme dans la définition d’un modèle, le concepteur en charge de la modification d’un modèle peut aussi réutiliser des patrons de procédé pour réduire le temps de modélisation

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des