Nos partenaires

CNRS

Rechercher





Accueil du site > Français > Thèmes de recherche > Thème 7 - Sûreté de développement du logiciel > Equipe MACAO > Activités de recherche

Modèles : formalisation, analyse et transformation

L’accroissement de l’intérêt de l’IDM dans des domaines industriels tels que l’aéronautique nous invite à poursuivre nos efforts afin de définir une approche souple et intégrée basée sur les modèles partant des exigences et couvrant jusqu’à la simulation et dans laquelle les modèles sont utilisés pour :

  • Tracer les raffinements durant le processus de développement ;
  • Aider à la gestion des modèles apparaissant à différents niveaux et dans différents domaines ;
  • Adresser les problématiques de la documentation et des certifications.

L’équipe a travaillé sur les approches basées sur les patrons pour l’ingénierie du logiciel et des systèmes au cours des projets FP7 TERESA et FUI SIRSEC dont l’un des principaux résultats est la réalisation de l’outil SEMCOmdt. Nous avons l’intention de renforcer notre thématique sur l’approche basée sur les patrons pour intégrer des aspects plus larges tels que la gestion des exigences ou l’étude des résultats de simulation. L’originalité de notre approche est de capitaliser autour de techniques qui ont prouvé leur efficacité dans le domaine du génie logiciel et de les appliquer à l’ingénierie système. Il reste encore d’importants défis à relever comme le passage à l’échelle des techniques sous-jacentes, le fossé à combler pour faire accepter l’approche basée sur les modèles en particulier ingénieurs du terrain, ou le mélange de la simulation et de la dynamique continue et discrète, etc.

Une autre approche traitée par l’équipe concerne le paradigme de la réutilisabilité dans les processus logiciels et système. Dans des travaux antérieurs nous avions proposé un squelette pour capturer et réutiliser des éléments de processus définis avec un formalisme spécifique. Cependant, pour améliorer le traitement de l’hétérogénéité intrinsèque induite par de gros projets, nous voulons capturer les éléments des processus non pas uniquement au niveau syntaxique mais aussi au niveau sémantique afin d’étudier les relations liant ces deux niveaux. Nous tentons d’utiliser les technologies basées sur les ontologies afin de décrire les éléments des processus qui peuvent être réutilisés pour créer et analyser les modèles de processus. L’analyse des modèles de processus peut nous amener à découvrir des points de transition dans le déroulement du processus et ainsi générer les besoins de mappages pour simplifier l’intégration dans les outils.

L’équipe est aussi active depuis des années dans la modélisation par points de vue des systèmes complexes. Le principal défi à relever est d’aligner la sémantique de modèles hétérogènes issus de différents méta-modèles, et d’évaluer les impacts lors des évolutions des dits modèles. Pour relever ce défi nous investiguons deux approches complémentaires :

  • formaliser la synchronisation et la maintenance des processus comme un processus collaboratif ;
  • utiliser les ontologies pour assister le concepteur durant le processus de manière à pallier les différences sémantiques entre les modèles.

Les systèmes modernes sont complexes, sujet à la volatilité des conditions des marchés, aux changements technologiques et au changement continu. Les processus d’ingénierie existants définis de manière rigide sur une base de cycle de développement en V&V deviennent inadéquats. Pour relever ce défi, la communauté du génie-logiciel promeut l’approche agile. Pour ce faire nous étudions un framework de gestion des processus basé sur les patrons qui fournirait de manière simple et flexible d’efficaces mécanismes de composition et d’instanciation de processus. Cette approche offrirait aux ingénieurs un processus permettant une réponse rapide au changement. Un point crucial dans les méthodes agiles est le paradigme dit du test en premier. La mise en œuvre de ce paradigme est possible par l’utilisation d’un Langage ubiquitaire pour le développement dirigé par les tests et le développement dirigé par le comportement. Dans ce contexte, un verrou scientifique est de proposé un langage équivalent dédié à l’ingénierie système.

Pour les systèmes à fortes exigences de sécurité, les évolutions nécessitent de réaliser les changements pour introduire de nouvelles caractéristiques ou corriger des erreurs tout en assurant que la sécurité est préservée. C’est un challenge car toute modification de l’architecture peut compromettre la sécurité et réciproquement. Nous prévoyons de relever ce défi en réalisant un framework de gestion des changements pour la co-evolution de la sécurité et de l’architecture qui pourrait, de manière semi-automatique, évaluer les changements de l’architecture et de la fiabilité lors des modifications futures de conception et ainsi optimiser les deux.