Automated Refactoring - Metrics are Not Enough
14/09/2015 - 19:30
14/09/2015 - 21:00
Speaker: Christopher Simons
Please register for this event here
Automated techniques such as Evolutionary Computing have been applied extensively to refactor software source code, often based on metrics that describe the object-oriented structure of an application. Recent work shows that in some cases applying popular automated tools to open-source software does not necessarily lead to an improved version of the software as assessed by some subjective criteria. Through a survey of professionals, we investigate the relationship between popular refactoring metrics and the subjective opinions of software engineers. We find little or no correlation between the two. Through qualitative analysis, we find that a simple static view of software is insufficient to assess software quality, and that software quality is dependent on factors that are not amenable to measurement via metrics. We recommend that future automated refactoring research should incorporate information about the dynamic behaviour of software, and conclude that a human-in-the-loop approach may be the only way to refactor software in a manner helpful to a software engineer.
Since cutting code in the 1980s, Chris became a software architect and agile development and methodology consultant for many years before taking up his current post at the University of the West of England (UWE) in 2002. Lecturing in computer science and software engineering, Chris obtained his PhD in 2011, and now researches into Evolutionary Computing with a particular interest in 'human-in-the-loop' search within early lifecycle software design.
Chris has previously presented to the BCS Software Practice Advancement Special Interest Group and co-authored a book on Service and Component-Based Development. He is a member of the C and C++ User Group (ACCU), a Member of the BCS, and a Certified IT Practitioner. Chris has also presented extensively to research conferences on interactive evolutionary computing.