ABSTRACT
UML sequence diagrams are commonly used to represent the interactions among collaborating objects. Reverse-engineered sequence diagrams are constructed from existing code, and have a variety of uses in software development, maintenance, and testing. In static analysis for such reverse engineering, an open question is how to represent the intraprocedural flow of control from the code using the control-flow primitives of UML 2.0. We propose simple UML extensions that are necessary to capture general flow of control. The paper describes an algorithm for mapping a reducible exception-free intraprocedural control-flow graph to UML, using the proposed extensions. We also investigate the inherent tradeoffs of different problem solutions, and discuss their implications for reverse-engineering tools. This work is a substantial step towards providing high-quality tool support for effective and efficient reverse engineering of UML sequence diagrams.
- R. Binder. Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, 1999. Google ScholarDigital Library
- L. Briand, Y. Labiche, and Y. Miao. Towards the reverse engineering of UML sequence diagrams. In Working Conference on Reverse Engineering, pages 57--66, 2003. Google ScholarDigital Library
- R. Cytron, J. Ferrante, B. Rosen, M. Wegman, and K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, 13(4):451--490, Oct. 1991. Google ScholarDigital Library
- W. DePauw, E. Jensen, N. Mitchell, G. Sevitsky, J. Vlissides, and J. Yang. Visualizing the execution of Java programs. In Software Visualization, LNCS 2269, pages 151--162, 2002. Google ScholarDigital Library
- R. Kollman and M. Gogolla. Capturing dynamic program behavior with UML collaboration diagrams. In European Conference on Software Maintenance and Reengineering, pages 58--67, 2001. Google ScholarDigital Library
- C. Larman. Applying UML and Patterns. Prentice Hall, 2nd edition, 2002.Google Scholar
- J. Miecznikowski and L. Hendren. Decompiling Java using staged encapsulation. In Working Conference on Reverse Engineering, pages 368--374, 2001. Google ScholarDigital Library
- R. Oechsle and T. Schmitt. JAVAVIS: Automatic program visualization with object and sequence diagrams using the Java Debug Interface (JDI). In Software Visualization, LNCS 2269, pages 176--190, 2002. Google ScholarDigital Library
- OMG. UML 2.0 Infrastructure Specification. Object Management Group, www.omg.org, Sept. 2003.Google Scholar
- T. Richner and S. Ducasse. Using dynamic information for the iterative recovery of collaborations and roles. In International Conference on Software Maintenance, pages 34--43, 2002. Google ScholarDigital Library
- A. Rountev and B. H. Connell. Object naming analysis for reverse-engineered sequence diagrams. In International Conference on Software Engineering, pages 254--263, 2005. Google ScholarDigital Library
- A. Rountev, S. Kagan, and M. Gibas. Static and dynamic analysis of call chains in Java. In International Symposium on Software Testing and Analysis, pages 1--11, July 2004. Google ScholarDigital Library
- A. Rountev, S. Kagan, and J. Sawin. Coverage criteria for testing of object interactions in sequence diagrams. In Fundamental Approaches to Software Engineering, LNCS 3442, pages 282--297, 2005. Google ScholarDigital Library
- A. Rountev, O. Volgin, and M. Reddoch. Control flow analysis for reverse engineering of sequence diagrams. Technical Report OSU-CISRC-3/04-TR12, Ohio State University, Mar. 2004.Google Scholar
- R. Sharp and A. Rountev. Interactive exploration of UML sequence diagrams. In IEEE Workshop on Visualizing Software for Understanding and Analysis, 2005. Google ScholarDigital Library
- S. Sinha and M. J. Harrold. Analysis and testing of programs with exception handling constructs. IEEE Transactions on Software Engineering, 26(9):849--871, Sept. 2000. Google ScholarDigital Library
- T. Systä, K. Koskimies, and H. Muller. Shimba---an environment for reverse engineering Java software systems. Software-Practice and Experience, 31(4):371--394, Apr. 2001. Google ScholarDigital Library
- P. Tonella and A. Potrich. Reverse engineering of the interaction diagrams from C++ code. In International Conference on Software Maintenance, pages 159--168, 2003. Google ScholarDigital Library
- O. Volgin. Control flow analysis for reverse engineering of sequence diagrams. Master's thesis, Ohio State University, June 2004.Google Scholar
Index Terms
- Static control-flow analysis for reverse engineering of UML sequence diagrams
Recommendations
Static control-flow analysis for reverse engineering of UML sequence diagrams
UML sequence diagrams are commonly used to represent the interactions among collaborating objects. Reverse-engineered sequence diagrams are constructed from existing code, and have a variety of uses in software development, maintenance, and testing. In ...
Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software
This paper proposes a methodology and instrumentation infrastructure toward the reverse engineering of UML (Unified Modeling Language) sequence diagrams from dynamic analysis. One motivation is, of course, to help people understand the behavior of ...
Object naming analysis for reverse-engineered sequence diagrams
ICSE '05: Proceedings of the 27th international conference on Software engineeringUML sequence diagrams are commonly used to represent object interactions in software systems. This work considers the problem of extracting UML sequence diagrams from existing code for the purposes of software understanding and testing. A static ...
Comments