110 likes | 123 Views
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. m1(). m2(). m3(). create(). n:A. m4(). opt. UML Sequence Diagrams.
E N D
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 m1() m2() m3() create() n:A m4() opt Nasko Rountev VISSOFT'05
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) Nasko Rountev VISSOFT'05
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
Example of a Reverse-Engineered Diagram Nasko Rountev VISSOFT'05
Zooming and Translation • Useful, but have serious limitations Nasko Rountev VISSOFT'05
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
Filtering of Interaction Fragments Filtering of Interaction Fragments • Condense alt/opt/loop/break fragments • Filter out everything outside of a chosen fragment Nasko Rountev VISSOFT'05
Focusing on a Single Message Nasko Rountev VISSOFT'05
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
Questions? Nasko Rountev VISSOFT'05