m2c

Méta Modèle d'un langage de programmation fonctionnelle, Caméléon.
m2c version 0.1.2 (alpha draft) du 14/11/2014 par O. Cugnon de Sévricourt

Introduction

m2c permet de décrire une composition du langage Caméléon.
Une composition fonctionnelle est une suite ordonnée et structurée de fonctions et d'écrans permettant l'exécution d'un processus métier particulier.

m2c se base sur l'article "Cameleon language Part 1: Processor" par O. Cugnon de Sévricourt et V. Tariel.

Le modèle

Nous présentons deux modèles: un modèle se focalisant sur l'héritage entre concepts et un modèle graphique (diagramme de classe UML) se focalisation sur les compositions entre concepts.
Nous détaillons ensuite les différents concepts.




Figure 1 - Modèle de dérivation





Figure 2 - Modèle de composition/agrégation


Le concept de composant, <component>

Dans Caméléon, tout est composant.

Un composant est:
- un operateur <operator>,
- ou un controlleur <control>,
- ou une composition <composition>,
- ou une forme graphique <shape>,
- ou un texte d'illustration <texte>.

Une composition peut avoir été instancié à partir de l'un de ses dérivés instanciables, un schéma <pattern>.

Remarque
Il nous a semblé essentiel d'inclure certains éléments d'illustration (textes et formes) dans les composants constitutifs du langage.

Le concept de composition, <composition>

Une composition est un agréga de composants.
Chaque composant a une position dans l'espace. Une implémentation spécifique a une représentation graphique particulière de chaque composant.


Une composition peut inclure d'autres compositions. On parle de compositions inférieure pour les compositions incluses dans la composition courante. On parle de composition supérieure pour identifier la composition qui inclus la composition courante.

Remarque
Chaque composant possède une représentation graphique ainsi qu'une position dans l'espace.
Leur position et leur forme peuvent être déterminantes dans la compréhension de la composition.

Le concept d'opérateur, <operator>

Un opérateur est l'équivalent d'une fonction
* état
* condition d'execution
* fonction
* connecteurs (entrée & sortie)

Le concept de connecteur, <connector>

Un connecteur ...
* état
* donnée

Le concept de connection, <connexion>


Le concept de controlleur, <control>


Un controlleur est l'équivalent d'un écran. Il peut avoir des connections en entrée et en sortie portant des structures de données de tous types. Une interaction utilisateur permet de modifier les données d'entrée afin de produire des données sortie.
Cela peut également être une simple vue constituée uniquement de données de sorties ou un éditeur sans données d'entrée.
* fonction abstraite exécutée par l'utilisateur
* connecteurs (entrée & sortie)

Pour un controlleur, la condition d'exécution équivaut à la condition d'exécution standard d'un opérateur.

Remarque: Il est possible de décrire une équivalence <operator>/<control>.

Le concept de schéma, <pattern>


Un schéma implémente une composition instanciable à volonté (ie, pas de connection direct avec des composants inclus dans une composition supérieure).

Le concept de forme graphique, <shape>

Le concept de texte d'illustration, <text>

L'implémentation spécifique Caméléon

La version actuelle (2.x.y) du langage Caméléon, implémentée par O. Cugnon de Sévricourt et V. Tariel, n'implémente pas rigoureusement m2c car m2c a été conçu en parallèle de la fabrication de Caméléon.

Nous avons exposer précédemment le modèle conceptuel qu'il faut distinguer de l'implémentation spécifique de m2c réalisée dans le cadre de la fabrication de la version graphique de Caméléon.

Nous faisons ici le rapprochement entre le modèle conceptuel décrit plus haut et la structure des fichiers représentant une composition et un pattern.
Nous partirons d'exemples concrèts réalisé à l'aide de Caméléon. Nous exposons, pour chaque exemple, le rapprochement méta modèle/structure de fichier ainsi que la représentation graphique réalisée avec le langage.

Une composition élémentaire




Références

* BPEL: http://fr.wikipedia.org/wiki/Business_Process_Execution_Language
* YAWL: http://fr.wikipedia.org/wiki/YAWL
* BPMN 1.X
* UML 2.0


//// depuis 1998
/// shinoe est une association en cours de conception
/// copyleft | licence MIT
/// contact | Twitter | Pinterest
// 0.0.5