Validation modéle et code
Suite à un échange avec Hephaistos007 j'ai décidé d'ouvrir ce post.(voir 2-3 dernières réponses)
Merci Hephaistos007, je comprends mieux cela facilite aussi l'écriture de test automatisé comme le test de modéle uml ou/et de code et surement pleins d'autres choses.
Par contre quand tu dis qu'en langage naturel c'est plus difficilement exploitable en fait il s'agit de spécialiser un analyseur syntaxique par exemple pour les gardes dans les diagrammes d'état.
La question est surtout comment à mon niveau de modeleur-concepteur-developpeur je peux intégrer un niveau de transformation de mon langage naturel avant d'envoyer le tout à la moulinette de la norme ou de l'outil logiciel que j'utilise (comme eclipse ou encore bouml) ?
Pour ceux qui connaissent le sujet beaucoup ou peu vous pouvez tentez alors d'exposer pour les autres ou de poser des questions afin d'explorer le sujet
:merci:
Model - Metamodel - Meta metamodel
Hervé,
Je comprend ta remarque et tu as raison dans l'absolue.
Jusqu'a présent on avait des vues métiers réprésenté par des diagramme UML. De cette vue métier ont sauvegardait un fichier xmi qui était appelé le model. Si un utlisateur avait plusieurs vue, cela faisait plusieurs models et il fallais ensuite une transformation pour rajouter des règles de constructions pour avoir un metamodel. Voilà ce que font tous les outils UML du marché avant que Omondo accepte d'intégrer la vision du metamodel unique que j'ai proposé.
Ce concept consiste a monté plus haut dans l'abstraction, c'est à dire au niveau MOF en utilisant EMF. A chaque création d'élement UML ce lance un appel vers le MOF qui merge l'Id UML avec les Id existante. Donc on fait d'un coup de manière transparente ce qui nécéssitait avant 2 étapes. C'est à dire le diagramme UML est tout de suite un XMI + règle de construction du model consolidé dans un metamodel plutot que de passer par le diagramme, ensuite sauvegarde xmi et ensuite règle de consolidation.
Les avantages sont énormes pour l'utilisateur qui se libère de la gestion des modèles pour ce concentré sur son métier. Cela donne la possibilité de travailler à un niveau au dessu et directement sur le metamodel et non le diagramme comme model. Je préfére parler de Structure UML du Model plutôt que de meta model même si c'est la même chose car cela est une confusion pour l'utilisateur et on ne comprend pas bien l'esprit d'UML 2.2
Comment cela marche: La Structure UML du model est synchronisé avec les diagrammes, qui sont désormais une vue de cette structure et pas juste une vue métier graphique. La Structure UML contient le métier qui lui est crée par les diagrammes UML précédent. Toute nouvelle information est sauvegardé dans la structure uml. Toute information existante est visionable dans les diagrammes UML sans ajouter d'information. On distincte donc 2 type de modeleurs. Le premier qui crée la structure du modèle et le second qui visualise les élements UML déjà existant afin d'en produire des diagrammes UML.
Il est possible par exemple d'avoir une vue "Métier de l'assurance" et de crée une Structure UML de ce modèle métier. Ensuite la Structure UML du model assurance est donné à des équipes qui vont en sortir des vues diagrammes correspondant à leur spécificités métiers. Il s'agit dans cette étape de reconstruire des diagrammes par le drag and drop d'élément UML de l'XMI vers les diagrammes.
Cela fait une grosse économie de temps et donne déjà un socle de départ.
L'autre intérêt de cette approche est permettre un cycle complet entre les équipes de modeleurs de haut niveau, modeleur applicatif, architectes et aussi équipe de developpement. Enfin cerise sur le gateau, dans un cycle agile nécéssiatant des itérations, la structure uml du modèle métrier assurance est remis à jour à chaque itération car le modèle métier est mergé avec la Structure UML afin de partir sur une nouvelle itération. Bien sûre que dans ce cas c'est pas le modèle qui drive la génération de code, mais le modèle qui est un complément au code.
J'espère que mon explication apporte des éclaircissements sinon n'hésiter à me poser des questions je serai ravi de continuer ce débat.