Compare commits
25 Commits
cc46c8fb18
...
main
Author | SHA1 | Date | |
---|---|---|---|
b062684751 | |||
51454e43a5 | |||
0844b209b1 | |||
4afc1d17df | |||
f81caa141e | |||
85c0c80656 | |||
b591bd88fb | |||
8f4689c94f | |||
b43cd2dd31 | |||
0195b3e077 | |||
206b495410 | |||
d686bc6d8b | |||
47d2f81005 | |||
49548203b5 | |||
5084aa4aaf | |||
7dc1198836 | |||
4816f8c625 | |||
6a5d72d3ce | |||
e680decdf5 | |||
c613e7ef6f | |||
6e158a7692 | |||
4793d427d9 | |||
c215157190 | |||
baecaf679d | |||
23a0ce6508 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
**/__pycache__/
|
219
Assignment-2/DCR_graph.py
Normal file
219
Assignment-2/DCR_graph.py
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
import xmltodict
|
||||||
|
|
||||||
|
def listify(element):
|
||||||
|
if isinstance(element, list):
|
||||||
|
return element
|
||||||
|
return [element]
|
||||||
|
|
||||||
|
class Event():
|
||||||
|
def __init__(self, _id:str, name:str, id_dict:dict, parent:Process=None) -> None:
|
||||||
|
self._id = _id
|
||||||
|
self.name = name.lower()
|
||||||
|
self.pending = False
|
||||||
|
self.executed = False
|
||||||
|
self.included = False
|
||||||
|
self.relations_to : list[Relationship] = []
|
||||||
|
self.relations_from : list[Relationship] = []
|
||||||
|
self.parent = parent
|
||||||
|
|
||||||
|
id_dict[_id] = self
|
||||||
|
|
||||||
|
def execute(self):
|
||||||
|
self.executed = True
|
||||||
|
self.pending = False
|
||||||
|
for relationship in self.relations_from:
|
||||||
|
relationship.execute()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def enabled(self):
|
||||||
|
if self.parent is not None:
|
||||||
|
included = self.included and self.parent.enabled
|
||||||
|
else:
|
||||||
|
included = self.included
|
||||||
|
|
||||||
|
no_conditions = all(
|
||||||
|
condition.source.executed or not condition.source.included
|
||||||
|
for condition in [
|
||||||
|
relation
|
||||||
|
for relation in self.relations_to
|
||||||
|
if relation.type == RelationsshipType.condition
|
||||||
|
]
|
||||||
|
)
|
||||||
|
no_milestones = all(
|
||||||
|
not milestone.source.pending or not milestone.source.included
|
||||||
|
for milestone in [
|
||||||
|
relation
|
||||||
|
for relation in self.relations_to
|
||||||
|
if relation.type == RelationsshipType.milestone
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
return included and no_conditions and no_milestones
|
||||||
|
|
||||||
|
def enabled_list(self):
|
||||||
|
if self.included:
|
||||||
|
return [self]
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
|
def __repr__(self) -> str:
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
def pending_list(self):
|
||||||
|
if self.pending and self.included:
|
||||||
|
return [self]
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
|
class Process(Event):
|
||||||
|
def __init__(self, _id:str, name:str, label_mappings: dict, events: list, id_dict: dict,parent:Process=None) -> None:
|
||||||
|
super().__init__(_id,name,id_dict,parent)
|
||||||
|
self.process_process(label_mappings, events, id_dict)
|
||||||
|
|
||||||
|
def process_process(self, label_mappings: dict, events: list, id_dict):
|
||||||
|
self.events = []
|
||||||
|
for event in events:
|
||||||
|
_id = event["@id"]
|
||||||
|
label = label_mappings[_id]
|
||||||
|
if "@type" in event:
|
||||||
|
new_event = Process(_id, label, label_mappings, listify(event["event"]), id_dict, self)
|
||||||
|
else:
|
||||||
|
new_event = Event(_id, label, id_dict, self)
|
||||||
|
|
||||||
|
self.events.append(new_event)
|
||||||
|
|
||||||
|
def enabled_list(self):
|
||||||
|
if self.enabled:
|
||||||
|
enabled_events = [self] if self._id != "" else []
|
||||||
|
for event in self.events:
|
||||||
|
enabled_events += event.enabled_list()
|
||||||
|
else:
|
||||||
|
enabled_events = []
|
||||||
|
|
||||||
|
return enabled_events
|
||||||
|
|
||||||
|
def pending_list(self):
|
||||||
|
pending_events = []
|
||||||
|
if self.pending and self.included:
|
||||||
|
pending_events.append(self)
|
||||||
|
|
||||||
|
for event in self.events:
|
||||||
|
pending_events += event.pending_list()
|
||||||
|
|
||||||
|
return pending_events
|
||||||
|
|
||||||
|
class RelationsshipType(Enum):
|
||||||
|
condition = 0
|
||||||
|
response = 1
|
||||||
|
coresponse = 2
|
||||||
|
exclude = 3
|
||||||
|
include = 4
|
||||||
|
milestone = 5
|
||||||
|
update = 6
|
||||||
|
spawn = 7
|
||||||
|
templateSpawn = 8
|
||||||
|
|
||||||
|
class Relationship():
|
||||||
|
def __init__(self, source:Event, target:Event, type) -> None:
|
||||||
|
self.source = source
|
||||||
|
self.target = target
|
||||||
|
self.type = type
|
||||||
|
|
||||||
|
def execute(self):
|
||||||
|
if self.type == RelationsshipType.condition:
|
||||||
|
pass # does nothing (Since the source is executed as well)
|
||||||
|
elif self.type == RelationsshipType.response:
|
||||||
|
self.target.pending = True
|
||||||
|
elif self.type == RelationsshipType.coresponse:
|
||||||
|
pass # Don't know what this one does
|
||||||
|
elif self.type == RelationsshipType.exclude:
|
||||||
|
self.target.included = False
|
||||||
|
elif self.type == RelationsshipType.include:
|
||||||
|
self.target.included = True
|
||||||
|
elif self.type == RelationsshipType.milestone:
|
||||||
|
pass # does nothing (Since the source is executed as well)
|
||||||
|
elif self.type == RelationsshipType.update:
|
||||||
|
pass # Don't know what this one does
|
||||||
|
elif self.type == RelationsshipType.spawn:
|
||||||
|
pass # We figured it was outside the assignments scope to implement this
|
||||||
|
elif self.type == RelationsshipType.templateSpawn:
|
||||||
|
pass # Don't know what this one does
|
||||||
|
|
||||||
|
class Graph():
|
||||||
|
def __init__(self, process:Process, relationships:list[Relationship], id_dict: dict) -> None:
|
||||||
|
self.process = process
|
||||||
|
self.relationships = relationships
|
||||||
|
self.id_dict = id_dict
|
||||||
|
|
||||||
|
@property
|
||||||
|
def enabled(self):
|
||||||
|
return self.process.enabled_list()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pending(self):
|
||||||
|
return self.process.pending_list()
|
||||||
|
|
||||||
|
def xml_to_dcr(xml_file):
|
||||||
|
with open(xml_file) as file_pointer:
|
||||||
|
dcr_dict = xmltodict.parse(file_pointer.read())["dcrgraph"]
|
||||||
|
|
||||||
|
label_mappings = {
|
||||||
|
lm["@eventId"]:lm["@labelId"]
|
||||||
|
for lm in listify(dcr_dict["specification"]["resources"]["labelMappings"]["labelMapping"])
|
||||||
|
}
|
||||||
|
|
||||||
|
id_dict: dict[str,Event] = {}
|
||||||
|
graph = Process("", "", label_mappings, listify(dcr_dict["specification"]["resources"]["events"]["event"]), id_dict)
|
||||||
|
graph.included = True
|
||||||
|
|
||||||
|
def extract_markings(key):
|
||||||
|
return [
|
||||||
|
_id["@id"]
|
||||||
|
for _id in listify(dcr_dict["runtime"]["marking"][key]["event"])
|
||||||
|
] if dcr_dict["runtime"]["marking"][key] is not None else []
|
||||||
|
|
||||||
|
executed = extract_markings("executed")
|
||||||
|
for _id in executed:
|
||||||
|
id_dict[_id].executed = True
|
||||||
|
|
||||||
|
included = extract_markings("included")
|
||||||
|
for _id in included:
|
||||||
|
id_dict[_id].included = True
|
||||||
|
|
||||||
|
pending = extract_markings("pendingResponses")
|
||||||
|
for _id in pending:
|
||||||
|
id_dict[_id].pending = True
|
||||||
|
|
||||||
|
|
||||||
|
def extract_relationships(key):
|
||||||
|
return [
|
||||||
|
(r["@sourceId"], r["@targetId"])
|
||||||
|
for r in listify(dcr_dict["specification"]["constraints"][key][key[:-1]])
|
||||||
|
] if dcr_dict["specification"]["constraints"][key] is not None else []
|
||||||
|
|
||||||
|
conditions = extract_relationships("conditions")
|
||||||
|
responses = extract_relationships("responses")
|
||||||
|
coresponses = extract_relationships("coresponses")
|
||||||
|
excludes = extract_relationships("excludes")
|
||||||
|
includes = extract_relationships("includes")
|
||||||
|
milestones = extract_relationships("milestones")
|
||||||
|
updates = extract_relationships("updates")
|
||||||
|
spawns = extract_relationships("spawns")
|
||||||
|
templateSpawns = extract_relationships("templateSpawns")
|
||||||
|
|
||||||
|
relationships: list[Relationship] = []
|
||||||
|
|
||||||
|
for i, relationship_list in enumerate([conditions,responses,coresponses,excludes,includes,milestones,updates,spawns,templateSpawns]):
|
||||||
|
for relationship in relationship_list:
|
||||||
|
source = id_dict[relationship[0]]
|
||||||
|
target = id_dict[relationship[1]]
|
||||||
|
relationships.append(Relationship(source,target, RelationsshipType(i)))
|
||||||
|
|
||||||
|
for relationship in relationships:
|
||||||
|
relationship.source.relations_from.append(relationship)
|
||||||
|
relationship.target.relations_to.append(relationship)
|
||||||
|
|
||||||
|
return Graph(graph, relationship, id_dict)
|
@ -1 +1,10 @@
|
|||||||
|
In order to run the code, use a terminal to navigate into the src-directory
|
||||||
|
and type the following command
|
||||||
|
$ python main.py [dcr-graph] [log]
|
||||||
|
|
||||||
|
replace [dcr-graph] with the location of the dcr-graph in .xml-format, and
|
||||||
|
[log] with the location of the log in .csv
|
||||||
|
|
||||||
|
For example if one wanted to run the test with the Dreyers-log and our full
|
||||||
|
DCR-graph use the command
|
||||||
|
$ python main.py data/DCR-full.xml data/log.csv
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
type SetFileRequest: void {
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ServerInterface {
|
|
||||||
RequestResponse:
|
|
||||||
setFile( SetFileRequest )( void )
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
from .ServerInterface import ServerInterface
|
|
||||||
from file import File
|
|
||||||
|
|
||||||
service ExampleClient{
|
|
||||||
|
|
||||||
embed File as file
|
|
||||||
|
|
||||||
outputPort server {
|
|
||||||
Location: "socket://localhost:9000"
|
|
||||||
Protocol: sodep
|
|
||||||
Interfaces: ServerInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
main {
|
|
||||||
readFile@file( {filename = "source.txt"} )( content )
|
|
||||||
setFileContent@server( content )()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
28
Assignment-2/conformance_testing.py
Normal file
28
Assignment-2/conformance_testing.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
from DCR_graph import Graph
|
||||||
|
|
||||||
|
def conformance_test(log:pd.DataFrame, dcr_graph:Graph):
|
||||||
|
all_event_names = {
|
||||||
|
value.name:value for value in dcr_graph.id_dict.values()
|
||||||
|
}
|
||||||
|
|
||||||
|
log = log.sort_values(by="Date")
|
||||||
|
|
||||||
|
for _, event in log.iterrows():
|
||||||
|
event_name = event.EventName.lower()
|
||||||
|
if event_name not in all_event_names:
|
||||||
|
if "_row_" not in all_event_names:
|
||||||
|
return False
|
||||||
|
|
||||||
|
event_name = "_row_"
|
||||||
|
|
||||||
|
if not all_event_names[event_name].enabled:
|
||||||
|
return False
|
||||||
|
|
||||||
|
all_event_names[event_name].execute()
|
||||||
|
|
||||||
|
if dcr_graph.pending != []:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
@ -1,7 +1,7 @@
|
|||||||
<dcrgraph title="DCR-assignment2" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="-6" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
<dcrgraph title="DCR-assignment2" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="-9" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
<meta>
|
<meta>
|
||||||
<graph id="1480451" hash="B57AEB3AC80E3F33A8CBA5689180B25A" guid="CF886AC9-F48C-468C-A4F8-1A5F02F686D7" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
<graph id="1480451" hash="8C08130CF6825C45BF5660A4ACE1D703" guid="CF886AC9-F48C-468C-A4F8-1A5F02F686D7" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
<revision id="3046918" type="minor" date="2023-01-04T13:06:34.743"/>
|
<revision id="3047278" type="minor" date="2023-01-04T17:15:25.300"/>
|
||||||
<organization id="1" name="Community"/>
|
<organization id="1" name="Community"/>
|
||||||
</meta>
|
</meta>
|
||||||
<specification>
|
<specification>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="425" yLoc="25"/>
|
<location xLoc="475" yLoc="75"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -109,7 +109,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="450" yLoc="75"/>
|
<location xLoc="500" yLoc="125"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -142,7 +142,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="600" yLoc="75"/>
|
<location xLoc="650" yLoc="125"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -175,7 +175,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="750" yLoc="75"/>
|
<location xLoc="800" yLoc="125"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -208,7 +208,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="900" yLoc="75"/>
|
<location xLoc="950" yLoc="125"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -241,7 +241,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="450" yLoc="225"/>
|
<location xLoc="500" yLoc="275"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -274,7 +274,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="600" yLoc="225"/>
|
<location xLoc="650" yLoc="275"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -307,7 +307,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="750" yLoc="225"/>
|
<location xLoc="800" yLoc="275"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -340,7 +340,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="900" yLoc="225"/>
|
<location xLoc="950" yLoc="275"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -369,11 +369,11 @@
|
|||||||
<interfaces/>
|
<interfaces/>
|
||||||
</custom>
|
</custom>
|
||||||
</event>
|
</event>
|
||||||
<event id="Activity4">
|
<event id="Haha">
|
||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="450" yLoc="375"/>
|
<location xLoc="500" yLoc="425"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -406,7 +406,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="600" yLoc="375"/>
|
<location xLoc="650" yLoc="425"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -439,7 +439,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="750" yLoc="375"/>
|
<location xLoc="800" yLoc="425"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -472,7 +472,7 @@
|
|||||||
<precondition message=""/>
|
<precondition message=""/>
|
||||||
<custom>
|
<custom>
|
||||||
<visualization>
|
<visualization>
|
||||||
<location xLoc="900" yLoc="375"/>
|
<location xLoc="950" yLoc="425"/>
|
||||||
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
</visualization>
|
</visualization>
|
||||||
<roles>
|
<roles>
|
||||||
@ -501,6 +501,39 @@
|
|||||||
<interfaces/>
|
<interfaces/>
|
||||||
</custom>
|
</custom>
|
||||||
</event>
|
</event>
|
||||||
|
<event id="Activity15">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="500" yLoc="575"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>18</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
</event>
|
</event>
|
||||||
</events>
|
</events>
|
||||||
<subProcesses/>
|
<subProcesses/>
|
||||||
@ -508,36 +541,38 @@
|
|||||||
<labels>
|
<labels>
|
||||||
<label id="Fill Out Application"/>
|
<label id="Fill Out Application"/>
|
||||||
<label id="Change phase to abandon"/>
|
<label id="Change phase to abandon"/>
|
||||||
<label id="Architect review"/>
|
<label id="Treat Application"/>
|
||||||
<label id="Execute Abandon"/>
|
<label id="Execute Abandon"/>
|
||||||
<label id="Lawyer Review"/>
|
|
||||||
<label id="Change Phase to Abort"/>
|
<label id="Change Phase to Abort"/>
|
||||||
<label id="Reject"/>
|
|
||||||
<label id="Applicant Informed"/>
|
|
||||||
<label id="Undo Payment"/>
|
|
||||||
<label id="First Payment"/>
|
|
||||||
<label id="Change Phase to End Report"/>
|
<label id="Change Phase to End Report"/>
|
||||||
<label id="Change Phase to Payout"/>
|
<label id="Change Phase to Payout"/>
|
||||||
|
<label id="Architect review"/>
|
||||||
|
<label id="Reject"/>
|
||||||
|
<label id="First Payment"/>
|
||||||
<label id="Approve Change"/>
|
<label id="Approve Change"/>
|
||||||
|
<label id="Lawyer Review"/>
|
||||||
|
<label id="Applicant Informed"/>
|
||||||
|
<label id="Undo Payment"/>
|
||||||
<label id="Change Account Number"/>
|
<label id="Change Account Number"/>
|
||||||
<label id="Treat Application"/>
|
<label id="_ROW_"/>
|
||||||
</labels>
|
</labels>
|
||||||
<labelMappings>
|
<labelMappings>
|
||||||
<labelMapping eventId="Activity0" labelId="Fill Out Application"/>
|
<labelMapping eventId="Activity0" labelId="Fill Out Application"/>
|
||||||
<labelMapping eventId="Activity1" labelId="Change phase to abandon"/>
|
<labelMapping eventId="Activity1" labelId="Change phase to abandon"/>
|
||||||
<labelMapping eventId="Activity3_1" labelId="Architect review"/>
|
<labelMapping eventId="Activity14" labelId="Treat Application"/>
|
||||||
<labelMapping eventId="Activity3" labelId="Execute Abandon"/>
|
<labelMapping eventId="Activity3" labelId="Execute Abandon"/>
|
||||||
<labelMapping eventId="Activity4" labelId="Lawyer Review"/>
|
|
||||||
<labelMapping eventId="Activity5" labelId="Change Phase to Abort"/>
|
<labelMapping eventId="Activity5" labelId="Change Phase to Abort"/>
|
||||||
<labelMapping eventId="Activity6" labelId="Reject"/>
|
|
||||||
<labelMapping eventId="Activity7" labelId="Applicant Informed"/>
|
|
||||||
<labelMapping eventId="Activity8" labelId="Undo Payment"/>
|
|
||||||
<labelMapping eventId="Activity9" labelId="First Payment"/>
|
|
||||||
<labelMapping eventId="Activity10" labelId="Change Phase to End Report"/>
|
<labelMapping eventId="Activity10" labelId="Change Phase to End Report"/>
|
||||||
<labelMapping eventId="Activity11" labelId="Change Phase to Payout"/>
|
<labelMapping eventId="Activity11" labelId="Change Phase to Payout"/>
|
||||||
|
<labelMapping eventId="Activity3_1" labelId="Architect review"/>
|
||||||
|
<labelMapping eventId="Activity6" labelId="Reject"/>
|
||||||
|
<labelMapping eventId="Activity9" labelId="First Payment"/>
|
||||||
<labelMapping eventId="Activity12" labelId="Approve Change"/>
|
<labelMapping eventId="Activity12" labelId="Approve Change"/>
|
||||||
|
<labelMapping eventId="Haha" labelId="Lawyer Review"/>
|
||||||
|
<labelMapping eventId="Activity7" labelId="Applicant Informed"/>
|
||||||
|
<labelMapping eventId="Activity8" labelId="Undo Payment"/>
|
||||||
<labelMapping eventId="Activity13" labelId="Change Account Number"/>
|
<labelMapping eventId="Activity13" labelId="Change Account Number"/>
|
||||||
<labelMapping eventId="Activity14" labelId="Treat Application"/>
|
<labelMapping eventId="Activity15" labelId="_ROW_"/>
|
||||||
</labelMappings>
|
</labelMappings>
|
||||||
<expressions>
|
<expressions>
|
||||||
<expression id="Activity3-path-Activity1--exclude" value="not(true)"/>
|
<expression id="Activity3-path-Activity1--exclude" value="not(true)"/>
|
||||||
@ -566,7 +601,9 @@
|
|||||||
</graphFilters>
|
</graphFilters>
|
||||||
<hightlighterMarkup id="HLM"/>
|
<hightlighterMarkup id="HLM"/>
|
||||||
<highlighterMarkup>
|
<highlighterMarkup>
|
||||||
<highlightLayers/>
|
<highlightLayers>
|
||||||
|
<highlightLayer default="true" name="description">DCR Process</highlightLayer>
|
||||||
|
</highlightLayers>
|
||||||
<highlights/>
|
<highlights/>
|
||||||
</highlighterMarkup>
|
</highlighterMarkup>
|
||||||
</custom>
|
</custom>
|
||||||
@ -574,6 +611,7 @@
|
|||||||
<constraints>
|
<constraints>
|
||||||
<conditions>
|
<conditions>
|
||||||
<condition sourceId="Activity0" targetId="Activity14" filterLevel="1" description="" time="" groups=""/>
|
<condition sourceId="Activity0" targetId="Activity14" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<condition sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity0--condition--Activity1"/>
|
||||||
</conditions>
|
</conditions>
|
||||||
<responses>
|
<responses>
|
||||||
<response sourceId="Activity6" targetId="Activity5" filterLevel="1" description="" time="" groups=""/>
|
<response sourceId="Activity6" targetId="Activity5" filterLevel="1" description="" time="" groups=""/>
|
||||||
@ -583,15 +621,17 @@
|
|||||||
</responses>
|
</responses>
|
||||||
<coresponses/>
|
<coresponses/>
|
||||||
<excludes>
|
<excludes>
|
||||||
<exclude sourceId="Activity0" targetId="Activity0" filterLevel="1" description="" time="" groups=""/>
|
|
||||||
<exclude sourceId="Activity3" targetId="Activity1" filterLevel="1" description="" time="" groups="" expressionId="Activity3-path-Activity1--exclude" link="Activity14.Activity3--include--Activity1"/>
|
<exclude sourceId="Activity3" targetId="Activity1" filterLevel="1" description="" time="" groups="" expressionId="Activity3-path-Activity1--exclude" link="Activity14.Activity3--include--Activity1"/>
|
||||||
<exclude sourceId="Activity3" targetId="Activity14" filterLevel="1" description="" time="" groups=""/>
|
|
||||||
<exclude sourceId="Activity3_1" targetId="Activity4" filterLevel="1" description="" time="" groups=""/>
|
|
||||||
<exclude sourceId="Activity4" targetId="Activity3_1" filterLevel="1" description="" time="" groups=""/>
|
|
||||||
<exclude sourceId="Activity9" targetId="Activity10" filterLevel="1" description="" time="" groups="" expressionId="Activity9-path-Activity10--exclude" link="Activity14.Activity9--include--Activity14.Activity10"/>
|
<exclude sourceId="Activity9" targetId="Activity10" filterLevel="1" description="" time="" groups="" expressionId="Activity9-path-Activity10--exclude" link="Activity14.Activity9--include--Activity14.Activity10"/>
|
||||||
<exclude sourceId="Activity9" targetId="Activity9" filterLevel="1" description="" time="" groups=""/>
|
|
||||||
<exclude sourceId="Activity8" targetId="Activity9" filterLevel="1" description="" time="" groups="" expressionId="Activity8-path-Activity9--exclude" link="Activity14.Activity8--include--Activity14.Activity9"/>
|
<exclude sourceId="Activity8" targetId="Activity9" filterLevel="1" description="" time="" groups="" expressionId="Activity8-path-Activity9--exclude" link="Activity14.Activity8--include--Activity14.Activity9"/>
|
||||||
|
<exclude sourceId="Activity0" targetId="Activity0" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity3" targetId="Activity14" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity3_1" targetId="Haha" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Haha" targetId="Activity3_1" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity9" targetId="Activity9" filterLevel="1" description="" time="" groups=""/>
|
||||||
<exclude sourceId="Activity11" targetId="Activity10" filterLevel="1" description="" time="" groups=""/>
|
<exclude sourceId="Activity11" targetId="Activity10" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity1" targetId="Activity0" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity3" targetId="Activity0" filterLevel="1" description="" time="" groups=""/>
|
||||||
</excludes>
|
</excludes>
|
||||||
<includes>
|
<includes>
|
||||||
<include sourceId="Activity3" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity14.Activity3--include--Activity1"/>
|
<include sourceId="Activity3" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity14.Activity3--include--Activity1"/>
|
||||||
@ -600,6 +640,7 @@
|
|||||||
</includes>
|
</includes>
|
||||||
<milestones>
|
<milestones>
|
||||||
<milestone sourceId="Activity12" targetId="Activity9" filterLevel="1" description="" time="" groups=""/>
|
<milestone sourceId="Activity12" targetId="Activity9" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<milestone sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity0--condition--Activity1"/>
|
||||||
</milestones>
|
</milestones>
|
||||||
<updates/>
|
<updates/>
|
||||||
<spawns/>
|
<spawns/>
|
||||||
@ -616,25 +657,22 @@
|
|||||||
<included>
|
<included>
|
||||||
<event id="Activity0"/>
|
<event id="Activity0"/>
|
||||||
<event id="Activity1"/>
|
<event id="Activity1"/>
|
||||||
<event id="Activity3_1"/>
|
<event id="Activity14"/>
|
||||||
<event id="Activity3"/>
|
<event id="Activity3"/>
|
||||||
<event id="Activity4"/>
|
|
||||||
<event id="Activity5"/>
|
<event id="Activity5"/>
|
||||||
<event id="Activity6"/>
|
|
||||||
<event id="Activity7"/>
|
|
||||||
<event id="Activity8"/>
|
|
||||||
<event id="Activity9"/>
|
|
||||||
<event id="Activity10"/>
|
<event id="Activity10"/>
|
||||||
<event id="Activity11"/>
|
<event id="Activity11"/>
|
||||||
<event id="Activity12"/>
|
|
||||||
<event id="Activity13"/>
|
|
||||||
<event id="Activity14"/>
|
|
||||||
</included>
|
|
||||||
<pendingResponses>
|
|
||||||
<event id="Activity0"/>
|
|
||||||
<event id="Activity3_1"/>
|
<event id="Activity3_1"/>
|
||||||
<event id="Activity4"/>
|
<event id="Activity6"/>
|
||||||
</pendingResponses>
|
<event id="Activity9"/>
|
||||||
|
<event id="Activity12"/>
|
||||||
|
<event id="Haha"/>
|
||||||
|
<event id="Activity7"/>
|
||||||
|
<event id="Activity8"/>
|
||||||
|
<event id="Activity13"/>
|
||||||
|
<event id="Activity15"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
</marking>
|
</marking>
|
||||||
</runtime>
|
</runtime>
|
||||||
</dcrgraph>
|
</dcrgraph>
|
6471
Assignment-2/data/log.csv
Normal file
6471
Assignment-2/data/log.csv
Normal file
File diff suppressed because it is too large
Load Diff
89
Assignment-2/data/logs-test.csv
Normal file
89
Assignment-2/data/logs-test.csv
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
ID;Date;EventName
|
||||||
|
R1-1;1;Lawyer Review
|
||||||
|
R1-1;2;Fill out application
|
||||||
|
|
||||||
|
R2-1;1;Fill out application
|
||||||
|
R2-1;2;Lawyer Review
|
||||||
|
R2-1;3;Architect Review
|
||||||
|
|
||||||
|
R2-2;1;Fill out application
|
||||||
|
R2-2;2;Architect Review
|
||||||
|
R2-2;3;Lawyer Review
|
||||||
|
|
||||||
|
R3-1;1;Fill out application
|
||||||
|
R3-1;2;Architect Review
|
||||||
|
R3-1;3;Reject
|
||||||
|
|
||||||
|
R3-2;1;Fill out application
|
||||||
|
R3-2;2;Architect Review
|
||||||
|
R3-2;3;Reject
|
||||||
|
R3-2;4;Applicant informed
|
||||||
|
|
||||||
|
R3-3;1;Fill out application
|
||||||
|
R3-3;2;Architect Review
|
||||||
|
R3-3;3;Reject
|
||||||
|
R3-3;4;Change phase to abort
|
||||||
|
|
||||||
|
R3-4;1;Fill out application
|
||||||
|
R3-4;2;Architect Review
|
||||||
|
R3-4;3;Reject
|
||||||
|
R3-4;4;Change phase to abort
|
||||||
|
R3-4;5;Applicant informed
|
||||||
|
|
||||||
|
R4-1;1;Fill out application
|
||||||
|
R4-1;2;Architect Review
|
||||||
|
R4-1;3;First payment
|
||||||
|
|
||||||
|
R4-2;1;Fill out application
|
||||||
|
R4-2;2;Architect Review
|
||||||
|
R4-2;3;First payment
|
||||||
|
R4-2;4;First payment
|
||||||
|
|
||||||
|
R4-3;1;Fill out application
|
||||||
|
R4-3;2;Architect Review
|
||||||
|
R4-3;3;First payment
|
||||||
|
R4-3;3;Undo payment
|
||||||
|
R4-3;5;First payment
|
||||||
|
|
||||||
|
R5-1;1;Fill out application
|
||||||
|
R5-1;2;Architect Review
|
||||||
|
R5-1;3;Account no. changed
|
||||||
|
|
||||||
|
R5-2;1;Fill out application
|
||||||
|
R5-2;2;Architect Review
|
||||||
|
R5-2;3;Account no. changed
|
||||||
|
R5-2;4;First payment
|
||||||
|
|
||||||
|
R5-3;1;Fill out application
|
||||||
|
R5-3;2;Architect Review
|
||||||
|
R5-3;3;Account no. changed
|
||||||
|
R5-3;4;Approve change
|
||||||
|
R5-3;5;First payment
|
||||||
|
|
||||||
|
R6-1;1;Fill out application
|
||||||
|
R6-1;2;Architect Review
|
||||||
|
R6-1;3;Change phase to payout
|
||||||
|
|
||||||
|
R6-2;1;Fill out application
|
||||||
|
R6-2;2;Architect Review
|
||||||
|
R6-2;3;Change phase to payout
|
||||||
|
R6-2;4;First payment
|
||||||
|
|
||||||
|
R7-1;1;Fill out application
|
||||||
|
R7-1;2;Architect Review
|
||||||
|
R7-1;3;Change phase to payout
|
||||||
|
R7-1;4;Change phase to end report
|
||||||
|
|
||||||
|
R7-2;1;Fill out application
|
||||||
|
R7-2;2;Architect Review
|
||||||
|
R7-2;3;Change phase to payout
|
||||||
|
R7-2;4;First payment
|
||||||
|
R7-2;5;Change phase to end report
|
||||||
|
|
||||||
|
R8-1;1;Fill out application
|
||||||
|
R8-1;2;Execute abandon
|
||||||
|
R8-1;3;Architect Review
|
||||||
|
|
||||||
|
R8-2;1;Fill out application
|
||||||
|
R8-2;2;Execute abandon
|
||||||
|
R8-2;3;Change phase to abandon
|
|
147
Assignment-2/data/rule1.xml
Normal file
147
Assignment-2/data/rule1.xml
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<dcrgraph title="rule1" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480476" hash="6F966D2BD2E029FBED819ECA9DF62DD8" guid="CE0E9E66-56FA-4C11-AB34-AC5B15200578" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049355" type="minor" date="2023-01-06T11:48:12.630"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="500" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="Fill out application"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="Fill out application"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions/>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers>
|
||||||
|
<highlightLayer default="true" name="description">DCR Process</highlightLayer>
|
||||||
|
</highlightLayers>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions>
|
||||||
|
<condition sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity0--condition--Activity1"/>
|
||||||
|
</conditions>
|
||||||
|
<responses/>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes/>
|
||||||
|
<includes/>
|
||||||
|
<milestones>
|
||||||
|
<milestone sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity0--condition--Activity1"/>
|
||||||
|
</milestones>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
182
Assignment-2/data/rule2.xml
Normal file
182
Assignment-2/data/rule2.xml
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
<dcrgraph title="rule2" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480477" hash="B1EAC1D1D149C201E96D5AE5C87C5BBA" guid="65962BFA-5221-4BC3-9E00-BCF32A12B78B" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049366" type="minor" date="2023-01-06T11:50:42.830"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="175"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="Architect Review"/>
|
||||||
|
<label id="Lawyer Review"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="Architect Review"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Lawyer Review"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions/>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers>
|
||||||
|
<highlightLayer default="true" name="description">DCR Process</highlightLayer>
|
||||||
|
</highlightLayers>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses/>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes>
|
||||||
|
<exclude sourceId="Activity1" targetId="Activity0" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</excludes>
|
||||||
|
<includes/>
|
||||||
|
<milestones/>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
216
Assignment-2/data/rule3.xml
Normal file
216
Assignment-2/data/rule3.xml
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
<dcrgraph title="rule3" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480478" hash="327595CDE8C1485964EB7E2931062308" guid="3142915D-F1D4-446E-8C3D-EB8F50A4FD81" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049122" type="minor" date="2023-01-06T10:43:00.427"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity3">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>4</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="Reject"/>
|
||||||
|
<label id="Applicant Informed"/>
|
||||||
|
<label id="Change phase to abort"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="Reject"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Applicant Informed"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="Change phase to abort"/>
|
||||||
|
<labelMapping eventId="Activity3" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions/>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers/>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses>
|
||||||
|
<response sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<response sourceId="Activity0" targetId="Activity2" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</responses>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes/>
|
||||||
|
<includes/>
|
||||||
|
<milestones/>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
<event id="Activity3"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
184
Assignment-2/data/rule4.xml
Normal file
184
Assignment-2/data/rule4.xml
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
<dcrgraph title="rule4" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480479" hash="4D581DBC03037557A8B70AADA6E0B529" guid="FBEFC142-74E3-49EB-9E91-2BC7E7C51EAD" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049136" type="minor" date="2023-01-06T10:44:17.820"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="First Payment"/>
|
||||||
|
<label id="Undo payment"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="First Payment"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Undo payment"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions>
|
||||||
|
<expression id="Activity1-path-Activity0--exclude" value="not(true)"/>
|
||||||
|
</expressions>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers/>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses/>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes>
|
||||||
|
<exclude sourceId="Activity0" targetId="Activity0" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity1" targetId="Activity0" filterLevel="1" description="" time="" groups="" expressionId="Activity1-path-Activity0--exclude" link="Activity1--include--Activity0"/>
|
||||||
|
</excludes>
|
||||||
|
<includes>
|
||||||
|
<include sourceId="Activity1" targetId="Activity0" filterLevel="1" description="" time="" groups="" link="Activity1--include--Activity0"/>
|
||||||
|
</includes>
|
||||||
|
<milestones/>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
217
Assignment-2/data/rule5.xml
Normal file
217
Assignment-2/data/rule5.xml
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
<dcrgraph title="rule5" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480480" hash="B3A46589C9DCBF62076B1457043F980D" guid="CE199EEA-8DEC-4790-A94B-6C701589FA8A" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049158" type="minor" date="2023-01-06T10:45:56.973"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity3">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>4</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="Account no. changed"/>
|
||||||
|
<label id="Approve Change"/>
|
||||||
|
<label id="First Payment"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="Account no. changed"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Approve Change"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="First Payment"/>
|
||||||
|
<labelMapping eventId="Activity3" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions/>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers/>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses>
|
||||||
|
<response sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</responses>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes/>
|
||||||
|
<includes/>
|
||||||
|
<milestones>
|
||||||
|
<milestone sourceId="Activity1" targetId="Activity2" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</milestones>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
<event id="Activity3"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
179
Assignment-2/data/rule6.xml
Normal file
179
Assignment-2/data/rule6.xml
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
<dcrgraph title="rule6" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480481" hash="54775AF2A6C3DAACB2E9AD4C97738729" guid="40819B81-DC3D-42E8-B231-0AF85BC72E1D" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049183" type="minor" date="2023-01-06T10:48:01.540"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="600" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
<label id="Change Phase to Payout"/>
|
||||||
|
<label id="First Payment"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="_ROW_"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Change Phase to Payout"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="First Payment"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions/>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers/>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses>
|
||||||
|
<response sourceId="Activity1" targetId="Activity2" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</responses>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes/>
|
||||||
|
<includes/>
|
||||||
|
<milestones/>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
220
Assignment-2/data/rule7.xml
Normal file
220
Assignment-2/data/rule7.xml
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
<dcrgraph title="rule7" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480482" hash="F134B05387140990B55F59112D1C2877" guid="7176E3D5-46DF-4D97-B7A4-8AC9DC358FB9" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049213" type="minor" date="2023-01-06T10:49:55.223"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="450" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity3">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="225"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>4</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="Change Phase to payout"/>
|
||||||
|
<label id="Change phase to end report"/>
|
||||||
|
<label id="First Payment"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="Change Phase to payout"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Change phase to end report"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="First Payment"/>
|
||||||
|
<labelMapping eventId="Activity3" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions>
|
||||||
|
<expression id="Activity2-path-Activity1--exclude" value="not(true)"/>
|
||||||
|
</expressions>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers/>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses/>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes>
|
||||||
|
<exclude sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
<exclude sourceId="Activity2" targetId="Activity1" filterLevel="1" description="" time="" groups="" expressionId="Activity2-path-Activity1--exclude" link="Activity2--include--Activity1"/>
|
||||||
|
</excludes>
|
||||||
|
<includes>
|
||||||
|
<include sourceId="Activity2" targetId="Activity1" filterLevel="1" description="" time="" groups="" link="Activity2--include--Activity1"/>
|
||||||
|
</includes>
|
||||||
|
<milestones/>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
<event id="Activity3"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
181
Assignment-2/data/rule8.xml
Normal file
181
Assignment-2/data/rule8.xml
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
<dcrgraph title="rule8" dataTypesStatus="hide" filterLevel="-1" insightFilter="false" zoomLevel="0" formGroupStyle="Normal" formLayoutStyle="Horizontal" formShowPendingCount="true" graphBG="#f1f6fe" graphType="0" exercise="false">
|
||||||
|
<meta>
|
||||||
|
<graph id="1480483" hash="2766BDF9AAF6D17154A4D3BD24D9B2F7" guid="73A649F7-AF27-4841-8006-3F7D50B6311D" OwnerName="Therese Lyngby" OwnerId="136173" categoryId="7218" categoryTitle="Default" Keywords=""/>
|
||||||
|
<revision id="3049241" type="minor" date="2023-01-06T10:52:01.030"/>
|
||||||
|
<organization id="1" name="Community"/>
|
||||||
|
</meta>
|
||||||
|
<specification>
|
||||||
|
<resources>
|
||||||
|
<events>
|
||||||
|
<event id="Activity1">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="425"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>2</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
<event id="Activity2" type="subprocess">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="275" yLoc="25"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>3</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
<event id="Activity0">
|
||||||
|
<precondition message=""/>
|
||||||
|
<custom>
|
||||||
|
<visualization>
|
||||||
|
<location xLoc="300" yLoc="75"/>
|
||||||
|
<colors bg="#f9f7ed" textStroke="#000000" stroke="#cccccc"/>
|
||||||
|
</visualization>
|
||||||
|
<roles>
|
||||||
|
<role/>
|
||||||
|
</roles>
|
||||||
|
<readRoles>
|
||||||
|
<readRole/>
|
||||||
|
</readRoles>
|
||||||
|
<groups>
|
||||||
|
<group/>
|
||||||
|
</groups>
|
||||||
|
<phases>
|
||||||
|
<phase/>
|
||||||
|
</phases>
|
||||||
|
<eventType/>
|
||||||
|
<eventScope>private</eventScope>
|
||||||
|
<eventTypeData/>
|
||||||
|
<eventDescription/>
|
||||||
|
<purpose/>
|
||||||
|
<guide/>
|
||||||
|
<insight use="false"/>
|
||||||
|
<level>1</level>
|
||||||
|
<sequence>1</sequence>
|
||||||
|
<costs>0</costs>
|
||||||
|
<eventData/>
|
||||||
|
<interfaces/>
|
||||||
|
</custom>
|
||||||
|
</event>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<subProcesses/>
|
||||||
|
<distribution/>
|
||||||
|
<labels>
|
||||||
|
<label id="Execute abandon"/>
|
||||||
|
<label id="Change phase to abandon"/>
|
||||||
|
<label id="_ROW_"/>
|
||||||
|
</labels>
|
||||||
|
<labelMappings>
|
||||||
|
<labelMapping eventId="Activity0" labelId="Execute abandon"/>
|
||||||
|
<labelMapping eventId="Activity1" labelId="Change phase to abandon"/>
|
||||||
|
<labelMapping eventId="Activity2" labelId="_ROW_"/>
|
||||||
|
</labelMappings>
|
||||||
|
<expressions/>
|
||||||
|
<variables/>
|
||||||
|
<variableAccesses>
|
||||||
|
<writeAccesses/>
|
||||||
|
</variableAccesses>
|
||||||
|
<custom>
|
||||||
|
<keywords/>
|
||||||
|
<roles/>
|
||||||
|
<groups/>
|
||||||
|
<phases/>
|
||||||
|
<eventTypes/>
|
||||||
|
<eventParameters/>
|
||||||
|
<graphDetails>DCR Process</graphDetails>
|
||||||
|
<graphDocumentation/>
|
||||||
|
<graphLanguage>en-US</graphLanguage>
|
||||||
|
<graphDomain>process</graphDomain>
|
||||||
|
<graphFilters>
|
||||||
|
<filteredGroups/>
|
||||||
|
<filteredRoles/>
|
||||||
|
<filteredPhases/>
|
||||||
|
</graphFilters>
|
||||||
|
<hightlighterMarkup id="HLM"/>
|
||||||
|
<highlighterMarkup>
|
||||||
|
<highlightLayers/>
|
||||||
|
<highlights/>
|
||||||
|
</highlighterMarkup>
|
||||||
|
</custom>
|
||||||
|
</resources>
|
||||||
|
<constraints>
|
||||||
|
<conditions/>
|
||||||
|
<responses/>
|
||||||
|
<coresponses/>
|
||||||
|
<excludes>
|
||||||
|
<exclude sourceId="Activity0" targetId="Activity2" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</excludes>
|
||||||
|
<includes>
|
||||||
|
<include sourceId="Activity0" targetId="Activity1" filterLevel="1" description="" time="" groups=""/>
|
||||||
|
</includes>
|
||||||
|
<milestones/>
|
||||||
|
<updates/>
|
||||||
|
<spawns/>
|
||||||
|
<templateSpawns/>
|
||||||
|
</constraints>
|
||||||
|
</specification>
|
||||||
|
<runtime>
|
||||||
|
<custom>
|
||||||
|
<globalMarking/>
|
||||||
|
</custom>
|
||||||
|
<marking>
|
||||||
|
<globalStore/>
|
||||||
|
<executed/>
|
||||||
|
<included>
|
||||||
|
<event id="Activity0"/>
|
||||||
|
<event id="Activity1"/>
|
||||||
|
<event id="Activity2"/>
|
||||||
|
</included>
|
||||||
|
<pendingResponses/>
|
||||||
|
</marking>
|
||||||
|
</runtime>
|
||||||
|
</dcrgraph>
|
7
Assignment-2/log.py
Normal file
7
Assignment-2/log.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
def read_log(log_file):
|
||||||
|
data = pd.read_csv(log_file, delimiter=";")
|
||||||
|
grouped = data.groupby(data.ID)
|
||||||
|
|
||||||
|
return grouped
|
28
Assignment-2/main.py
Normal file
28
Assignment-2/main.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
"""
|
||||||
|
Usage:
|
||||||
|
main.py DCR LOG
|
||||||
|
|
||||||
|
Options:
|
||||||
|
DCR The DCR graph in xml format
|
||||||
|
LOG The log in csv format
|
||||||
|
"""
|
||||||
|
import copy
|
||||||
|
|
||||||
|
from docopt import docopt
|
||||||
|
|
||||||
|
from DCR_graph import xml_to_dcr
|
||||||
|
from log import read_log
|
||||||
|
from conformance_testing import conformance_test
|
||||||
|
|
||||||
|
def main():
|
||||||
|
arguments = docopt(__doc__)
|
||||||
|
graph = xml_to_dcr(arguments["DCR"])
|
||||||
|
logs = read_log(arguments["LOG"])
|
||||||
|
|
||||||
|
tests = [conformance_test(trace[1], copy.deepcopy(graph)) for trace in logs]
|
||||||
|
print("Success: ", tests.count(True))
|
||||||
|
print("Failure: ", tests.count(False))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
from .ServerInterface import ServerInterface
|
|
||||||
from file import File
|
|
||||||
|
|
||||||
constants {
|
|
||||||
FILENAME = "received.txt"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
service ExampleServer {
|
|
||||||
|
|
||||||
embed File as file
|
|
||||||
|
|
||||||
inputPort server {
|
|
||||||
Location: "socket://localhost:9000"
|
|
||||||
Protocol: http
|
|
||||||
Interfaces: ServerInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
execution:concurrent
|
|
||||||
|
|
||||||
main {
|
|
||||||
setFile( request )( response ) {
|
|
||||||
writeFile@file( {
|
|
||||||
filename = FILENAME
|
|
||||||
content = request
|
|
||||||
append = 1
|
|
||||||
} )()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
test
|
|
BIN
Assignment-2/src.zip
Normal file
BIN
Assignment-2/src.zip
Normal file
Binary file not shown.
58
Assignment-3/buyer-compare.ol
Normal file
58
Assignment-3/buyer-compare.ol
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
from SellerShipperServiceInterfaceModule import SellerInterface
|
||||||
|
from BuyerServiceInterfaceModule import BuyerShipperInterface, BuyerSellerInterface
|
||||||
|
|
||||||
|
include "console.iol"
|
||||||
|
|
||||||
|
service BuyerService {
|
||||||
|
execution { single }
|
||||||
|
|
||||||
|
outputPort Seller1 {
|
||||||
|
location: "socket://localhost:9005"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: SellerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
outputPort Seller2 {
|
||||||
|
location: "socket://localhost:9007"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: SellerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
inputPort ShipperBuyer {
|
||||||
|
location: "socket://localhost:9003"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: BuyerShipperInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
inputPort SellerBuyer {
|
||||||
|
location: "socket://localhost:9004"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: BuyerSellerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
main {
|
||||||
|
ask@Seller1("chips")
|
||||||
|
[quote(price1)]
|
||||||
|
ask@Seller2("chips")
|
||||||
|
[quote(price2)]
|
||||||
|
if (price1 < 20 && price1 < price2) {
|
||||||
|
println@Console( "price 1 lower than 20 and price 2")()
|
||||||
|
accept@Seller1("Ok to buy chips for " + price1)
|
||||||
|
reject@Seller2("Not ok to buy chips for " + price2)
|
||||||
|
[details(invoice)]
|
||||||
|
println@Console( "Received '"+invoice+"' from Shipper!")()
|
||||||
|
} else if (price2 < 20 && price2 < price1) {
|
||||||
|
println@Console( "price 2 lower than 20 and price 1")()
|
||||||
|
reject@Seller1("Not ok to buy chips for " + price1)
|
||||||
|
accept@Seller2("Ok to buy chips for " + price2)
|
||||||
|
[details(invoice)]
|
||||||
|
println@Console( "Received '"+invoice+"' from Shipper!")()
|
||||||
|
} else {
|
||||||
|
println@Console( "Both prices too high")()
|
||||||
|
reject@Seller1("Not ok to buy chips for " + price)
|
||||||
|
reject@Seller2("Not ok to buy chips for " + price)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
45
Assignment-3/buyer.ol
Normal file
45
Assignment-3/buyer.ol
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
from SellerShipperServiceInterfaceModule import SellerInterface
|
||||||
|
from BuyerServiceInterfaceModule import BuyerShipperInterface, BuyerSellerInterface
|
||||||
|
|
||||||
|
include "console.iol"
|
||||||
|
|
||||||
|
service BuyerService {
|
||||||
|
execution { single }
|
||||||
|
|
||||||
|
outputPort Seller {
|
||||||
|
location: "socket://localhost:9007"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: SellerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
inputPort ShipperBuyer {
|
||||||
|
location: "socket://localhost:9003"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: BuyerShipperInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
inputPort SellerBuyer {
|
||||||
|
location: "socket://localhost:9004"
|
||||||
|
protocol: http { format = "json" }
|
||||||
|
interfaces: BuyerSellerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
main {
|
||||||
|
ask@Seller("chips")
|
||||||
|
{
|
||||||
|
[quote(price)] {
|
||||||
|
if (price <20) {
|
||||||
|
println@Console( "price lower than 20")()
|
||||||
|
accept@Seller("Ok to buy chips for " + price)
|
||||||
|
[details(invoice)]
|
||||||
|
println@Console( "Received '"+invoice+"' from Shipper!")()
|
||||||
|
} else {
|
||||||
|
println@Console( "price not lower than 20")()
|
||||||
|
reject@Seller("Not ok to buy chips for " + price)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
0
Assignment-2/node_modules/.bin/nodemon → Assignment-3/node_modules/.bin/nodemon
generated
vendored
0
Assignment-2/node_modules/.bin/nodemon → Assignment-3/node_modules/.bin/nodemon
generated
vendored
0
Assignment-2/node_modules/.bin/nodetouch → Assignment-3/node_modules/.bin/nodetouch
generated
vendored
0
Assignment-2/node_modules/.bin/nodetouch → Assignment-3/node_modules/.bin/nodetouch
generated
vendored
0
Assignment-2/node_modules/.bin/nopt → Assignment-3/node_modules/.bin/nopt
generated
vendored
0
Assignment-2/node_modules/.bin/nopt → Assignment-3/node_modules/.bin/nopt
generated
vendored
0
Assignment-2/node_modules/.bin/semver → Assignment-3/node_modules/.bin/semver
generated
vendored
0
Assignment-2/node_modules/.bin/semver → Assignment-3/node_modules/.bin/semver
generated
vendored
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Assignment-2",
|
"name": "Assignment-3",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
0
Assignment-2/node_modules/abbrev/LICENSE → Assignment-3/node_modules/abbrev/LICENSE
generated
vendored
0
Assignment-2/node_modules/abbrev/LICENSE → Assignment-3/node_modules/abbrev/LICENSE
generated
vendored
0
Assignment-2/node_modules/braces/LICENSE → Assignment-3/node_modules/braces/LICENSE
generated
vendored
0
Assignment-2/node_modules/braces/LICENSE → Assignment-3/node_modules/braces/LICENSE
generated
vendored
0
Assignment-2/node_modules/debug/LICENSE → Assignment-3/node_modules/debug/LICENSE
generated
vendored
0
Assignment-2/node_modules/debug/LICENSE → Assignment-3/node_modules/debug/LICENSE
generated
vendored
0
Assignment-2/node_modules/debug/node.js → Assignment-3/node_modules/debug/node.js
generated
vendored
0
Assignment-2/node_modules/debug/node.js → Assignment-3/node_modules/debug/node.js
generated
vendored
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user