ScienceDirect® Home Skip Main Navigation Links
You have guest access to ScienceDirect. Find out more.
 
Home
Browse
My Settings
Alerts
Help
 Quick Search
 Search tips (Opens new window)
    Clear all fields    
Journal of Systems and Software
Volume 81, Issue 4, April 2008, Pages 481-501
Selected papers from the 10th Conference on Software Maintenance and Reengineering (CSMR 2006)
 
Font Size: Decrease Font Size  Increase Font Size
 Abstract - selected
Article
Purchase PDF (610 K)

  E-mail Article   
  Add to my Quick Links   
Bookmark and share in 2collab (opens in new window)
Request permission to reuse this article
  Cited By in Scopus (0)
 
 
 
Related Articles in ScienceDirect
View More Related Articles
 
View Record in Scopus
 
doi:10.1016/j.jss.2007.06.005    How to Cite or Link Using DOI (Opens New Window)
Copyright © 2007 Elsevier Inc. All rights reserved.

Dynamic object process graphs

Jochen Quantea, E-mail The Corresponding Author and Rainer KoschkeCorresponding Author Contact Information, a, E-mail The Corresponding Author, E-mail The Corresponding Author

aSoftware Engineering Group, Computer Science, Faculty 3, University of Bremen, 28359 Bremen, Germany

Available online 26 June 2007.

Purchase the full-text article



References and further reading may be available for this article. To view references and further reading you must purchase this article.

Abstract

A trace is a record of the execution of a computer program, showing the sequence of operations executed. A trace may be obtained through static or dynamic analysis. An object trace contains only those operations that relate to a particular object.

Traces can be very large for longer system executions. Moreover, they lack structure because they do not show the control dependencies and completely unfold loops. Object process graphs are a finite concise description of dynamic object traces. They offer the advantage of representing control dependencies and loops explicitly.

This article describes a new technique to extract object process graphs through dynamic analysis and discusses several applications, in particular program understanding and protocol recovery. A case study is described that illustrates and demonstrates use and feasibility of the technique. Finally, statically and dynamically derived object process graphs are compared.

Keywords: Tracing; Protocol recovery; Dynamic analysis; Program understanding; Reverse engineering

Article Outline

1. Introduction
1.1. Our previous work
1.2. Contributions
1.3. Overview
2. Traces for individual objects
2.1. Object process graphs
2.2. Dynamic object trace extraction
3. Applications
4. Dynamic object process graph extraction
4.1. Instrumentation
4.2. Normalizing transformation
4.3. Instrumenting transformation
4.4. Read/write instrumentation
4.5. Handling of arrays and records
4.6. Trace to dynamic object process graph
4.6.1. Filtering
4.6.2. Raw graph construction
4.6.3. Graph transformation
4.7. Extensions
4.7.1. Multithreading
5. Case study: Use and feasibility
5.1. Feasibility: Symbol table of a large compiler
5.2. Program understanding: sockets in IRC clients
5.2.1. ircII
5.2.2. Rhapsody
5.3. Handling large graphs: SQLite database
5.3.1. SQLite
5.3.2. Simplified object process graphs
5.4. Protocol validation
6. Case study: Comparison to static tracing
6.1. Underlying points-to analysis
6.2. Subject systems
6.3. Results
7. Related Work
8. Conclusion
Acknowledgements
References
Vitae























Journal of Systems and Software
Volume 81, Issue 4, April 2008, Pages 481-501
Selected papers from the 10th Conference on Software Maintenance and Reengineering (CSMR 2006)
 
Home
Browse
My Settings
Alerts
Help
Elsevier.com (Opens new window)
About ScienceDirect  |  Contact Us  |  Information for Advertisers  |  Terms & Conditions  |  Privacy Policy
Copyright © 2008 Elsevier B.V. All rights reserved. ScienceDirect® is a registered trademark of Elsevier B.V.