My Research

With my friends, on the feet of a giant.

These are my latest postings regarding my research.

External references

These are unbiased sources of information that will tell you a bit more about who I am:

The Team

I don’t work alone. My accomplishments are really the accomplishments of my team. I have worked with a number of researchers around the world, but one group of people who are particularly important are my graduate students –and postdoc. They are:

Previous members:

  • Abram Hindle, I supervised his undergraduate and MSc and he is now a prof in CS at Alberta.

  • Peter Rigby, I co-supervised his PhD, he is now a prof at Concordia.

  • Julius Davis, I did a lot of work with him during his undergraduate, he is now a PhD student at UBC.

  • Hanyu Zhang, MSc.

  • Chris Gat, MSc.

  • Chris Chen, MSc.

  • Yan Chen, MSc.

  • Michael Lavender, MSc, co-supervised with Jens Janke-Weber.

  • Iryna Bylikh, MSc, co-supervised with Jens Janke-Weber.

  • Elizabeth Wolfe, MSc.

  • Andrew McNair, MSc.


You can find a complete list of my publications (including PDFs) here.


My main area of research is software engineering but once in a while I do work in computational photography. These are three main sub-areas where I have been doing research lately:

Intellectual property and software engineering

The long term goal is to incorporate software licensing concerns of reusing licensed components into the software development processes.

Most large software applications are built by combining several components, such as reused code snippets, libraries, or other applications. There is a large body of research dedicated to the technical aspects of supporting and improving component-based software development processes. However, little attention has been directed towards the technical concerns arising from the reuse of components with different licenses.

Our recent work (detailed below) has demonstrated that reusing components creates new concerns for software developers that have yet to be addressed. On one hand, a license of a component might impose restrictions on how it can be used (e.g. unless adequately interconnected to the rest of the system, using a component licensed under the GNU General Public License might severely restrict the ability to commercialize a product built upon it; on the other hand, using a component might create risks to the organization that need to be assessed (e.g. such as when the developer downloads a component from the Internet and incorporates into a product without the approval of its organization). These issues are directly affecting the design and development of software, and are a growing concern to software developers and their organizations.

Empirical Studies in Software Engineering

The long term goal is to understand how software development is performed, particularly in the context of free and open source software.

My research group and I have developed a set of methods and tools to mine historical software repositories. Here are some examples:

  • We have proposed methods to extract historical information (version control, defect tracking systems, ChangeLogs, mailings lists) in order to understand how software evolves and to reverse engineer the methodologies used in their development.

  • We have performed numerous empirical studies to analyze how teams of globally distributed developers collaborate in the creation of software.

  • We have developed metrics and visualizations for historical software development information.

Impact of Distributed Version Control in software development.

The long term goal is to understand how distributed version control affects the software develpment process of a team.

Distributed version control systems are slowly replacing centralized ones. We need to understand how these is happening. In our recent research we have:

  • Developed methods and techniques to mine distribued version control data.

  • Described the main challenges of sturying software development that uses distributed version control.

Computational Photography

The long term goal is to create new methods and tool to assist the modern photographer.

This is what I call my hobby research. I am interested in processes, tools and methods that improve photography. And these days this implies using the computer. I have done work primarily in the area of Panorama Making.

Service to the Community

Editorial work

Recently I have been involved in the organization of:

I review for a lot of different journals and conferences

Here are some of them…

  • IEEE Transactions on Software Engineering

  • IEEE Software

  • Journal of Empirical Software Engineering