Procedure: Re-Model_Parallel_Paths_for_Sending_State. |
Inputs: |
– a PE-SPEC that has an image state of a fork
state such that is a sending state, |
– , , and the subpaths found
using the Partition_Parallel_Paths procedure given in Algorithm 5. |
Outputs: a remodeled PE-SPEC that has additional states and
transitions to consider the |
concurrency behavior of the service specification. |
Steps: |
(1) if the paths in and end with an image of a joint state and this joint
image state is a sending state then |
(1.1) LastSUBs , |
(1.2) for each path in do |
(1.2.1) LastSUBs = LastSUBs last sub-path in , |
(1.2.2) last sub-path in . |
(1.3) add to the
PE-SPEC model copies of each path in ,
where (i.e., |
number of paths in ) and , |
(1.4) connect each path in and its copies together using all subpaths in LastSUBs such |
that each combination of the subpaths is covered once. Connecting two paths using a |
subpath includes connecting each state in one of the paths to its corresponding state in |
the other path using the subpath, |
(1.5) join all
copied states that have no outgoing transitions together in a state j, |
(1.6) delete all
redundant transitions connected to state j, |
(1.7) redirect the
outgoing transitions from the joint state image to be initiated from state j, |
(2) for each state sg in do |
(2.1) for each path p in , |
(2.1.1) for each sub-path in do |
(2.1.1.1) add a copy of
the subpath to state sg such that the state sg is, respectively, |
the tail and head state of the first and last transitions in the subpath. |
(3) if there are copied paths
created using Step 1.3 then |
(3.1) for each copied path of an original path do |
(3.1.1) let q be the path from any state in to its copied state in , |
(3.1.2) for each subpath sp added in Step 2.1.1.1 to a state in
do |
(3.1.2.1) if
sp is a subpath of a path and
none of the transitions in q is a subpath in path then |
(3.1.2.1.1) for each state sc in
path do |
(3.1.2.1.1.1) add a copy of
the subpath sp to state sc such that the state sc is,
respectively, |
the tail and head state of the first and last transitions in the
subpath. |
(4) Delete
redundant transitions connected to the images of the fork and joint states. |
(5) Remove all paths in the groups in the set excluding the images of the fork and joint states in these paths. |