diff --git a/rapport/rapport.pdf b/rapport/rapport.pdf index c2012ab..fa75ef3 100644 Binary files a/rapport/rapport.pdf and b/rapport/rapport.pdf differ diff --git a/rapport/rapport.tex b/rapport/rapport.tex index 32908f1..c9ee745 100644 --- a/rapport/rapport.tex +++ b/rapport/rapport.tex @@ -73,7 +73,7 @@ \newpage -\section{Métamodèles Ecore} +\section{Métamodèles (avec Ecore)} \subsection{simplePDL.ecore} @@ -81,34 +81,34 @@ Ce projet se base sur un langage simplifié de modélisation de processus de dé Nous sommes donc parti du modèle Ecore de base du modèle SimplePDL auquel nous avons ajouté progressivement des nouveaux éléments. Dans un premier temps, il a fallu ajouter la modélisation des guidances comme indiqué dans le sujet. -\begin{figure}[H] - \centering - \includegraphics[width=15cm]{simplePDL_guidance.png} - \caption{Métamodèle simplePDL avec guidance} - \label{simplePDL_guidance} -\end{figure} +% \begin{figure}[H] +% \centering +% \includegraphics[width=15cm]{simplePDL_guidance.png} +% \caption{Métamodèle simplePDL avec guidance} +% \label{simplePDL_guidance} +% \end{figure} Nous avons ensuite dû choisir une manière de modéliser les ressources nécessaires au processus de développement. Notre choix de modélisation s’est porté sur : une Ressource (qui implémente ProcessElement) est demandée par le biai d’une Request elle-même générée par une WorkDefinition. On se retrouve donc avec un nouveau modèle Ecore de la forme : -\begin{figure}[H] - \centering - \includegraphics[width=15cm]{simplePDL_guidance_ressource.png} - \caption{Métamodèle simplePDL avec guidance et ressource} - \label{simplePDL_guidance_ressource} -\end{figure} +% \begin{figure}[H] +% \centering +% \includegraphics[width=15cm]{simplePDL_guidance_ressource.png} +% \caption{Métamodèle simplePDL avec guidance et ressource} +% \label{simplePDL_guidance_ressource} +% \end{figure} Les relations Ressource-Request et Request-WorkDefinition sont déclarées en EOpposite pour pouvoir facilement passer d’un fils à un parent et vice versa. Le modèle SimplePDL est maintenant complet pour représenter des processus de développement. Un exemple complet d’utilisation de ce modèle serait : -\begin{figure}[H] - \centering - \includegraphics[width=15cm]{simplePDL_complet.png} - \caption{Métamodèle simplePDL complet} - \label{simplePDL_complet} -\end{figure} +% \begin{figure}[H] +% \centering +% \includegraphics[width=15cm]{simplePDL_complet.png} +% \caption{Métamodèle simplePDL complet} +% \label{simplePDL_complet} +% \end{figure} \subsection{petriNet.ecore} @@ -119,14 +119,14 @@ Ils sont donc nommés et reliés entre eux par des arcs. Ses arcs ont un attribut entier nommé weight pour indiquer le poids de l’arc ainsi qu’un boolean outgoing pour indiquer si ce dernier est dirigé d’une Place vers une Transition ou d’une Transition vers une Place. (Si outgoing est vrai, alors l’arc va de la transition vers la place.) -\begin{figure}[H] - \centering - \includegraphics[width=15cm]{petriNet_complet.png} - \caption{Métamodèle petriNet complet} - \label{petriNet_complet} -\end{figure} +% \begin{figure}[H] +% \centering +% \includegraphics[width=15cm]{petriNet_complet.png} +% \caption{Métamodèle petriNet complet} +% \label{petriNet_complet} +% \end{figure} -\section{Contraintes OCL} +\section{Sémantique statique (avec OCL)} Les contraintes OCL sont là pour vérifier des informations du modèle vis-à-vis du métamodèle. Elles assurent certains points de cohérence et permettent d'éviter les ambiguïtés. @@ -142,4 +142,54 @@ Pour éviter des non-sens, les WorkSequence ne peuvent pas non plus avoir le mê Pour le modèle PetriNet, ... +\section{Eclipse Modeling Framework (EMF)} + +Pour permettre une meilleur intégration de nos métamodèles dans notre environnement de developpement (sous Eclipse), nous pouvons créer des greffons nous permetttant de les intégrer dans d'autres projets ainsi que des éditeurs arborescents nous permettant de mieux visualiser/éditer des modèles conformes à nos métamodèles Ecore. +Le code java de ces éditeurs arborescent est engendré par nos métamodèles Ecore, mais nous pouvons le modifier manuellement pour que celui-ci convienne parfaitement à nos critères. +Ces plugins seront déployés dans une Eclipse Application séparée de notre Application principale pour ne pas mélanger métamodèles et modèles. + +\subsection{plugin simplePDL} + +% \begin{figure}[H] +% \centering +% \includegraphics[width=15cm]{simplePDL_emf.png} +% \caption{Éditeur arborecent d'un modèle simplePDL} +% \label{simplePDL_EMF} +% \end{figure} + +\subsection{plugin petriNet} + +% \begin{figure}[H] +% \centering +% \includegraphics[width=15cm]{petriNet_emf.png} +% \caption{Éditeur arborecent d'un modèle petriNet} +% \label{petriNet_EMF} +% \end{figure} + +\subsection{simplePDL $\rightarrow$ petriNet (avec Java)} + +\section{Transformation de modèle à texte (avec Acceleo)} + +\subsection{simplePDL $\rightarrow$ html} + +\subsection{simplePDL $\rightarrow$ dot} + +\subsection{petriNet $\rightarrow$ tina} + +\section{Définition de syntaxes concrètes graphiques (avec Sirius)} + +\subsection{Éditeur graphique simplePDL} + +\subsection{Éditeur graphique petriNet} + +\section{Définition de syntaxes concrètes textuelles (avec Xtext)} + +\subsection{Éditeur textuel simplePDL} + +\subsection{Éditeur textuel petriNet} + +\section{Transformation de modèle à modèle (avec ATL)} + +\subsection{simplePDL $\rightarrow$ petriNet} + \end{document}