Axe Ingénierie Logicielle

Expertise de l’axe Ingénierie Logicielle (IL)

L’industrie du logiciel connait actuellement une profonde une mutation. Anciennement cantonné dans des centres de calculs administrés par des spécialistes, destiné à intégrer des systèmes embarqués très coûteux, opérés par des spécialistes, communiquant de façon très cadrée, le logiciel est aujourd’hui présent dans notre quotidien (internet des objets), destiné à être manipulés par des profanes, hyper-connecté, développé de façon massive. Il émerge ainsi de nouvelles exigences de conception et de gestion d’architectures logicielles plus complexes (systèmes de systèmes), souvent sensibles à leur contexte et capables de s’y auto-adapter (intelligence ambiante). Notre objectif est de fournir des méthodes, modèles et outils permettant de gérer le développement d’architectures logicielles de qualité maîtrisée et contrôlée. Nous travaillons sur des approches d’ingénierie dirigée par les modèles (langages de description d’architectures) intégrant des méthodes formelles ou des techniques d’intelligence artificielle afin de proposer une assistance ou une automatisation de la construction ou de l’évolution d’architectures logicielles.

Cet axe de recherche se subdivise en deux parties qui concernent respectivement le développement d’approches par composant et la construction incrémentale de modèles comportementaux UML intégrant des procédures de vérification:

Nous étudions ici les démarches de développement de systèmes logiciels dirigées par les modèles en nous intéressant plus spécifiquement aux architectures logicielles basées sur les composants et les services. Les problématiques abordées sont celles de la définition et de la gestion du cycle de vie des architectures, depuis leur construction jusqu’à leur réutilisation, en passant par leur validation et la gestion de leur évolution, tant dans les processus de conception qu’à l’exécution. Sont étudiés plus spécifiquement :

  • La construction incrémentale d’architectures à base de composants incluant des mécanismes formels de vérification de conformité (préservation des propriétés de vivacité) des modèles comportementaux et structurels à chaque étape de la conception et contribuant à une démarche agile de modélisation de composants interopérables. Le prototype Incremental Development of Conformance Models (IDCM) qui résulte de ces travaux permet d’accompagner la construction incrémentale de modèles comportementaux de type Machine à Etats ou Assemblage de Composants. IDCM permet de vérifier le raffinement et l'extension de modèles UML de manière à s'assurer que les caractéristiques dynamiques sont préservées durant la construction ;
  • L’assemblage autonomique de composants logiciels basé sur des descriptions externes étendues définissant des capacités de collaboration des composants aux niveaux syntaxique (signatures, interfaces) et sémantique (protocoles d’interaction et modèles de ports composites) ;
  • La gestion de l’évolution non anticipée de logiciels à base de composants suivant deux approches complémentaires : la recherche automatique d’un composant ou d’un assemblage de composants compatibles et l’évolution graduelle d’architectures à base de composants (maintien temporaire en production de deux versions différentes du composant à remplacer pour assurer une transition progressive, intégrant des phases de test, vers le composant de remplacement) . Un démonstrateur a été développé suite aux travaux de la thèse. Il s’agit d’une  extension du framework de développement à base de composants Fractal. Cette extension a consisté à intégrer un modèle de ports composites et de contrôleurs gérant l’évolution non-anticipée par la construction automatique d’assemblages basée sur des heuristiques d’exploration de l’espace des solutions (search-based software engineering) ;
  • Le développement et l’évolution de logiciel centré-architecture, basé sur la réutilisation de composants logiciels et s’appuyant sur un langage de description d’architectures (ADL) à trois niveaux
  • La construction et la gestion d’annuaires de composants logiciels ou de services basés sur la description syntaxique de fonctionnalités et sur une relation de compatibilité (pour la substitution ou la connexion) inspirée de la spécialisation dans les langages à objets. Ce travail permet la construction automatique d’annuaires grâce à un processus itératif en trois étapes utilisant l’analyse formelle de concepts. Il a abouti au démonstrateur COCOLA qui est un annuaire de composants gérant la construction automatique de hiérarchies de types, par analyse formelle de concepts, afin de supporter des requêtes de recherche de composants compatibles (connexion, substitution);
  • La reconfiguration autonomique d’architectures logicielles à base de composants pour gérer l’adaptation dynamique d’applications sensibles au contexte. Un prototype a été développé suite à ces travaux de thèse : SAASHA. Il s’agit d’un Système multi-agents gérant la reconfiguration autonomique d’architectures logicielles à base de composants et assurant le contrôle d’environnements domotiques afin d’assurer leur adaptation aux changements de contexte d’exécution ;
  • La gestion de scénarios utilisateurs basés sur des compositions de services dans les systèmes pervasifs et ubiquitaires. Cet travaux ont été à la base du développement du prototype AROLD qui est un Système multi-agents doté d’un langage de description de missions permettant de gérer le déploiement et la reconfiguration autonomique de chorégraphies de services dans les systèmes pervasifs afin d’assurer l’adaptation dynamique aux changements de contexte de l’exécution des missions
  • La construction de lignes de produits logiciels par rétro-ingénierie automatique de codes source et de modèles basée sur différentes techniques d’extraction et de structuration de l’information (analyse formelle de concepts, latent semantic indexing, etc.)
  • La gestion d’exceptions concurrentes dans les environnements distribués (systèmes à base d’agents, de composants ou de services) intégrée à un mécanisme de réplication

Cette activité de recherche s’est concrétisée au travers des réalisations essentielles suivantes :

  • SAS : Framework de gestion de scénarios utilisateurs dans les environnements d’intelligence ambiante. Orchestration de compositions de services intégrant des mécanismes de partage (mobilité, distribution, gestion de droits, réutilisation) et de fiabilisation (substitution dynamique de services, reprise, réplication)  http://www.lgi2p.mines-ales.fr/~mfaure/Projects.php) ;
  • DEDAL : Langage de description d’architectures (ADL) multi-niveaux, permettant de définir graduellement, suivant un cycle de développement, la spécification, la configuration (implémentation) et le déploiement (instanciation) d’une architecture. Gestion de l’évolution par intégration de l’expression des changements et du versionnement  http://perso.ens-lyon.fr/huaxi.zhang/Dedal.html) ;
  • IDCM : Incremental Development of Conformance Models. Définition d’un meta-modèle d’architectures à base de composants et développement d’un environnement dédié à la construction et la vérification de conformité d’architectures sous SIRIUS.
     

Effectif

Cet axe compte actuellement 3 EC ETP, dont 2 HDR. Une thèse est en cours et une débutera en octobre 2018, toutes deux inscrites à l’école doctorale I2S (Information Structure Systèmes) de l’Université de Montpellier.

Implication dans la formation d’Ingénieur IMT Mines Alès

Cet axe contribue à l’ensemble des filières proposant des enseignements relevant du génie logiciel (algorithmique, programmation orientée objets, conception de logiciels, bases de données, ingénierie des exigences, programmation distribuée, ingénierie dirigée par les modèles, vérification/validation,…) : tronc commun, département EMACS/2IA, INFRES, MKX, Mécatronique, Master CTN d’IMT Mines Ales.

Activité contractuelle

L’activité contractuelle de l’axe est variée : financement régional en relation avec une PME (E-Secure) ou un projet de l’incubateur (FeelTune), financement industriel direct (KYOMED), financement national ou européen (ANR FACOMA, FUI Hydroguard, MASK—ARIA).

Rayonnement scientifique

Nos travaux ont produit 16 publications de type ACL sur la période 2014-2018 (source Scopus). Les membres de l’axe ont participé au comité d’organisation de la conférence Automated Software Engineering 2018 (conférence internationale de rang A).

Partenariat Scientifique

Collaboration suivie (9 thèses co-encadrées) avec l’équipe MAREL du LIRMM. Projet de création d’une équipe commune de génie logiciel. Membre du consortium du projet HUT (HUman at home projecT) de l’Université de Montpellier (projet transdisciplinaire impliquant 13 laboratoires de recherche).
Collaboration également avec :

  • LIRMM
  • I2ML (Institut Méditerranéen des métiers de la longévité)
  • Université de Sherbrooke (Canada)
  • Université Austral/Abierta  (Argentine)