Software Architecture of Code Analysis Frameworks Matters: The Frama-C Example

  title={Software Architecture of Code Analysis Frameworks Matters: The Frama-C Example},
  author={Julien Signoles},
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… 

Figures from this paper

Frama-C, A Collaborative Framework for C Code Verification: Tutorial Synopsis

Frama-C is a source code analysis platform that aims at conducting verification of industrial-size C programs with a collection of plug-ins that perform static and dynamic analysis for safety- and security-critical software.

Static versus Dynamic Verification in Why3, Frama-C and SPARK 2014

This work emphasizes the specific feature of ghost code which turns out to be extremely useful for both static and dynamic verification, and presents techniques, combining static andynamic features, that help users understand why static verification fails.

Static Analysis and Runtime-Assertion Checking: Contribution to Security Counter-Measures

A methodology which combines static analysis and runtime assertion checking in order to automatically generate counter-measures, and execute them whenever a code which may compromise the security of an application is detected during execution.



Frama-C: A software analysis perspective

A consolidated view of the Frama-C platform, its main and composite analyses, and some of its industrial achievements are presented.

Frama-C: A software analysis perspective

A consolidated view of the Frama-C platform, its main and composite analyses, and some of its industrial achievements are presented.

Common specification language for static and dynamic analysis of C programs

This work proposes to translate a Pre-Post based specification into executable C code using e-acsl, subset of the acsl specification language for C programs, and its automatic translator into C implemented as a Frama-C plug-in.

Taster, a Frama-C plug-in to enforce Coding Standards

This paper presents a framework based on the open source Frama-C platform for easily developing syntactic, typing and semantic analyses of C source code, among which conformance to Coding Standards is presented.

Software architecture in practice

This second edition of this book reflects the new developments in the field and new understanding of the important underpinnings of software architecture with new case studies and the new understanding both through new chapters and through additions to and elaboration of the existing chapters.

Experience report: OCaml for an industrial-strength static analysis framework

This experience report describes the choice of OCaml as the implementation language for Frama-C, a framework for the static analysis of C programs, and why it was chosen because it is expressive.

Combining Analyses for C Program Verification

A correct and complete algorithm for combining several partial results into a fully consolidated validity status for each program property is proposed and it is illustrated how such a framework provides meaningful feedback on partial results.

Foncteurs impératifs et composés: la notion de projets dans Frama-C

The library of projects embedded in Frama-C is described, which is an extensible platform dedicated to development of source-code analysis of C software, and an original aspect of ML functors which uses their imperative and compositional parts is detail.

CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs

The structure of CIL is described, with a focus on how it disambiguates those features of C that were found to be most confusing for program analysis and transformation, allowing a complete project to be viewed as a single compilation unit.

Software Architecture in Practice (Second Edition)

The architect is faced with a swarm of competing, if not conflicting, influences and demands, surprisingly few of which are concerned with getting the system to work correctly. The organizational and