Wei Le, an Associate Professor of Computer Science at Iowa State University, secured a $1.2 million grant from the National Science Foundation in collaboration with Columbia University to fund their pioneering project “Learning Semantics of Code To Automate Software Assurance Tasks," out of which $533,995 is devoted to Iowa State.
Over the next four years, this grant will support an in-depth investigation into improving the performance, robustness, generalizability, and efficiency of deep learning models specifically tailored for software assurance. Furthermore, their aim is to harness the potential of deep learning in tackling complex tasks that have thus far proven resistant to its application.
“[We] will combine program analysis, software engineering, and deep learning to develop novel formulations to effectively reduce software assurance problems via deep learning,” explained Le.
Innovative Research Advancing Software Assurance
Deep learning has showcased remarkable potential in effectively tackling various software engineering tasks. However, its capabilities are limited when it comes to challenging yet crucial software assurance tasks such as bug detection, debugging, test input generation, and test suite prioritization. These tasks prove difficult to formulate as learning problems, primarily due to the intricate nature of program semantics.
“To the best of [our] knowledge,” said Le, “even state-of-the-art deep learning models have an insufficient understanding of program semantics. As a result, the models fail to achieve sufficient precision and recall to be more widely deployed.”
Additionally, these models struggle to generalize effectively to unseen projects and are highly sensitive to minor perturbations in the source code. Additionally, training these models requires substantial computational resources and extensive datasets.
The impact of these limitations calls for exploring alternative approaches and combining deep learning techniques with other methods in software assurance. Thanks to the grant from the National Science Foundation, Le and her team are going to be able to work on addressing these challenges to enhance the capabilities of deep learning models and improve their effectiveness in crucial software engineering tasks.
Fostering Deep Learning Collaboration
Le and her team intend to leverage the insights gained from this research to organize workshops, fostering a stronger and more vibrant research community focused on deep learning for code. Their goal is to facilitate stronger collaboration among researchers, experts in the field of deep learning, and software engineering professionals to accelerate advancements in applying deep learning to software assurance. This collaborative environment enables the sharing of datasets, benchmarks, and evaluation methodologies, which play a crucial role in validating and comparing the performance of deep learning models in software assurance.
The collective effort to curate high-quality datasets and establish standardized evaluation practices is of utmost importance. By doing so, benchmarks can be established, and fair comparisons between different models and techniques can be facilitated. This process contributes to improved software quality, enhanced productivity, reduced maintenance costs, and an overall enhanced user experience.
The ultimate beneficiaries of this collaborative effort are developers and users alike. Developers can leverage the advancements in deep learning to create more reliable and secure software, while users can benefit from improved software quality, increased productivity, and a better user experience.