Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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 2005 Publication History
  • Get Citation Alerts
  • 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.
    [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.
    [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.
    [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.
    [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.
    [6]
    C. Larman. Applying UML and Patterns. Prentice Hall, 2nd edition, 2002.
    [7]
    J. Miecznikowski and L. Hendren. Decompiling Java using staged encapsulation. In Working Conference on Reverse Engineering, pages 368--374, 2001.
    [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.
    [9]
    OMG. UML 2.0 Infrastructure Specification. Object Management Group, www.omg.org, Sept. 2003.
    [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.
    [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.
    [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.
    [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.
    [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.
    [15]
    R. Sharp and A. Rountev. Interactive exploration of UML sequence diagrams. In IEEE Workshop on Visualizing Software for Understanding and Analysis, 2005.
    [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.
    [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.
    [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.
    [19]
    O. Volgin. Control flow analysis for reverse engineering of sequence diagrams. Master's thesis, Ohio State University, June 2004.

    Cited By

    View all
    • (2017)StaticGenProceedings of the 20th International Conference on Fundamental Approaches to Software Engineering - Volume 1020210.1007/978-3-662-54494-5_10(173-190)Online publication date: 22-Apr-2017
    • (2017)Automated Change Propagation from Source Code to Sequence DiagramsSOFSEM 2018: Theory and Practice of Computer Science10.1007/978-3-319-73117-9_12(168-179)Online publication date: 22-Dec-2017
    • (2016)Reverse engineering of source code to sequence diagram using abstract syntax tree2016 International Conference on Data and Software Engineering (ICoDSE)10.1109/ICODSE.2016.7936137(1-6)Online publication date: Oct-2016
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 05 September 2005

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    PASTE05

    Acceptance Rates

    Overall Acceptance Rate 57 of 159 submissions, 36%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)11
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 27 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)StaticGenProceedings of the 20th International Conference on Fundamental Approaches to Software Engineering - Volume 1020210.1007/978-3-662-54494-5_10(173-190)Online publication date: 22-Apr-2017
    • (2017)Automated Change Propagation from Source Code to Sequence DiagramsSOFSEM 2018: Theory and Practice of Computer Science10.1007/978-3-319-73117-9_12(168-179)Online publication date: 22-Dec-2017
    • (2016)Reverse engineering of source code to sequence diagram using abstract syntax tree2016 International Conference on Data and Software Engineering (ICoDSE)10.1109/ICODSE.2016.7936137(1-6)Online publication date: Oct-2016
    • (2012)Maintaining invariant traceability through bidirectional transformationsProceedings of the 34th International Conference on Software Engineering10.5555/2337223.2337287(540-550)Online publication date: 2-Jun-2012
    • (2012)Maintaining invariant traceability through bidirectional transformations2012 34th International Conference on Software Engineering (ICSE)10.1109/ICSE.2012.6227162(540-550)Online publication date: Jun-2012
    • (2011)I2SDProceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation10.1109/SCAM.2011.5(155-164)Online publication date: 25-Sep-2011
    • (2010)Behavioral profiles—a way to model and validate program behaviorSoftware—Practice & Experience10.5555/1840756.184076240:8(701-733)Online publication date: 1-Jul-2010
    • (2010)Extracting Sequence Diagrams from Execution Traces Using Interactive VisualizationProceedings of the 2010 17th Working Conference on Reverse Engineering10.1109/WCRE.2010.18(87-96)Online publication date: 13-Oct-2010
    • (2010)Verifying Implementation of UML Sequence Diagrams Using Java PathFinderProceedings of the 2010 Second International Conference on Knowledge and Systems Engineering10.1109/KSE.2010.29(194-200)Online publication date: 7-Oct-2010
    • (2010)Reverse Engineering Abstract Components for Model-Based Development and Verification of Embedded SoftwareProceedings of the 2010 IEEE 12th International Symposium on High-Assurance Systems Engineering10.1109/HASE.2010.20(122-131)Online publication date: 3-Nov-2010
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media