pm_req_analyse.mvc 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. ProcessModel analyse_requirements {
  2. Start start {}
  3. Finish finish {}
  4. Exec revise_req {
  5. name = "revise_req"
  6. }
  7. Exec make_initial_models {
  8. name = "make_initial_models"
  9. }
  10. Fork fork1 {}
  11. Exec revise_plant {
  12. name = "revise_plant"
  13. }
  14. Exec revise_environment {
  15. name = "revise_environment"
  16. }
  17. Exec revise_control {
  18. name = "revise_control"
  19. }
  20. Exec revise_query {
  21. name = "revise_query"
  22. }
  23. Exec revise_architecture {
  24. name = "revise_architecture"
  25. }
  26. Exec plant_to_EPN {
  27. name = "plant_to_EPN"
  28. }
  29. Exec environment_to_EPN {
  30. name = "environment_to_EPN"
  31. }
  32. Exec control_to_EPN {
  33. name = "control_to_EPN"
  34. }
  35. Join join2 {}
  36. Exec combine_EPN {
  37. name = "combine_EPN"
  38. }
  39. Exec EPN_to_PN {
  40. name = "EPN_to_PN"
  41. }
  42. Exec analyse {
  43. name = "reachability"
  44. }
  45. Join join3 {}
  46. Exec match {
  47. name = "match"
  48. }
  49. Exec bfs {
  50. name = "bfs"
  51. }
  52. Decision found {}
  53. Data req {
  54. name = "requirements"
  55. type = "Requirements"
  56. }
  57. Data plant_model {
  58. name = "plant_model"
  59. type = "PW_Plant"
  60. }
  61. Data environment_model {
  62. name = "environment_model"
  63. type = "PW_Environment"
  64. }
  65. Data control_model {
  66. name = "control_model"
  67. type = "PW_Control"
  68. }
  69. Data plant_EPN {
  70. name = "plant_EPN"
  71. type = "Encapsulated_PetriNet"
  72. }
  73. Data control_EPN {
  74. name = "control_EPN"
  75. type = "Encapsulated_PetriNet"
  76. }
  77. Data environment_EPN {
  78. name = "environment_EPN"
  79. type = "Encapsulated_PetriNet"
  80. }
  81. Data merged_EPN {
  82. name = "merged_EPN"
  83. type = "Encapsulated_PetriNet"
  84. }
  85. Data pn {
  86. name = "pn"
  87. type = "PetriNet"
  88. }
  89. Data reachability_graph {
  90. name = "reachability"
  91. type = "ReachabilityGraph"
  92. }
  93. Data query {
  94. name = "query"
  95. type = "Query"
  96. }
  97. Data architecture {
  98. name = "architecture"
  99. type = "Architecture"
  100. }
  101. Next (start, make_initial_models) {}
  102. Next (make_initial_models, revise_req) {}
  103. Next (revise_req, fork1) {}
  104. Next (fork1, revise_plant) {}
  105. Next (fork1, revise_environment) {}
  106. Next (fork1, revise_control) {}
  107. Next (fork1, revise_query) {}
  108. Next (fork1, revise_architecture) {}
  109. Next (revise_plant, plant_to_EPN) {}
  110. Next (revise_environment, environment_to_EPN) {}
  111. Next (revise_control, control_to_EPN) {}
  112. Next (plant_to_EPN, join2) {}
  113. Next (environment_to_EPN, join2) {}
  114. Next (control_to_EPN, join2) {}
  115. Next (revise_architecture, join2) {}
  116. Next (join2, combine_EPN) {}
  117. Next (combine_EPN, analyse) {}
  118. Next (analyse, join3) {}
  119. Next (revise_query, join3) {}
  120. Next (join3, match) {}
  121. Next (match, found) {}
  122. Then (found, bfs) {}
  123. Next (bfs, revise_req) {}
  124. Else (found, finish) {}
  125. Consumes (revise_req, req) {
  126. name = "requirements"
  127. }
  128. Produces (revise_req, req) {
  129. }
  130. Produces (make_initial_models, plant_model) {
  131. }
  132. Produces (make_initial_models, environment_model) {
  133. }
  134. Produces (make_initial_models, control_model) {
  135. }
  136. Produces (make_initial_models, query) {
  137. }
  138. Produces (make_initial_models, architecture) {
  139. }
  140. Produces (make_initial_models, req) {
  141. }
  142. Consumes (revise_plant, req) {
  143. name = "requirements"
  144. }
  145. Consumes (revise_environment, req) {
  146. name = "requirements"
  147. }
  148. Consumes (revise_control, req) {
  149. name = "requirements"
  150. }
  151. Consumes (revise_query, req) {
  152. name = "requirements"
  153. }
  154. Consumes (revise_architecture, req) {
  155. name = "requirements"
  156. }
  157. Consumes (revise_plant, plant_model) {
  158. name = "plant"
  159. }
  160. Consumes (revise_environment, environment_model) {
  161. name = "environment"
  162. }
  163. Consumes (revise_control, control_model) {
  164. name = "control"
  165. }
  166. Consumes (revise_query, query) {
  167. name = "query"
  168. }
  169. Consumes (revise_architecture, architecture) {
  170. name = "architecture"
  171. }
  172. Produces (revise_plant, plant_model) {
  173. }
  174. Produces (revise_control, control_model) {
  175. }
  176. Produces (revise_environment, environment_model) {
  177. }
  178. Produces (revise_query, query) {
  179. }
  180. Produces (revise_architecture, architecture) {
  181. }
  182. Consumes (plant_to_EPN, plant_model) {
  183. name = "plant_model"
  184. }
  185. Produces (plant_to_EPN, plant_EPN) {
  186. }
  187. Consumes (environment_to_EPN, environment_model) {
  188. name = "environment_model"
  189. }
  190. Produces (environment_to_EPN, environment_EPN) {
  191. }
  192. Consumes (control_to_EPN, control_model) {
  193. name = "control_model"
  194. }
  195. Produces (control_to_EPN, control_EPN) {
  196. }
  197. Consumes (combine_EPN, plant_EPN) {
  198. name = "epn_1"
  199. }
  200. Consumes (combine_EPN, environment_EPN) {
  201. name = "epn_2"
  202. }
  203. Consumes (combine_EPN, control_EPN) {
  204. name = "epn_3"
  205. }
  206. Consumes (combine_EPN, architecture) {
  207. name = "architecture"
  208. }
  209. Produces (combine_EPN, pn) {
  210. }
  211. Consumes (analyse, pn) {
  212. name = "pn"
  213. }
  214. Produces (analyse, reachability_graph) {
  215. }
  216. Consumes (match, reachability_graph) {
  217. name = "reachability_graph"
  218. }
  219. Consumes (match, query) {
  220. name = "query"
  221. }
  222. Produces (match, reachability_graph) {
  223. }
  224. Consumes (bfs, reachability_graph) {
  225. name = "reachability_graph"
  226. }
  227. }