Note concernant le format des mémoires
Pour ceux-celles intéressé-e-s à faire un
mémoire sous ma direction: Prenez note que,
dorénavant, je n'accepterai de lire que des mémoires
écrits en LaTeX. Si vous ne connaissez pas LaTeX et que vous
voulez travailler sous ma direction, alors il vous faudra l'apprendre,
car je n'accepterai pas de lire un mémoire écrit avec
Word. Un squelette de mémoire, dans le format UQAM, est disponible ici. De plus, vous
devrez aussi apprendre à utiliser CVS -- pour lequel vous
pouvez trouver de
l'information ici -- puisque l'ensemble de votre mémoire
devra être conservé dans un dépot CVS.
Quelques idées de projets liés à mes
principaux intérêts de recherche
- Étude des applications possibles de la
vérification de modèles basée sur la logique
floue à des problèmes non informatiques (par ex.,
gestion).
- Développement d'un langage de Workflow pour services Web,
mais plus léger et fondé sur un langage de scriptage, et
utilisant une approche de "Convention over configuration" dans le
style de Ruby on Rails.
- Définition d'un langage de haut niveau (avec
représentation textuelle et graphique) pour la
spécification de modèles d'affaires basés sur BPEL4WS.
- Application d'outils de vérification de modèles
à des processus d'affaires spécifiés en BPEL4WS
- Modélisation des notions utilisés en WSDL, BPEL4WS
et WS-CDL à l'aide des concepts d'architecture de logiciels
utilisés dans d'autres approches, par ex., RM-ODP,
modèle composants/connecteurs.
- Application de la programmation génétique à
la composition de services Web.
- Génération de choréographies de services
d'affaires par analyse de leur Use Case Maps.
- Développer un langage de spécification formel
pour les contrats de services web (WSDL-Contract).
- Développer un langage de spécification formel
pour les protocoles de services web, d'un niveau plus
abstrait (moins opérationnel) que BPEL4WS.
- Modéliser l'architecture de systèmes basés
sur les services Webs, tant du point de vue statique (à la
LePus) que dynamique.
- Développement et mise en oeuvre d'un langage de
composants basé sur Ruby.
- Développement d'une instantiation du framework
de composants logiciels Fractal pour les services Web.
- Modélisation de la sémantique d'un langage de
composants basé sur le pi-calcul.
- Étendre le langage JML avec des spécifications de
protocoles d'utilisation (à la "behavior protocols"
--- donc aller au-delà des contrats basés uniquement sur
les pré/post-conditions.
Autres idées de projets
- Définition de services Web de type REST pour
l'utilisation de l'outil de correction Oto.
- Développement d'un module de correction de programmes
Java basé sur l'évaluation de la qualité du code
et de la conception (mesures orientées objets).
- Améliorer le langage OtoScript (utilisé pour
décrire les tâches de correction à effectuer dans
le cadre de l'outil Oto) pour le rendre plus puissant, plus facile
d'utilisation -- ceci pourrait très certainement se faire de
façon intéressante et élégante en Ruby
avec un "internal DSL".
- Utilisation de spécifications formelles pour la mesure des
points de fonction de logiciels.
- Modélisation de processus biologiques à l'aide du
pi-calcul.
- Développement d'un générateur
d'obligations de preuve pour le langage de spécification
Spec et création d'une interface avec un prouveur de
théorèmes.
- Développement d'un générateur de
squelettes de modules Ada ou Java (avec pré/post-conditions
exécutables) à partir de spécifications
Spec.
- Modélisation formelle d'un processus de
développement de logiciels à l'aide d'une notation
basée sur une algèbre de processus.
- Utilisation d'algèbres de processus pour la
modélisation formelle et l'analyse d'architectures logicielles
- Conception et mise en oeuvre d'un langage de
spécification de contraintes pour la correction
semi-automatique de programmes (ou spécifications) soumis par
les étudiants dans les cours de programmation (de
méthodes formelles).
- Étude de l'influence de l'utilisation d'une approche TDD
(Test-Driven Development) sur la qualité du code
produit.
- Étude de l'influence de l'utilisation d'une approche TDD
(Test-Driven Development) sur l'apprentissage des concepts de
la programmation orientée-objets.
- Identifier (à l'aide de la méthodologie
proposée par Normand Séguin dans sa thèse de
doctorat) les principes sous-jacents aux méthodes
agiles de développement de logiciels.