• Aucun résultat trouvé

Chapitre 5 Identification des services à base d’algorithmes génétiques

4. Implémentation et évaluation

) ( ( ∑ )) ( )

où est le nombre maximal des clusters représentés par l'individu courant, est la cohésion du ieme cluster, et est le couplage du jeme cluster.

Un meilleur individu est un individu qui a une qualité de modularisation forte, une cohésion forte, et un couplage faible qui implique une fonction objective élevée.

Croisement

Le croisement est un opérateur génétique basé sur le principe que les enfants héritent des qualités de leurs parents. Le format standard du croisement est C: E × E  E × E, qui croise, avec un certain probabilité Pc(0≤Pc≤1), deux parents (p1, p2) E × E.

Nous avons utilisé, dans notre processus de clustering, un croisement uniforme qui consiste à produire aléatoirement un masque binaire de même taille que les chromosomes afin de reproduire deux nouveaux enfants E1 et E2 à partir de deux parents P1 et P2.

{

( )

Mutation

L'idée générale de la mutation est la modification (avec une certaine probabilité P.M., 0≤pm≤1) d'un ou plusieurs gènes de l'individu choisi, afin de présenter une variabilité dans la population.

4. Implémentation et évaluation

Afin d'évaluer les diverses phases de notre méthode d'identification automatique de services logiciel exposés en ce chapitre, nous avons développé un outil logiciel basé sur un algorithme génétique qui prend comme entrée une Ontologie de processus métier et produit comme sortie un ensemble d'activités organisées en groupes optimaux.

Les activités du même groupe doivent avoir une cohésion forte, un couplage faible, et une qualité de modularisation élevée. La figure 5.4 montre le graphe de dépendance d'activité qui représente l'entrée du processus de clustering. À la fin du processus de groupement, les activités fortement dépendantes sont mises dans le même cluster comme il est présenté dans la figure 5.5

Pour évaluer l'exécution et la qualité des clusters produits par notre outil, nous avons exporté une courbe qui représente la valeur de la fonction objective dans chaque itération ainsi que les propriétés des partitions optimales telles que la qualité de la modularisation, la cohésion, le couplage et le temps d'exécution (voir figure 5.6).

Afin d'évaluer l'exécution et la qualité du groupement, nous avons appliqué notre algorithme de clustering sur cinq processus métier BP01, BP02, BP03, BP04, et BP05

119

correspondant respectivement à la gestion des clients, la gestion d'achat, la gestion des ventes, la gestion des commandes, et à la gestion de la production. Les résultats obtenus sont présentés dans le tableau 5.3.

Figure ‎5.4 Activity Dependency Graph (input).

120

Figure ‎5.6 Etapes d’exécution de MOOSI tool.

BP01 BP02 BP03 BP04 BP05 Number of Activities 7 9 10 9 13 Number of Edges 15 15 12 15 39 Number of Clusters 2 4 3 3 5 Fitness 0.108 0.101 0.104 0.202 0.055 Modularization Quality 0.877 0.888 0.987 0.855 0.878 Average of Cohesion 0.128 0.118 0.106 0.25 0.064 Average of Coupling 0.034 0.028 0.002 0.052 0.016 Found at iteration 2 7 6 8 13

Execution time in milliseconds 32 203 266 265 1685 Tableau 5.3 résultats expérimentaux

L'analyse des résultats fourni par MOOSI, prouve que les clusters produits une cohésion forte, un couplage faible et une qualité de modularisation supérieur à 85%. La majorité de solutions optimales sont trouvées dans un nombre réduit d'itération qui correspond à un temps d'exécution minimal.

En appliquant notre algorithme sur le même processus métier utilisé par [Jamshidi, 2012], nous avons trouvé les clusters optimaux dans un nombre réduit d'itération qui implique une performance élevée. D'ailleurs, le nombre de clusters optimaux dans MOOSI est supérieur au nombre de clusters optimaux dans l'approche de [Jamshidi, 2012] qui implique une qualité de modularisation importante (voir le tableau 5.4).

[Jamshidi, 2012] propose un algorithme de clustering à deux dimensions qui implique une augmentation de la complexité. Il groupe les activités liées à la même entité métier dans le même cluster et les entités métiers manipuler par la même activité dans le même cluster.

121

Contrairement, l'algorithme adopté par MOOSI est un algorithme de clustering à simple dimension. Il calcule des dépendances entre les activités en se basant sur les relations sémantiques existantes entre les activités et les entités métiers afin de grouper les activités les plus dépendantes dans le même cluster. Ceci implique une réduction de la complexité de l'algorithme.

MOOSI Jamshidi's approach Number of Activities 13 13

Number of Edges 39 39

Number of Clusters 5 4

Found at iteration 13 5313

Tableau 5.4 Comparaison entre MOOSI et le prototype de [Jamshidi, 2012].

Noter qu'à la fin du processus de groupement, il est facile de grouper les entités métier manipulées par la même activité dans le même cluster en assignant chaque entité métier au cluster qui contient l'activité créatrice.

5. Conclusion

Dans ce chapitre, nous avons présenté une méthode appelée MOOSI (Multi-Objective Optimization-based Service Identification) pour identifier automatiquement des services SOA candidat à partir d‟un processus métier de haut niveau. La méthode illustre comment un ensemble de services candidats peuvent être dérivés automatiquement à partir un modèle de processus métier. Une Ontologie de processus métier notée(BPO) est adoptée pour annoter le modèle de processus métier d'entrée. Le modèle de processus annoté est considéré comme une entrée d'un moteur de transformation qui le transforme, après l'interrogation de l'ontologie, en processus exécutable. Enfin un moteur d'identification interroge l'ontologie pour extraire toutes les propriétés utilisées comme données d'entrée pour produire des services candidats automatiquement. Le moteur d'identification applique une méthode de clustering à base d‟algorithme génétique. Les résultats d'implémentation prouvent que MOOSI peut atteindre une haute performance en termes de temps de calcul et une qualité importante en termes de qualité de modularisation des