Instrumenting Bytecode for the Production of Usage Data
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.
KeywordsByteCode instrumentation Usability testing tools Usage monitoring Software visualisation
Unable to display preview. Download preview PDF.
- 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
- 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 http://citeseer.nj.nec.com/chander01mobile.html.Google Scholar
- 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
- 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
- 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 http://citeseer.nj.nec.com/jerding97visualizing.html.Google Scholar
- 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
- 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
- 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 http://citeseer.nj.nec.com/depauw93visualizing.htmlGoogle Scholar
- Renaud K, Evans H. JavaCloak: Engineering Java™ Proxy Objects using Reflection. NET.OBJECTDAYS 2000, Messekongresszentrum Erfurt, Germany, accessible at http://www.netobjectdays.org/pdf/00/papers/jit/evans.pdf.Google Scholar
- BCEL: The Java Bytecode Engineering Library, accessible at http://bcel.sourceforge.netGoogle Scholar
- JRat: The Java Runtime Analysis Toolkit, accessible at http://jrat.sourceforge.netGoogle Scholar
-  JFluid.: dynamicbytecode instrumentation, accessible at http://research.sun.com/projects/jfluid/Google Scholar