ASPIRE: Transformations for Reducing Software Complexity

Prevalent software engineering practices have significantly increased the complexity and bloat of today's software. This bloat has led to decreased performance and increased security vulnerabilities. The ASPIRE project seeks to develop a toolkit and methodology to effectively counter this trend. Bloat reduction poses significant challenges that ASPIRE endeavors to address. ASPIRE aims for a fully automated reduction process that can handle legacy source and binary code, and scale to large, complex programs that implement protocols. By protocols, we mean systems that allow multiple entities/modules to exchange information. It includes not only communications protocols such as RFCs but also any kind of software that consists of independent modules (e.g., any library APIs). The resulting subsetted code should preserve properties of the original code, be maintainable and extensible, and provide improved performance and security.

This research is funded by ONR (N00014-18-1-2021).