Interactive Exploration of Reverse Engineered UML Sequence Diagrams











- Slides: 11
Interactive Exploration of Reverse. Engineered UML Sequence Diagrams Richard Sharp Atanas (Nasko) Rountev Ohio State University
Example of a UML Sequence Diagram start: X p: A m 1() m 2() m 3() create() opt n: A m 4() Nasko Rountev VISSOFT'05 2
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 Control. Center (Borland) Eclipse. UML (Omondo) Nasko Rountev VISSOFT'05 3
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 Nasko Rountev VISSOFT'05 4
Example of a Reverse-Engineered Diagram Nasko Rountev VISSOFT'05 5
Zooming and Translation § Useful, but have serious limitations Nasko Rountev VISSOFT'05 6
Filtering § Filter out certain diagram elements § § Choose starting and ending message Choose call stack depth start msg: 172 end msg: 177 depth: 2 (out of 5) Nasko Rountev VISSOFT'05 7
Filtering of Interaction Fragments § § Condense alt/opt/loop/break fragments Filter out everything outside of a chosen fragment Nasko Rountev VISSOFT'05 8
Focusing on a Single Message Nasko Rountev VISSOFT'05 9
Conclusions and Future Work § § § Interactive, fast-paced exploration Abstraction is critical § Filtering: by time, by call graph depth, by objects, by interaction fragments § Merging: e. g. combine together a set of related objects into a single object § Computation and re-computation of layout Techniques from code understanding § Slicing w. r. t. messages, objects, etc. § Refactoring (e. g. , “extract sub-diagram”) Nasko Rountev VISSOFT'05 10
Questions? Nasko Rountev VISSOFT'05 11