Debloating Software Programs

Debloating Software Programs


Engineering and Applied Sciences


Associate Professor

Project Summary

Without the need to account for limited processing capacity due to technological advances, software programs now can easily include a lot of code, some of which is often rarely used. As a consequence of this and other common software engineering practices such as software reuse, there is immense software bloating. This bloating is identified by a software’s increasing complexity and use of memory. Unfortunately, as a result, many programs suffer from performance degradation, difficulties with maintainability, and security vulnerabilities.

This summer I was given the great opportunity of working with Professor Naik’s lab to research software debloating. His lab was in the midst of finding solutions for bloating and had developed a software debloating system called Chisel, which reduces a program by removing unnecessary functionality. Currently, Chisel has 10 benchmark programs to test its functionality for further research.

I both manually reduced some of these thousand-line programs and used Chisel to look into the accuracy and behavior of Chisel when it comes to debloating programs. After comparing the two reduced programs, we evaluated what Chisel did right or did wrong in hopes to improve Chisel in the future. The project has now shifted its focus to debloating for package-management systems for a computer’s operating system. I looked into different types of package-management systems, package dependencies and other debloating solutions for different sides of software.

Overall, this project has widened my eyes to a new side of computer programming. I’ve learned that it is important to prioritize efficiency and quality, even for programs that were created a long time ago. Prior to this research experience, efficiency was something that I kept in mind when coding new programs, but not so much for these long-lived programs. I am very thankful for this opportunity to have stepped out of my comfort zone, learned about software debloating and new programming languages, and explored different sides of computer science this summer.