Professor and Vice-President Research & Innovation
B.Sc. (Honours), University of Alberta (1987); Software Designer, MPR Teltech Ltd. (1987-1992); M.Sc., University of Washington (1994); Ph.D., University of Washington (1996); Assistant Professor, University of British Columbia (1996-2001); Associate Professor, University of British Columbia (2001-2006), Professor, University of British Columbia (2006-current).
Over time, software systems typically become hard to modify because the structures imposed in the systems to manage complexity begin to degrade. I am interested in developing techniques and tools to overcome this problem. The desired end result is that software engineers will be able to more effectively evolve large--multi-million lines of code--software systems.
One aspect of my research focuses on finding ways of helping software developers cope with existing systems. Within my research group, we are developing tools to help a software developer understand the existing structure (or lack of structure) in their systems. We are also investigating techniques to help a software developer impose new structure on existing systems. We place particular emphasis on tools that encompass lightweight and approximate approaches because these approaches show promise to be able to help a developer working within tight time and cost constraints.
Another aspect of my research focuses on trying to avoid the structural degradation problem through better design techniques. In this area, my interests lie in developing design approaches to enable the more effective reuse of existing components, and in investigating software architectures which support flexible system configuration.
My research combines the development of novel techniques and tools with the evaluation of those techniques and tools in industrial settings.