RÉSUMÉ.
L'existence des préoccupations transversales enchevêtrées ou dispersées,
rend complexe la compréhension et l'évolution du code source orienté objet.
L'adoption industrielle du paradigme orienté aspect a donné naissance à la
recherche de nouvelles approches supportant la migration vers le paradigme
orienté aspect. Cette migration a eu besoin d'extraire les préoccupations
transversales afin de les encapsuler dans des aspects. Dans cet article,
nous proposons, une nouvelle approche d'identification des préoccupations
transversales au niveau conceptuel. Nous matérialisons ce dernier par les
diagrammes UML de classes et de séquence. Nous utilisons l'analyse formelle
des concepts, afin de regrouper les fonctionnalités dispersées au niveau
des diagrammes de séquence, et nous analysons l'ordre d'appels des méthodes,
afin de détecter celles enchevêtrées. Nous filtrons ensuite l'ensemble des
aspects candidats obtenus, afin d'éviter les erreurs.
ABSTRACT.
The existence of crosscutting concerns tangled or scattered, complicates the
understanding and evolution of object oriented source code. The industrial
adoption of aspect-oriented paradigm has led to research new approaches
supporting aspect oriented migration. This migration requires the identification
of crosscutting concerns, in order to encapsulate them into aspects.
We propose in this paper a new approach for the identification of crosscutting
concerns at the conceptual level. We materialize this latter by the UML
class and sequence diagrams. We use the formal concept analysis to group
scattered functionalities in sequence diagrams, and we analyze the order
of method calls to detect the tangled ones. Then, we filter all obtained
candidate aspects, in order to avoid the mistakes.
MOTS-CLÉS :
Analyse d’ordre d’appels, Analyse formelle des concepts, Aspect,
Extraction d’aspects, Préoccupations transversales, Réingénierie,
Rétro-ingénierie.
KEYWORDS:
Aspect, Aspect mining, Call order analysis, Crosscutting concerns,
Formal concept analysis, Reengineering, Reverse engineering.
|