SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Clone Refactoring with Lambda Expressions
Clone Refactoring with Lambda ExpressionsClone Refactoring with Lambda Expressions
Clone Refactoring with Lambda ExpressionsNikolaos Tsantalis
 
Reducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code AnalysisReducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code AnalysisSebastiano Panichella
 
Can secwest2011 flash_actionscript
Can secwest2011 flash_actionscriptCan secwest2011 flash_actionscript
Can secwest2011 flash_actionscriptCraft Symbol
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
Wait for your fortune without Blocking!
Wait for your fortune without Blocking!Wait for your fortune without Blocking!
Wait for your fortune without Blocking!Roman Elizarov
 
Navigating the xDD Alphabet Soup
Navigating the xDD Alphabet SoupNavigating the xDD Alphabet Soup
Navigating the xDD Alphabet SoupDror Helper
 
Java Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lvJava Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lvAnton Arhipov
 
Best Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesBest Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesAndrey Karpov
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerAndrey Karpov
 
HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3Linaro
 
PVS-Studio is there to help CERN: analysis of Geant4 project
PVS-Studio is there to help CERN: analysis of Geant4 projectPVS-Studio is there to help CERN: analysis of Geant4 project
PVS-Studio is there to help CERN: analysis of Geant4 projectPVS-Studio
 
An introduction to JVM performance
An introduction to JVM performanceAn introduction to JVM performance
An introduction to JVM performanceRafael Winterhalter
 
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteProcessor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteDVClub
 
SoCal Code Camp 2015: An introduction to Java 8
SoCal Code Camp 2015: An introduction to Java 8SoCal Code Camp 2015: An introduction to Java 8
SoCal Code Camp 2015: An introduction to Java 8Chaitanya Ganoo
 
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-StudioArcheology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-StudioAndrey Karpov
 
Why Spring <3 Kotlin
Why Spring <3 KotlinWhy Spring <3 Kotlin
Why Spring <3 KotlinVMware Tanzu
 

Was ist angesagt? (20)

Clone Refactoring with Lambda Expressions
Clone Refactoring with Lambda ExpressionsClone Refactoring with Lambda Expressions
Clone Refactoring with Lambda Expressions
 
Unit testing concurrent code
Unit testing concurrent codeUnit testing concurrent code
Unit testing concurrent code
 
Reducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code AnalysisReducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code Analysis
 
Can secwest2011 flash_actionscript
Can secwest2011 flash_actionscriptCan secwest2011 flash_actionscript
Can secwest2011 flash_actionscript
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Wait for your fortune without Blocking!
Wait for your fortune without Blocking!Wait for your fortune without Blocking!
Wait for your fortune without Blocking!
 
Java byte code in practice
Java byte code in practiceJava byte code in practice
Java byte code in practice
 
Navigating the xDD Alphabet Soup
Navigating the xDD Alphabet SoupNavigating the xDD Alphabet Soup
Navigating the xDD Alphabet Soup
 
Java Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lvJava Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lv
 
Best Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesBest Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' Mistakes
 
C++ Advanced Features
C++ Advanced FeaturesC++ Advanced Features
C++ Advanced Features
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
 
HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3
 
PVS-Studio is there to help CERN: analysis of Geant4 project
PVS-Studio is there to help CERN: analysis of Geant4 projectPVS-Studio is there to help CERN: analysis of Geant4 project
PVS-Studio is there to help CERN: analysis of Geant4 project
 
Klee introduction
Klee  introductionKlee  introduction
Klee introduction
 
An introduction to JVM performance
An introduction to JVM performanceAn introduction to JVM performance
An introduction to JVM performance
 
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteProcessor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
 
SoCal Code Camp 2015: An introduction to Java 8
SoCal Code Camp 2015: An introduction to Java 8SoCal Code Camp 2015: An introduction to Java 8
SoCal Code Camp 2015: An introduction to Java 8
 
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-StudioArcheology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-Studio
 
Why Spring <3 Kotlin
Why Spring <3 KotlinWhy Spring <3 Kotlin
Why Spring <3 Kotlin
 

Andere mochten auch

Andere mochten auch (14)

Wordpress
WordpressWordpress
Wordpress
 
Red alumnos
Red alumnosRed alumnos
Red alumnos
 
Gestin de cont.
Gestin de cont.Gestin de cont.
Gestin de cont.
 
Deploy Flex with Apache Ant
Deploy Flex with Apache AntDeploy Flex with Apache Ant
Deploy Flex with Apache Ant
 
Delicius
DeliciusDelicius
Delicius
 
Sin título 1
Sin título 1Sin título 1
Sin título 1
 
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
Enabling Access to All - USID 2009 Paper Presentation on AccessibilityEnabling Access to All - USID 2009 Paper Presentation on Accessibility
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
 
pop star
pop starpop star
pop star
 
Rituals in psychotherapy
Rituals in psychotherapyRituals in psychotherapy
Rituals in psychotherapy
 
Reflexive exercises to get over impasse
Reflexive exercises to get over impasseReflexive exercises to get over impasse
Reflexive exercises to get over impasse
 
DR. Dimitri Kioses talks abour Sistemica
DR. Dimitri Kioses talks abour SistemicaDR. Dimitri Kioses talks abour Sistemica
DR. Dimitri Kioses talks abour Sistemica
 
Recursos Energéticos
Recursos EnergéticosRecursos Energéticos
Recursos Energéticos
 
Introduction to Knowledge Management
Introduction to Knowledge ManagementIntroduction to Knowledge Management
Introduction to Knowledge Management
 
Hr Analytics
Hr AnalyticsHr Analytics
Hr Analytics
 

Ähnlich wie Mining Branch-Time Scenarios From Execution Logs

Hierarchical free monads and software design in fp
Hierarchical free monads and software design in fpHierarchical free monads and software design in fp
Hierarchical free monads and software design in fpAlexander Granin
 
Real Time Big Data Management
Real Time Big Data ManagementReal Time Big Data Management
Real Time Big Data ManagementAlbert Bifet
 
Apache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmapApache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmapKostas Tzoumas
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container EraSadayuki Furuhashi
 
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)JiandSon
 
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingPART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingFastBit Embedded Brain Academy
 
How to debug slow lambda response times
How to debug slow lambda response timesHow to debug slow lambda response times
How to debug slow lambda response timesYan Cui
 
TAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentationTAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentationHenry Muccini
 
Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Kim Herzig
 
Drd secr final1_3
Drd secr final1_3Drd secr final1_3
Drd secr final1_3Devexperts
 
Apache Flink & Graph Processing
Apache Flink & Graph ProcessingApache Flink & Graph Processing
Apache Flink & Graph ProcessingVasia Kalavri
 
Legacy projects: how to win the race
Legacy projects: how to win the raceLegacy projects: how to win the race
Legacy projects: how to win the raceVictor_Cr
 
A Replay Approach to Software Validation
A Replay Approach to Software ValidationA Replay Approach to Software Validation
A Replay Approach to Software ValidationJames Pascoe
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupRoy Russo
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETMaarten Balliauw
 
Kyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory AnalysisMoabi.com
 
Debugging With Id
Debugging With IdDebugging With Id
Debugging With Idguest215c4e
 

Ähnlich wie Mining Branch-Time Scenarios From Execution Logs (20)

Hierarchical free monads and software design in fp
Hierarchical free monads and software design in fpHierarchical free monads and software design in fp
Hierarchical free monads and software design in fp
 
Real Time Big Data Management
Real Time Big Data ManagementReal Time Big Data Management
Real Time Big Data Management
 
Apache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmapApache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmap
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container Era
 
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
 
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingPART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
 
How to debug slow lambda response times
How to debug slow lambda response timesHow to debug slow lambda response times
How to debug slow lambda response times
 
TAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentationTAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentation
 
Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)
 
Drd secr final1_3
Drd secr final1_3Drd secr final1_3
Drd secr final1_3
 
Apache Flink & Graph Processing
Apache Flink & Graph ProcessingApache Flink & Graph Processing
Apache Flink & Graph Processing
 
Rx workshop
Rx workshopRx workshop
Rx workshop
 
Legacy projects: how to win the race
Legacy projects: how to win the raceLegacy projects: how to win the race
Legacy projects: how to win the race
 
A Replay Approach to Software Validation
A Replay Approach to Software ValidationA Replay Approach to Software Validation
A Replay Approach to Software Validation
 
Ruby Under The Hood
Ruby Under The HoodRuby Under The Hood
Ruby Under The Hood
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users Group
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
 
Kyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdf
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
 
Debugging With Id
Debugging With IdDebugging With Id
Debugging With Id
 

Mehr von Dirk Fahland

Object-Centric Processes - from cases to objects and relations… and beyond
Object-Centric Processes - from cases to objects and relations… and beyondObject-Centric Processes - from cases to objects and relations… and beyond
Object-Centric Processes - from cases to objects and relations… and beyondDirk Fahland
 
Multi-Dimensional Process Analysis
Multi-Dimensional Process Analysis Multi-Dimensional Process Analysis
Multi-Dimensional Process Analysis Dirk Fahland
 
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...Dirk Fahland
 
Describing, Discovering, and Understanding Multi-Dimensional Processes
Describing, Discovering, and Understanding Multi-Dimensional ProcessesDescribing, Discovering, and Understanding Multi-Dimensional Processes
Describing, Discovering, and Understanding Multi-Dimensional ProcessesDirk Fahland
 
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)Dirk Fahland
 
Where did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsWhere did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsDirk Fahland
 
From Live Sequence Chart Specifications to Distributed Components
From Live Sequence Chart Specifications to Distributed ComponentsFrom Live Sequence Chart Specifications to Distributed Components
From Live Sequence Chart Specifications to Distributed ComponentsDirk Fahland
 
LSC Revisited - From Scenarios to Distributed Components
LSC Revisited - From Scenarios to Distributed ComponentsLSC Revisited - From Scenarios to Distributed Components
LSC Revisited - From Scenarios to Distributed ComponentsDirk Fahland
 
Repairing Process Models to Match Reality
Repairing Process Models to Match RealityRepairing Process Models to Match Reality
Repairing Process Models to Match RealityDirk Fahland
 
Process Mining for ERP Systems
Process Mining for ERP SystemsProcess Mining for ERP Systems
Process Mining for ERP SystemsDirk Fahland
 
Simplifying Mined Process Models
Simplifying Mined Process ModelsSimplifying Mined Process Models
Simplifying Mined Process ModelsDirk Fahland
 
The Process of Process Modeling
The Process of Process ModelingThe Process of Process Modeling
The Process of Process ModelingDirk Fahland
 
Behavioral Conformance of Artifact-Centric Process Models
Behavioral Conformance of Artifact-Centric Process ModelsBehavioral Conformance of Artifact-Centric Process Models
Behavioral Conformance of Artifact-Centric Process ModelsDirk Fahland
 
Many-to-Many: Interactions in Artifact-Centric Choreographies
Many-to-Many: Interactions in Artifact-Centric ChoreographiesMany-to-Many: Interactions in Artifact-Centric Choreographies
Many-to-Many: Interactions in Artifact-Centric ChoreographiesDirk Fahland
 
Artifacts - Processes with Multiple Instances
Artifacts - Processes with Multiple InstancesArtifacts - Processes with Multiple Instances
Artifacts - Processes with Multiple InstancesDirk Fahland
 

Mehr von Dirk Fahland (15)

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

Kürzlich hochgeladen

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Kürzlich hochgeladen (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

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