Axe de recherche Ingénierie de Systèmes Logiciels

Axe de recherche Ingénierie de Systèmes Logiciels

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.
     

Collaborations:

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