Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence...

30
Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization

Transcript of Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence...

Page 1: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

Hassen Grati, Houari Sahraoui, Pierre Poulin

DIRO, Université de Montréal

Extracting Sequence Diagrams from Execution Traces using Interactive Visualization

Page 2: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

2

Example of Design Diagram

Page 3: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

3

Corresponding Automated- RE Diagram

Page 4: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

4

Presentation Agenda

• Context and motivation

• Overview

• Trace generation and combination

• Sequence diagram extraction

• Evaluation

Page 5: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

5

Context and Motivation

• Reverse engineering of analysis and design models– Comprehension– Migration– Maintenance

• Mature work on static model extraction– Integrated in commercial tools– Still few challenges

• Relationship recovery and scope definition

Page 6: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

6

Context and Motivation

• Difficulty to extract behavioral models– Static analysis

• Dynamic language features

– Dynamic analysis• Implementation details• Specificity to an execution trace

• Proposal– Semi-automated reverse engineering with

interactive visualization

Page 7: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

7

Overview• Objective and working hypothesis

– Extraction of sequence diagrams for the purpose of redocumentation for existing use case scenarios

Use−caseScenarios

SourceCode

UserInput

Combined Trace

Generation of Execution Traces

T1

T3T2

Combination of Execution Traces

Interactive Visualization

SequenceDiagram

Page 8: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

8

Trace Generation and Combination

• Generating traces from a scenario– Determination of execution variants – Code Instrumentation

• Method body, loop block, conditional block

– Example1 _, PanelDraw [21668571], _, StartDraw [T1M1], _

2 PanelDraw [21668571], Figure [3916193], StartDraw [T1M1], Figure [T1M2], _

9 PanelDraw [21668571], Circle [17282414], StartDraw [T1M1], Circle [T1M9], <%(State.getFiguretype()==MODE_CERCLE)%>

Page 9: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

9

Trace Generation and Combination

• Combining traces– Recursive alignment of call-tree nodes– For each pair of aligned methods, enclosed

sequence of method calls are compared– Sequence alignment using the Smith-

Waterman algorithm

Page 10: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

10

Trace Generation and Combination

• Combining traces– Example

Page 11: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

11

Trace Generation and Combination

• Combining traces– Example

Page 12: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

12

Sequence Diagram Extraction

• Extraction = set of successive interaction cycles

• Each cycle – Automated basic transformations– User interactions using interaction views

Page 13: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

13

Sequence Diagram Extraction

• Automated basic transformations– Messages = method calls– Participants = call sender and receiver– opt/alt/loop boxes = conditional/loop

stacks – Return messages extracted from the

tree structure

Page 14: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

14

Sequence diagram Extraction

• User interactions using interaction views– Global view

• Messages

Page 15: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

15

Sequence Diagram Extraction

• User interactions using interaction views– Global view

• Placement

Page 16: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

16

Sequence Diagram Extraction

• User interactions using interaction views– Global view

• Placement

Page 17: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

17

Sequence Diagram Extraction

• User interactions using interaction views– Diagram view

Page 18: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

18

Sequence Diagram Extraction

• User interactions using interaction views– Interactions

• Navigation

Page 19: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

19

Sequence Diagram Extraction

• User interactions using interaction views– Interactions

• Renaming objects and messages• Removing objects and messages

– Tree pruning– Node removal

• Recommending fragment merges– Finding recommendations during trace alignments– Based on polymorphism

Page 20: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

20

Sequence Diagram Extraction

• User interactions using interaction views• Recommending fragment merges

Page 21: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

21

Evaluation• Setting

– ATM simulation system• 24 Java classes• www.math-cs.gordon.edu/local/courses/cs211/ATMExample/

– Three use-case scenarios • Session, Deposit, and Withdraw

– Three sequence diagrams per scenario• Design diagram (DD)• Diagram extracted automatically (ATD) [Briand et al., 03]

• Diagram extracted using interactive visualization (IVD)

Page 22: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

22

Evaluation• Results

– Participants

Page 23: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

23

Evaluation• Results

– Messages

Page 24: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

24

Conclusions

• Semi-automated approach– Dynamic analysis– Interactive visualization– Recommendations

• Evaluation on a benchmark– Concise diagrams with better precision

and less implementation details– Acceptable interaction time

Page 25: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

25

Limitations & Future Work

• Improve scalability of the global view

• Improve the recommendation module– Incremental learning

• Apply IV to the reverse engineering of other dynamic models– State diagram– Activity diagram

Page 26: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

26

Thank you

Page 27: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

27

Additional Slides

Page 28: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

28

Session Scenario

Page 29: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

29

Session Scenario

Page 30: Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.

30

Session Scenario