My areas of expertise are software evolution and maintenance [IWPSE 2005book chapter 2008], software architecture [WOSS 2004, JSS 2010], and in the past knowledge representation. A common thread has been the use of graph-based representations. Work done so far can be roughly divided into three periods.

My undergraduate capstone project was a Prolog implementation of conceptual graphs (a knowledge representation formalism inspired by semantic networks) and their application to natural language understanding [AWOCS 1992], followed by an MSc thesis on improvements to the theory of conceptual graphs [ICCS 1995 and ICCS 1997].

During the PhD [thesis 1999] and subsequent years I collaborated on CommUnity, an expressive and generic software architecture formalism based on category theory. In particular, I worked on architectural reconfiguration [SCP 2002], higher-order connectors [TOSEM 2003], mobile components and transient connections [FSE 2002], architectural views [WICSA 2007] and a partial implementation of CommUnity [SCP 2007]. Moreover, I was seconded to a SME for two years, helping on a flexible object-oriented coordination mechanism to adapt software to changing business rules [ADS 2004].

For the past years, in part due to my involvement with the MSc module Managing the Software Enterprise [IEEE Software 2006], I have become more interested in the wider socio-technical context of software development. Current interests centre on empirically exploring, by mining open source software repositories, the links between:

  • structure and quality: do badly structured names affect quality? [CSMR 2010, ICSM 2011]
  • structure and developers: how to support visual analytics of relations between software structure and team structure? [ICSE 2009]
  • structure and evolution: does code cloning (i.e. copy-paste code) increase maintenance effort? [ICSM 2008]
  • structure, evolution and quality: are good design principles relevant for evolving successful architectures? [ESEJ 2011]
  • evolution and complexity: over time, is size a major factor of measured complexity? [ECCS 2012]