Archive for the ‘A suivre’ Category

Une syntaxe concrète pour ASL

Mercredi, octobre 22nd, 2008

image Pas trop tôt ! L’OMG a enfin proposé un RFP pour une syntaxe concrète pour ASL (Action Semantics Language). Dit comme ça ça ne fait pas trop rêver :-) Pourtant c’est depuis longtemps un de mes dadas et un sujet dont je parle régulièrement dans mes présentations/séminaires MD.

La norme UML2 définit une syntaxe abstraite (un méta-modèle) pour décrire les actions sur un modèle statique : ASL. C’est ce méta-modèle qui est derrière une bonne partie des diagrammes dynamiques d’UML.

Autrement dit, aujourd’hui, pour décrire un comportement en UML (le contenu d’une méthode par exemple) on dispose des diagrammes dynamiques (activités, séquence, vue d’ensemble des interactions) mais pas d’un langage de programmation (une syntaxe concrète). Même si aucune norme n’existe, certains outils (peu finalement) incluent leur version propriétaire d’un tel langage :

Pourquoi suis-je si intéressé par le sujet ? A mon avis l’absence d’un tel langage dans les modeleurs actuels est un des freins majeurs à l’adoption de démarches MD.

Je m’explique : un modèle source d’une approche MD (le PIM en MDA), pour permettre de générer un pourcentage raisonnable du code (>50% sinon on est pas vraiment centré sur le modèle), doit inclure l’aspect comportemental (les règles de gestion du domaine par exemple).

En théorie il y a tout ce qu’il faut dans UML pour modéliser un algorithme avec les diagrammes dynamiques.

Dans la réalité celui qui a déjà essayé sait que l’approche n’est pas pertinente ! Si on veut pouvoir produire le code cible à partir de ces diagrammes ils doivent être équivalents à du code, c’est-à-dire être complets et extrêmement rigoureux.

Or les diagrammes dynamiques d’UML n’ont pas été faits pour être compilés : ils sont très difficile à maintenir et surtout, leur syntaxe, telle qu’implémentée dans les modeleurs, est toujours incomplète et la plupart du temps beaucoup trop laxiste.

Une syntaxe concrète (i.e. un langage de programmation) associée à ASL suffirait donc pour non plus modéliser, mais programmer en UML !

Avantage supplémentaire de l’approche : on peut simuler, et donc tester, ces méthodes avant même de disposer des transformateurs vers la plate-forme cible.

On espère que (pour une fois à l’OMG !) cette RFP donnera lieu rapidement à un standard dont les éditeurs s’empareront.

Texte et modèle

Dimanche, décembre 23rd, 2007

Même si quand on pense modèle, on voit le plus souvent un diagramme avec des boites et des flèches, il est souvent plus intéressant de produire un modèle sous forme de texte compréhensible par un humain.

C’est en particulier souvent bien plus efficace pour exprimer la composante dynamique du modèle. Ceux qui me connaissent savent que je suis à la recherche d’un Graal : une syntaxe concrète correspondant à la sémantique des actions d’UML (ASL en est la syntaxe abstraite).

Pour parler clairement : un langage permettant d’écrire le corps des méthodes en UML sans être lié à une technologie ou un langage cible.

eclipse

Il y a peut-être de l’outillage en vue : TMF (Textual Modeling Framework) serait le pendant textuel de GMF pour la partie graphique. GMF est un framework générique pour instancier le (méta-)modèle EMF via des éditeurs graphiques. TMF permettrait la même chose via des éditeurs textuels.

C’est encore à l’état de « proposal » mais ça mérite d’être suivi.