validation of component architectures (veca-haskell)
Unstable API -- For the time being, it also includes elements relative to the refactoring and generalization of the FMT project from Java to Haskell.
This is the core engine of the VECA project.
-
for an overview of the VECA project features and objectives, see VECA project.
-
for the VECA DSL and its integration within the Eclipse IDE, see veca-ide.
1. Requirements
You will need a working Haskell environment, which can be obtained using Stack.
See here on how to install Stack (more detailed instructions if needed here).
Stack will setup an Haskell environment, including the GHC compiler, if it finds out you need to.
But if you want you can also use Stack to install GHC globally (outside the scope of a project) using stack setup
.
2. Binaries
For the time being, you have to build the veca-haskell executable from sources (see below).
3. Building veca-haskell-exe
Once you have cloned the repository, go into the directory and run:
stack build
stack install
This should compile veca-haskell-exe
and put it in a default directory depending on your OS.
You can use stack path --local-bin
to find out which directory it is.
Do not forget to put this directory in your command path.
4. Using veca-haskell-exe
To get a (basic) help run:
veca-haskell-exe -h
4.1 VECA JSON format
The VECA JSON format is not really intended for direct edition, rather use the VECA DSL plugin (see veca-ide) to generate it.
4.2 From VECA DSL to VECA JSON format
The VECA DSL plugin (see veca-ide) can be used to edit models in the VECA DSL and generate VECA JSON from them.
4.3 VECA to UPPAAL transformation
To transform a VECA model in JSON format into timed automata in XTA format for formal verification, run:
veca-haskell-exe transform /tmp/myModel
provided your model is /tmp/myModel.json
, and you will get the timed automata in /tmp/myModel.xta
. Please note that there is no .json
suffix in the command above.
4.4 Formal verification
Formal verification can be achieved using the ITS-Tools or UPPAAL verification tools.