thomas hildebrandt digitale arbejdsgange 25.1.2012

46
IT UNIVERSITY OF COPENHAGEN Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt Lektor ved IT Universitetet i København www.itu.dk/people/hilde [email protected] VidenDanmark Seminar om Digitalisering og Procesoptimering Symbion - 25. Januar, 2012 Wednesday, January 25, 2012

Upload: videndanmark

Post on 02-Dec-2014

1.824 views

Category:

Travel


4 download

DESCRIPTION

Thomas Hildebrandt taler om digitale arbejdsgange ved VidenDanmarks seminar om digitalisering og procesoptimering den 25.1.2012.

TRANSCRIPT

Page 1: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejdeThomas HildebrandtLektor ved IT Universitetet i Københavnwww.itu.dk/people/[email protected]

VidenDanmark Seminar om Digitalisering og ProcesoptimeringSymbion - 25. Januar, 2012

Wednesday, January 25, 2012

Page 2: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Oversigt

• Min baggrund

• “Office Automation”, Workflow og Business Process Management

• Computer Supported Cooperative Work (CSCW) / IT-støttet (sam)arbejde

• Deklarativ beskrivelse af arbejdsgange

2

Wednesday, January 25, 2012

Page 3: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Thomas  Hildebrandt

• PhD i Datalogi fra Aarhus Universitet, 2000

• Forsker og underviser på IT Universitetet siden 1999 indenfor formelle proces-sprog, mobile og distribuerede it-systemer

• Forskningsprojekter sammen med virksomheder og forskere indenfor CSCW og HCI

3

Wednesday, January 25, 2012

Page 4: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Forskningsprojekter

• Computer Supported Mobile Adaptive Business Processes (2007-2011, Forskningsrådet for Teknologi og Produktion # 274-06-0415, www.Cosmobiz.dk) med Copenhagen Business School og Microsoft Development Center Copenhagen

• Trustworthy Pervasive Healthcare Services (2008-2012, Det Strategiske Forskningsråd # 2106-07-0019, www.TrustCare.eu) med Datalogisk Institut, Københavns Universitet (DIKU) og Resultmaker A/S

• Case Studies of Best Practice Workflow and Case Work in Practice (Efterår 2010, Infinit mini-projekt) Resultmaker, Exformatics A/S, Dafolo, Jobcenter Kbh, KL, Kombit, CBS

• Tvær-organisatoriske arbejdsgange som DCR-grafer (Forår 2011, Rådet for Teknologi og Innovation, Videnkupon) med Exformatics A/S

4

Wednesday, January 25, 2012

Page 5: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Office  AutomaGonTidlig forskning i Office Automation

havde fokus på kontorarbejde som procedurer beskrevet som flow-grafer/Petri Net:

5

RECE

PTIO

NIST

AGE

NT

Figu

re l

a z c :=

Computer Science and Office Information Systems

By Clarence A. Ellis and Gary J. Nutt

• Zisman & Hammer 77

• IBM Business Definition Language (BDL)

• Information Control Net [Ellis 79 Xerox]

Wednesday, January 25, 2012

Page 6: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

InformaGon  Control  Net

6

ORDE

R PR

OCES

SING

Log

Requ

est

Type

Ord

er

Send

Ord

er

Rece

ive

Ord

er

Broces

s I I J I I • :1.

\ 1

Custo

mer

Re

ques

t A

rriv

al lL

-""

/ I I r • r J /. I I A / I

" Ord

er

Form

'" I +0

I

, Cu

s tam

er

J j

Fi le

I

II

Bill

ing

File

I I I J I J I I I I I I

I /

I ,

lOut

"

1\:;;1

tJ .

lOu

t \.

I t

Form

'-

---

----

/--"

"

',---

- ... _

----

--_

.. _-.

.,.-

'

F.ig

ure

2

[C. Ellis, 1979]12

used by SCOOP are document generators; electronic mail senders and receivers; file services, and

media schedulers.

Although the complexity and number of the special purpose systems may grow large as the office

automation area grows, the monitor (or office operating system supervisor) can remain relatively

constant. Zisman provides guidelines and frameworks for a high level non-procedural specifications

language, and that contains a document definition section for declaring all documents needed, an

activity initiation section for describing when each activity can be performed and an activity detail

section. The activity detail section describes the detail tasks to be done when the activity is initiated

by a few basic operations, wen-known to an office analyst. Procedure descriptions in this language

could then be translated into an augmented Petri net and run using the execution monitor, SCOOP.

By considering the specification language, the internal representation, and the design of a prototype

system using one unified model, Zisman has been able to study the office as a system rather than

simply as a collection of isolated tasks and pieces of equipment. Although Zisman suggests the

language and the model need refinement, his basic notions will probably have great impact on the

office of the future.

Wednesday, January 25, 2012

Page 7: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Business  Process  Model  and  Nota2on  (BPMN)  2.0

7

!"#$%&##'()*+&##',*-&.'/%-'0*1/1$*%2'3456 '''''''!"

#$%&'()"*+),)-.)(/0123()45)0)670.8,034.()9'4:(66);<':=(67'07$4.>)8$0%'01

Forretningsprocesbeskrivelser anno 2011

Wednesday, January 25, 2012

Page 8: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Workflow  Management  Coali2on  (WfMC)  1993

8

Workflow Engine(s)

Process Definition Tools

Other Workflow Engines

Workflow Client Applications

Invoked Applications

(e.g. Webservices)

Administration and Analysis Tools

WfMC Workflow Reference Model 1995

(IBM, HP, Fujitsu, ..

Wednesday, January 25, 2012

Page 9: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Workflow  Management  Coali2on  (WfMC)  1993

8

Workflow Engine(s)

Process Definition Tools

Other Workflow Engines

Workflow Client Applications

Invoked Applications

(e.g. Webservices)

Administration and Analysis Tools

WfMC Workflow Reference Model 1995

COBOL PL1

.NETSAPJava

service

Enterprise Service Bus (ESB)

service service

Risk Department Credit Department Customer Department

Task

Sub Process

Sub Process

BPMN + SOA

(IBM, HP, Fujitsu, ..

Wednesday, January 25, 2012

Page 10: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Mange  standarder  og  versioner  ......

9

R. Shapiro, WfMC, 2010

Wednesday, January 25, 2012

Page 11: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Mange  standarder  og  versioner  ......

9

R. Shapiro, WfMC, 2010

IBM WSFL 1.0

MS XLANG 1.0

BPEL4WS 1.0

BPEL4WS 1.1 WS-BPEL 2.0OASIS

Wednesday, January 25, 2012

Page 12: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Er  arbejdsgange  procedurer?

• Motivationen for at benytte flowgrafer i BPMN er iflg specifikationen at forretningsfolk igennem årtier har været vant til at læse dem..

• Men kan vi automatisere/digitalisere kontor-arbejde ved at sætte strøm til sådanne procedurer...?

10

Wednesday, January 25, 2012

Page 13: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

IT-­‐støLet  samarbejde• Computer Supported Cooperative Work (CSCW)

nyt forskningsområde startet i midt 80‘erne [Greif & Cashman - interdisciplinary workshop on “how to support people in their work arrangements with computers”]

• Fokus på at forstå hvordan vi arbejder sammen om at udføre en arbejdsopgave og designe it systemer der kan støtte arbejdet på den baggrund

• Afhængigheder mellem og koordinering af arbejdsopgaver centrale elementer

11

Wednesday, January 25, 2012

Page 14: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Procedurer  er  vejledende..!

• Barber: These (office automation) systems do not deal well with unanticipated conditions

• Sheil: Designers were “automating a fiction”

12

Allerede i 1983 konkluderede CSCW forskere:

[Schmidt & Bannon: Taking CSCW Seriously: Supporting Articulation Work, 1992]

Wednesday, January 25, 2012

Page 15: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Udfordringer

• Hvordan sætter man strøm til en vejledning så man

• ikke introducerer unødige rækkefølger

• kan springe over og gentage handlinger

• kan tilføje, fordele og delegere handlinger undervejs

• og stadig have en ide om at man er på rette spor?

• Og hvordan sammenholdes vejledning og regler?

13

Wednesday, January 25, 2012

Page 16: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DeklaraGv  procesbeskrivelse

14

M. Pesic and W.M.P. van der Aalst: DECLAREA Declarative Approach for Flexible Business Processes.(workshop on Dynamic Process Management, 2006)

Linear-time Temporal Logic (LTL) Pnueli ´77

•Specifikation➡ 3 handlinger: bless, curse og pray.➡ Regel: if you curse someone, then

you MUST eventually pray afterwards.

Hvordan ville en flow-graf se ud for denne proces ?

Wednesday, January 25, 2012

Page 17: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

ImperaGv  procesbeskrivelse

15

•Specifikation➡ 3 handlinger: bless, curse og pray.➡ Regel: if you curse someone, then

you MUST eventually pray afterwards.

bless

start

curse

pray

blessxor

xor

xorxor

end

xor

Wednesday, January 25, 2012

Page 18: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

ImperaGv  procesbeskrivelse

15

•Specifikation➡ 3 handlinger: bless, curse og pray.➡ Regel: if you curse someone, then

you MUST eventually pray afterwards.

bless

start

curse

pray

blessxor

xor

xorxor

end

xor

Kan du se at flow-grafen netop opfylder reglen...?

Wednesday, January 25, 2012

Page 19: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

ImperaGv  procesbeskrivelse

15

•Specifikation➡ 3 handlinger: bless, curse og pray.➡ Regel: if you curse someone, then

you MUST eventually pray afterwards.

bless

start

curse

pray

blessxor

xor

xorxor

end

xor

Kan du se at flow-grafen netop opfylder reglen...?Men temporal logik [](curse -> <>pray)

er heller ikke for alle...

Wednesday, January 25, 2012

Page 20: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Dynamic  Condi2on  Response  (DCR)  Graphs

• Ny grafisk procesnotation udviklet i forskningsprojekter sammen med Resultmaker og Exformatics

• baseret på Resultmakers ProcessMatrix

• betingelser (conditions), opfølgninger (responses) og dynamisk udelukkelse/inkludering

• skelner mellem hvad er muligt og hvad er krævet

16

Ph.d-afhandling af Rao R. Mukkamala (se www.itu.dk/people/rao og www.trustcare.dk)

Wednesday, January 25, 2012

Page 21: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  eksempler

17

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

[Slaats, Mukkamala, Hildebrandt, EDOC 2011]

Wednesday, January 25, 2012

Page 22: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  

18

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Bless,

[Slaats, Mukkamala, Hildebrandt, EDOC 2011]

Wednesday, January 25, 2012

Page 23: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  

19

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Bless, pray,

[Slaats, Mukkamala, Hildebrandt, EDOC 2011]

Wednesday, January 25, 2012

Page 24: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  

20

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Bless, pray, curse,

[Slaats, Mukkamala, Hildebrandt, EDOC 2011]

Wednesday, January 25, 2012

Page 25: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  

21

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Bless, pray, curse, curse,

[Slaats, Mukkamala, Hildebrandt, EDOC 2011]

Wednesday, January 25, 2012

Page 26: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  

22

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Bless, pray, curse, curse, pray,

[Slaats, Mukkamala, Hildebrandt, EDOC 2011]

Wednesday, January 25, 2012

Page 27: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  II

23

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Wednesday, January 25, 2012

Page 28: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  II

23

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Create case

Wednesday, January 25, 2012

Page 29: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  II

23

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Create case

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Arrange meeting

Wednesday, January 25, 2012

Page 30: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Graf  som  vejledning  II

23

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Create case

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Arrange meeting

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Wednesday, January 25, 2012

Page 31: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Gentage  handlinger

24

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Wednesday, January 25, 2012

Page 32: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Gentage  handlinger

24

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Wednesday, January 25, 2012

Page 33: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Gentage  handlinger

24

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Arrange meeting

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Wednesday, January 25, 2012

Page 34: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Gentage  handlinger

24

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Arrange meeting

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Arrange meeting

Wednesday, January 25, 2012

Page 35: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Gentage  handlinger

24

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Arrange meeting

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Arrange meeting

Wednesday, January 25, 2012

Page 36: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Gentage  handlinger

24

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Arrange meeting

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Hold meeting

Arrange meeting

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Figure 5. The Graphical Editor

Figure 6. Case Handling Process Runtime

indicated the dates they were available and submitted. WhenLO received the case they assigned their own case ID to it.Some time later LO proposed possible dates for a meetingto DA. DA did not agree with these dates and responded byproposing some of their own. In the graph both Accept LOand Accept DA are included and have a pending responsebecause both LO and DA have proposed dates. Because ofthese pending responses Hold meeting is disabled. Becauseno files have been uploaded to the document yet, Download

is also disabled.The graph in the figure. 7 shows the runtime state after

the union has uploaded an agenda for the meetings. Notethat, since the union has uploaded a file to the case, theDownload is now enabled. But at the same time, Accept LOand Accept DA still remains the same as the previous graph,as the proposed dates have not been accepted yet by either LOor DA.

Figure 7. Case Handling Process Runtime After Upload Document

Figure 8. Case Handling Process Runtime After Accept Dates

Figure 8 shows the graph representing the state after LO

Wednesday, January 25, 2012

Page 37: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Trinvis  specifikaGon

25

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

Wednesday, January 25, 2012

Page 38: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Trinvis  specifikaGon

25

Ri.∃j ≥ i.(e = ej∨e �∈ Inj+1). In words, a run is accepting if

no response event is pending forever, i.e. it must either happen

at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (R�). Condition (vi) and (vii) are the updates to the

sets of included events and pending responses respectively.

Note that an event e� can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where R ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logics. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -events

and the work has been formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs was introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex, In,R) ⊆ atoms(E)× atoms(E)× atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employee. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrangemeeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.

2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.

3) Create case has Arrange meeting as response, which

has assigned role LO.

4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

Wednesday, January 25, 2012

Page 39: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Trinvis  specifikaGon  II

26

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

Wednesday, January 25, 2012

Page 40: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Trinvis  specifikaGon  II

26

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

Wednesday, January 25, 2012

Page 41: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Trinvis  specifikaGon  III

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

27

Wednesday, January 25, 2012

Page 42: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

Trinvis  specifikaGon  III

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

(vi) In�� = (In� ∪ e→+) \ e→%,

(vii) Re�� = (Re� \ {e}) ∪ e•→,

We define a run (e0, (p0, a0, r0)), (e1, (p1, a1, r1)), . . . of the

transition system to be a sequence of labels of a sequence

of transitions Mi(ei,(pi,ai,ri))−−−−−−−−−→ Mi+1 starting from the initial

marking. We define a run to be accepting if ∀i ≥ 0, e ∈Rei.∃j ≥ i.(e = ej ∨e �∈ Inj+1). In words, a run is accepting

if no response event is pending forever, i.e. it must either

happen at some later state or become excluded.

Condition (iii) in the above definition expresses that, only

events e that are currently included, can be executed, and to

give the label (p, a, r) the label of the event must be a, pmust be assigned to the role r, which must be assigned to

a. Condition (iv) requires that all condition events to e which

are currently included should have been executed previously.

Condition (v) states that the currently included events which

are milestones to event e must not be in the set of pending

responses (Re�). Condition (vi) and (vii) are the updates to

the sets of included events and pending responses respectively.

Note that an event e�can not be both included and excluded by

the same event e, but an event may trigger itself as a response.

In this paper we only consider finite runs. In this case, the

acceptance condition degenerates to requiring that no pending

response is included at the end of the run. This corresponds

to defining all states where Re ∩ In = ∅ to be accepting

states and define the accepting runs to be those ending in

an accepting state. Infinite runs are also of interest especially

in the context of reactive systems and the LTL logic. The

execution semantics and acceptance condition for infinite runs

are captured by mapping to a Buchi-automaton with τ -event

as formalized in [12], [17].

During the case study (Sec. III), we realized the need to

extend our model with nested sub-graphs to allow for modeling

of hierarchical sub structures. To address this need, so-called

Nested DCR Graphs were introduced in [14]. It can be defined

as an incremental extension to DCR Graph given in Def. 1

above as follows.

Definition 3: A Nested dynamic condition response graph

is a tuple (E,�,M,→•, •→,→�,±,Act, l,R,P, as), where

� : E � E is a partial function mapping an event to its super-

event (if defined) and (E,M,→•, •→,→�,±,Act, l,R,P, as)is a DCR Graph, subject to the condition that the marking

M = (Ex,Re, In) ⊆ atoms(E)×atoms(E)×atoms(E) where

atoms(E) = {e | ∀e� ∈ E. � (e�) �= e} is the set of atomicevents.

A nested DCR Graph can be mapped to a flat DCR Graph

by extending all relations to the sub events and by preserving

only the atomic events. This flattening of a nested DCR Graph

into a DCR Graph is defined formally in [14]. In particular, the

semantics of a Nested DCR Graph is given as the labelled tran-

sition semantics for its corresponding flattened DCR Graph.

III. CASE STUDY: A CROSS-ORGANIZATIONAL CASE

MANAGEMENT SYSTEM

In this section we demonstrate how we have applied DCR

Graphs in practice within a project that our industrial partner

Exformatics carried out for one of their customers. In the

process, we acted as consultants, applying DCR Graphs in

meetings with Exformatics and the customer to capture the

requirements in a declarative way, accompanying the usual

UML sequence diagrams and prototype mock-ups. Sequence

diagrams typically only describe examples of runs, and even

if they are extended with loops and conditional flows they do

not capture the constraints explicitly.

The customer of the system is Landsorganisationen i Dan-mark (LO), which is the overarching organization for most of

the trade unions in Denmark. Their counterpart is Dansk Ar-bejdsgiverforening (DA), which is an overarching organization

for most of the Danish employers organizations.

At the top level, the workflow to be supported is that a

case worker at the trade union must be able to create a case,

e.g. triggered by a complaint by a member of the trade union

against her employer. This must be followed up by a meeting

arranged by LO and subsequently held between case workers

at the trade union, LO and DA. After being created, the

case can at any time be managed, e.g. adding or retrieving

documents, by case workers at any of the organizations.

Fig. 1 shows the graphical representation of a simple DCR

Graph capturing these top level requirements of our case study.

Figure 1. Top level requirements as a DCR Graph

Four top-level events were identified, shown as boxes in

the graph labelled Create case, Manage case, Arrange

meeting and Hold meeting. For the top-level events we

identified the following requirements:

1) A case is created by a union case worker, and only once.

2) The case can be managed at the union, LO and DA after

it has been created.

3) After a case is created, LO can and must arrange a

meeting between the union case worker, the LO case

worker and the DA case worker.

4) After a meeting is arranged it must be held (organized

by LO).

The requirements translate to the following DCR Graph role

assignments (shown as ”ears” on the event boxes) and relations

shown as different types of arrows between the events in Fig.

1:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

1) Create case has assigned role U and excludes itself.2) Create case is a condition for Manage case, which has

assigned role U, LO and DA.3) Create case has Arrange meeting as response, which

has assigned role LO.4) Arrange meeting has Create case as a condition and

Hold meeting as response, which has assigned role LO.For example, the U on Create case indicates that only a

case worker at the trade union (U) can create a case, and the U,LO, DA on Manage case indicate that both the trade union,LO and DA can manage the case.

The arrow Create case→•Manage case denotes thatManage case has Create case as a (pre) condition. Thissimply means that Create case must have happened beforeManage case can happen. Dually, Arrange meeting hasHold meeting as response, denoted by the arrow Arrangemeeting•→Hold meeting This means that Hold meetingmust eventually happen after Arrange meeting happens. Fi-nally, the arrow Create case →%Create case denotes thatthe event Create case excludes itself.

In the subsequent meetings, we came to the followingadditional requirements:

1) a) To create a case, the case worker should enter meta-data on the case, inform about when he/she is availablefor participating in a meeting and then submit the case.

b) When a case is submitted it may get a local id at theunion, but it should also subsequently be assigned acase id in LO.

c) When a case is submitted, LO should eventually pro-pose dates.

2) a) Only after LO has assigned its case id it is possible tomanage the case and for LO to propose dates.

b) Manage case consists of three possible activities (in anyorder): editing case meta data, upload documents anddownload documents. All activities can be performedby LO and DA. Upload and download documents canalso be performed by the Union.

3) a) The meeting should be arranged in agreement betweenLO and DA: LO should always propose dates first -and then DA should accept, but can also propose newdates. If DA proposes new dates LO should accept,but can also again propose new dates. This could inprinciple go on forever.

b) The union can always update information about whenthey are available and edit the metadata of the case.

4) a) No meeting can be held while LO and DA are negoti-ating on a meeting date. Once a date has been agreedupon a meeting should eventually be held.

These requirements led to the extension of the modelallowing nested events as recalled in the previous section andgiven in full detail in [14].

The requirements could then be described by first adding thefollowing additional events to the graph: A new super eventEdit (E) which has the sub events: Metadata (E-M) and Datesavailable (E-D) and is itself a sub event to Create case (CC).

The Create case (CC) event has two sub events: Submit(SC) and Assign case Id (ACI). The Manage case (MC)event has two sub events: Edit metadata (EM) and Document(D), which in turn has two sub events: Upload (D-U) andDownload (D-D). The Arrange meeting (AM) event has foursub events: Propose dates-LO (PLO), Propose dates-DA(PDA), Accept LO (ALO) and Accept DA (ADA). The Holdmeeting (HM) event remains an atomic top-level event.

Subsequently, the relations was adapted to the following(Nested) DCR Graph relations, as shown in Fig 2:

Figure 2. Case Handling Process

1) Edit is a condition to Submit and is assigned role U.2) Within the Create case superevent:

a) Submit is a condition to Assign case Id and alsorequires it as a response.

b) Assign case Id is a condition for Manage case (andtherefore also all it’s sub events).

c) Assign case Id is now the condition for Proposedates-LO and Submit requires it as a response.

3) Within the Arrange meeting superevent:a) Arrange meeting still has Hold meeting as response,

but is now also required as a milestone for Holdmeeting

b) Propose dates-LO is a condition for Proposedates-DA

c) Propose dates-LO includes Accept DA and requiresit as a response

d) Propose dates-DA includes Accept LO and requiresit as a response

e) Accept LO excludes itself and Accept DAf) Accept DA excludes itself and Accept LO

4) Within the Manage case superevent:

27

Wednesday, January 25, 2012

Page 43: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

DCR  Grafer  og  BPMN  ?

• Det tætteste man kommer på fleksible processer er BPMN ad-hoc sub processer

• Men specifikationen er uklar og mulighederne meget begrænsede

• Nedsat arbejdsgruppe for Case Management Extension

28

Figure 9. BPMN 2.0 ad-hoc sub-process activity

by the former. Moreover, quoting from the specification, thesequence flow between Create case and Arrange meeting

(and similarly between Arrange meeting and Hold meeting):”creates a dependency where the performance of the first

Task MUST be followed by a performance of the second

Task. This does not mean that the second Task is to be

performed immediately, but there MUST be a performance

of the second task after the performance of the first Task.”.This seems exactly to correspond to the response relation inDCR Graphs. However, when reading the semantics sectionof the specification ( [19], Sec.13.2.5, 445-446) it appearsthat the sequence flow introduces just a standard precondition.Thus, the specification is not consistent in the description ofsequence flows within ad-hoc sub-activities. Also, it is notclear how to specify roles on actions (swim lanes seem not tobe allowed within ad-hoc sub-activities) nor how to specifythat an activity within an ad-hoc sub activity only can beexecuted once. In particular, Create case can be executedany number of times in the above process.

VI. CONCLUSIONS AND FUTURE WORK

Our case study showed that the DCR Graphs model is wellsuited to give a global description of the temporal constraintsbetween the individual tasks which is helpful in capturing therequirements of the overall system.

However, there are still many points for future develop-ments.

First of all there is the need to extend the expressivenessof DCR Graphs. In the ongoing PhD project of the secondauthor we intend to extend the DCR Graphs model to beable to express relevant features such as multi-instance sub-graphs (allowing the dynamic creation of sub-graphs repre-senting dynamic sub process instantiation), time, exceptionsand data. Along with this we intend to continue developingthe technology for model checking and run time verificationand apply it within case studies.

Second, our industrial partner Resultmaker who alreadyuse a declarative process model based on the primitives inthe DCR Graphs model expects to investigate the use of theformalization to support safe dynamic changes to the processconstraints at run time.

Thirdly, the DCR Graphs model presently describe a globalview of the process. Through our discussions with Exformaticsduring the case study we identified the wish to be able toautomatically synthesize distributed views of the process. Inparticular, they wanted to be able to derive descriptions ofcommunication protocols and message exchange between theindividual local components in a distributed implementationof the system.

Derivations of descriptions of communication protocolsbetween local components from a global model is been re-searched for the imperative choreography language WS-CDLin the work on structured communication-centred program-ming for web services by Carbone, Honda and Yoshida [4].Put briefly, the work formalizes the core of WS-CDL as theglobal process calculus and define a formal theory of end pointprojections projecting the global process calculus to abstractdescriptions of the behavior of each of the local ”end-points”given as pi-calculus processes typed with session types.

We are currently working on the challenge of synthesizinga distributed view of a DCR Graph as a set of interactingDCR Graphs, thus providing a declarative notion of end-pointprojections. As a challenge for future work we propose toprovide a formal map between DCR Graphs and imperativechoreographies formalized in the global process calculus [4].

REFERENCES

[1] Active Endpoints, Adobe Systems, BEA Systems, IBM, Oracle,SAP. Ws-bpel extension for people (bpel4people) version 1.0,2007. http://www.adobe.us/content/dam/Adobe/en/devnet/livecycle/pdfs/bpel4people spec.pdf.

[2] Kamal Bhattacharya, Cagdas Gerede, Richard Hull, Rong Liu, andJianwen Su. Towards formal analysis of artifact-centric business processmodels. In In preparation, pages 288–304, 2007.

[3] Christoph Bussler and Stefan Jablonski. Implementing agent coordina-tion for workflow management systems using active database systems.In Research Issues in Data Engineering, 1994. Active Database Systems.

Proceedings Fourth International Workshop on, pages 53–59, Feb 1994.[4] Marco Carbone, Kohei Honda, and Nobuko Yoshida. Structured

Communication-Centred Programming for Web Services. In 16th

European Symposium on Programming (ESOP’07), LNCS, pages 2–17.Springer, 2007.

[5] David Cohn and Richard Hull. Business artifacts: A data-centricapproach to modeling business operations and processes. IEEE Data

Eng. Bull., 32(3):3–9, 2009.[6] Hasam Davulcu, Michael Kifer, C. R. Ramakrishnan, and I.V. Ramakr-

ishnan. Logic based modeling and analysis of workflows. In Proceedings

of ACM SIGACT-SIGMOD-SIGART, pages 1–3. ACM Press, 1998.[7] Alin Deutsch, Richard Hull, Fabio Patrizi, and Victor Vianu. Automatic

verification of data-centric business processes. In Proceedings of the

12th International Conference on Database Theory, ICDT ’09, pages252–267, New York, NY, USA, 2009. ACM.

[8] Marlon Dumas, Wil M. van der Aalst, and Arthur H. ter Hofstede.Process Aware Information Systems: Bridging People and Software

Through Process Technology. Wiley-Interscience, 2005.[9] Clarence A. Ellis and Gary J. Nutt. Office information systems and

computer science. ACM Comput. Surv., 12:27–60, March 1980.[10] Clarence A. Ellis and Gary J. Nutt. Workflow: The Process Spectrum.

In Amit Sheth, editor, Proceedings of the NSF Workshop on Workflow

and Process Automation in Information Systems, pages 140–145, May1996.

[11] Thomas Hildebrandt. Trustworthy pervasive healthcare processes (Trust-Care) research project. Webpage, 2008. http://www.trustcare.dk/.

[12] Thomas Hildebrandt and Raghava Rao Mukkamala. Declarative event-based workflow as distributed dynamic condition response graphs. InPost-proceedings of PLACES 2010, 2010.

Wednesday, January 25, 2012

Page 44: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

FremGdigt  arbejde• DCR Grafer Implementeret i Exformatics Workflow

Engine via industri-ph.d.-projekt (Tijs Slaats)

• Sikre dynamiske ændringer, delegering/distribution

• Dynamisk dublikering af del-processer

• Data og Tid

• Overtrædelser af betingelser og opfølgninger

• DCR Grafer + BPMN

• Yderligere evaluering af anvendelighed i praksis29

Wednesday, January 25, 2012

Page 45: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

FremGdigt  arbejde• DCR Grafer Implementeret i Exformatics Workflow

Engine via industri-ph.d.-projekt (Tijs Slaats)

• Sikre dynamiske ændringer, delegering/distribution

• Dynamisk dublikering af del-processer

• Data og Tid

• Overtrædelser af betingelser og opfølgninger

• DCR Grafer + BPMN

• Yderligere evaluering af anvendelighed i praksis29

Foredrag om DECLARE på IT Universitetet i morgen

(torsdag 26. januar, 2012, kl. 11-12)

Wednesday, January 25, 2012

Page 46: Thomas hildebrandt digitale arbejdsgange 25.1.2012

IT  UNIVERSITY  OF  COPENHAGEN    

Fra automatiserede arbejdsgange til it-støttet samarbejde Thomas Hildebrandt, [email protected]

VidenDanmark, Symbion, 25. januar, 2012

FremGdigt  arbejde• DCR Grafer Implementeret i Exformatics Workflow

Engine via industri-ph.d.-projekt (Tijs Slaats)

• Sikre dynamiske ændringer, delegering/distribution

• Dynamisk dublikering af del-processer

• Data og Tid

• Overtrædelser af betingelser og opfølgninger

• DCR Grafer + BPMN

• Yderligere evaluering af anvendelighed i praksis29

Foredrag om DECLARE på IT Universitetet i morgen

(torsdag 26. januar, 2012, kl. 11-12)

Videngruppe om Digitalisering og Procesorientering - opstart 7. februar 2012

Wednesday, January 25, 2012