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.