Upload
mahon
View
70
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Hasselt, 28 Sept 2012. 6 Lessons Learned Case Study: Replay a Log on Petri Net for Conformance Checking plug-in. A. Adriansyah. ProM Workshop. Overview. Event Log. Replay. Alignments. Visualizations. ABBCE ABCDE …. . . . . Petri net. . 1. - PowerPoint PPT Presentation
Citation preview
6 Lessons LearnedCase Study: Replay a Log on Petri Net for Conformance Checking plug-in
A. Adriansyah
Hasselt, 28 Sept 2012
ProM Workshop
2
Overview
Event Log AlignmentsReplay Visualizations
Petri net 1 2 3 …
ABBCEABCDE
…
<<uses>><<uses>> <<uses>> <<uses>>
<<uses>>
3
Replay algorithm
Event Log
Replay
Petri net
Alignments
ABBCEABCDE
…
1 2
<<uses>> <<uses>>
…
<<uses>>
// pseudocode1. Map event classes to transitions2. Check existence of Final Marking, create one if user wants3. Choose replay algorithm4. Execute replay algorithm
4
1. Reusing object via connection
5
Check connection using ConnectionManager
• Mapping is stored in EvClassLogPetrinetConnection
Event Log
Petri net
ABBCEABCDE
…
EvClassLogPetrinetConnection
Replay
connectionManager.getFirstConnection(EvClassLogPetrinetConnection.class,…)
<<uses>>
<<uses>>
<<uses>>
EvClassLogPetrinetConnectionFactory
@ConnectionObjectFactory
If no connection, automatically create one
6
Replay algorithm
Event Log
Replay
Petri net
Alignments
ABBCEABCDE
…
1 2
<<uses>> <<uses>>
…
<<uses>>
// pseudocode1. Map event classes to transitions2. Check existence of Final Marking, create one if user wants3. Choose replay algorithm4. Execute replay algorithm
7
Construct new objects, not just connection
• Constructing Final Marking object using existing plugin
Petri net FinalMarkingConnection
Replay
@ConnectionObjectFactoryNew object needs to be created
pluginManager.find(ConnectionObjectFactory.class, FinalMarkingConnection.class,...);
…childContext = context.createChildContext(...);…pluginParameterBinding.invoke(childContext, net);…childContext.getParentContext().deleteChild(childContext);
Create Final Marking
Marking
<<uses>>
<<uses>>
8
Overview
Event Log AlignmentsReplay Visualizations
Petri net 1 2 3 …
ABBCEABCDE
…
<<uses>><<uses>> <<uses>> <<uses>>
<<uses>>
9
2. Use annotations to register variants
10
Designing variants using interface
Event Log
Replay
Petri net
Alignments
ABBCEABCDE
…
IPNReplayAlgorithm+ replayLog
+ isReqWOParameterSatisfied+ isAllReqSatisfied
+ constructParamProvider
IPNReplayParamProvider+ constructReplayParameter
+ constructGUI
IPNReplayParameter+ isCreatingConn
+ isGUIMode+ setInitialMarking
<<uses>>
<<uses>>
<<uses>>
1 2
<<uses>> <<uses>>
…
<<uses>>
11
Register new algorithms without changing GUI code
• Create annotation @PNReplayAlgorithm• Annotate all algorithms with @PNReplayAlgorithm• Use the annotation in replay GUI to register algorithms
Event Log
Replay
Petri net
Alignments
ABBCEABCDE
…
1 2
<<uses>> <<uses>>
…
<<uses>>
@PNReplayAlgorithm @PNReplayAlgorithm @PNReplayAlgorithm
pluginManager.getKnownClassAnnotatedWith(PNReplayAlgorithm.class)
12
Overview
Event Log AlignmentsReplay Visualizations
Petri net 1 2 3 …
ABBCEABCDE
…
<<uses>><<uses>> <<uses>> <<uses>>
<<uses>>
13
3. Visual Analytics
<<uses>><<uses>>
<<uses>>
<<uses>>
<<uses>>
14
Visualization without heavy computation
• Simply create visualization panel
Project Alignment to Log
Model Projected With Alignments
Alignments
15
Visualization may require extra computation
• Computation is postponed until visualization is needed
Alignments
xFrequent Movement Sets Mining for Deviation Analysis
Frequent Item Sets need to be calculated
16
Visualization using another package
• Possible because of separated visualization panel class• Don’t forget to add package dependencies
Alignments
Trace Alignment of Alignments
GuideTreeMinerTraceAlignmentWithGuideTree
<<uses>> <<uses>>
17
UI Components in the Widgets package
Widgets
18
4. Create reusable side-object as needed
ProvidedObjectHelper.publish(context, “Log of shown cases”, log, XLog.class, true);
19
Overview
Event Log AlignmentsReplay Visualizations
Petri net 1 2 3 …
ABBCEABCDE
…
<<uses>><<uses>> <<uses>> <<uses>>
<<uses>>
20
5. Keep package size as small as possible
21
Package distribution
Event Log AlignmentsReplay Visualizations
Petri net 1 2 3 …
ABBCEABCDE
…
<<uses>><<uses>> <<uses>> <<uses>>
<<uses>>
GuideTreeMiner & TraceAlignmentWithGuideTree
<<uses>>
<<uses>>
PNetReplayer
PNetAlignmentAnalysis
<<uses>>
22
6. Make your code reusable
23
Improving reusability of your code
• Provide variants without GUI and connection
PNetReplayer
ETConformance
CNetReplayer
Compliance
<<uses>>
context.tryToFindOrConstructFirstObject(...)
replayAlgorithm.replayLog(...)
<<uses>>
<<uses>>
replayAlgorithm.replayLog(...)
…
24
Take home points
• Designing plugin• Create a non-GUI version of your plugin• Reuse objects• Utilize interface and annotations to cover variants
• Designing GUI• Separate visualization panel• Reuse code: see Widgets package
• Designing package• Keep it small
25
Q&A