Software code much more than a numbers game
Today's world rests on a foundation of code, code which governs the infrastructure, systems and tools relied on by almost every organisation and person in day-to-day work and life. This is an immense, and intensifying, responsibility for software engineers.
Stepping in to ease this burden is Dr Patanamon Thongtanunam, a software engineering researcher who specialises in code review at the University of Melbourne’s Faculty of Engineering and Information Technology.
This is the process of ensuring software is accurate, robust and performs efficiently.
However, code review is a slow, manual process that consumes about 25 per cent of software development time. To speed this up and to continually improve quality assurance, Dr Thongtanunam is using data mining and machine learning techniques to build tools to automate the process.
This involves analysing vast amounts of data, such as source code, to identify previous defects, shortcomings, biases and other inefficiencies. From this she develops recommendation models that become more and more ‘intuitive’ as more and more data is added.
“They become an aid for people writing new software as well as for checking existing coding,” Dr Thongtanunam explains. “Writing good software is not an easy task. It is very complicated, which is why our models can be such a big help for software engineers.
“They also facilitate the necessary collaborative approach to code reviewing and mitigate against bias in what is, at its core, still a very human process. Conventional code review is immersed in technical, personal and social influences.”
The importance of addressing these potential weaknesses has spurred Dr Thongtanunam’s interest in developing more objective data-driven software engineering and code review.
She was a postdoctoral research fellow at Queen’s University, Canada, and during her PhD she researched the collaboration-intensive code review process and revealed just how much the human dynamics of this can affect the quality of software products.
Her continuing research on this has regularly been published in leading software engineering journals and at conferences, and has been recognised by major software organisations, including Microsoft and Google.
Code developers are highly specialised, and our analysis of different code helps us to identify and recommend particular developers to review particular code
Much of the data Dr Thongtanunam mines to develop her recommendation models comes from the vast global repositories of open-source software.
She also has access to software programs that organisations have developed and want to upgrade. She helps them to find the right code developer for their specific requirements.
“Code developers are highly specialised, and our analysis of different code helps us to identify and recommend particular developers to review particular code,” Dr Thongtanunam explains.
With the support of Australian Research Council Discovery Early Career Researcher Award, Dr Thongtanunam aims to advance her techniques and approaches to also pinpoint risky areas of the code that need attention. Her aim is to enable recommendation models to automatically generate insightful feedback about how the code can be improved.
This will reduce the human effort in the code review process, as well as address human limitations.
“Software engineering is fundamental to any technology development, and my work is helping software engineers avoid past, and future, defects that weaken a software’s efficacy.
“So, on the surface our research might look very technical, but at the end of the day it is helping people and communities who are today completely reliant on not just software, but good software.”