Home | CV | Research | Teaching | Publications | ResearchWiki | SEAD | CRC | SecureChange | SP4A | VideoWall | RESG | RSS

Componentization of Legacy C/C++ Software

The build architecture of legacy C/C++ software systems places groups of program files in directories representing logical components. The interfaces of these components are loosely defined by a set of header files that are typically grouped in one common include directory. As legacy systems evolve, these interfaces decay resulting in a build process that is both time consuming and difficult to understand. Moreover, the increase in the number of developers working on legacy systems necessitates parallel development. As such, the interfaces between various components in the system must be re-documented and restructured to reduce the number of contentions over components as well as reducing the build time. Lastly, better defined components can contribute to targeted testing of components.

Resources