Découverte d'abstractions dans les modèles, les programmes ou les architectures. L'Analyse Relationnelle de Concepts pour la maîtrise de l'évolution du logiciel.
Résumé
Dans le cadre du génie logiciel, la découverte d'abstractions a des applications multiples telles que la construction de super-classes dans les programmes et les modèles, l'inférence de généralisation d'associations dans les modèles, l'extraction de parties communes à plusieurs architectures, l'organisation des programmes en modules, la reconnaissance de patrons de conception ou encore la réalisation de catalogues structurés de composants ou de services. Ces tâches de classification et de catégorisation sont pertinentes à plus d'un titre pour la maîtrise de l'évolution des logiciels. Elles permettent par exemple de réaliser un suivi de l'évolution d'une architecture en calculant les parties communes à deux versions, le résultat pouvant servir de support pour la documentation ou le contrôle a posteriori des modifications effectuées. Disposer d'un catalogue structuré et évolutif d'artefacts peut aider à trouver les artefacts adaptés à une nouvelle spécification et qui viendront en remplacement d'un artefact devenu obsolète. Rechercher les parties semblables d'une même architecture permet d'envisager des réorganisations locales ou de grande ampleur. Parmi les techniques connues de classification, l'Analyse de Concepts Formels (ACF) a déjà été utilisée avec succès pour traiter divers problèmes propres au génie logiciel. Elle consiste à faire émerger un ensemble de concepts par abstraction d'un ensemble d'entités décrites par des propriétés. Ces concepts sont organisés dans un treillis, appelé treillis de concepts ou treillis de Galois, par référence au premier contexte de découverte de cette notion. Une extension de cette théorie, appelée Analyse de Concepts Relationnels (ARC), qui prend en compte des descriptions relationnelles dans lesquelles une entité est décrite par ses liens avec d'autres entités permet de traiter des problèmes d'abstraction plus complexes que l'ACF. L'ARC a notamment été appliquée pour la généralisation de diagrammes structurels UML. Dans le cas des diagrammes structurels UML, différentes sortes d'entités telles que les classes, les associations, les attributs ou encore les méthodes sont prises en compte et généralisées par construction itérative de différents treillis (un pour chaque sorte d'entités). Dans ce processus, la construction d'un treillis pour une sorte d'entités à une étape donnée tire parti des connaissances acquises de la construction des treillis pour toutes les sortes d'entités aux étapes précédentes. Cette méthode a été appliquée dans le cadre de projets industriels. Les résultats obtenus ont permis d'identifier des problèmes sur lesquels nous travaillons actuellement tels que la facilité du paramétrage, la traçabilité des constructions ou encore la prise en compte de connaissances linguistiques. Mais l'ARC a une portée générale et nos perspectives incluent notamment la construction de catalogues de composants ou de Web services ainsi que l'abstraction d'architectures. Un framework générique de construction d'abstractions centré sur l'ARC est en cours de réalisation. Il se fonde sur une approche d'ingénierie des modèles avec description des différents méta-modèles intervenant dans le processus et une séquence de transformation de modèles, allant du modèle source (par exemple composants) vers le formalisme de description des entités de l'ARC, puis de la description des entités aux treillis, et enfin du formalisme des treillis de l'ARC vers le méta-modèle cible (par exemple catalogue de composants).