mdalevelsinterpretation.tex 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. \begin{tikzpicture}[node distance=1cm,>=stealth',scale=1,transform shape, on grid, auto]%>=latex
  2. \tikzstyle{every label}=[black]
  3. \begin{scope}
  4. \node (m0) {M0};
  5. \draw[yshift=0.5cm] (-0.5,0.5) -- (9.0,0.5);
  6. \node (m1) [above of=m0,yshift=1cm] {M1};
  7. \draw[dotted,yshift=1.5cm] (-0.5,1.5) -- (9.0,1.5);
  8. \node (m2) [above of=m1,yshift=1cm] {M2};
  9. \draw[dotted,yshift=2.5cm] (-0.5,2.5) -- (9.0,2.5);
  10. \node (m3) [above of=m2,yshift=1cm] {M3};
  11. \node (t0) [left of=m0,rotate=90,align=center,xshift=0.1cm] {\scriptsize{monde réel}};
  12. %\node (t1) [left of=m2,rotate=90,align=center] {\scriptsize{monde des modèles}};
  13. \draw (1,-0.5) -- (1,8);
  14. \node (n0) [right of=m0, xshift=2.5cm, yshift=0.1cm, text width=2.5cm] {une situation};
  15. \node (n11) [right of=m1, xshift=0.5cm] {$m_1$};
  16. \node (n12) [right of=n11, xshift=0.5cm] {$m_2$};
  17. \node (n13) [right of=n12, xshift=0.5cm] {$m$};
  18. \node (n21) [right of=m2, xshift=1.5cm, yshift=0.0cm, text width=1.5cm, align=center] {$MM_{UML}$};
  19. \node (n22) [right of=n21, xshift=1cm, text width=1.5cm, align=center] {$MM_{SPEM}$};
  20. \node (n3) [right of=m3, xshift=2.8cm, yshift=0.0cm, text width=1.5cm] {MOF};
  21. \path[->] (3,0.5) edge node [xshift=2.5cm, yshift=-0.2cm] {\scriptsize{\textit{est représenté par}}} (3,1.5);
  22. \draw (1.5,2.2) -- (1.5,2.5) -- (3.0,2.5) -- (3.0,2.2);
  23. % \path[->] (2.25,2.5) edge node [xshift=1cm, yshift=-0.2cm] {\scriptsize{\textit{est conforme à}}} (2.25,3.5);
  24. \path[->] (2.25,2.5) edge (2.25,3.5);
  25. \path[->] (4.5,2.5) edge node [xshift=-0.1cm, yshift=-0.2cm] {\scriptsize{\textit{est conforme à}}} (4.5,3.5);
  26. \draw (2.5,4.3) -- (2.5,4.5) -- (4.5,4.5) -- (4.5,4.3);
  27. \path[->] (3.5,4.5) edge node [xshift=2.1cm, yshift=-0.2cm] {\scriptsize{\textit{est conforme à}}} (3.5,5.5);
  28. \draw[->] (4.0,6) -- (4.5,6) -- (4.5,6.7) -- (3.5,6.7) -- node [xshift=-0.6cm, yshift=0.4cm] {\scriptsize{\textit{est conforme à}}} (3.5,6.3);
  29. %\draw (5.5,-0.5) -- (5.5,8);
  30. \draw (6.1,-0.5) -- (6.1,8);
  31. \node (l0) [right of=n0, xshift=3.1cm, yshift=-0.1cm, text width=3cm, align=center] {Exécution du programme};
  32. \node (l1) [right of=n13, xshift=2.1cm, yshift=0.0cm, text width=3cm, align=center] {Programme};
  33. \node (l2) [right of=n22, xshift=2.1cm, yshift=0.0cm, text width=3cm, align=center] {Grammaire du langage de programmation};
  34. \node (l3) [right of=n3, xshift=2.6cm, yshift=0.0cm, text width=3cm, align=center] {EBNF};
  35. \node (label0) [above of=m3, text width=2cm, align=center, yshift=0.5cm] {\scriptsize{niveaux d'abstraction}};
  36. \node (label1) [above of=n3, text width=2.5cm, align=center, xshift=-0.3cm, yshift=0.5cm] {\scriptsize{monde des modèles}};
  37. %\node (label2) [above of=l3, text width=2.5cm, align=center, xshift=0cm, yshift=0.5cm] {\scriptsize{monde des grammaires}};
  38. \node (label2) [above of=l3, text width=2.5cm, align=center, yshift=0.5cm] {\scriptsize{monde des grammaires}};
  39. \end{scope}
  40. \end{tikzpicture}