Instrumenting Bytecode for the Production of Usage Data

  • Iain McLeod
  • Huw Evans
  • Philip Gray
  • Rebecca Mancy


We have taken the process of software instrumentation, normally used in the creation of profiling and debugging tools, and applied it to the production of usage data for user-computer interaction studies. This paper describes the design and evaluation of a prototype tool called iGuess, that enables an investigator to discover which methods are used within a Java application when particular tasks are carried out, and instrument these to produce usage data. A key feature of the system is that an application can be instrumented without any need for access to the source code. In this paper we describe the system’s functionality, briefly explain how it works and present the results of an early informal evaluation.


ByteCode instrumentation Usability testing tools Usage monitoring Software visualisation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Al-Qaimari, G. and McRostie D., KALDI: A Computer-Aided Usability Engineering Tool for Supporting Testing and Analysis of User Performance, in A. Blanford, J. Vanderdonckt, Ph. Gray (eds.), Proceedings of the 15th Annual Conference of the British HCI Group IHM-HCI’2001 (Lille, 10–14 September 2001), Springer-Verlag, London, pp. 153–169.Google Scholar
  2. [2]
    Chander, A., Mitchell J.C., and Shin, I., Mobile Code Security by Java Bytecode Instrumentation, in Proceedings of the 2001 DARPA Information Survivability Conference & Exposition DISCEX-II’2002 (Anaheim, 12–14 June 2001), IEEE Computer Society Press, Los Alamitos, 2002, pp. 1027–1040, accessible at Scholar
  3. [3]
    Cohen, G., Chase, J., and Kaminsky, D. Automatic Program Transformation With JOIE, In Proceedings USENIX Annual Technical Conference (New Orleans, 15–19 June 1998) USENIX Association, Berkeley, 1998, pp. 167–178.Google Scholar
  4. [4]
    Evans, H., Atkinson, M., Brown, M., Cargill, J., Crease, M., Draper, S., Gray, P.D., and Thomas, R.C., The Pervasiveness of Evolution in GRUMPS Software, Software: Practice and Experience, Vol. 33, No. 2, February 2003.Google Scholar
  5. [5]
    Hilbert, D.M. and Redmiles D.F., Extracting Usability Information from User Interface Events, ACM Computing Surveys, Vol. 32, No. 4, December 2000, pp. 384–421.CrossRefGoogle Scholar
  6. [6]
    Jerding, D.F., Stasko, J.T., and Ball, T., Visualizing Interactions in Program Executions: International Conference on Software Engineering ICSE’97 (17–23 May 1997 Boston), ACM Press, New York, 1997, accessible at Scholar
  7. [7]
    Kölling, M., Quig, B., Patterson, A., and Rosenberg, J., The BlueJ System and its Pedagogy, The Journal of Computer Science Education, Special Issue on Learning and Teaching Object Technology, Vol. 13, No 4, pp. 249–268, December 2003.Google Scholar
  8. [8]
    Lee, H.B. and Zorn, B.G., BIT: A Tool for Instrumenting Java Bytecodes, In Proceedings USENIX Symposium on Internet Technologies and Systems, 1998.Google Scholar
  9. [9]
    De Pauw, W., Helm, R., Kimelman, D., and Vlissides, J., Visualizing the Behavior of Object-Oriented Systems, in Proceedings of the Conference on Object-oriented Programming Systems, Languages and Applications OOPSLA ’93 (Washington, 26 September–1 October), 1993, accessible at Scholar
  10. [10]
    Renaud K, Evans H. JavaCloak: Engineering Java™ Proxy Objects using Reflection. NET.OBJECTDAYS 2000, Messekongresszentrum Erfurt, Germany, accessible at Scholar
  11. [11]
    BCEL: The Java Bytecode Engineering Library, accessible at http://bcel.sourceforge.netGoogle Scholar
  12. [12]
    JRat: The Java Runtime Analysis Toolkit, accessible at http://jrat.sourceforge.netGoogle Scholar
  13. [13] JFluid.: dynamicbytecode instrumentation, accessible at Scholar

Copyright information

© Kluwer Academic Publishers 2005

Authors and Affiliations

  • Iain McLeod
    • 1
  • Huw Evans
    • 1
  • Philip Gray
    • 1
  • Rebecca Mancy
    • 1
  1. 1.Computing Science DepartmentUniversity of GlasgowGlasgowScotland

Personalised recommendations