Research at Nokia Research Center
January 2006-December 2008. Principal Scientist, Nokia Research Center Cambridge, Cambridge, MA.
- ComposeME: Intelligent composition of heterogeneous services - - investigating composability of software components, including web services and phone data.
- StartMobile- creating new software architecture for task-oriented natural language interaction with mobile devices.
August 1999-December 2005. Senior Research
Engineer-Assistant Research Manager-Program Manager,
Software Performance Architecture Group, Nokia Research Center,
Burlington, MA.
Research on software tracing, analysis and validation with a focus on
software performance analysis and resource profiling.
- Proposed an approach to evaluate Dynamic Voltage and Frequency Scaling on a system without CPU that supports DVFS.
- Adapted EVolve visualization framework for mobile device trace analysis.
- Proposed hybrid data collection method for combining tracing and sampling profiling.
- Analyzed mobile device task scheduling patterns and discovered a number of limitations in current scheduling approaches.
- Adapted and implemented performance assertions for mobile devices.
Ph.D. thesis research: Query-Based Debugging
Abstract.Object relationships in modern software systems are becoming increasingly numerous and complex. Program errors due to violations of object relationships are hard to find because of the cause-effect gap between the time when an error occurs and the time when the error becomes apparent to the programmer. Although debugging techniques such as conditional and data breakpoints help to find error causes in simple cases, they fail to effectively bridge the cause-effect gap in many situations. Programmers need new tools that allow them to explore objects in a large system more efficiently and to detect broken object relationships instantaneously.
Many existing debuggers present only a low-level, one-object-at-a-time view of objects and their relationships. We propose a new solution to overcome these problems: query-based debugging. The implementation of the query-based debugger described here offers programmers an effective query tool that allows efficient searching of large object spaces and quick verification of complex relationships. Even for programs that have large numbers of objects, the debugger achieves interactive response times for common queries by using a combination of fast searching primitives, query optimization, and incremental result delivery.
Dynamic query-based debuggers extend query-based debugging by providing instant error alerts. In other words, they continuously check inter-object relationships while the debugged program is running. To speed up dynamic query evaluation, our debugger (implemented in portable Java) uses a combination of program instrumentation, load-time code generation, query optimization, and incremental reevaluation. Experiments and a query cost model show that selection queries are efficient in most cases, while more costly join queries are practical when query evaluations are infrequent or query domains are small.
We thus demonstrate that query-based debugging is a useful method that can be efficiently implemented and effectively used in program debugging.
Project timeline:
- Summer 1997. Query-Based Debugger (QBD) implemented in Self 4.0 system. Results published in the Query-Based Debugging of Object-Oriented Programs," Raimondas Lencevicius, Urs Hölzle, and Ambuj K. Singh. In Proceedings of the 12th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’97), pp. 304-317, Atlanta, GA, October 1997, Published as SIGPLAN Notices 32(10), October 1997.
- March 1998. QBD ported to Java.
- May 1998. Implementation of Dynamic QBD (DQBD) available in Java.
- July 1998. Prototype implementation of Dynamic QBD for Java released for limited distribution inside UCSB.
- November 1998. Paper " Dynamic Query-Based Debugging," Raimondas Lencevicius, Urs Hölzle, and Ambuj K. Singh, published in the Proceedings of the 13th Annual European Conference on Object-Oriented Programming (ECOOP’99), Lisbon, Portugal, June 1999.
- June 4, 1999, Ph.D. thesis defense.
- July 1999, On-the-fly debugging implemented.
- February 2000, QBD ported to Windows NT.
- July 2000, monograph "Advanced Debugging Methods" describing QBD published by Kluwer Academic Publishers.
- August 2000, Paper "On-the-fly Query Based Debugging" and demo description for QBD published in the Proceedings of the Fourth International Workshop on Automated Debugging, AADEBUG 2000.
- January 2003, Paper "Dynamic Query-Based Debugging of Object-Oriented Programs" published in Volume 10, issue 1 of Journal of Automated Software Engineering
If you are interested in my research, please e-mail me at the address below.
Raimondas Lencevicius (Raimondas ata hotmail dota com)