27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ecordProblem → A → reproduceProblem => recordProblem<br />

→ A → [recorded] → reproduceProblem; recordProblem → A<br />

→ auditAndRecord => recordProblem → A → [recorded] →<br />

[program statement rectified] → auditAndRecord;<br />

recordProblem → A → communicateResult => recordProblem<br />

→ A → [recorded] → [program statement rectified] →<br />

communicateResult; recordProblem → A → terminate =><br />

recordProblem → A → [not recorded] → terminate.<br />

A digraph [12] is deployed to visualize all the objects and<br />

action relations constructed, as shown in Fig. 8.<br />

INITIAL<br />

TERMINATE<br />

[not recorded]<br />

T<br />

Record Problem<br />

[not recorded]<br />

A<br />

[recorded]<br />

[recorded]<br />

Reproduce Problem<br />

idProblemAndResolution → D → verify Resolution → E →<br />

[problem not solved] → idProblemAndResolution → ...<br />

Next, the controls will be created by detecting the patterns<br />

as described in [13], whether they appear in the digraph. For<br />

example, if a node has more than one outgoing edges, this will<br />

signify the insertion of a fork, a decision, or both a fork and a<br />

decision node. A fork node will be inserted to the node which<br />

has all outgoing edges that are normal-type without label, while<br />

a decision node will be inserted to the node which has all<br />

outgoing edges that are normal-type with label. In Fig. 8, a<br />

decision node will be inserted to object A, B, and E. Based on<br />

Fig. 8, the insertion of a decision node to object [recorded], as<br />

shown in Fig. 9, results from applying the following process<br />

algebra (6) to reduce the complexity.<br />

Refer to [10] a . b + a. c = a . (b + c) (6)<br />

then [recorded] . reproduceProblem<br />

+ [recorded] . [problem statement rectified] =<br />

[recorded] . (reproduceProblem+[problem statement rectified])<br />

[cannot reproduce problem]<br />

[can reproduce problem]<br />

B<br />

[duplication<br />

of another<br />

problem]<br />

[not recorded]<br />

A<br />

[recorded]<br />

[not recorded]<br />

A<br />

[recorded]<br />

[cannot reproduce<br />

problem]<br />

[can reproduce<br />

problem]<br />

[duplication of<br />

another problem]<br />

[not recorded]<br />

[recorded]<br />

[not recorded]<br />

[recorded]<br />

[known<br />

problem<br />

and<br />

solution]<br />

Correct Problem<br />

[known problem<br />

and solution]<br />

ID Problem and<br />

Resolution<br />

C<br />

D<br />

[else]<br />

[problem not solved]<br />

[problem<br />

not solved]<br />

Verify Resolution<br />

E<br />

[problem statement<br />

rectified]<br />

[else]<br />

Figure 9. Example of mapping decision pattern<br />

Considering auditAndRecord and communicateResult, they<br />

have quite complex incoming edges providing tokens from four<br />

nodes. The result of using the simple fork pattern is illustrated<br />

in Fig. 10a. Process algebra is further applied to reduce the<br />

complexity or the number of edges. That is, from Fig. 8, let s1<br />

be C, s2 be [known problem and solution], s3 be [else], s4 be<br />

[problem statement rectified], t1 be auditAndRecord, and t2 be<br />

communicateResult, then s1 . (t1 || t2) + s2 . (t1 || t2) + s3 . (t1 ||<br />

t2) + s4 . (t1 || t2) = (s1 + s2 + s3 + s4) . (t1 || t2). The result is<br />

shown in Fig. 10b.<br />

[problem<br />

statement<br />

rectified]<br />

[known problem<br />

and solution]<br />

C<br />

[else]<br />

[problem statement<br />

rectified]<br />

Audit and Record<br />

Communicate Result<br />

F<br />

G<br />

Normal<br />

Loop<br />

Audit and Record<br />

Communicate Result<br />

(a)<br />

TERMINATE<br />

T<br />

Figure 8. Digraph of objects and action relations<br />

Terminate<br />

[known problem<br />

and solution]<br />

C<br />

[else]<br />

[problem statement<br />

rectified]<br />

When an edge has the ancestor action node as the target of<br />

the edge, it is considered as a lo op-type edge. Example looptype<br />

edge existing in Fig. 8 is the edge, which has [problem not<br />

solved] as source and idProblemAndResolution as target. It is<br />

observed that idProblemAndResolution is simultaneously the<br />

ancestor node and the target node on the looping path:<br />

Audit and Record<br />

Communicate Result<br />

Figure 10. Example of mapping fork pattern (a) without combined fork nodes<br />

(b) with combined fork nodes<br />

(b)<br />

728

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!