Projet ANR-10-BLAN-0219 – Cutter : Remodularisation de logiciel à objets dirigée par la qualité
Programme : Sciences de l'information, de la matière et de l'ingénierie : Sciences de l’information, simulation (Blanc SIMI 2) 2010
Année de financement : 2010
Coordinateur du projet : Monsieur Stéphane DUCASSE (INRIA - Centre Lille-Nord Europe)
Partenaires : Inria Centre Lille - Nord Europe; Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier
Montant : 289973.0 euros
Date de début : 2011
Durée : 42 mois
Résumé : Les systèmes logiciels, et en particulier les systèmes orientés objets, sont des modèles du monde réel dont ils manipulent des représentations. Ces systèmes souffrent cependant de deux problèmes importants : tout d’abord le monde change perpétuellement ce qui impose de réviser régulièrement le modèle ; ensuite une analyse complète des logiciels réels est impossible à cause des nombreux détails et des multiples niveaux d’abstraction qui créent une grande complexité. Par exemple, le système d’exploitation Windows comprend plus de 60 millions de lignes de code (500.000 pages imprimées en recto-verso, environ 16 collections complètes de l’Encyclopedia Universalis). Différents paradigmes de programmation ont été inventés pour faire face aux changements : la liaison tardive, pièce maîtresse de la programmation orientée objets en est une illustration typique. De nos jours, les grandes applications à objets souffrent de problèmes d’évolution et nécessitent souvent d’être restructurées ou remodularisées notamment pour s’adapter aux contraintes de mémoire ou à des situations métier différentes.
Même si la (re-)modularisation est un champ de recherche assez ancien dans le domaine de C ou COBOL, il reste important et demande des approches innovantes pour traiter la complexité des systèmes modernes développés avec les approches à objets. Le décalage entre les pratiques courantes et les enjeux auxquels font face les entreprises du logiciel est dû à la complexité des concepts manipulés (sous-systèmes, paquetages, classes, hiérarchies de classes, liaison tardive, variété des relations d’import, etc.) ainsi qu’à l’utilisation d’un unique type d’algorithme (regroupement conceptuel) et une unique sorte de représentation du système.
CUTTER répond à ces problèmes en reconnaissant et en admettant la complexité et la nature multi-facettes de la remodularisation logicielle par le développement, la combinaison et l’évaluation de nouvelles techniques pour l’analyse et la modularisation du code. L’innovation de CUTTER consiste à :
- combiner différentes techniques de décomposition en paquetages (décomposition de graphe, Analyse Formelle de Concepts (AFC), visualisation de programme, etc.) ;
- considérer différents niveaux d’abstraction (système, paquetages, classes, etc.) ;
- être guidé par la qualité de la remodularisation finale et tenir compte du point de vue de l’expert.
Plusieurs techniques de décomposition seront utilisées : décomposition de graphes (algorithmes d’approximation polynomiaux, heuristiques, méthodes exactes), AFC, algorithmes statistiques de regroupement et algorithmes basés sur la visualisation. Ces techniques ont déjà été utilisées, mais, prises séparément, elles ne réussissent pas à donner pleine satisfaction, offrant des résultats difficiles à comprendre par les ingénieurs de maintenance, ou ne correspondant pas à la vision des experts.
Les résultats permettront : de comprendre comment optimiser la structure modulaire des systèmes en tenant compte des intentions des ingénieurs de maintenance ; de comprendre les forces et faiblesses des algorithmes de graphes, de l’AFC, du regroupement conceptuel et de la visualisation pour la remodularisation ; de proposer de nouvelles méthodes de décomposition combinant les différentes techniques et des outils efficaces mettant en oeuvre les résultats.
Le projet sera conduit par l’équipe RMoD-INRIA. Il utilisera une approche incrémentale et itérative permettant aux deux équipes (RMoD-INRIA et D’OC/APR-LIRMM) d’intégrer les avancées du partenaire et de les exploiter. Nous prévoyons trois workshops communs par an. La communication sera favorisée par des études de cas qui permettront d’évaluer les résultats et d’orienter le projet. Pour partager les résultats, CUTTER utilisera un format et un modèle commun de code source (un méta-modèle).Les responsables d’équipes se connaissent bien et apprécient de travailler ensemble, ce qui garantira une interaction efficace.