Improving the build architecture of legacy C/C++ software systems. (English)
Cerioli, Maura (ed.), Fundamental approaches to software engineering. 8th international conference, FASE 2005, held as part of the joint European conferences on theory and practice of software, ETAPS 2005, Edinburgh, UK, April 4‒8, 2005. Proceedings. Berlin: Springer (ISBN 3-540-25420-X/pbk). Lecture Notes in Computer Science 3442, 96-110 (2005).
Summary: The build architecture of legacy C/C++ software systems, groups program files in directories to represent 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, which contribute to an increase in the build time and the number of conflict in parallel developments. This paper presents an empirical study of the build architecture of large commercial software systems, introduces a restructuring approach, based on Reflexion models and automatic clustering, and reports on a case study using VIM open source editor.