Motivation

Le Génie de la Programmation et du Logiciel est au coeur de l’activité informatique. Les concepts, méthodes et les outils de conception et de validation de logiciels constituent les éléments manipulés par les informaticiens pour maîtriser et automatiser les problèmes qui leur sont soumis. Les grandes thématiques du domaine sur lesquelles les chercheurs du domaine travaillent depuis de nombreuses années sont :

  • l’ingénierie des exigences et la traçabilité logicielle,
  • l’ingéniérie dirigée par les modèles, qui exploite une continuité entre modélisation, conception et programmation et s’appuie sur des techniques de transformation de modèles,
  • l’ingénierie des lignes de produits logiciels,
  • l’utilisation de patrons pour l’analyse, l’architecture ou la conception de logiciels,
  • l’utilisation des aspects pour la conception et la programmation, ce qui permet une séparation des préoccupations et une meilleure prise en compte de l’évolution,– la conception à base de composants et d’une façon plus générale, l’étude des frontières dans le logiciel (modules, composants, aspects, services),
  • les approches de compilation pour des architectures spécifiques,
  • la conception et l’utilisation de langages métiers et de langages spécifiques à des domaines,
  • la conception de langages plus sûrs et plus expressifs,
  • le développement des techniques de vérification et de validation à partir de spécifications ou de code : analyse statique, génération de tests et raffinements prouvés,
  • la maintenance logicielle,
  • la testabilité logicielle.

De plus, avec l’omniprésence de l’informatique dans notre vie que ce soit en termes d’informatique embarquée, d’intelligence ambiante, d’extension du web au niveau de la planète, d’intégration dans les objets du quotidien, ou encore avec le développement de grandes infrastructures de calcul ou des centres de traitement de grandes masses de données, de nouvelles questions de recherche sont posées. De nouveaux paradigmes, de nouveaux langages, de nouvelles approches de modélisation, de vérification, de tests et de nouveaux outils dans le domaine de la programmation et du logiciel devraient voir le jour dans les 5 à 10 ans à venir, que ce soit pour faciliter la vie des concepteurs de logiciel, pour modéliser et fiabiliser les logiciels ou encore pour devancer l’évolution technologique, mais également pour prendre en compte de nouveaux enjeux de société tels que le développement durable et les économies d’énergie.
Six grandes familles thématiques ont été définies lors de l’action de prospective que nous avons menée en 2010 (texte en annexe), à savoir la structuration des logiciels pour leur évolution, la prise en compte de l’utilisateur final, l’accès aux composants et services, la prise en compte de la consommation de ressources dans les outils du logiciel, la modélisation de connaissances et de l’incertain et, finalement, la place des méthodes et outils de vérification et de validation. Sans vouloir être exhaustif, ces six familles regroupent une grande partie des thèmes de la programmation et du génie logiciel abordés par les équipes françaises actuellement. D’autres thèmes non identifiés en tant que tels suscitent des débats et donnent également de nouveaux enjeux pour les travaux de recherche futurs dans le domaine. Il s’agit du continuum dans le développement, des approches agiles, de l’association entre connaissance et développement, du dialogue avec l’utilisateur pendant les phases de développement et de l’apprentissage par les usages, le développement et l’exécution dans des environnements ouverts, la complexité et le passage à l’échelle dans l’utilisation des approches formelles, de l’utilisation de vues dynamiques pour manipuler ou remodulariser des objets existants, et, finalement la contractualisation et la responsabilité face aux utilisateurs du logiciel.