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

@inproceedings{Signoles2015SoftwareAO,
  title={Software Architecture of Code Analysis Frameworks Matters: The Frama-C Example},
  author={Julien Signoles},
  booktitle={F-IDE},
  year={2015}
}
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.

References

SHOWING 1-10 OF 20 REFERENCES

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.

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.

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

Documenting software architectures: views and beyond

This lecture maps the concepts and templates explored in this tutorial with well-known architectural prescriptions, including the 4+1 approach of the Rational Unified Process, the Siemens Four Views

Designing Reusable Classes

This paper describes what it is like to design systems in Smalltalk and how classes are developed so that they will be reusable.

Fan-C , a Frama-C plug-in for data flow verification

interpretation, static analysis, value analysis, data flow analysis, avionics software, DO-178B, industrial application

ACSL: ANSI/ISO C Specification Language

The term t denotes the n-ary logic function which maps x1, . . . , xn to t, and the two ’>’ must be separated by a space, to avoid confusion with the shift operator.