Avijit Bhattacharjee, a researcher at University of Saskatchewan (USask) College of Arts and Science graduate, has set out to find a solution to software bugs with a specific tool which helps developers to read, understand and document computer code. With the help of this, software can be produced quickly, efficiently and increasingly without any errors. Bhattacharjee commented:
“Unfortunately, software errors (bugs) can have massive economic impacts, with only 606 bugs costing $1.7 trillion worldwide in 2017, affecting 3.7 billion people and over 300 companies. The ratio of reading versus writing code is almost nine to one. Therefore, by guiding developers to read code more effectively and efficiently, we can minimize developers’ time, ultimately reducing software cost and encouraging more bug-free software.”
To overcome the bugs during the software developing process, Bhattacharjee and his supervisors Dr. Banani Roy (PhD) and Dr. Kevin Schneider (PhD) from the USask Department of Computer Science are preparing a tool to assist developers while reading and writing codes.
The team has been working with the USask Global Institute for Water Security, where the source code tool has been used to maintain and develop the Cold Region Hydrological Model (CRHM) software program that is used to predict potential fluxes of water and energy in the environment.
Bhattacharjee also developed the back end of the USask Global Water Futures Nutrient App, which helps farmers and scientists across North America to measure water quality by using their phone cameras and low-cost water test kits.
The ACS tree provides a way for computer science students and experienced developers to accurately navigate difficult computer code and consequently improve their ability to make modifications quickly and reduce errors.
“Our user study suggests that the ACS tree can help developers do software maintenance tasks efficiently and effectively, which allows them to produce, migrate, and maintain quality software that is sustainable, reliable, scalable, and cost-effective.”
The ACS tree is created by building graphs of relationships between functions in a computer program and aids developers to locate and document relevant source code. The study is one of its kind to provide a multi-perspective view of computer source code using natural language processing techniques.
After upgrading the CRHM water modelling system, Bhattacharjee (currently a software engineer at XGen AI) plans to continue developing the software tool.
The research is funded by the Natural Sciences and Engineering Research Council of Canada.