Thèse soutenue

Analyse et optimisation de patterns de code

FR  |  
EN
Auteur / Autrice : Rim Chaabane
Direction : Françoise BalmasNicolas AnquetilPatrick GreussayHarald WertzMartin Jourdan
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2011
Etablissement(s) : Paris 8
Ecole(s) doctorale(s) : École doctorale Sciences sociales (Saint-Denis, Seine-Saint-Denis ; 2000-....)
Jury : Président / Présidente : Arab Ali Chérif
Examinateurs / Examinatrices : Nicolas Anquetil, Patrick Greussay, Harald Wertz, Martin Jourdan
Rapporteur / Rapporteuse : Stéphane Ducasse, Lakhdar Saïs

Résumé

FR  |  
EN

Notre travail consiste en l’analyse et l’optimisation du code source d’applications de type système hérité (ou legacy system). Nous avons particulièrement travaillé sur un logiciel, appelé GP3, qui est développé et maintenu par la société de finances Sungard. Ce logiciel existe depuis plus d’une vingtaine d’années, il est écrit en un langage propriétaire, procédural et de 4ème génération, appelé ADL (ou Application Development Language). Ce logiciel à été initialement développé sous VMS et accédait à des bases de données d’ancienne génération. Pour des raisons commerciales, il fut porté sous UNIX et s’adresse maintenant à des SGBD-R de nouvelles génération ; Oracle et Sybase. Il a également été étendu de manière à offrir une interface web. Ce système hérité doit maintenant faire face à de nouveaux défis, comme la croissance de la taille des bases de données. Durant ces 20 dernières années, nous avons pu observer la fusion de plusieurs entreprises, ce qui implique la fusion de bases de données. Ces dernières peuvent dépasser les 1 Téra de données et plus encore sont à prévoir à l’avenir. Dans ce nouveau contexte, le langage ADL montre des limites à traiter une aussi importante masse de données. Des patterns de code, désignant des structures d’accès en base, sont suspectés d’être responsables de dégradations des performances. Notre travail consiste à détecter toutes les instances de patterns dans le code source, puis d’identifier les instances les plus consommatrices en temps d’exécution et en nombre d’appels. Nous avons développé un premier outil, nommé Adlmap, basé sur l’analyse statique de code, et qui permet de détecter toutes les accès en base dans le code source. Les accès en base identifiés comme patterns de code sont marqués. Le second outil que nous avons développé, nommé Pmonitor, est basé sur une analyse hybride ; combinaison d’analyses statique et dynamique. Cet outil nous permet de mesurer les performances des patterns de code et ainsi, d’identifier les instances les moins performantes.