ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Décomposition automatique des interfaces des services Web - Par : Sabrine Boukharata, Ali Ouni,

Décomposition automatique des interfaces des services Web


Sabrine Boukharata
Sabrine Boukharata Profil de l'auteur(e)
Sabrine Boukharata est étudiante à la maîtrise à l’ÉTS. Ses recherches portent sur la maintenance et la restructuration des systèmes logiciels.
Programme : Génie logiciel 

Ali Ouni
Ali Ouni est professeur au Département de génie logiciel et TI à l’ÉTS. Ses travaux portent sur la qualité, la maintenance et l'évolution de logiciels et l'application des techniques d'intelligence artificielle à l'ingénierie logicielle.
Programme : Génie logiciel 

Restructuration automatique des interfaces de services

Achetée sur Istock.com. Droits d’auteur.

RÉSUMÉ:

L'interface d’un service Web est un composant essentiel dans l’architecture orientée-service (SOA). Une interface de service Web mal conçue peut avoir des effets négatifs sur toutes les applications clientes utilisant ce service. Une façon de régler ces problèmes est de « restructurer » l’interface du service afin d’en améliorer la qualité. Pour aider les développeurs dans cette tâche, nous proposons une nouvelle approche automatique, nommée WSIRem, basée sur l'optimisation multi-objectifs, qui consiste à trouver la modularisation appropriée d'une interface de service pour obtenir des interfaces plus cohésives et moins couplées. WSIRem a été évalué sur un banc d’essai de 22 services Web d’Amazon et de Yahoo. Les résultats obtenus montrent que WSIRem surpasse les performances des approches reposant sur les techniques de partitionnement classiques, obtenant 73 % de précision et 77 % de rappel par rapport aux modulations attendues. Mots clés : Service Web, SOA, Interface de service Web, optimisation multi-objectifs.

Introduction

L’interface d’un service Web constitue la principale source d’interaction avec l’utilisateur dans les applications logicielles du monde réel. Comme tout autre système logiciel, les services Web doivent être modifiés et mis à jour fréquemment pour ajouter de nouvelles fonctionnalités en réponse aux besoins du client. Cependant, ces changements continus peuvent accroître la complexité des interfaces et même les éloigner de leur conception d’origine [1]. Cela peut entraîner des effets secondaires, connus sous le nom d’anti-patrons, symptômes de mauvaises pratiques de conception/implémentation, qui entraînent souvent des problèmes de compréhensibilité, de maintenabilité, ainsi que des erreurs d’exécution [2]. 

Les mauvaises pratiques et les anti-patrons de conception de services Web ont récemment été étudiés et différentes approches ont été proposées pour détecter les interfaces de services Web souffrant de mauvaises pratiques de conception [2] [3] [4] [5] [6] [7]. Cependant, la correction de ces anti-patrons reste à explorer et demeure une tâche manuelle et complexe.

Pour résoudre ce problème, nous introduisons une nouvelle approche pour la remodularisation d’interface de service Web (amélioration de la structure des interfaces de service Web), nommée WSIRem, en utilisant l’algorithme génétique multi-objectif NSGA II [8].

Présentation de WSIRem

WSIRem analyse les fichiers WSDL, qui décrivent les services Web, d’une façon structurelle et sémantique pour extraire la similarité séquentielle et les relations sémantiques entre les opérations explosées. Les informations extraites sont utilisées dans un processus d’optimisation basé sur l’algorithme génétique de tri non dominé (NSGA-II) [8] pour générer des solutions de remodularisation optimale. Une solution de modularisation optimale doit fournir le meilleur compromis entre les objectifs suivants (i) maximiser la cohésion, (ii) minimiser le couplage, (iii) minimiser le degré de modification.

En sortie, WSIRem propose un ensemble d’interfaces, soit une interface pour chaque abstraction/fonctionnalité distincte, contenant l’ensemble des opérations liées à cette abstraction/fonctionnalité.

architecture de WSIRem

Figure 1: WSIRem

Évaluation de WSIRem

Pour évaluer notre approche, nous avons réalisé une étude empirique sur un banc d’essai de 22 services Web populaires, fournis par Amazon et Yahoo. En première partie, nous avons évalué l’incidence des modularisations suggérées par notre approche sur trois métriques de qualité : (i) la cohésion, (ii) le couplage, et (iii) la modularité des interfaces. Nous avons aussi comparé la performance de WSIRem avec deux autres approches de pointe récentes : Greedy [9] et SIM [5]. Les résultats obtenus sont illustrés aux Figure 2, 3 et 4. 

Cohésion

La cohésion fait référence à la relation étroite entre les opérations dans une interface de service Web. La cohésion obtenue par Greedy était de 0,35, ce qui est légèrement supérieur à celle de WSIRem et de SIM, lesquelles étaient respectivement de 0,33 et 0,29 (Figure 2).

Amélioration de la cohésion de services Amazon

Amélioration de la cohésion de services Yahoo

Figure 2: Amélioration de la cohésion QICohesion réalisée par WSIRem, SIM et Greedy.

Couplage

 Le couplage fait référence au nombre de dépendances entre toutes les interfaces de service.

 WSIRem a obtenu des résultats de couplage beaucoup plus faibles (plus le couplage est faible, meilleure est la remodularisation), avec un score moyen de -0,08 pour Amazon et Yahoo, par rapport à SIM et Greedy ayant un score de -0,14 et – 0,26, respectivement, comme qu’illustré à la Figure 3.

Amélioration du couplage de services Amazon

Amélioration du couplage de services Yahoo

Figure 3 : Amélioration du couplage QICoupling réalisé par WSIRem, SIM et Greedy.

Modularité

La modularité d’interface de service peut être définie comme le degré auquel les opérations d’un service sont liées à la même abstraction et bien partitionnées en interfaces cohésives.

WSIRem a entraîné une amélioration de la modularité avec une moyenne de 0,12 comme montré à la Figure 4, tandis que Greedy et SIM se sont avérés moins efficaces avec une moyenne de 0,04 et 0,07, respectivement, pour les 22 services considérés.

Amélioration de la modularité de services Amazon

Amélioration de la modularité de services Yahoo

Figure 4: Amélioration de la modularité QIModularity réalisée par WSIRem, SIM et Greedy.

Précision et rappel du WSIRem

Pour mieux évaluer l’applicabilité de notre approche, nous avons comparé notre modularisation à des modulations effectuées manuellement, en ce qui a trait à la précision et au rappel. 

Nous calculons la précision et le rappel comme suit:

Calcul

Où TP (True Positive) correspond au nombre d’interfaces problématiques identifiées par le développeur ainsi que par l’approche proposée; FP (False Positive) correspond au nombre d’interfaces problématiques identifiées par l’approche proposée, mais non par le développeur; FN (False Negative) correspond au nombre d’interfaces problématiques identifiées par le développeur, mais pas par l’approche proposée.

WSIRem a atteint une précision moyenne de 73 % et un rappel moyen de 77 % par rapport aux modularisations attendus.

Conclusion

Dans ce travail de recherche, nous avons proposé une approche de remodularisation d’interfaces de service Web, WSIRem, basée sur l’algorithme d’optimisation multi-objectif NSGA-II pour trouver le meilleur compromis possible entre la cohésion, le couplage, le nombre d’interfaces et le nombre moyen d’opérations par interface. WSIRem a ensuite été évalué sur 22 services Web réels fournis par Amazon et Yahoo. 

Nos résultats montrent que WSIRem fournit des solutions de remodularisation qui sont plus adaptées aux attentes des développeurs, obtenant plus de 73 % de précision et 77 % de rappel.

Information supplémentaire

Pour plus d’information sur cette recherche, consulter l’article suivant : Boukharata, S.; Ouni, A. Kessentini, M.; Bouktif, S; Wang, H. 2019. « Improving web service interfaces modularity using multi-objective optimization. » Automated Software Engineering. Volume 26, Issue 2, pp. 275-312.

Sabrine Boukharata

Profil de l'auteur(e)

Sabrine Boukharata est étudiante à la maîtrise à l’ÉTS. Ses recherches portent sur la maintenance et la restructuration des systèmes logiciels.

Programme : Génie logiciel 

Profil de l'auteur(e)

Ali Ouni

Profil de l'auteur(e)

Ali Ouni est professeur au Département de génie logiciel et TI à l’ÉTS. Ses travaux portent sur la qualité, la maintenance et l'évolution de logiciels et l'application des techniques d'intelligence artificielle à l'ingénierie logicielle.

Programme : Génie logiciel 

Profil de l'auteur(e)


commentaires

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *