Presentation is loading. Please wait.

Presentation is loading. Please wait.

Atanas (Nasko) Rountev Ohio State University

Similar presentations


Presentation on theme: "Atanas (Nasko) Rountev Ohio State University"— Presentation transcript:

1 Atanas (Nasko) Rountev Ohio State University
Static Control-Flow Analysis for Reverse Engineering of UML Sequence Diagrams Atanas (Nasko) Rountev Ohio State University with Olga Volgin and Miriam Reddoch

2 Example of a UML Sequence Diagram
start:X p:A m1() m2() m3() create() n:A opt m4() PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

3 Popular UML artifacts for modeling of object interactions
UML Sequence Diagrams Popular UML artifacts for modeling of object interactions Design-time sequence diagrams Reverse-engineered sequence diagrams Based on existing code Iterative development; design recovery for software maintenance; software testing Implemented in some commercial UML tools Together ControlCenter (Borland) EclipseUML (Omondo) PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

4 Reverse-Engineering Analyses
Dynamic analysis: tracks a set of representative run-time executions Several research tools Static analysis: examines only the code Commercial tools (deficiencies) Some research work (not comprehensive) RED tool for Java: PRESTO group at OSU URL: presto.cse.ohio-state.edu/red Call chain analysis; control-flow analysis; object naming analysis; visualization and navigation; test coverage measurements PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

5 Representation of Intraprocedural Flow of Control
Given: the methods whose bodies will be used to construct the diagram How should we represent the intraprocedural flow of control inside these bodies? Solution: general algorithm for mapping a method’s CFG to UML 2.0 interaction fragments Any reducible exception-free CFG Precise mapping: preserves all call sequences Subsequent diagram transformations Lossless vs. lossy Visualization and exploration PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

6 UML 2.0 Interaction Fragments
Opt, alt, loop, break; added generalized break PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

7 Phase I: Preprocessing
Analysis Stages CFG Phase I: Preprocessing Phase II: Fragment Construction Phase III: Transformations Data Structure for Fragments PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

8 Phase I: Preprocessing
Post-dominance tree Node n2 post-dominates n1 if all paths from n1 to exit go through n2 Immediate post-dominator; parent in the tree Analyze branch nodes What is the merge point for all branches? Analyze loops Nesting relationships What is the merge point for all loop exits? PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

9 Post-dominance Tree PRESTO Research Group - Ohio State University
Nasko Rountev - PASTE'05

10 Branch Nodes and Branch Successors
Branch successor: node where the outgoing paths for a branch node merge the branch successor of 3 is 6 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

11 Loops and Loop Successors
Reducible CFG: contains only natural loops Loop successor: merge point of all paths exiting the loop the loop successor of L is 12 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

12 Branch/Loop Successors Inside Loop L
Consider only edges inside L Create a post-dominance tree for L and use it for: branch successors for nodes in L loop successors for loops nested in L the branch successor of 7 is 10 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

13 Phase I: Preprocessing
Analysis Stages CFG Phase I: Preprocessing Phase II: Fragment Construction Phase III: Transformations Data Structure for Fragments PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

14 Phase II: Fragment Construction
TOP 1 : i = -1 PatternEntry:getChars() 2 : s = e.getChars() ALT cond: s != null 1 String:charAt(0) 3 T : s != null F Vector:indexOf(e) 4 : e = s.charAt(0) 5 : i = patterns.indexOf(e) LOOP cond: i>= 0 1 F 6 : i>=0 BREAK cond: i<0 1 breaks_from: LOOP T 1 F 7 : statusArray[i] !=0 OPT 1 cond: statusArray[i] !=0 T Vector:elementAt(i) 8 : e1 = patterns.elementAt(i) BREAK cond: e1 != null 2 breaks_from: LOOP 9: 1 e1 != null T MergeCollation:fixEntry(e1) F 10 11 : patterns.removeElementAt(i) : fixEntry(e1) Vector:removeElementAt(i) 12: exit PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

15 Multi-level break fragments Multiple method exits
Various Issues UML additions Multi-level break fragments Multiple method exits Opt-like fragments: return fragments Algorithm uses info about control dependencies Exceptions (Java) “throw e”: similar to method exit - throw fragment Ignore catches and implicit exceptions Node replication: the same CFG node may have to produce multiple identical diagram elements e.g. due to short-circuit evaluation PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

16 Average Running Time per Method [milliseconds]
PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

17 Methods Requiring Return/Throw Fragments
PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

18 Methods Requiring Multi-level Break Fragments
PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

19 Methods Requiring Node Replication
PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

20 Summary and Future Work
General and fast algorithm Creates detailed and precise representation Subsequent simplifications Lossless: e.g. merge a fragment with the surrounding fragment [OSU-CISRC-3/04-TR12] Lossy: e.g. give up on multi-level breaks Interactive visualization [VISSOFT’05] Collapse and un-collapse fragments; slice the diagram w.r.t. a fragment of interest Re-implement in Eclipse and make public, together with the other analyses in RED PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05


Download ppt "Atanas (Nasko) Rountev Ohio State University"

Similar presentations


Ads by Google