Merge branch 'main' of https://git.inpt.fr/fainsil/miniproj_idm into main
This commit is contained in:
commit
3ce8590538
11
.gitignore
vendored
11
.gitignore
vendored
|
@ -5,3 +5,14 @@ tmp/
|
||||||
*.bak
|
*.bak
|
||||||
*.swp
|
*.swp
|
||||||
*~.nib
|
*~.nib
|
||||||
|
|
||||||
|
rapport/*.aux
|
||||||
|
rapport/*.fdb_latexmk
|
||||||
|
rapport/*.fls
|
||||||
|
rapport/*.log
|
||||||
|
rapport/*.out
|
||||||
|
rapport/*.synctex.gz
|
||||||
|
rapport/*.synctex\(busy\)
|
||||||
|
rapport/*.toc
|
||||||
|
rapport/_minted-rapport
|
||||||
|
rapport/svg-inkscape
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,2 +1,2 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
internalWebBrowserHistory=file\:///home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:/home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:///home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:/home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petrinet.png|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petrinet.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl.exemples/gen/developpement.html|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl.exemples/gen/developpement.html|*|
|
internalWebBrowserHistory=file\:///home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:/home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:///home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:/home/dguillot/2A/IDM/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petriNet.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl/simplePDL.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petrinet.png|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.petrinet/petrinet.png|*|file\:///home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl.exemples/gen/developpement.html|*|file\:/home/lfainsin/miniproj_idm/eclipse-workspace/fr.n7.simplepdl.exemples/gen/developpement.html|*|
|
||||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
@ -1,2 +1,2 @@
|
||||||
#Cached timestamps
|
#Cached timestamps
|
||||||
#Thu Oct 14 20:36:27 CEST 2021
|
#Fri Oct 15 09:27:32 CEST 2021
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#safe table
|
#safe table
|
||||||
#Thu Oct 14 20:36:27 CEST 2021
|
#Fri Oct 15 09:27:32 CEST 2021
|
||||||
.orphans=0
|
.orphans=0
|
||||||
.mainData=0
|
.mainData=0
|
||||||
.contributors=0
|
.contributors=0
|
||||||
|
@ -7,4 +7,4 @@
|
||||||
.extraData=0
|
.extraData=0
|
||||||
.contributions=0
|
.contributions=0
|
||||||
.table=0
|
.table=0
|
||||||
.crcef3af7ef.v1
|
.crc11b4ace5.v1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#safe table
|
#safe table
|
||||||
#Thu Oct 14 20:36:27 CEST 2021
|
#Fri Oct 15 09:27:32 CEST 2021
|
||||||
.orphans=1
|
.orphans=1
|
||||||
.mainData=1
|
.mainData=1
|
||||||
.contributors=1
|
.contributors=1
|
||||||
|
@ -7,4 +7,4 @@
|
||||||
.extraData=1
|
.extraData=1
|
||||||
.contributions=1
|
.contributions=1
|
||||||
.table=1
|
.table=1
|
||||||
.crc2048cdd4.v1
|
.crcdec696de.v1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# List of external plug-in models previously loaded. Timestamp: 1634228228002
|
# List of external plug-in models previously loaded. Timestamp: 1634279595109
|
||||||
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.google.guava_27.1.0.v20190517-1946.jar
|
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.google.guava_27.1.0.v20190517-1946.jar
|
||||||
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.google.inject_3.0.0.v201605172100.jar
|
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.google.inject_3.0.0.v201605172100.jar
|
||||||
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.ibm.icu_67.1.0.v20200706-1749.jar
|
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.ibm.icu_67.1.0.v20200706-1749.jar
|
||||||
|
|
Binary file not shown.
|
@ -1,3 +1,3 @@
|
||||||
#Thu Oct 14 18:17:03 CEST 2021
|
#Fri Oct 15 08:33:09 CEST 2021
|
||||||
org.eclipse.core.runtime=2
|
org.eclipse.core.runtime=2
|
||||||
org.eclipse.platform=4.17.0.v20200902-1800
|
org.eclipse.platform=4.17.0.v20200902-1800
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -40,5 +40,5 @@ pl [place.name/] ([place.tokens/])
|
||||||
|
|
||||||
[template public afficher(t : Transition) post (trim()) ]
|
[template public afficher(t : Transition) post (trim()) ]
|
||||||
[comment][let outgoing = t.getArcs()->select( e | e.isOutgoing() ) /][/comment]
|
[comment][let outgoing = t.getArcs()->select( e | e.isOutgoing() ) /][/comment]
|
||||||
tr [t.name/] [for (a : Arc | t.arcs)][if (not a.outgoing)][a.target.name/]*[a.weight/] [/if][/for]-> [for (a : Arc | t.arcs)][if (a.outgoing)][a.target.name/]*[a.weight/] [/if][/for]
|
tr [t.name/] [for (a : Arc | t.arcs)][if (not a.outgoing)][a.place.name/]*[a.weight/] [/if][/for]-> [for (a : Arc | t.arcs)][if (a.outgoing)][a.place.name/]*[a.weight/] [/if][/for]
|
||||||
[/template]
|
[/template]
|
|
@ -5,6 +5,8 @@ package petrinet
|
||||||
context Network
|
context Network
|
||||||
inv validName('Invalid name: ' + self.name):
|
inv validName('Invalid name: ' + self.name):
|
||||||
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNamesNode: self.nodes
|
||||||
|
->forAll(n1, n2 | n1 = n2 or n1.name <> n2.name)
|
||||||
|
|
||||||
context Node
|
context Node
|
||||||
inv nameMin2Char: self.name.matches('..+')
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -21,7 +21,77 @@ rule WorkDefinition2PetriNet {
|
||||||
from wd: simplepdl!WorkDefinition
|
from wd: simplepdl!WorkDefinition
|
||||||
to
|
to
|
||||||
-- PLACES d'une WorkDefinition
|
-- PLACES d'une WorkDefinition
|
||||||
p_ready: petrinet!Place(
|
p_idle: petrinet!Place(
|
||||||
name <- wd.name + '_ready',
|
name <- wd.name + '_idle',
|
||||||
tokens <- 1)
|
tokens <- 1,
|
||||||
|
network <- wd.process),
|
||||||
|
p_running: petrinet!Place(
|
||||||
|
name <- wd.name + '_running',
|
||||||
|
tokens <- 1,
|
||||||
|
network <- wd.process),
|
||||||
|
p_started: petrinet!Place(
|
||||||
|
name <- wd.name + '_started',
|
||||||
|
tokens <- 1,
|
||||||
|
network <- wd.process),
|
||||||
|
p_finished: petrinet!Place(
|
||||||
|
name <- wd.name + '_finished',
|
||||||
|
tokens <- 1,
|
||||||
|
network <- wd.process),
|
||||||
|
-- TRANSITIONS d'une WorkDefinition
|
||||||
|
t_start: petrinet!Transition(
|
||||||
|
name <- wd.name + '_start',
|
||||||
|
weight <- 1,
|
||||||
|
network <- wd.process),
|
||||||
|
t_finish: petrinet!Transition(
|
||||||
|
name <- wd.name + '_finish',
|
||||||
|
weight <- 1,
|
||||||
|
network <- wd.process),
|
||||||
|
-- ARCS d'une WorkDefinition
|
||||||
|
a_idle2start: petrinet!Arc(
|
||||||
|
weight <- 1,
|
||||||
|
place <- p_idle,
|
||||||
|
transition <- t_start,
|
||||||
|
outgoing <- false),
|
||||||
|
a_start2running: petrinet!Arc(
|
||||||
|
weight <- 1,
|
||||||
|
place <- p_running,
|
||||||
|
transition <- t_start,
|
||||||
|
outgoing <- true),
|
||||||
|
a_start2started: petrinet!Arc(
|
||||||
|
weight <- 1,
|
||||||
|
place <- p_started,
|
||||||
|
transition <- t_start,
|
||||||
|
outgoing <- true),
|
||||||
|
a_running2finish: petrinet!Arc(
|
||||||
|
weight <- 1,
|
||||||
|
place <- p_running,
|
||||||
|
transition <- t_finish,
|
||||||
|
outgoing <- false),
|
||||||
|
a_finish2finished: petrinet!Arc(
|
||||||
|
weight <- 1,
|
||||||
|
place <- p_finished,
|
||||||
|
transition <- t_finish,
|
||||||
|
outgoing <- true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Traduire une WorkSequence en un motif sur le r<>seau de Petri
|
||||||
|
rule WorkSequence2PetriNet {
|
||||||
|
from ws: simplepdl!WorkSequence
|
||||||
|
to
|
||||||
|
-- ARCS d'une WorkSequence
|
||||||
|
a_s2s: petrinet!Arc(
|
||||||
|
place <- ws.predecessor.name + '_started',
|
||||||
|
transition <- ws.successor.name + '_start'),
|
||||||
|
|
||||||
|
a_s2f: petrinet!Arc(
|
||||||
|
place <- ws.predecessor.name + '_started',
|
||||||
|
transition <- ws.successor.name + '_finish'),
|
||||||
|
|
||||||
|
a_f2s: petrinet!Arc(
|
||||||
|
place <- ws.predecessor.name + '_finished',
|
||||||
|
transition <- ws.successor.name + '_start'),
|
||||||
|
|
||||||
|
a_f2f: petrinet!Arc(
|
||||||
|
place <- ws.predecessor.name + '_finished',
|
||||||
|
transition <- ws.successor.name + '_fnish')
|
||||||
|
}
|
104
rapport/assets/inp-enseeiht.svg
Normal file
104
rapport/assets/inp-enseeiht.svg
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
version="1.1"
|
||||||
|
width="298.75"
|
||||||
|
height="53.75"
|
||||||
|
id="svg2"
|
||||||
|
xml:space="preserve"><defs
|
||||||
|
id="defs6"><clipPath
|
||||||
|
id="clipPath20"><path
|
||||||
|
d="M 0,0 595,0 595,842 0,842 0,0 z"
|
||||||
|
id="path22" /></clipPath><clipPath
|
||||||
|
id="clipPath30"><path
|
||||||
|
d="M 0,424.504 0,0 l 2387.81,0 0,424.504 -2387.81,0 z"
|
||||||
|
id="path32" /></clipPath></defs><g
|
||||||
|
transform="matrix(1.25,0,0,-1.25,0,53.75)"
|
||||||
|
id="g12"><g
|
||||||
|
id="g14"><g
|
||||||
|
id="g16"><g
|
||||||
|
clip-path="url(#clipPath20)"
|
||||||
|
id="g18"><g
|
||||||
|
transform="scale(0.1,0.1)"
|
||||||
|
id="g24"><g
|
||||||
|
id="g26"><g
|
||||||
|
clip-path="url(#clipPath30)"
|
||||||
|
id="g28"><path
|
||||||
|
d="m 530.637,0.0117188 1857.17,0 0,424.4920012 -1857.17,0 0,-424.4920012 z"
|
||||||
|
id="path34"
|
||||||
|
style="fill:#2056ae;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 623.047,96.3984 1340.64,0 0,21.3047 -1340.64,0 0,-21.3047 z"
|
||||||
|
id="path36"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1787.33,146.516 c 0,0 121.28,33.433 130.08,36.453 2.48,0.847 28.53,8.691 31.13,9.355 2.03,0.535 33.71,10.988 63.47,19.981 36.56,11.011 66.86,25.843 69.35,26.816 14.93,5.867 24.16,12.965 40.18,15.977 9.65,-6.668 19.98,-21.676 20.3,-31.871 4.17,6.699 5.16,14.699 11.48,19.769 4.6,3.66 9.8,2.824 14.22,1.496 8.54,-8.012 12.97,-24.062 14.44,-34.961 0.73,-5.422 9.32,-7.019 14.64,-6.98 13.43,0.047 24.64,1.797 44.28,8.726 20.56,7.235 39.09,14.293 41.33,15.344 9.07,4.168 16.15,5.043 25.18,9.613 6.25,3.145 12.08,8.801 18.12,10.637 5.22,1.559 1.58,0.688 6.54,3.18 -1.16,-2.602 -2.49,-8.16 -2.4,-10.887 0.13,-4.828 -1.22,-5.863 2.97,-10.613 5.09,-5.797 4.24,-15.27 1.01,-21.871 -3.92,-7.91 -13.72,-12.422 -23.28,-17.078 -9.51,-4.7 -18.8,-9.543 -22.25,-10.176 -3.13,-0.571 -35.8,-15.754 -63.69,-21.235 -7.22,-1.421 -23.99,-3.711 -32.23,-4.773 -3.99,-0.535 -16.39,-1.77 -19.62,-0.145 -13.62,6.805 -20.43,33.067 -21.1,32.379 -4.85,-4.976 -5.8,-7.078 -8.87,-13.281 -5.33,-10.84 -11.76,-34.707 -16.38,-45.699 -0.25,-0.567 -6.74,1.109 -12.02,3.57 -8.14,3.813 -16.94,10.473 -16.69,10.781 3.06,3.774 8.37,28.555 9.6,33.223 3.69,14.316 3.9,29.692 6.41,42.848 0.42,2.203 -2.16,12.851 -5.25,15.304 -3.34,2.614 -6.27,1.911 -10.31,0.075 -1.6,-0.762 -24.43,-8.371 -67.3,-20.762 -27.72,-8.027 -63.25,-19.438 -92.96,-27.988 -55.74,-16.047 -104.49,-30.024 -106.67,-30.649 -3.48,-1.062 -40.56,-9.219 -41.02,-7.027"
|
||||||
|
id="path38"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 2156.36,297.027 c -0.41,-8.48 5.89,-17.816 11.11,-24.492 4.38,-5.625 14.97,-7.473 21.27,-8.055 5.82,-0.48 53.92,11.958 67.24,16.594 -1.26,-7.453 -21.22,-73.484 -25.39,-92.746 -0.75,-3.433 -5.04,-19.676 -6.37,-24.461 -0.43,-1.648 -3.25,-19.914 -6.39,-26.98 -0.99,-2.258 -14.39,-44.5237 -7.64,-56.5042 0.15,-0.293 5.51,7.2813 6.91,7.918 1.24,0.5664 6.86,-0.3789 7.52,0.5078 5.18,6.7266 4.29,17.9764 5.17,26.0934 0.21,2.176 2.14,25.696 5.13,36.692 8.05,29.722 15.81,59.324 24.37,88.902 2.35,8.133 9.21,28.645 13.24,36.32 4.48,8.606 10.95,10.254 14.31,18.891 -4.72,-12.109 -1.25,9.551 0,0 -0.51,4.078 -3.01,18.711 -3.76,23.117 -1.29,7.621 -1.26,15.133 -1.18,16.246 -8.7,-3.64 -56.08,-18.769 -88.93,-24.55 -16.15,-2.848 -31.41,-0.965 -33.32,-0.43 -2.49,0.668 -5.27,1.105 -7.77,2.66 0.91,-5.977 1.85,-11.988 3.96,-17.738"
|
||||||
|
id="path40"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 623.473,154.973 0,164.429 131.105,0 7.512,-21.574 -103.516,0 0,-46.484 82.742,0 0,-21.578 -82.742,0 0,-53.211 111.399,0 -10.028,-21.582 -136.472,0"
|
||||||
|
id="path42"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 792.18,152.109 0,171.121 0.726,0 157.614,-115.039 0,107.371 35.105,3.84 0,-168.242 -0.719,0 -157.617,115.047 0,-111.234 -35.109,-2.864"
|
||||||
|
id="path44"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1037.2,192.129 c 10.02,-10.52 27.22,-19.387 46.93,-19.387 25.79,0 44.77,8.363 44.77,28.735 0,38.101 -112.47,17.293 -112.47,75.031 0,28.984 31.16,46.722 75.58,46.722 27.23,0 53.02,-9.582 69.13,-23.968 l -23.64,-15.824 c -13.26,9.367 -26.87,18.226 -47.29,18.226 -22.56,0 -38.67,-9.594 -38.67,-25.156 0,-33.793 112.46,-18.465 112.46,-75.27 0,-29.215 -33.67,-50.078 -76.29,-50.078 -33.69,0 -54.09,10.774 -76.3,26.594 l 25.79,14.375"
|
||||||
|
id="path46"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1192.68,154.973 0,164.429 131.09,0 7.52,-21.574 -103.52,0 0,-46.484 82.76,0 0,-21.578 -82.76,0 0,-53.211 111.41,0 -10.02,-21.582 -136.48,0"
|
||||||
|
id="path48"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1362.46,154.973 0,164.429 131.09,0 7.53,-21.574 -103.52,0 0,-46.484 82.75,0 0,-21.578 -82.75,0 0,-53.211 111.4,0 -10.03,-21.582 -136.47,0"
|
||||||
|
id="path50"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1530.45,153.098 0,166.304 35.12,3.828 0,-168.257 -35.12,-1.875"
|
||||||
|
id="path52"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1602.44,152.109 0,167.293 35.12,3.828 0,-71.886 121.07,0 0,68.058 35.1,3.828 0,-168.257 -35.1,-2.864 0,77.657 -121.07,0 0,-74.793 -35.12,-2.864"
|
||||||
|
id="path54"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 1806.29,297.828 11.08,21.574 145.07,0 0,-21.574 -57.3,0 0,-142.855 -35.1,-2.864 0,145.719 -63.75,0"
|
||||||
|
id="path56"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 0,0 530.637,0 0,424.492 L 0,424.492 0,0 z"
|
||||||
|
id="path58"
|
||||||
|
style="fill:#918f90;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 530.586,424.492 -481.9141,0 0,-54.832 481.9141,54.832"
|
||||||
|
id="path60"
|
||||||
|
style="fill:#ed1c24;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 50.7031,109.902 22.1992,0 0,-6.64 -6.3437,0 0,-15.9573 -10.7383,-0.5274 0,16.4847 -7.3984,0 2.2812,6.64"
|
||||||
|
id="path62"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 113.383,98.5938 c 0,-2.6172 2.777,-5.1758 7.476,-5.1758 4.703,0 7.493,2.5586 7.493,5.1758 0,2.6562 -2.79,5.2152 -7.493,5.2152 -4.699,0 -7.476,-2.559 -7.476,-5.2152 z m 25.719,0 c 0,-5.7618 -6.196,-11.8165 -18.243,-11.8165 -12.031,0 -18.218,6.0547 -18.218,11.8165 0,5.7812 6.187,11.8552 18.218,11.8552 12.047,0 18.243,-6.074 18.243,-11.8552"
|
||||||
|
id="path64"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 181.016,110.449 0,-15.3513 c 0,-1.1719 0.55,-1.8555 2.386,-1.8555 1.789,0 2.121,0.7812 2.121,1.8555 l 0,14.8043 10.754,0.547 0,-15.8201 c 0,-5.3906 -5.496,-7.8516 -13.832,-7.8516 -7.281,0 -12.187,2.793 -12.187,7.7735 l 0,15.3512 10.758,0.547"
|
||||||
|
id="path66"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 228.684,87.3047 0,22.5973 10.746,0.547 0,-16.4842 11.742,0 -2.27,-6.6601 -20.218,0"
|
||||||
|
id="path68"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 290.961,98.5938 c 0,-2.6172 2.769,-5.1758 7.5,-5.1758 4.703,0 7.473,2.5586 7.473,5.1758 0,2.6562 -2.77,5.2152 -7.473,5.2152 -4.731,0 -7.5,-2.559 -7.5,-5.2152 z m 25.715,0 c 0,-5.7618 -6.168,-11.8165 -18.215,-11.8165 -12.055,0 -18.25,6.0547 -18.25,11.8165 0,5.7812 6.195,11.8552 18.25,11.8552 12.047,0 18.215,-6.074 18.215,-11.8552"
|
||||||
|
id="path70"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 358.613,110.449 0,-15.3513 c 0,-1.1719 0.532,-1.8555 2.371,-1.8555 1.786,0 2.137,0.7812 2.137,1.8555 l 0,14.8043 10.742,0.547 0,-15.8201 c 0,-5.3906 -5.5,-7.8516 -13.808,-7.8516 -7.317,0 -12.196,2.793 -12.196,7.7735 l 0,15.3512 10.754,0.547"
|
||||||
|
id="path72"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 427.969,103.359 c -2.184,0.45 -5.11,0.821 -7.278,0.821 -1.789,0 -4.207,0 -4.207,-1.153 0,-1.777 13.414,-1.64 13.414,-8.652 0,-5 -5.789,-7.5977 -15.355,-7.5977 -3.391,0 -5.598,0.293 -8.481,0.6641 l 0,6.4648 c 2.829,-0.4101 5.801,-0.664 8.481,-0.664 2.82,0 4.168,0.3125 4.168,1.2109 0,2.168 -12.981,1.3477 -12.981,8.5739 0,4.922 5.653,7.422 13.215,7.422 3.082,0 6.493,-0.234 9.024,-0.605 l 0,-6.485"
|
||||||
|
id="path74"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 461.812,87.3047 0,22.5973 18.887,0 2.121,-6.054 -10.265,0 0,-2.246 6.687,0 0,-5.6254 -6.687,0 0,-2.4219 10.996,0 -2.164,-6.25 -19.575,0"
|
||||||
|
id="path76"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 49.375,148.457 0,171.621 36.4141,3.977 0,-173.625 -36.4141,-1.973"
|
||||||
|
id="path78"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 114.027,147.461 0,176.594 0.743,0 163.5,-118.723 0,110.801 36.433,3.945 0,-173.613 -0.742,0 -163.523,118.711 0,-114.746 -36.411,-2.969"
|
||||||
|
id="path80"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
|
||||||
|
d="m 379.723,237.48 28.246,0 c 34.945,0 53.886,8.653 53.886,32.657 0,20.781 -25.628,27.695 -53.886,27.695 l -28.246,0 0,-60.352 z m -36.411,-90.019 0,172.617 68.774,0 c 51.992,0 86.18,-20.762 86.18,-49.941 0,-41.543 -43.852,-54.903 -98.828,-54.903 l -19.715,0 0,-64.804 -36.411,-2.969"
|
||||||
|
id="path82"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g></g></g></svg>
|
After Width: | Height: | Size: 10 KiB |
BIN
rapport/rapport.pdf
Normal file
BIN
rapport/rapport.pdf
Normal file
Binary file not shown.
201
rapport/rapport.tex
Normal file
201
rapport/rapport.tex
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
\documentclass[a4paper, 12pt]{article}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage[french]{babel}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amsfonts}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{color}
|
||||||
|
\usepackage{xcolor}
|
||||||
|
\usepackage{natbib}
|
||||||
|
\usepackage[hidelinks]{hyperref}
|
||||||
|
\usepackage[nottoc, numbib]{tocbibind}
|
||||||
|
\usepackage[justification=centering]{caption}
|
||||||
|
\usepackage{mathtools}
|
||||||
|
\usepackage{lipsum}
|
||||||
|
\usepackage{lscape}
|
||||||
|
\usepackage{caption}
|
||||||
|
\usepackage{subcaption}
|
||||||
|
\usepackage{minted}
|
||||||
|
\usepackage{multicol}
|
||||||
|
\usepackage{svg}
|
||||||
|
|
||||||
|
\newminted{bash}{numbersep=6pt}
|
||||||
|
|
||||||
|
\usepackage{contour}
|
||||||
|
\usepackage{ulem}
|
||||||
|
\renewcommand{\ULdepth}{1.8pt}
|
||||||
|
\contourlength{0.8pt}
|
||||||
|
\newcommand{\myuline}[1]{%
|
||||||
|
\uline{\phantom{#1}}%
|
||||||
|
\llap{\contour{white}{#1}}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\dst}{\displaystyle}
|
||||||
|
|
||||||
|
\usepackage[margin=2cm]{geometry}
|
||||||
|
|
||||||
|
\graphicspath{
|
||||||
|
{./assets/}
|
||||||
|
}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{figure}[t]
|
||||||
|
\centering
|
||||||
|
$\includesvg[height=1cm]{inp-enseeiht.svg}$
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\title{
|
||||||
|
\vspace{4cm}
|
||||||
|
\textbf{Rapport de Mini-Projet} \\
|
||||||
|
Génie du Logiciel et des Systèmes \\
|
||||||
|
Chaîne de vérification de modèles de processus
|
||||||
|
}
|
||||||
|
\author{
|
||||||
|
\myuline{Groupe M-02} \\
|
||||||
|
Fainsin Laurent \\
|
||||||
|
Guillotin Damien \\
|
||||||
|
}
|
||||||
|
\date{
|
||||||
|
\vspace{10cm}
|
||||||
|
Département Sciences du Numérique \\
|
||||||
|
Deuxième année \\
|
||||||
|
2021 — 2022
|
||||||
|
}
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
|
\section{Métamodèles (avec Ecore)}
|
||||||
|
|
||||||
|
\subsection{simplePDL.ecore}
|
||||||
|
|
||||||
|
Ce projet se base sur un langage simplifié de modélisation de processus de développement, appelé SimplePDL.
|
||||||
|
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}
|
||||||
|
|
||||||
|
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}
|
||||||
|
|
||||||
|
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}
|
||||||
|
|
||||||
|
\subsection{petriNet.ecore}
|
||||||
|
|
||||||
|
En se basant sur ce que l’on a vu pour le modèle SimplePDL, nous avons créé un modèle Ecore permettant de modéliser les réseaux de pétri.
|
||||||
|
Nous avons modélisé un réseau comme étant composé de nœuds.
|
||||||
|
Ces nœuds peuvent être les places ou des transitions.
|
||||||
|
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}
|
||||||
|
|
||||||
|
\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.
|
||||||
|
|
||||||
|
\subsection{simplePDL.ocl}
|
||||||
|
|
||||||
|
Pour les modèles SimplePDL, nous obligeons l’utilisateur à entrer des noms valides pour le Process, les WorkDefinition et les Resource.
|
||||||
|
Les noms doivent aussi être unique pour les WorkDefinition et les Ressource pour améliorer la clarté du modèle.
|
||||||
|
Nous avons aussi contraint l’utilisateur à utiliser les WorkSequence sur des WorkDefinition appartenant au même Process.
|
||||||
|
Pour éviter des non-sens, les WorkSequence ne peuvent pas non plus avoir le même successeur et prédécesseur.
|
||||||
|
Nous avons aussi ajouté des contraintes sur les quantités des Resource et Request.
|
||||||
|
En effet, cela n’a pas de sens d’avoir des Resource ou des Request avec des quantités négatives.
|
||||||
|
De plus, une Request ne peut pas être plus grande que le nombre initial de ressources.
|
||||||
|
(Le nombre initial de ressources est le maximum puisqu’il n’y a pas de création.)
|
||||||
|
|
||||||
|
\subsection{petriNet.ocl}
|
||||||
|
|
||||||
|
Les modèles PetriNet étant relativement similaireq aux modèles SimplePDL, nous avons établi des contraintes OCL similaires.
|
||||||
|
Nous obligeons le Network et les Node à avoir des noms uniques mais également sensés.
|
||||||
|
Le nombre de jetons des Place et le poids des Arc doivent évidemment être positifs.
|
||||||
|
|
||||||
|
\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}
|
Loading…
Reference in a new issue