pascalpoizat / veca-ide

:microscope: verification of component architectures (IDE plugin)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

validation of component architectures (veca-ide)

Build Status License Version
Waffle.io - Columns and their card count

THIS PROJECT IS UNDER HEAVY EVOLUTION. To the time being, the automatic build of the plugin repository site (used in step 2a) is failing.

This is the Eclipse IDE plugin for the DSL of the VECA project (DSL edition and transformation from the DSL to the VECA JSON format).

  • for an overview of the VECA project features and objectives, see VECA project.

  • for the transformation of the VECA JSON format into timed automata in XTA format for formal verification, see veca-haskell.

To use this plugin your installation must fulfil the requirements given in 1. Requirements and then you may choose either to use the available update-site following 2a. Update-site (recommended) or build a local one using 2b. Building from source. Some details on the use of the plugin are given in 3. Using the plugin.

1. Requirements

To use the DSL

Get the Eclipse IDE for Java and DSL Developers Photon or higher (it has been tested with Eclipse Photon) from the Eclipse IDE Downloads page.

To generate the JSON representation from the DSL

Nothing more is required.

To generate a set of temporal automata from the DSL

⚠️ Linux and Mac OS X only. For other OS, one still has to run veca-haskell manually.

You must install veca-haskell.

If you follow the intructions given in its README, it will be installed in $HOME/.local/bin. If you choose to install it somewhere else, the $VECA_HOME environment variable should be set to this place.

Further, the temporal automata generation takes for granted that the generated JSON files are in the src-gen subdirectory of your project. This is the default so you have nothing more to do. Please do not change the setting of the generation directory in Eclipse Preferences -> VecaDsl -> Compiler / Directory.

2a. Update-site

You can get the VECA plugin directly from the update-site:

  • in Eclipse, Help -> Install New Software ... -> Add a new repository from https://pascalpoizat.github.io/veca-ide/ (you can name it veca dsl (update site) for example)

  • from this repository, select VecaDsl / VecaDsl Feature for installation

If Eclipse warns you that you are installing software that contains unsigned content, click Install anyway.

2b. Building from source

You can build the plugin on your system and use it as an update site. First clone the project:

git clone https://github.com/pascalpoizat/veca-ide

This creates a directory .../veca-ide (where ... stands for the place where you ran the git command). In the sequel we will use $VECA_IDE_SOURCE to refer to .../veca-ide.

To build the plugin:

cd $VECA_IDE_SOURCE
mvn clean install

In Eclipse, Help -> Install New Software ... -> Add this local update site : $VECA_IDE_SOURCE/fr.lip6.veca.ide.parent/fr.lip6.veca.ide.repository/target/repository/.

3. Using the plugin

The plugin is activated once you edit a .veca file. The first time you use the plugin on a project, the IDE may ask you whether you want to convert it to an XText project. Answer yes.

The syntax of a model in the VECA DSL format is available in the VECA project documentation.

The plugin provides you with:

  • IDE capabilities such as syntax highlighting and renaming.

  • templates (available upon smart completion using Ctrl+Space)

  • model verifications that can be performed directly on the VECA model (see Syntactic verification, in the VECA projet documentation)

  • transformation from the VECA DSL format (.veca files) to the VECA JSON format (.json files) and to sets of timed automata (.xta files).

    Transformations are performed upon saving a syntactically correct model that has been edited. The generated files can be found in the src-gen directory. Log files are also there.

For the time being, verification is achieved from outside the plugin using the ITS-Tools or UPPAAL verification tools on the .xta files.

About

:microscope: verification of component architectures (IDE plugin)

License:Apache License 2.0


Languages

Language:Xtend 78.5%Language:Java 21.5%