Taking an Object-Centric View on Dynamic Information with Object Flow Analysis Adrian Lienhard a St´ephane Ducasse b Tudor Gˆırba a a Software Composition Group IAM — Universit¨ at Bern, Switzerland b INRIA-Lille Nord Europe – LIFL (CNRS UMR 8022) – University of Lille Abstract A large body of research analyzes the runtime execution of a system to extract ab- stract behavioral views. Those approaches primarily analyze control flow by tracing method execution events or they analyze object graphs of heap memory snapshots. However, they do not capture how objects are passed through the system at run- time. We refer to the exchange of objects as the object flow, and we claim that it is necessary to analyze object flows if we are to understand the runtime of an object- oriented application. We propose and detail Object Flow Analysis, a novel dynamic analysis technique that takes this new information into account. To evaluate its usefulness, we present a visual approach that allows a developer to study classes and components in terms of how they exchange objects at runtime. We illustrate our approach on three case studies. Key words: Dynamic Analysis, Object Flow Analysis 1 Introduction A large body of research exists for supporting the reverse engineering process of legacy systems. However, especially in the case of dynamic object-oriented ⋆ This work is based on an earlier work: “Object Flow Analysis – Tak- ing an Object-Centric View on Dynamic Analysis”, in Proceedings of the 2007 International Conference on Dynamic Languages (ESUG/ICDL 2007) http://doi.acm.org/10.1145/1352678.1352686 c ACM, 2007. Email addresses: lienhard@iam.unibe.ch (Adrian Lienhard), stephane.ducasse@inria.fr (St´ephane Ducasse), girba@iam.unibe.ch (Tudor Gˆırba). Computer Languages, Systems & Structures vol. 35, Issues 1 (2009), pp. 63–79