photo Jacques Malenfant

professeur en informatique
Laboratoire d'Informatique de Paris 6 (LIP6)
Sorbonne Université
Boîte courrier 169
4, Place Jussieu
F-75252 PARIS Cedex 05
Jacques.Malenfant[at]lip6.fr
téléphone (laboratoire) : +33 (0) 1.44.27.88.01

English version

Qui suis-je ?

Je suis professeur d'informatique au sein de l'UFR Sciences de l'ingénieur et membre du laboratoire LIP6 de Sorbonne Université. Je suis actuellement co-animateur de l'action transversale Architectures logicielles pour la Robotique (ALROB) des GDR GPL et Robotique.

Vitae

Après des études de baccalauréat en informatique-mathématique et de maîtrise ès sciences en informatique à l'Université Laval à Québec, j'ai poursuivi mes études de doctorat en informatique à l'Université de Montréal (thèse soutenue le 26 mars 1990). J'ai ensuite fait un stage post-doctoral au LITP (Université Pierre et Marie Curie) de 1990 à 1992 avant de devenir professeur au département d'informatique et de recherche opérationnelle de l'Université de Montréal (1992-96). En 1996-97, j'ai passé une année comme enseignant-chercheur à l'École des mines de Nantes avant de devenir professeur des universités à l'Université de Bretagne sud à Vannes (et Lorient). J'ai soutenu mon habilitation à diriger les recherches de l'Université de Nantes le 21 avril 1997. J'ai finalement rejoint l'Université Pierre et Marie Curie en 2003 par mutation, devenue Sorbonne Université le 1/01/2018 suite à la fusion entre l'UPMC et Paris-Sorbonne.

Activités de recherche

Mes recherches actuelles s'articulent selon deux axes complémentaires :

  1. la conception et l'implantation d'un modèle à composants pour les systèmes cyber-physiques et autonomiques prenant en compte différentes approches de décision et appliquant les principes de la théorie du contrôle, et
  2. la conception et l'implantation d'architectures logicielles réparties et de méthodologies de développement pour l'informatique autonomique (« autonomic computing ») et cyber-physique.

En ce moment, mes travaux portent sur l'implantation d'un modèle à composants répartis temps réel minimal en Java qui soit adapté au développement des systèmes cyber-physiques et autonomiques. Plus précisément, je travaille en ce moment à des composants dont le comportement est modélisé par des automates hybrides à la Lynch et Henzinger représentant des systèmes hybrides également inspirés des travaux de Branicky. Ces modèles par essence déclaratifs sont ensuite traduits sous la forme de modèles de simulation modulaire DEVS opérationnels issus des travaux de Zeigler implantés comme des greffons (« plug-ins ») réutilisables pour les composants. La composition des composants pour former une architecture tient alors compte de la composition de leurs modèles de simulation produisant des architectures capables de co-simuler les modèles de comportement et le code. Cette architecture peut alors s'appuyer sur ces modèles de simulation (donc exécutables) jouant le rôle de modèles à l'exécution (« models@runtime ») pour assurer les tests unitaires et d'intégration, la validation et la vérification voire la configuration au déploiement et la reconfiguration et l'auto-optimisation dynamique. Ces idées sont présentées dans une publication à la conférence IRC 2018 :

Concernant le domaine de l'informatique autonomique, j'ai participé à un projet ANR ARPEGE, le projet SALTY, dont l'objectif était de proposer des architectures logicielles génériques pour la boucle de contrôle autonomique dans le contexte des systèmes à grande échelle. Je me suis intéressé plus particulièrement à la partie « Décision » dans cette architecture, en proposant des approches de calcul automatique des politiques de décision (par exemple, apprentissage par renforcement) dont le cycle de vie est également géré de manière automatique (de l'initialisation jusqu'à la fin d'exploitation, en passant par les phases d'apprentissage et d'éventuelles détection de changements radicaux dans le modèle de comportement de l'élément géré, comme les mises à jour de son logiciel). Je m'intéresse également à la coordination à grande échelle des décisions des contrôleurs. La thèse d'Olga Melekhova s'est déroulée dans ce contexte et a proposé une approche fondée sur le passage de jetons qui a démontré sa capacité à coordonner efficacement et correctement un système de 10.000 composants autonomiques. Ces travaux ont été publié dans :

Ces recherches se fondent sur mes travaux antérieurs dans le domaine de la mise en oeuvre de langages de programmation et d'architectures réflexives pour l'auto-adaptation dynamique du comportement des logiciels. Mon objectif général peut se résumer par l'idée de fournir de nouvelles abstractions de programmation pour l'auto-adaptabilité dynamique en informatique en général et plus récemment donc dans le contexte de l'informatique autonomique et des systèmes cyber-physiques, en se plaçant d'emblée dans un contexte réparti et visant, à terme, celui des systèmes à grande échelle.

Concernant les architectures logicielles pour la robotique autonome, mes travaux visent à proposer un modèle de composants fondé sur l'utilisation d'interfaces riches à la Henzinger pour exprimer de manière déclarative toutes les contraintes de temps, de ressources et de communication sous la forme d'interfaces requises et offertes de manière à les composer dans des assemblages corrects par construction puis les déployer sur des plates-formes de manière sûre. Et ils sont rendus corrects non seulement par la vérification des contraintes mais par l'utilisation de ces dernières dans un solveurs de contraintes pour déterminer les paramètres de configuration qui les rendent corrects. Ces travaux ont été réalisés dans le cadre de la thèse d'Olena Rogovchenko.

Dans ce domaine de la robotique autonome, je suis actuellement membre du comité de pilotage de la série de conférences Control Architectures of Robots dont j'ai organisé à Paris l'édition 2007 et devenue depuis Software and Hardware Architectures for Robotic Control. Je suis également membre du comité technique de l'IEEE Software Engineering for Robotics and Automation et j'ai participé aux comités de programme des conférences IRC 2018 et IRC 2019.

Je m'intéresse ou me suis aussi intéressé dans le passé à la contractualisation des propriétés non-fonctionnelles des composants logiciels, aux concepts et à la formalisation de l'approche réflexive, à la programmation par prototypes, à l'intégration au sein d'un même langages des concepts de la programmation logique, concurrente et objets, et enfin à l'application des processus markoviens commandés et leur résolution par programmation dynamique.

Mes publications les plus marquantes en carrière sont (citations Google Scholar au 27/01/2019) :

Pour ceux et celles qui apprécient ou qui savent tirer une information utile de ces statistiques, mon h-index sur Google Scholar au 20 septembre 2018 était de 17 et mon g-index de 34 (34 articles recueillant au moins 34² citations, ce qui reconnait mieux les articles les plus cités). Ma publication la plus citée a 155 citations ; il y en a 7 qui sont citées plus de 90 fois dont 4 qui sont citées plus de 100 fois. DBLP compte 40 entrées à mon nom actuellement.

Mots-clés recherche : modèles et architectures logicielles fondées sur les composants ; informatique autonomique (autonomic computing) ; contrôle en boucle fermée des architectures logicielles ; systèmes cyber-physiques (cyber-physical systems, CPS) ; architectures logicielles pour la robotique autonome ; langages de programmation et architectures logicielles réflexives ; programmation contractuelle ; programmation par objets ; programmation répartie, embarquée et temps réel ; sémantique, conception et implantation des langages de programmation.

Activités d'enseignement

Je suis actuellement responsable d'une unité d'enseignement de la spécialité STL du master d'informatique de Sorbonne Université :

Plus généralement, mon expérience d'enseignement inclut des cours de langages de programmation (concepts, implantation, sémantique), structures de données, introduction à la programmation (par objets, fonctionnelle, logique), et langages formels à différents niveaux de bac+1 à bac+5, en université (canadienne et française) et en école d'ingénieurs.

Pour ces enseignements, il m'est arrivé d'écrire des supports complets :


Date de dernière modification : 18 février 2019.