Ewan Tempero: Project Areas

My research area is measuring design quality, which is in the general area of Software Metrics. The main research question is, how can we tell when the design of a piece of software is "good" or "bad"? Implicit in this question is the question "What does it mean for software to be `good'?"

A considerable amount of research has gone into "measuring the goodness of software", where "good" means "has few or no defects (bugs)". However, it is well known that, over the lifetime of a software application, most of the cost of the software is in changing software to cope with new requirements, or a changing environment, not fixing bugs. This means it is possible to have software with new or no bugs, and yet it still isn't "good" because it costs too much to keep going.

Maintainability is the attribute of how much software costs after it has been deployed. It's generally believed that the internal structure of code, for example what classes are chosen and how they relate to each other, impacts maintainability. There are many hypotheses as to what this relationship is, for example, "high coupling between classes leads to high maintenance costs" or "proper use of design patterns leads to low maintenance costs". However there is only weak evidence to support them.

What I am interested in doing is to gather evidence to support (or refute) the various hypothesis and developing new ways to measure design quality (and then gathering evidence to show they work). There are a number of honours projects that would fit. Including:

I'm also happy to supervise any projects related to Software Engineering. In particular, I have had a number of very successful projects creating plug-ins for Eclipse doing different interesting things.

You can get a good idea of the kinds of projects I like by looking at projects I have supervised.