Static code analysis for domain knowledge extraction from fortran and C++ software
|Title||Static code analysis for domain knowledge extraction from fortran and C++ software|
Industrial companies depend on proprietary software systems implementing domain knowledge required for the engineering of products and processes. Developed by domain experts, these software systems evolve over decades to incorporate new findings and maintain competitiveness. A general lack of understanding due to missing or outdated documentation hampers the evolution of these business critical software systems. To tackle this challenge, we propose static code analysis techniques to reveal domain knowledge from source code and to represent extracted computations by mathematical formulae and decision tables. We implemented the proposed analysis techniques in a tool prototype and applied the tool on industrial software systems from electrical engineering and process engineering domains. Results confirm the accuracy of extracted domain knowledge as well as a high degree of automation. Our approach facilitates both evolution of software systems as well as the re-engineering of legacy software systems by generation of up-to-date documentation from source code.