System modeling is an effective technique for capturing the essential properties of large and complex systems in an abstract manner. Still, the architectural model of such systems can be rather large and the manual creation of the model is both time-consuming and error-prone. Also, the manually crafted and maintained architectural model easily becomes inconsistent with the actual system implementation because the model is often not updated as the system architecture evolves. A solution to this problem is the technique of architecture recovery that extracts models directly from source code. In this paper, we describe an approach to architecture recovery based on a software structure model that forms the basis of a component-based build system. Extracted models are known to correspond to the underlying code as consistency of the structure model with source code is inevitable for the system's build process to succeed. The approach and supporting tools have been successfully applied at Ericsson for a complex telecommunication product that consists of several millions of lines of C/C++ code.
['Adam Darvas', 'Raimund Konnerth']
System Architecture Recovery Based on Software Structure Model