IRIT - UMR 5505

English
CNRS
INPT
UPS
UT1
UTM
  Bandeau IRIT
 

  Millan Thierry


  Statut : Permanent
  Fonction : Maitre de conférences à l'Institut Universitaire de Technologies "A" - Université Paul Sabatier
Responsable de la filière informatique auCNAM Midi-Pyrénées
  Service/Equipe :  Modèles, Aspects et Composants pour des Architectures à Objets
  Contact : Thierry.Millan@irit.fr
  Localisation : IRIT1 / Niveau 4, Pièce: 428
  Téléphone : 05 61 55 6782
  Page Web personnelle :  https://www.irit.fr/~Thierry.Millan
  Publications :

 

 

Recherche

 Thèmes de recherche

Validation de modèles UML avec le langage OCL

 

 Recherches actuelles

De très nombreuses raisons contribuent à la justification de vérifier et de transformer des modèles. On peut ainsi citer trois exemples : aider à la réflexion lors des phases de spécification et de conception, s’adapter à la projection sur différentes plates-formes cibles sous le contrôle des concepteurs/développeurs et être ouverts au travail collaboratif. Dans le cas d’une opération de fusion par exemple, il s’agit d’être capable de manipuler au moins deux modèles en entrée et un modèle en sortie. En référence à la composante « View » de la norme QVT (Query / View / Transformation), la création de vues entre également dans le périmètre de ces besoins.

La plate-forme NEPTUNE II s’inscrit dans cette logique de vérification et de transformation de modèles. Elle utilise une extension du langage OCL (Object Constraint Language) lui permettant aussi bien de respecter la norme de l’OMG lors des vérifications que de la relâcher pour effectuer des transformations.

Notre approche vise à étendre le langage OCL vers la manipulation simultanée de plusieurs modèles et vers la transformation de modèles. Le choix d’OCL résulte pour l’essentiel de sa position en tant que standard intégré à UML et de ses facilités de navigation au sein des métamodèles dont les modèles sont issus. On peut donc ainsi imaginer l’écriture en OCL étendu d’opérations telles que la fusion ou la comparaison d’éléments de modélisation, justifiant l’existence de contrats après une étape de transformation.

L’extension du langage OCL, que nous noterons pOCL (procedural OCL), est donc composée de deux fonctionnalités : l’une pour l’accès et la manipulation simultanés de plusieurs modèles conformes à des métamodèles différents et l’autre pour l’introduction de primitives de transformation.

La mise en œuvre des transformations et des vérifications inter-modèles n’est possible que par l’utilisation d’un synthétiseur de types qui permet de typer et de contrôler les différentes expressions manipulées. La structure des types OCL est organisée selon trois treillis de types, complémentés par un type bottom commun : OclVoid. Ces trois treillis sont respectivement le treillis des types atomiques OCL (types primitifs d’OCL et métaclasses des métamodèles manipulés), le treillis des types associés aux collections homogènes (set, bag, sequence par exemple) et le treillis des collections hétérogènes (tuples).

Cette structuration des types permet de vérifier dynamiquement que les données manipulées et générées ont un type conforme au métamodèle dont-elles sont issues. Le typage dynamique des expressions permet de calculer au fur et à mesure le type du résultat ; ce typage dynamique évite au programmeur OCL de « forcer » les types avec la primitive OCL oclAsType, ce qui simplifie l’écriture des règles sans pour autant affaiblir le contrôle des expressions. L’utilisation simultanée de plusieurs métamodèles s’intègre parfaitement à cette structuration car toute métaclasse appartient au premier treillis. Il en résulte que deux classes issues de deux métamodèles disjoints ont au moins une métaclasse commune, la métaclasse OCL oclAny, et une métaclasse OCL qui les spécialise, la métaclasse oclVoid. Ces deux classes sont essentielles pour le synthétiseur de types car elles définissent respectivement le type top et le type bottom du treillis, ce dernier étant le type de référence lors du calcul du type des éléments d’une collection. Le système de types ainsi défini est homogène et n’est nullement perturbé par la manipulation simultanée de plusieurs métamodèles. Il en résulte donc une intégration simple de l’aspect multi-méta-modèles au système de types.

 

 Développement d'Outils :

Développement de l'atelier NEPTUNE

 

 Organisation de journées thématiques :

Co-organisateur avec la société CS & Communication et Système des journées NEPTUNE qui se déroulent à Paris tous les ans

 

 Participations à des projets :

2005 – 2010 : Projet ANR/DGE : TOPCASED http://www.topcased.org/

L'objectif de Topcased est de couvrir l'ensemble des besoins de développement logiciel et système (la branche descendante du cycle en V), ainsi que les besoins transverses comme la gestion de configuration, la gestion des changements ou l'ingénierie des exigences.

L'atelier suit une approche de type MDE (Model Driven Engineering, ou Ingénierie dirigée par les modèles) au niveau de ses fonctionnalités et de ses méthodes de développement.

2007 – 2009 : Projet ANR : DOMINO http://www.domino-rntl.org

Le projet DOMINO (DOMaINes et prOcessus méthodologique) propose une démarche basée sur la description d’un système par divers modèles exprimés dans des langages de modélisation dédiés différents, en exploitant l'Ingénierie Des Modèles (IDM ou en anglais MDA/MDE pour Model Driven Architecture/Engineering) pour fiabiliser tout processus d'ingénierie accompagnant le développement de logiciels. Le terme de processus fiable, fondamental dans le contexte d’une modélisation multi-formalisme, doit être compris comme l’ensemble des techniques permettant de concevoir et fiabiliser des logiciels ayant des contraintes importantes de continuité de service en opérationnel. Fiabiliser un processus de développement est la première étape essentielle pour délivrer un service de confiance justifié.

2000 – 2003 : Projet National : ADELFE https://www.irit.fr/ADELFE/

Le but de ce projet est de réaliser un Atelier de DEveloppement de Logiciels à Fonctionnalité Emergente (ADELFE). Ces logiciels sont basés sur les techniques des systèmes multi-agents adaptatifs et auto-organisateurs développés à l'IRIT et à ARTAL. Par leur capacité d'adaptation, ces systèmes multi-agents sont aptes à fonctionner dans un environnement à très forte dynamique et à faire face à des imprévus. Ces logiciels sont adaptés pour résoudre des problèmes complexes, distribués pour lesquels un contrôle global est impossible à mettre en œuvre. Avec l'essor des technologies du futur comme Internet, l'évolution des réseaux de machines, ce type de logiciels apporte des solutions aux problèmes de conception de logiciels adaptés à des applications dans ces environnements. Actuellement, il n'existe pas de méthodologie et d'aide à la conception pour ces systèmes adaptatifs. La réalisation de cet atelier de développement consiste à donner :

  • une méthodologie de conception ;
  • une notation basée sur UML ;
  • une plate-forme qui fournira un outil de modélisation visuel, une bibliothèque de composants permettant des simulations et un prototypage rapide.

1999 – 2002 : Projet Européen : NEPTUNE IST-1999-20017 http://neptune.irit.fr

Le projet NEPTUNE vise principalement à améliorer l'utilisation de la notation UML dans le cadre de l'ingénierie du logiciel. Le projet NEPTUNE a permis, d'une part, la réalisation d'outils permettant la vérification de la cohérence entre les différents diagrammes UML et la génération de documentations. Ces outils supportent la définition d'une méthodologie d'analyse et de conception avec la méthode UML dans le cadre de deux activités : Le génie logiciel et les processus d'affaire.

1999 – 2002 : Projets Régional : MERCURE

Le projet MERCURE est une extension du projet NEPTUNE. La première extension concerne la partie démarche. Cette première extension vise à étendre la démarche NEPTUNE à la phase d’analyse de l’existant. Pour ce faire, cette extension est basée sur la méthode Merise. La seconde extension vise à réaliser un compilateur OCL pour l’outil TAU UML Suite 2 de notre partenaire Telelogic. Ce compilateur transforme du code OCL en TCL.

 

 

Haut de page

 

Enseignement

 Enseignements au département informatique de l'IUT "A"

Diplôme Universitaire de Technologie

  • Responsable du cours de production du logiciel en année spéciale
  • Responsable du module complémentaire Java et les applications réparties en seconde année et année spéciale
  • Responsable du cours de bases de données avancées en année spéciale
  • Cours bases de données en seconde année

 Vacataire au Conservatoire Nationnal des Arts et Métiers

 

 

Haut de page