Un langage spécifique au domaine pour l'outil de correction de travaux de programmation Oto

L'utilisation d'un outil d'aide a la correction peut contribuer a faciliter et a accelerer la correction de travaux pratiques de programmation. Au fil des ans, plusieurs logiciels ont ete developpes a cette fin, mais souffraient souvent d'un manque de flexibilite et etaient limites a un seul langage cible. Face a cette situation, l'outil Oto, developpe a l'UQAM en langage Ruby, se voulait generique et extensible, pouvant theoriquement appliquer n'importe quel test a n'importe quel travail pratique. Toutefois, l'utilisation d'Oto en situation reelle a permis de constater que l'outil souffrait de certains defauts susceptibles de nuire a son utilisation a grande echelle, notamment en raison du manque de flexibilite de ses scripts de correction et de ses performances relativement faibles. Dans ce memoire, nous presentons les modifications que nous avons apportees a Oto pour en ameliorer la flexibilite et les performances. D'abord, nous avons analyse l'outil pour en comprendre le fonctionnement et en localiser les faiblesses, qui provenaient principalement de choix architecturaux de coordination des tâches de correction. Nous nous sommes ensuite attardes sur les caracteristiques et les capacites qui devraient etre offertes par Oto. Notre solution est passee par le remplacement du mecanisme de scripts Oto par un langage specifique au domaine de type interne (internal DSL) base sur Ruby. Au meilleur de nos connaissances, nous sommes les premiers a avoir eu recours a une telle approche dans le cadre d'un outil d'aide a la correction. Les resultats que nous avons obtenus avec le DSL Oto sont venus confirmer une hausse considerable de la flexibilite et une amelioration des performances de l'outil, particulierement pour les scripts de correction ayant recours a un nombre eleve de courts tests et aux corrections intra-groupes. ______________________________________________________________________________ MOTS-CLES DE L’AUTEUR : Programmation, Correction automatisee, Outils d'aide a la correction, Oto, Ruby, Langages specifiques au domaine, DSL.