Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1168054.1168072acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
Article

Experiences with the development of a reverse engineering tool for UML sequence diagrams: a case study in modern Java development

Published: 30 August 2006 Publication History
  • Get Citation Alerts
  • Abstract

    The development of a toot for reconstructing UML sequence diagrams from executing Java programs is a challenging task. We implemented such a tool designed to analyze any kind of Java program. Its implementation relies heavily on several advanced features of the Java platform. Although there are a number of research projects in this area usually little information on implementation-related questions or the rationale behind implementation decisions is provided. In this paper we present a thorough study of technological options for the relevant concerns in such a system. The various options are explained and the trade-offs involved are analyzed. We focus on practical aspects of data collection, data representation and meta-model, visualization, editing, and export concerns. Apart from analyzing the available options, we report our own experience in developing a prototype of such a tool in this study. It is of special interest to investigate systematically in what ways the Java platform facilitates (or hinders) the construction of the described reverse engineering tool.

    References

    [1]
    Adobe Systems. PDF Reference Fifth Edition, Adobe Portable Document Format Version 1.6. Adobe System Inc., partners.adobe.com, 2004.
    [2]
    Apache. Velocity. The Apache Jakarta Project, jakarta.apache.org/velocity/.
    [3]
    Apache. Batik SVG Toolkit. The Apache XML Project, xml.apache.org/batik/.
    [4]
    Binder, R. Testing Object Oriented Systems. Models, Patterns and Tools. Addison Wesley, 1999.
    [5]
    Briand, L. C., Labiche, Y., and Leduc, J. Towards the Reverse Engineering of UML Sequence Diagrams for Distributed Real-Time Java Software. Technical Report SCE-04-04, Carleton University, 2004.
    [6]
    Briand, L. C., Labiche, Y., and Miao, Y. Towards the Reverse Engineering of UML Sequence Diagrams. In Proceedings of the 10th Working Conference on Reverse Engineering (November 13--17, 2003). WCRE. IEEE Computer Society, Washington, DC, 2003, 57.
    [7]
    Burd, E., Overy, D., and Wheetman, A. Evaluating Using Animation to Improve Understanding of Sequence Diagrams. In Proceedings of the 10th international Workshop on Program Comprehension (June 27--29, 2002). IWPC. IEEE Computer Society, Washington, DC, 2002, 107.
    [8]
    ECMA International: Standard ECMA-262 ECMAScript Language Specification. ECMA International, www.ecmainternational.org, 1999.
    [9]
    Eclipse Project: The EclipseUML2 project. Eclipse Project Universal Tool Platform, www.eclipse.org/uml2/.
    [10]
    Eclipse project. Eclipse Modeling Framework (EMF). Eclipse Project Universal Tool Platform, www.eclipse.org/emf/.
    [11]
    Eclipse Project: Graphical Editing Framework (GEF). Eclipse Project Universal Tool Platform, www.eclipse.org/gef/.
    [12]
    Eclipse Project: AspectJ project. eclipse.org, www.eclipse.org/aspectj/.
    [13]
    Filman, R. E., Elrad, T., Clarke, S. and Aksit, M. Aspect-Oriented Software Development. Pearson Education, 2005.
    [14]
    Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., 1995.
    [15]
    Gradecki, J. and Lesiecki, N. Mastering AspectJ - Aspect Oriented Programming in Java. Wiley Publishing Inc, 2003.
    [16]
    Gargiulo, J. and Mancoridis, S. Gadget: A Tool for Extracting the Dynamic Structure of Java Programs. In Proceedings of the International Conference on Software Engineering and Knowledge Engineering SEKE (June 2001). 2001.
    [17]
    Gannod, G. and Murthy, S. Using Log Files to Reconstruct State-Based Software Architectures. In Proceedings of the Working Conference on Software Architecture Reconstruction Workshop. IEEE, 2002, 5--7.
    [18]
    GNU: The plotutils Package. Free Software Foundation Inc., www.gnu.org/software/plotutils/.
    [19]
    Greenfield, J., Short, K., Cook, S. and Kent, S. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley Publishing Inc, 2004.
    [20]
    Hamou-Lhadj, A. and Lethbridge, T. C. A survey of trace exploration tools and techniques. In Proceedings of the 2004 Conference of the Centre For Advanced Studies on Collaborative Research (Markham, Ontario, Canada, October 04 -- 07, 2004). H. Lutfiyya, J. Singer, and D. A. Stewart, Eds. IBM Centre for Advanced Studies Conference. IBM Press, 2004, 42--55.
    [21]
    Jacobsen, I., Griss, M. and Jonnson, P. Software Reuse: Architecture, Process and Organization for Business Success. Addison-Wesley Professional, 1997.
    [22]
    JGraph ltd. JGraph. www.jgraph.com/.
    [23]
    Kiselev, I. Aspect-Oriented Programming with AspectJ. Sams Publishing, 2003.
    [24]
    Fraikin, F. and Leonhardt, T. SeDiTeC "Testing Based on Sequence Diagrams. In Proceedings of the 17th IEEE international Conference on Automated Software Engineering (September 23--27, 2002). Automated Software Engineering. IEEE Computer Society, Washington, DC, 2002, 261.
    [25]
    Kollman, R., Selonen, P., Stroulia, E., Systä, T., and Zundorf, A. A Study on the Current State of the Art in Tool-Supported UML-Based Static Reverse Engineering. In Proceedings of the Ninth Working Conference on Reverse Engineering (Wcre'02) (October 29 - November 01, 2002). WCRE. IEEE Computer Society, Washington, DC, 2002, 22.
    [26]
    Krasner, G. E. and Pope, S. T. A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. SIGS Publications, 1988, pages 26--49.
    [27]
    Lowagie, B. iText. www.lowagie.com/iText/.
    [28]
    Mukerji, J. and Miller, J. MDA Guide Version 1.0.1. Object Management Group, www.omg.org, 2003.
    [29]
    Merdes, M., Häußler, J. and Zipf, A. GML2GML: Generic and Interoperable Round-Trip Geodata Editing - Concepts and Example. 8th AGILE Conference on GIScience, 2005.
    [30]
    OMG: Meta Object Facility (MOF) Specification Version 1.4. Object Management Group, www.omg.org, 2002.
    [31]
    OMG: XML Metadata Interchange (XMI) Specification version 2.0. Object Management Group, www.omg.org, 2003.
    [32]
    OMG: UML 2.0 Superstructure Specification. Object Management Group, www.omg.org, 2004.
    [33]
    Oechsle, R. and Schmitt, T. JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI). In Revised Lectures on Software Visualization, international Seminar (May 20--25, 2001). S. Diehl, Ed. Lecture Notes In Computer Science, vol. 2269. Springer-Verlag, London, 2002, 176--190.
    [34]
    Pauw, W. D., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J. M., and Yang, J. Visualizing the Execution of Java Programs. In Revised Lectures on Software Visualization, international Seminar (May 20--25, 2001). S. Diehl, Ed. Lecture Notes In Computer Science, vol. 2269. Springer-Verlag, London, 2002, 151--162.
    [35]
    Qoppa. jPDFWriter. Qoppa Software, www.qoppa.com/jpindex.html.
    [36]
    PRESTO. RED Project. Presto Research Group Ohio State University, nomad.cse.ohio-state.edu/red/.
    [37]
    Rountev, A., Volgin, O., and Reddoch, M. Static control-flow analysis for reverse engineering of UML sequence diagrams. In the 6th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (Lisbon, Portugal, September 05--06, 2005). M. Ernst and T. Jensen, Eds. PASTE'05. ACM Press, New York, NY, 2005, 96--102.
    [38]
    Systä, T., Koskimies, K., and Müller, H. 2001. Shimba---an environment for reverse engineering Java software systems. Softw. Pract. Exper. 31, 4 (Apr. 2001), 371--394.
    [39]
    Soley, R. and Group, O. S. Model Driven Architecture. Object Management Group, www.omg.org, 2000.
    [40]
    Spinellis, D. UML Graph. www.spinellis.gr/sw/umlgraph/.
    [41]
    Spinnelis, D.: On the Declarative Specification of Models. IEEE Software Volume 20 Issue 2. 2003, pages 94--96.
    [42]
    Sharp, R. and Rountev, A. Interactive Exploration of UML Sequence Diagrams. In Proceedings of the IEEE Workshop on Visualizing Software for Understanding and Analysis (VISSOFT'05). 2005, 8--13.
    [43]
    Suliman, D., Paech, B., Borner, L., Atkinson, C., Brenner, D., Merdes, M., Malaka, R. The MORABIT Approach to Runtime Component Testing. In Proceedings of the Second International Workshop on Testing and Quality Assurance for Component-Based Systems. (TQACBS06). 2006
    [44]
    Sun Microsystems. API Enhancements to the JavaBeans Component API in v1.4. Sun Microsystems Inc, java.sun.com/j2se/1.4.2/docs/guide/beans/changes14.html, 2002.
    [45]
    Sun Microsystems. Java Platform Debugger Architecture (JPDA). Sun Microsystems Inc., http://java.sun.com/products/jpda/index.jsp.
    [46]
    Stahl, T. and Vöter, M. Model-Driven Software Development. Wiley, 2006.
    [47]
    Sysoft. Animation of UML Sequence Diagrams" - Amarcos. Sysoft, http://www.sysoft-fr.com/en/Amarcos/ams-uml.asp.
    [48]
    Thoms, C. and Holzer, B. Codegenerierung mit dem openArchitectureWare Generator 3.0 - The Next Generation. javamagazin 07/2005, 2005.
    [49]
    W3C. Extensible Stylesheel Language (XSL) Version 1.0. W3C Recommendation, www.w3.org, 2001.
    [50]
    W3C. Scalable Vector Graphics (SVG) Version 1.1 Specification, W3C Recommendation, www.w3.org, 2003
    [51]
    W3C. Java Language Binding for the SVG Document Object Model. W3C Recommendation, www.w3.org. 2003.
    [52]
    W3C. ECMAScript Language Binding for SVG, W3C Recommendation, www.w3.org, 2003.
    [53]
    W3C. XSL Transformations (XSLT) Version 1.0 Specification. W3C Recommendation, www.w3.org, 1999.

    Cited By

    View all
    • (2020)Enhanced Visualization of Method Invocations by Extending Reverse-engineered Sequence Diagrams2020 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT51673.2020.00010(49-60)Online publication date: Sep-2020
    • (2018)Program comprehension through reverse‐engineered sequence diagramsJournal of Software: Evolution and Process10.1002/smr.196530:11Online publication date: 14-Nov-2018
    • (2009)Automated Reverse Engineering of UML Sequence Diagrams for Dynamic Web ApplicationsProceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops10.1109/ICSTW.2009.8(287-294)Online publication date: 1-Apr-2009
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    PPPJ '06: Proceedings of the 4th international symposium on Principles and practice of programming in Java
    August 2006
    230 pages
    ISBN:3939352055
    DOI:10.1145/1168054
    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: 30 August 2006

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java technology
    2. UML models
    3. reverse engineering
    4. sequence diagrams

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate 29 of 58 submissions, 50%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)Enhanced Visualization of Method Invocations by Extending Reverse-engineered Sequence Diagrams2020 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT51673.2020.00010(49-60)Online publication date: Sep-2020
    • (2018)Program comprehension through reverse‐engineered sequence diagramsJournal of Software: Evolution and Process10.1002/smr.196530:11Online publication date: 14-Nov-2018
    • (2009)Automated Reverse Engineering of UML Sequence Diagrams for Dynamic Web ApplicationsProceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops10.1109/ICSTW.2009.8(287-294)Online publication date: 1-Apr-2009
    • (2008)A Multi-level Methodology for Developing UML Sequence DiagramsProceedings of the 27th International Conference on Conceptual Modeling10.1007/978-3-540-87877-3_10(114-127)Online publication date: 20-Oct-2008

    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