FACTum

A framework for the verification of component-based systems

FACTum is a framework to support the verification of component-based systems combining model checking and interactive theorem proving.

The approach can be sketched as follows:

FACTum

In FACTum, the verification of overall system properties is split into two steps: First, suitable contracts are specified for the components (represented by gray boxes) and verified against their implementation. Since single components are usually of limited complexity, this step can be fully automated using model checking techniques. In a second step the contracts are combined to verify overall system properties. This step is usually more complex and usually requires manual interaction. Thus, in FACTum, we use interactive theorem proving to reason about the combination of contracts.

APML

To support the interactive verification of contract composition, FACTum comes with APML, an Architecture Proof Modeling Language (Marmsoler & Blakqori, 2019).

The following MSC shows such a proof for a reliable adder:

APML proof for reliable adder

An APML proof is sketched in a notation similar to message sequence charts and describes why an overall contract follows from the combination

Dynamic Architectures

FACTum also supports the notion of dynamic architectures: architectures in which components can appear and disappear over time and connections between them may change dynamically.

Reasoning about the composition of contracts for dynamic architectures is supported by a corresponding calculus for dynamic architectures (Marmsoler, 2019).

Proof Hierarchies

FACTum also supports hierarchical specifications (Marmsoler & Gidey, 2019) and reuse of composition proofs through the notion of verified patterns (Marmsoler, 2018).

FACTum Studio

FACTum is implemented in FACTum Studio, an Eclipse/EMF application with the following main features:

  • Algebraic specifications for the data types exchanged by components.
  • Specification of component behavior by means of statemachines and corresponding contracts by means of behavior trace assertions.
  • Specification of architectural aspects using architecture diagrams and architecture trace assertions.
  • Generation of corresponding specifications for the NuSMV model checker.
  • Generation of theories for the interactive theorem prover Isabelle.
  • Specification of architecture proofs using APML and generation of corresponding proofs for Isabelle.

References

2019

  1. APML: An Architecture Proof Modeling Language
    Diego Marmsoler, and Genc Blakqori
    In Formal Methods – The Next 30 Years, 2019
  2. SCP
    A Calculus for Dynamic Architectures
    Diego Marmsoler
    Science of Computer Programming, 2019
  3. FAC
    Interactive Verification of Architectural Design Patterns in FACTum
    Diego Marmsoler, and Habtom Kahsay Gidey
    Formal Aspects Computing, 2019

2018

  1. Hierarchical Specification and Verification of Architecture Design Patterns
    Diego Marmsoler
    In Fundamental Approaches to Software Engineering - 21th International Conference, FASE 2018, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018, Thessaloniki, Greece, April 14-20, 2018, Proceedings, 2018