SlideShare a Scribd company logo
Dirk Fahland
David Lo
Shahar Maoz

Mining
Branching-Time Scenarios
Eindhoven University of Technology
Singapore
Management
University

Tel Aviv University

Dirk Fahland
David Lo
Shahar Maoz

Mining
Branching-Time Scenarios
Dirk Fahland
David Lo
Shahar Maoz

Mining
Branching-Time Scenarios
Understanding Existing Applications

fix bugs, add
features, test,
document, …

specification

understanding of objects and
object interplay

3
Understanding Existing Applications

fix bugs, add
features, test,
document, …

specification

Usually, there is no specification
or worse, if it exists, it is
outdated…
understanding of objects and
object interplay

4
Understanding Existing Applications

fix bugs, add
features, test,
document, …

specification

?
?

?
?

source code

understanding of objects and
object interplay

5
Understanding Existing Applications
Understanding applications from source
code is
• laborious
• fix bugs, add
time-consuming
specification
•features, test,
error prone
document, …

?
?

?
?

source code

understanding of objects and
object interplay

6
Specification Mining

automatically
extract

specification

?
?

?
?

source code

understanding of objects and
object interplay

7
Specification Mining from Event Logs

log

automatically
extract
specification

?
?

?
?

source code

understanding of objects and
object interplay

8
This talk

log

automatically
extract
specification

?
?

?
?

source code

understanding of objects and
object interplay

9
This talk

log

automatically
extract
specification

?
What is a good specification
language to get an overview of
?
?
how an application works?
?
source code

understanding of objects and
object interplay

10
Understanding Object Interplay
FTP server: How does Login/Logout work?
In object-oriented applications,
the hard part is to understand
how the different objects relate
to and interact with each other.
Here are some classes of an
FTP server. How does
login/logout work?

11
Understanding Object Interplay
An object of class A invokes
method onConnect() on an Scenario: Login/Logout
object of class B.
A

UserCmd

B

C

C
onConnect()

UserCmd

A

B

12
Understanding Object Interplay
Scenario: Login/Logout
A

UserCmd

B

C

C
onConnect()
onLogin()

setUser()
UserCmd
setLogout()

A

B

13
Understanding Object Interplay
Scenario: Login/Logout
A

UserCmd

B

C

C
onConnect()
onLogin()

setUser()
UserCmd
setLogout()

A

• non-local behavior:
multiple objects
• logically related
B

14
When does it happen?
Scenario: Login/Logout

This scenario tells us
which objects and
methods are involved in
login/logout.

A

UserCmd

B

C

onConnect()
onLogin()

setUser()

But it does not tell when
this scenario occurs in
the application.

setLogout()

15
When does it happen?
Scenario: Login/Logout
A

whenever the prechart
happens…
eventually the mainchart
will happen

UserCmd

B

C

onConnect()
onLogin()

setUser()
setLogout()

16
Linear-Time LSCs - Invariants
pre
Login
Login

There can be other behaviors
between the behaviors shown in
the LSC.
2 runs

17
Linear-Time LSCs - Invariants
pre
Login
Login

This run does not continue with
the complete main chart of the
LSC.
2 runs

18
Understanding Everything

FTP
download

FTP
delete

not everything is an invariant
 alternative behaviors

FTP
rename

2 alternative runs

19
Linear-Time is Insufficient
scenario for FTP delete command

This LSC for the delete command
does not hold in every run.
2 runs

20
Branching Time

We merge all runs on their joint
prefixes into an execution tree.
execution tree

21
Branching-Time LSCs
[Sibay, Uchitel, Braberman ICSE 2008]

whenever the prechart happens

there exists a branch
where the mainchart happens
execution tree

22
Describing Alternatives
We can define an LSC for the download
command, that is alternative to delete.

execution tree

23
Describing Alternatives
… and also an LSC for the Rename
command.

execution tree

24
Describing Alternatives

execution tree

25
Describing Alternatives

execution tree

26
LSC Mining from Event Logs

log

automatically
extract
complete set of LSCs
(linear / branching)
We want to discover a set of
LSCs that can describe all
behaviors (or as much as
possible of the behaviors).
understanding of objects and
object interplay

27
Logs

log

automatically
extract
log method calls

complete set of LSCs
(linear / branching)

caller1, callee1, method1(…)
caller2, callee2, method2(…)
…
Each execution of the application gives
one trace. Run application multiple
times for a log.
28
Desired Outcome
log
log
=
tree

automatically
extract
complete set of LSCs
(occuring at least s times
= support)

29
Mining Algorithm
github.com/scenario-based-tools/sam/

tree

variant of [Lo, Maoz, Khoo ASE 2007]

30
Mining Algorithm
github.com/scenario-based-tools/sam/

tree

1. enumerate all sequences of events
occurring ≥ s times

onConnect()
onConnect()
onConnect()
onLogin()
onLogin()
onLogin()
setLogin()
setLogin()
setLogin()
setLogout()
setLogout()
setLogout()
candidate words

Starting from sequences of
length 1, recursively append
events and check if it occurs
often enough.
Efficient implementation
uses branch and bound and
some heuristics.
31
Mining Algorithm
github.com/scenario-based-tools/sam/

tree

1. enumerate all sequences of events
occurring ≥ s times

onConnect()
onConnect()
onConnect()
onLogin()
onLogin()
onLogin()
setLogin()
setLogin()
setLogin()
setLogout()
setLogout()
setLogout()
candidate words

From LSC with pre-chart
length 1 to LSC with mainchart length 1.

2. generate all
candidate LSCs

onConnect()
onLogin()
setLogin()
setLogout()

onConnect()
onLogin()
setLogin()
setLogout()
32
Mining Algorithm
github.com/scenario-based-tools/sam/

tree

1. enumerate all sequences of events
occurring ≥ s times

onConnect()
onConnect()
onConnect()
onLogin()
onLogin()
onLogin()
setLogin()
setLogin()
setLogin()
setLogout()
setLogout()
setLogout()
candidate words

3. test for each LSC
if satisfied ≥ c%

2. generate all
candidate LSCs

onConnect()
onLogin()
setLogin()
setLogout()

onConnect()
onLogin()
setLogin()
setLogout()
33
Mining Algorithm
github.com/scenario-based-tools/sam/

tree

1. enumerate all sequences of events
occurring ≥ s times

onConnect()
onConnect()
onConnect()
onLogin()
onLogin()
onLogin()
setLogin()
setLogin()
setLogin()
setLogout()
setLogout()
setLogout()
candidate words

3. test for each LSC
if satisfied ≥ c%

2. generate all
candidate LSCs

onConnect()
onLogin()
setLogin()
setLogout()

onConnect()
onLogin()
setLogin()
setLogout()
34
LSC Mining from Event Logs

log

automatically
extract
complete set of LSCs
(linear and branching)
What do branching
scenarios add to
specification mining?
understanding of objects and
object interplay

35
Experiments
 CrossFTP server: 54 traces, 50 event types
s

Linear
LSC

covered
events

avg.
length

time
[s]

Branching
LSC

covered
events

avg.
length

time
[s]

20

7

90%

7

3

7+0

90%

7

3

14

9

90%

5

31

9+12

95%

13

26

10

9

90%

5

1008

9+18

95%

18

685

Branching LSC contain the linear LSC and some more
strictly branching LSC that were not found before.

Branching LSC are less frequent (lower support
threshold).
36
Experiments
 CrossFTP server: 54 traces, 50 event types
s

Linear
LSC

covered
events

avg.
length

time
[s]

Branching
LSC

covered
events

avg.
length

time
[s]

20

7

90%

7

3

7+0

90%

7

3

14

9

90%

5

31

9+12

95%

13

26

10

9

90%

5

1008

9+18

95%

18

685

Branching LSC can explore more events of the log than
just Linear LSC.

37
Experiments
 CrossFTP server: 54 traces, 50 event types
s

Linear
LSC

covered
events

avg.
length

time
[s]

Branching
LSC

covered
events

avg.
length

time
[s]

20

7

90%

7

3

7+0

90%

7

3

14

9

90%

5

31

9+12

95%

13

26

10

9

90%

5

1008

9+18

95%

18

685

Branching LSC are longer than Linear LSC. In other
words, they show more details for a particular behavior.

38
Experiments
 CrossFTP server: 54 traces, 50 event types
s

Linear
LSC

covered
events

avg.
length

time
[s]

Branching
LSC

covered
events

avg.
length

time
[s]

20

7

90%

7

3

7+0

90%

7

3

14

9

90%

5

31

9+12

95%

13

26

10

9

90%

5

1008

9+18

95%

18

685

Running times for extraction are feasible.
Note that LSCs shown here are the LSCs left after
removing subsumed ones. Originally, the algorithm finds
around 6 million branching LSC in 685 seconds.
39
Experiments
 CrossFTP server: 54 traces, 50 event types
s

Linear
LSC

covered
events

avg.
length

time
[s]

Branching
LSC

covered
events

avg.
length

time
[s]

20

7

90%

7

3

7+0

90%

7

3

14

9

90%

5

31

9+12

95%

13

26

10

9

90%

5

1008

9+18

95%

18

685

 Columba mail client: 104 traces, 79 event types
s/c

Linear
LSC

covered
events

avg.
length

time
[s]

20

57

70%

4

159

10

205

72%

6

10/.5

163

78%

6

Branching
LSC

covered
events

avg.
length

time
[s]

57+1

71%

9

154

2191

205+53

75%

9

2055

2256

163+44

84%

6

2125

full data sets and results:
http://dx.doi.org/10.4121/uuid:aa7db920-aae6-4750-8975-cb739262f432

40
Experiments
 CrossFTP server: 54 traces, 50 event types
s

Linear
LSC

covered
events

avg.
length

time
[s]

Branching
LSC

covered
events

avg.
length

time
[s]

20

7

90%

7

3

7+0

90%

7

3

14

9

90%

5

31

9+12

95%

13

26

10

9

90%

5

1008

9+18

95%

18

685

 Columba mail client: 104 traces, 79 event types
s/c

Linear
LSC

covered
events

avg.
length

time
[s]

20

57

70%

4

159

10

205

72%

6

10/.5

163

78%

6

Branching
LSC

covered
events

avg.
length

time
[s]

57+1

71%

9

154

2191

205+53

75%

9

2055

2256

163+44

84%

6

2125

full data sets and results:
http://dx.doi.org/10.4121/uuid:aa7db920-aae6-4750-8975-cb739262f432

41
Linear vs. Branching: CrossFTP
What is the qualitative contribution
of branching LSC to specification
mining?
application life-cycle
from end to end

connect

login
logout
clean up

42
Linear vs. Branching: CrossFTP

application life-cycle
from end to end

short invariants of
individual FTP
commands

invariant of RENAME

43
Linear vs. Branching: CrossFTP

application life-cycle
from end to end FTP command
+
where triggered
short invariants of
individual FTP
commands

The branching LSC fills
the gap between large
and small invariants.

login
rename command

44
Linear vs. Branching: CrossFTP

application life-cycle individual FTP
individual FTP
FTP commands
from end to end all commands +
commands +
+where they are
where they are
can be triggered in
triggered
triggered
the same situation
short invariants of
individual FTP
commands

We found all ftp commands
supported by the server, as
alternative LSC.
45
Linear vs. Branching: CrossFTP

application life-cycle individual FTP
individual FTP
FTP commands
from end to end all commands +
commands +
+where they are
where they are
can be triggered in
triggered
triggered
the same situation

… and we could discover
cyclic behavior: after
rename, there could be
another delete command

short invariants of
individual FTP
commands

cycles: rename  delete
46
Take Home Points

http://github.com/scenario-based-tools/sam/

log

• mining branching scenarios
 alternatives, cycles
• combined with linear:
comprehensive specification

• future work:
visualizing results
distributed scenarios

complete set of LSCs

understanding of objects and
object interplay

47
about.me/dirk.fahland
@dfahland

Mining
Branching-Time Scenarios
Q&A …is branching time really necessary?
Yes, here is a linear LSC showing a disjunction
for continuing after the pre-chart.
if
then
delete
or

download

49
The full execution tree satisfies this Linear LSC with disjunction
Branching Time vs. Disjunction
and two branching LSCs describing the two alternatives in
separate LSCs.

50
Branching Time vs. Disjunction

Removing one branch
from the tree (the
execution of the
download command),
violates the branching
LSCs, but still satisfies
the disjunctive linear
LSCs (because only
one of them has to
hold).
51

More Related Content

What's hot (20)

PPTX
Clone Refactoring with Lambda Expressions
Nikolaos Tsantalis
 
PPTX
Unit testing concurrent code
Rafael Winterhalter
 
PDF
Reducing Redundancies in Multi-Revision Code Analysis
Sebastiano Panichella
 
PDF
Can secwest2011 flash_actionscript
Craft Symbol
 
PDF
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
 
PDF
Wait for your fortune without Blocking!
Roman Elizarov
 
PPTX
Java byte code in practice
Rafael Winterhalter
 
PPTX
Navigating the xDD Alphabet Soup
Dror Helper
 
PPTX
Java Bytecode Fundamentals - JUG.lv
Anton Arhipov
 
PPTX
Best Bugs from Games: Fellow Programmers' Mistakes
Andrey Karpov
 
PDF
C++ Advanced Features
Michael Redlich
 
PPTX
C++ Code as Seen by a Hypercritical Reviewer
Andrey Karpov
 
PDF
HKG15-207: Advanced Toolchain Usage Part 3
Linaro
 
PDF
PVS-Studio is there to help CERN: analysis of Geant4 project
PVS-Studio
 
ODP
Klee introduction
Georgiana T.
 
PPTX
An introduction to JVM performance
Rafael Winterhalter
 
PDF
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
DVClub
 
PPTX
SoCal Code Camp 2015: An introduction to Java 8
Chaitanya Ganoo
 
PDF
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
Andrey Karpov
 
PDF
Why Spring <3 Kotlin
VMware Tanzu
 
Clone Refactoring with Lambda Expressions
Nikolaos Tsantalis
 
Unit testing concurrent code
Rafael Winterhalter
 
Reducing Redundancies in Multi-Revision Code Analysis
Sebastiano Panichella
 
Can secwest2011 flash_actionscript
Craft Symbol
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
 
Wait for your fortune without Blocking!
Roman Elizarov
 
Java byte code in practice
Rafael Winterhalter
 
Navigating the xDD Alphabet Soup
Dror Helper
 
Java Bytecode Fundamentals - JUG.lv
Anton Arhipov
 
Best Bugs from Games: Fellow Programmers' Mistakes
Andrey Karpov
 
C++ Advanced Features
Michael Redlich
 
C++ Code as Seen by a Hypercritical Reviewer
Andrey Karpov
 
HKG15-207: Advanced Toolchain Usage Part 3
Linaro
 
PVS-Studio is there to help CERN: analysis of Geant4 project
PVS-Studio
 
Klee introduction
Georgiana T.
 
An introduction to JVM performance
Rafael Winterhalter
 
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
DVClub
 
SoCal Code Camp 2015: An introduction to Java 8
Chaitanya Ganoo
 
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
Andrey Karpov
 
Why Spring <3 Kotlin
VMware Tanzu
 

Viewers also liked (14)

PPTX
Wordpress
abestrada
 
PPTX
Red alumnos
abestrada
 
PPTX
Gestin de cont.
abestrada
 
PDF
Deploy Flex with Apache Ant
dctrl — studio for creativ technology
 
PPTX
Delicius
abestrada
 
ODP
Sin título 1
paulacamilamendoza123
 
PPT
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
Sharvari Adesh
 
DOCX
pop star
Max Tomlinson
 
PPTX
Rituals in psychotherapy
University of Roma Italy
 
PPTX
Reflexive exercises to get over impasse
University of Roma Italy
 
PDF
DR. Dimitri Kioses talks abour Sistemica
University of Roma Italy
 
PPT
Recursos Energéticos
grupoc1
 
PPTX
Introduction to Knowledge Management
Atif Shaikh
 
PPTX
Hr Analytics
Atif Shaikh
 
Wordpress
abestrada
 
Red alumnos
abestrada
 
Gestin de cont.
abestrada
 
Deploy Flex with Apache Ant
dctrl — studio for creativ technology
 
Delicius
abestrada
 
Sin título 1
paulacamilamendoza123
 
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
Sharvari Adesh
 
pop star
Max Tomlinson
 
Rituals in psychotherapy
University of Roma Italy
 
Reflexive exercises to get over impasse
University of Roma Italy
 
DR. Dimitri Kioses talks abour Sistemica
University of Roma Italy
 
Recursos Energéticos
grupoc1
 
Introduction to Knowledge Management
Atif Shaikh
 
Hr Analytics
Atif Shaikh
 
Ad

Similar to Mining Branch-Time Scenarios From Execution Logs (20)

PDF
S-CUBE LP: Mining Lifecycle Event Logs for Enhancing SBAs
virtual-campus
 
PDF
Server Tips
liqingfang126
 
PPTX
Multi-Perspective Comparison of Business Processes Variants Based on Event Logs
Marlon Dumas
 
PPT
An Integrated Framework on Mining Logs Files for Computing System Management
feiwin
 
PDF
Discovering Concurrency: Learning (Business) Process Models from Examples
Wil van der Aalst
 
PPTX
Process Mining and Predictive Process Monitoring in Apromore
Marlon Dumas
 
PDF
Intelligent Systems for Process Mining
Faculty of Computer Science - Free University of Bozen-Bolzano
 
PDF
Tips on High Performance Server Programming
Joshua Zhu
 
PDF
S-CUBE LP: Indentify User Tasks from Past Usage Logs
virtual-campus
 
PDF
Big Data Warsaw
Maximilian Michels
 
PDF
Stream processing with Apache Flink - Maximilian Michels Data Artisans
Evention
 
PDF
Routing trillion events per day @twitter
lohitvijayarenu
 
PPTX
Data Mining with Splunk
David Carasso
 
PDF
Keynote Gartner Business Process Management Summit, February 2009, London
Wil van der Aalst
 
PDF
2012 02-14-digitale fabriek v - Een praktische aanpak voor implementatie van ...
Sirris
 
PDF
A self adaptive learning approach for optimum path evaluation of process for ...
Alexander Decker
 
PDF
Complex event processing platform handling millions of users - Krzysztof Zarz...
GetInData
 
PDF
A self adaptive learning approach for optimum path evaluation of process for ...
Alexander Decker
 
PDF
Process mining chapter_01_introduction
Muhammad Ajmal
 
PDF
Process Mining - Chapter 1 - Introduction
Wil van der Aalst
 
S-CUBE LP: Mining Lifecycle Event Logs for Enhancing SBAs
virtual-campus
 
Server Tips
liqingfang126
 
Multi-Perspective Comparison of Business Processes Variants Based on Event Logs
Marlon Dumas
 
An Integrated Framework on Mining Logs Files for Computing System Management
feiwin
 
Discovering Concurrency: Learning (Business) Process Models from Examples
Wil van der Aalst
 
Process Mining and Predictive Process Monitoring in Apromore
Marlon Dumas
 
Tips on High Performance Server Programming
Joshua Zhu
 
S-CUBE LP: Indentify User Tasks from Past Usage Logs
virtual-campus
 
Big Data Warsaw
Maximilian Michels
 
Stream processing with Apache Flink - Maximilian Michels Data Artisans
Evention
 
Routing trillion events per day @twitter
lohitvijayarenu
 
Data Mining with Splunk
David Carasso
 
Keynote Gartner Business Process Management Summit, February 2009, London
Wil van der Aalst
 
2012 02-14-digitale fabriek v - Een praktische aanpak voor implementatie van ...
Sirris
 
A self adaptive learning approach for optimum path evaluation of process for ...
Alexander Decker
 
Complex event processing platform handling millions of users - Krzysztof Zarz...
GetInData
 
A self adaptive learning approach for optimum path evaluation of process for ...
Alexander Decker
 
Process mining chapter_01_introduction
Muhammad Ajmal
 
Process Mining - Chapter 1 - Introduction
Wil van der Aalst
 
Ad

More from Dirk Fahland (15)

PDF
Object-Centric Processes - from cases to objects and relations… and beyond
Dirk Fahland
 
PDF
Multi-Dimensional Process Analysis
Dirk Fahland
 
PPTX
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
Dirk Fahland
 
PDF
Describing, Discovering, and Understanding Multi-Dimensional Processes
Dirk Fahland
 
PDF
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Dirk Fahland
 
PDF
Where did I go wrong? Explaining errors in process models
Dirk Fahland
 
PDF
From Live Sequence Chart Specifications to Distributed Components
Dirk Fahland
 
PDF
LSC Revisited - From Scenarios to Distributed Components
Dirk Fahland
 
PDF
Repairing Process Models to Match Reality
Dirk Fahland
 
PDF
Process Mining for ERP Systems
Dirk Fahland
 
PDF
Simplifying Mined Process Models
Dirk Fahland
 
PPTX
The Process of Process Modeling
Dirk Fahland
 
PPTX
Behavioral Conformance of Artifact-Centric Process Models
Dirk Fahland
 
PPTX
Many-to-Many: Interactions in Artifact-Centric Choreographies
Dirk Fahland
 
PPTX
Artifacts - Processes with Multiple Instances
Dirk Fahland
 
Object-Centric Processes - from cases to objects and relations… and beyond
Dirk Fahland
 
Multi-Dimensional Process Analysis
Dirk Fahland
 
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
Dirk Fahland
 
Describing, Discovering, and Understanding Multi-Dimensional Processes
Dirk Fahland
 
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Dirk Fahland
 
Where did I go wrong? Explaining errors in process models
Dirk Fahland
 
From Live Sequence Chart Specifications to Distributed Components
Dirk Fahland
 
LSC Revisited - From Scenarios to Distributed Components
Dirk Fahland
 
Repairing Process Models to Match Reality
Dirk Fahland
 
Process Mining for ERP Systems
Dirk Fahland
 
Simplifying Mined Process Models
Dirk Fahland
 
The Process of Process Modeling
Dirk Fahland
 
Behavioral Conformance of Artifact-Centric Process Models
Dirk Fahland
 
Many-to-Many: Interactions in Artifact-Centric Choreographies
Dirk Fahland
 
Artifacts - Processes with Multiple Instances
Dirk Fahland
 

Recently uploaded (20)

PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
July Patch Tuesday
Ivanti
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 

Mining Branch-Time Scenarios From Execution Logs

  • 1. Dirk Fahland David Lo Shahar Maoz Mining Branching-Time Scenarios
  • 2. Eindhoven University of Technology Singapore Management University Tel Aviv University Dirk Fahland David Lo Shahar Maoz Mining Branching-Time Scenarios
  • 3. Dirk Fahland David Lo Shahar Maoz Mining Branching-Time Scenarios
  • 4. Understanding Existing Applications fix bugs, add features, test, document, … specification understanding of objects and object interplay 3
  • 5. Understanding Existing Applications fix bugs, add features, test, document, … specification Usually, there is no specification or worse, if it exists, it is outdated… understanding of objects and object interplay 4
  • 6. Understanding Existing Applications fix bugs, add features, test, document, … specification ? ? ? ? source code understanding of objects and object interplay 5
  • 7. Understanding Existing Applications Understanding applications from source code is • laborious • fix bugs, add time-consuming specification •features, test, error prone document, … ? ? ? ? source code understanding of objects and object interplay 6
  • 9. Specification Mining from Event Logs log automatically extract specification ? ? ? ? source code understanding of objects and object interplay 8
  • 11. This talk log automatically extract specification ? What is a good specification language to get an overview of ? ? how an application works? ? source code understanding of objects and object interplay 10
  • 12. Understanding Object Interplay FTP server: How does Login/Logout work? In object-oriented applications, the hard part is to understand how the different objects relate to and interact with each other. Here are some classes of an FTP server. How does login/logout work? 11
  • 13. Understanding Object Interplay An object of class A invokes method onConnect() on an Scenario: Login/Logout object of class B. A UserCmd B C C onConnect() UserCmd A B 12
  • 14. Understanding Object Interplay Scenario: Login/Logout A UserCmd B C C onConnect() onLogin() setUser() UserCmd setLogout() A B 13
  • 15. Understanding Object Interplay Scenario: Login/Logout A UserCmd B C C onConnect() onLogin() setUser() UserCmd setLogout() A • non-local behavior: multiple objects • logically related B 14
  • 16. When does it happen? Scenario: Login/Logout This scenario tells us which objects and methods are involved in login/logout. A UserCmd B C onConnect() onLogin() setUser() But it does not tell when this scenario occurs in the application. setLogout() 15
  • 17. When does it happen? Scenario: Login/Logout A whenever the prechart happens… eventually the mainchart will happen UserCmd B C onConnect() onLogin() setUser() setLogout() 16
  • 18. Linear-Time LSCs - Invariants pre Login Login There can be other behaviors between the behaviors shown in the LSC. 2 runs 17
  • 19. Linear-Time LSCs - Invariants pre Login Login This run does not continue with the complete main chart of the LSC. 2 runs 18
  • 20. Understanding Everything FTP download FTP delete not everything is an invariant  alternative behaviors FTP rename 2 alternative runs 19
  • 21. Linear-Time is Insufficient scenario for FTP delete command This LSC for the delete command does not hold in every run. 2 runs 20
  • 22. Branching Time We merge all runs on their joint prefixes into an execution tree. execution tree 21
  • 23. Branching-Time LSCs [Sibay, Uchitel, Braberman ICSE 2008] whenever the prechart happens there exists a branch where the mainchart happens execution tree 22
  • 24. Describing Alternatives We can define an LSC for the download command, that is alternative to delete. execution tree 23
  • 25. Describing Alternatives … and also an LSC for the Rename command. execution tree 24
  • 28. LSC Mining from Event Logs log automatically extract complete set of LSCs (linear / branching) We want to discover a set of LSCs that can describe all behaviors (or as much as possible of the behaviors). understanding of objects and object interplay 27
  • 29. Logs log automatically extract log method calls complete set of LSCs (linear / branching) caller1, callee1, method1(…) caller2, callee2, method2(…) … Each execution of the application gives one trace. Run application multiple times for a log. 28
  • 30. Desired Outcome log log = tree automatically extract complete set of LSCs (occuring at least s times = support) 29
  • 32. Mining Algorithm github.com/scenario-based-tools/sam/ tree 1. enumerate all sequences of events occurring ≥ s times onConnect() onConnect() onConnect() onLogin() onLogin() onLogin() setLogin() setLogin() setLogin() setLogout() setLogout() setLogout() candidate words Starting from sequences of length 1, recursively append events and check if it occurs often enough. Efficient implementation uses branch and bound and some heuristics. 31
  • 33. Mining Algorithm github.com/scenario-based-tools/sam/ tree 1. enumerate all sequences of events occurring ≥ s times onConnect() onConnect() onConnect() onLogin() onLogin() onLogin() setLogin() setLogin() setLogin() setLogout() setLogout() setLogout() candidate words From LSC with pre-chart length 1 to LSC with mainchart length 1. 2. generate all candidate LSCs onConnect() onLogin() setLogin() setLogout() onConnect() onLogin() setLogin() setLogout() 32
  • 34. Mining Algorithm github.com/scenario-based-tools/sam/ tree 1. enumerate all sequences of events occurring ≥ s times onConnect() onConnect() onConnect() onLogin() onLogin() onLogin() setLogin() setLogin() setLogin() setLogout() setLogout() setLogout() candidate words 3. test for each LSC if satisfied ≥ c% 2. generate all candidate LSCs onConnect() onLogin() setLogin() setLogout() onConnect() onLogin() setLogin() setLogout() 33
  • 35. Mining Algorithm github.com/scenario-based-tools/sam/ tree 1. enumerate all sequences of events occurring ≥ s times onConnect() onConnect() onConnect() onLogin() onLogin() onLogin() setLogin() setLogin() setLogin() setLogout() setLogout() setLogout() candidate words 3. test for each LSC if satisfied ≥ c% 2. generate all candidate LSCs onConnect() onLogin() setLogin() setLogout() onConnect() onLogin() setLogin() setLogout() 34
  • 36. LSC Mining from Event Logs log automatically extract complete set of LSCs (linear and branching) What do branching scenarios add to specification mining? understanding of objects and object interplay 35
  • 37. Experiments  CrossFTP server: 54 traces, 50 event types s Linear LSC covered events avg. length time [s] Branching LSC covered events avg. length time [s] 20 7 90% 7 3 7+0 90% 7 3 14 9 90% 5 31 9+12 95% 13 26 10 9 90% 5 1008 9+18 95% 18 685 Branching LSC contain the linear LSC and some more strictly branching LSC that were not found before. Branching LSC are less frequent (lower support threshold). 36
  • 38. Experiments  CrossFTP server: 54 traces, 50 event types s Linear LSC covered events avg. length time [s] Branching LSC covered events avg. length time [s] 20 7 90% 7 3 7+0 90% 7 3 14 9 90% 5 31 9+12 95% 13 26 10 9 90% 5 1008 9+18 95% 18 685 Branching LSC can explore more events of the log than just Linear LSC. 37
  • 39. Experiments  CrossFTP server: 54 traces, 50 event types s Linear LSC covered events avg. length time [s] Branching LSC covered events avg. length time [s] 20 7 90% 7 3 7+0 90% 7 3 14 9 90% 5 31 9+12 95% 13 26 10 9 90% 5 1008 9+18 95% 18 685 Branching LSC are longer than Linear LSC. In other words, they show more details for a particular behavior. 38
  • 40. Experiments  CrossFTP server: 54 traces, 50 event types s Linear LSC covered events avg. length time [s] Branching LSC covered events avg. length time [s] 20 7 90% 7 3 7+0 90% 7 3 14 9 90% 5 31 9+12 95% 13 26 10 9 90% 5 1008 9+18 95% 18 685 Running times for extraction are feasible. Note that LSCs shown here are the LSCs left after removing subsumed ones. Originally, the algorithm finds around 6 million branching LSC in 685 seconds. 39
  • 41. Experiments  CrossFTP server: 54 traces, 50 event types s Linear LSC covered events avg. length time [s] Branching LSC covered events avg. length time [s] 20 7 90% 7 3 7+0 90% 7 3 14 9 90% 5 31 9+12 95% 13 26 10 9 90% 5 1008 9+18 95% 18 685  Columba mail client: 104 traces, 79 event types s/c Linear LSC covered events avg. length time [s] 20 57 70% 4 159 10 205 72% 6 10/.5 163 78% 6 Branching LSC covered events avg. length time [s] 57+1 71% 9 154 2191 205+53 75% 9 2055 2256 163+44 84% 6 2125 full data sets and results: http://dx.doi.org/10.4121/uuid:aa7db920-aae6-4750-8975-cb739262f432 40
  • 42. Experiments  CrossFTP server: 54 traces, 50 event types s Linear LSC covered events avg. length time [s] Branching LSC covered events avg. length time [s] 20 7 90% 7 3 7+0 90% 7 3 14 9 90% 5 31 9+12 95% 13 26 10 9 90% 5 1008 9+18 95% 18 685  Columba mail client: 104 traces, 79 event types s/c Linear LSC covered events avg. length time [s] 20 57 70% 4 159 10 205 72% 6 10/.5 163 78% 6 Branching LSC covered events avg. length time [s] 57+1 71% 9 154 2191 205+53 75% 9 2055 2256 163+44 84% 6 2125 full data sets and results: http://dx.doi.org/10.4121/uuid:aa7db920-aae6-4750-8975-cb739262f432 41
  • 43. Linear vs. Branching: CrossFTP What is the qualitative contribution of branching LSC to specification mining? application life-cycle from end to end connect login logout clean up 42
  • 44. Linear vs. Branching: CrossFTP application life-cycle from end to end short invariants of individual FTP commands invariant of RENAME 43
  • 45. Linear vs. Branching: CrossFTP application life-cycle from end to end FTP command + where triggered short invariants of individual FTP commands The branching LSC fills the gap between large and small invariants. login rename command 44
  • 46. Linear vs. Branching: CrossFTP application life-cycle individual FTP individual FTP FTP commands from end to end all commands + commands + +where they are where they are can be triggered in triggered triggered the same situation short invariants of individual FTP commands We found all ftp commands supported by the server, as alternative LSC. 45
  • 47. Linear vs. Branching: CrossFTP application life-cycle individual FTP individual FTP FTP commands from end to end all commands + commands + +where they are where they are can be triggered in triggered triggered the same situation … and we could discover cyclic behavior: after rename, there could be another delete command short invariants of individual FTP commands cycles: rename  delete 46
  • 48. Take Home Points http://github.com/scenario-based-tools/sam/ log • mining branching scenarios  alternatives, cycles • combined with linear: comprehensive specification • future work: visualizing results distributed scenarios complete set of LSCs understanding of objects and object interplay 47
  • 50. Q&A …is branching time really necessary? Yes, here is a linear LSC showing a disjunction for continuing after the pre-chart. if then delete or download 49
  • 51. The full execution tree satisfies this Linear LSC with disjunction Branching Time vs. Disjunction and two branching LSCs describing the two alternatives in separate LSCs. 50
  • 52. Branching Time vs. Disjunction Removing one branch from the tree (the execution of the download command), violates the branching LSCs, but still satisfies the disjunctive linear LSCs (because only one of them has to hold). 51