Software Architecture of Code Analysis Frameworks Matters: The Frama-C Example
This work tackles software engineering problems for developers of industrial code analysis tools, but it is incremental as it builds on existing frameworks.
The paper addresses the challenges of developing and maintaining open extensible collaborative code analysis frameworks, using Frama-C as an example, and presents a new software architecture to mitigate these issues.
Implementing large software, as software analyzers which aim to be used in industrial settings, requires a well-engineered software architecture in order to ease its daily development and its maintenance process during its lifecycle. If the analyzer is not only a single tool, but an open extensible collaborative framework in which external developers may develop plug-ins collaborating with each other, such a well designed architecture even becomes more important. In this experience report, we explain difficulties of developing and maintaining open extensible collaborative analysis frameworks, through the example of Frama-C, a platform dedicated to the analysis of code written in C. We also present the new upcoming software architecture of Frama-C and how it aims to solve some of these issues.