skip to main content
10.1145/1108792.1108816acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
Article

Static control-flow analysis for reverse engineering of UML sequence diagrams

Published:05 September 2005Publication History

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.

References

  1. R. Binder. Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Larman. Applying UML and Patterns. Prentice Hall, 2nd edition, 2002.Google ScholarGoogle Scholar
  7. J. Miecznikowski and L. Hendren. Decompiling Java using staged encapsulation. In Working Conference on Reverse Engineering, pages 368--374, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. OMG. UML 2.0 Infrastructure Specification. Object Management Group, www.omg.org, Sept. 2003.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. R. Sharp and A. Rountev. Interactive exploration of UML sequence diagrams. In IEEE Workshop on Visualizing Software for Understanding and Analysis, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. O. Volgin. Control flow analysis for reverse engineering of sequence diagrams. Master's thesis, Ohio State University, June 2004.Google ScholarGoogle Scholar

Index Terms

  1. Static control-flow analysis for reverse engineering of UML sequence diagrams

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in
                  • Published in

                    cover image ACM Conferences
                    PASTE '05: Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
                    September 2005
                    118 pages
                    ISBN:1595932399
                    DOI:10.1145/1108792
                    • cover image ACM SIGSOFT Software Engineering Notes
                      ACM SIGSOFT Software Engineering Notes  Volume 31, Issue 1
                      January 2006
                      203 pages
                      ISSN:0163-5948
                      DOI:10.1145/1108768
                      Issue’s Table of Contents

                    Copyright © 2005 ACM

                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 5 September 2005

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • Article

                    Acceptance Rates

                    Overall Acceptance Rate57of159submissions,36%

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader