ABSTRACT
To extract abstract views of the behavior of an object-oriented system for reverse engineering, a body of research exists that analyzes a system's runtime execution. Those approaches primarily analyze the control flow by tracing method execution events. However, they do not capture information flows. We address this problem by proposing a novel dynamic analysis technique named Object Flow Analysis, which complements method execution tracing with an accurate analysis of the runtime flow of objects. To exemplify the usefulness of our analysis we present a visual approach that allows a system engineer to study classes and components in terms of how they exchange objects at runtime. We illustrate and validate our approach on two case studies.
- De Pauw, W., Lorenz, D., Vlissides, J., Wegman, M.: Execution patterns in objectoriented visualization. In: Proceedings Conference on Object-Oriented Technologies and Systems (COOTS '98), USENIX (1998) 219--234 Google ScholarDigital Library
- Lange, D., Nakamura, Y.: Interactive visualization of design patterns can help in framework understanding. In: Proceedings ACM International Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1995), New York NY, ACM Press (1995) 342--357 Google ScholarDigital Library
- Richner, T., Ducasse, S.: Recovering high-level views of object-oriented applications from static and dynamic information. In Yang, H., White, L., eds.: Proceedings of 15th IEEE International Conference on Software Maintenance (ICSM'99), Los Alamitos CA, IEEE Computer Society Press (September 1999) 13--22 Google ScholarDigital Library
- Antoniol, G., Guéhéneuc, Y. G.: Feature identification: a novel approach and a case study. In: Proceedings IEEE International Conference on Software Maintenance (ICSM 2005), Los Alamitos CA, IEEE Computer Society Press (September 2005) 357--366 Google ScholarDigital Library
- Kleyn, M. F., Gingrich, P. C.: GraphTrace---understanding object-oriented systems using concurrently animated views. In: Proceedings OOPSLA '88 (International Conference on Object-Oriented Programming Systems, Languages, and Applications. Volume 23., ACM Press (November 1988) 191--205 Google ScholarDigital Library
- Greevy, O., Ducasse, S.: Correlating features and code using a compact two-sided trace analysis approach. In: Proceedings of 9th European Conference on Software Maintenance and Reengineering (CSMR'05), Los Alamitos CA, IEEE Computer Society (2005) 314--323 Google ScholarDigital Library
- El-Ramly, M., Stroulia, E., Sorenson, P.: Recovering software requirements from system-user interaction traces. In: Proceedings ACM International Conference on Software Engineering and Knowledge Engineering, New York NY, ACM Press (2002) 447--454 Google ScholarDigital Library
- Zaidman, A., Calders, T., Demeyer, S., Paredaens, J.: Applying webmining techniques to execution traces to support the program comprehension process. In: Proceedings IEEE European Conference on Software Maintenance and Reengineering (CSMR 2005), Los Alamitos CA, IEEE Computer Society Press (2005) 134--142 Google ScholarDigital Library
- De Pauw, W., Kimelman, D., Vlissides, J.: Modeling object-oriented program execution. In Tokoro, M., Pareschi, R., eds.: Proceedings ECOOP '94. LNCS 821, Bologna, Italy, Springer-Verlag (July 1994) 163--182 Google ScholarDigital Library
- Walker, R. J., Murphy, G. C., Freeman-Benson, B., Wright, D., Swanson, D., Isaak, J.: Visualizing dynamic software system information through high-level models. In: Proceedings OOPSLA '98, ACM (October 1998) 271--283 Google ScholarDigital Library
- Ducasse, S., Lanza, M., Bertuli, R.: High-level polymetric views of condensed run-time information. In: Proceedings of 8th European Conference on Software Maintenance and Reengineering (CSMR'04), Los Alamitos CA, IEEE Computer Society Press (2004) 309--318 Google ScholarDigital Library
- Hill, T., Noble, J., Potter, J.: Scalable visualisations with ownership trees. In: Proceedings of TOOLS '00. (June 2000)Google Scholar
- De Pauw, W., Sevitsky, G.: Visualizing reference patterns for solving memory leaks in Java. In Guerraoui, R., ed.: Proceedings ECOOP '99. Volume 1628 of LNCS., Lisbon, Portugal, Springer-Verlag (June 1999) 116--134 Google ScholarDigital Library
- Hind, M.: Pointer analysis: Haven't we solved this problem yet? In: 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'01), Snowbird, UT (2001) Google ScholarDigital Library
- Nierstrasz, O., Ducasse, S., Gîrba, T.: The story of Moose: an agile reengineering environment. In: Proceedings of the European Software Engineering Conference (ESEC/FSE 2005), New York NY, ACM Press (2005) 1--10 Invited paper. Google ScholarDigital Library
- Meyer, M., Gîrba, T., Lungu, M.: Mondrian: An agile visualization framework. In: ACM Symposium on Software Visualization (SoftVis 2006), New York, NY, USA, ACM Press (2006) 135--144 Google ScholarDigital Library
- Gschwind, T., Oberleitner, J.: Improving dynamic data analysis with aspectoriented programming. In: Proceedings of CSMR 2003, IEEE Press (2003) Google ScholarDigital Library
- Hogg, J., Lea, D., Wills, A., deChampeaux, D., Holt, R.: The Geneva convention on the treatment of object aliasing. SIGPLAN OOPS Mess. 3(2) (1992) 11--16 Google ScholarDigital Library
- Noble, J., Potter, J., Vitek, J.: Flexible alias protection. In Jul, E., ed.: Proceedings ECOOP '98. Volume 1445 of LNCS., Brussels, Belgium, Springer-Verlag (July 1998) Google ScholarDigital Library
- Lienhard, A., Greevy, O., Nierstrasz, O.: Tracking objects to detect feature dependencies. In: Proceedings International Conference on Program Comprehension (ICPC 2007), Washington, DC, USA, IEEE Computer Society (June 2007) 59--68 Google ScholarDigital Library
- Ball, T.: The concept of dynamic analysis. In: Proceedings European Software Engineering Conference and ACM SIGSOFT International Symposium on the Foundations of Software Engineering (ESEC/FSC 1999). Number 1687 in LNCS, Heidelberg, Springer Verlag (sep 1999) 216--234 Google ScholarDigital Library
- Systä, Koskimies, Müller: Shimba --- an environment for reverse engineering Java software systems. Software --- Practice and Experience 1(1) (January 2001) Google ScholarDigital Library
- Salah, M., Denton, T., Mancoridis, S., Shokoufandeh, A., Vokolos, F. I.: Scenariographer: A tool for reverse engineering class usage scenarios from method invocation sequences. In: Proceedings of ICSM 2005 (21th International Conference on Software Maintenance), IEEE Computer Society Press (September 2005) Google ScholarDigital Library
- Chen, T. Y., Low, C. K.: Dynamic data flow analysis for C++. In: APSEC '95: Proceedings of the Second Asia Pacific Software Engineering Conference, Washington, DC, USA, IEEE Computer Society (1995) 22 Google ScholarDigital Library
- Boujarwah, A. S., Saleh, K., Al-Dallal, J.: Dynamic data flow analysis for Java programs. Information & Software Technology 42(11) (2000) 765--775Google ScholarCross Ref
Recommendations
Taking an object-centric view on dynamic information with object flow analysis
A large body of research analyzes the runtime execution of a system to extract abstract behavioral views. Those approaches primarily analyze control flow by tracing method execution events or they analyze object graphs of heap memory snapshots. However, ...
Efficient Instrumentation of GPGPU Applications Using Information Flow Analysis and Symbolic Execution
GPGPU-7: Proceedings of Workshop on General Purpose Processing Using GPUsDynamic instrumentation of GPGPU binaries makes possible real-time introspection methods for performance debugging, correctness checks, workload characterization, and runtime optimization. Such instrumentation involves inserting code at the instruction ...
Optimizing array bound checks using flow analysis
Bound checks are introduced in programs for the run-time detection of array bound violations. Compile-time optimizations are employed to reduce the execution-time overhead due to bound checks. The optimizations reduce the program execution time through ...
Comments