ATSyRA Studio

Single Domain Development guide

Single Domain Development guide

This aggregate of components is in charge of offering a dedicated language for a domain expert in order to modelize the system she want to validate against attack trees.

Each domain is developed independently but they all follows the same scheme.

Domains developped using the Single domain approach

1. Building

This aggregate of components is in charge of offering user facilities to model buildings.

1.1. Model

building model
Figure 1. ATSyRA Building Model plugins

This plugins defines the concepts for defining a building. Its main source is the ecore file.

1.2. Tree editor

building tree editor
Figure 2. ATSyRA Building tree editor plugins

These plugins define the editing support and a basic tree editor for building.

The edit support is mainly used to offer an improved outline when editing building models.

The editor is usually not used.

1.3. Xtext editor

building xtext editor
Figure 3. ATSyRA Building xtext editor plugins

These plugins define the text editor for building.

The main file is the xtext file in fr.irisa.atsyra.building.xtext.

Some customization has been applied to offer better user support, however most of the code is generated from the xtext file.

1.4. Sirius editor

building sirius editor
Figure 4. ATSyRA Building Sirius editor plugins

This plugin defines the graphical editor for building.

1.5. GAL Compiler

building gal compiler
Figure 5. ATSyRA Building compiler plugins

This plugin defines the transformation that implements a building behavior by compiling it into a GAL model.

2. IDE

building ide
Figure 6. ATSyRA Building IDE plugins

These components are specific to the building domain. They add to Eclipse IDE (Integrated Development Environment) the dedicated user interface elements.

  • fr.irisa.atsyra.building.ide.ui defines the following:

    • a project nature

    • a project builder; its automatically generates:

      • a *_definition.atg file from a building file (containing the declarations related to this building that can be used in the goals of atg files)

      • a gal file corresponding to the building to be used by reachability check

      • a plantuml file corresponding to a witness file (Ie. draw a sequence diagram)

    • a new building project wizard

    • a set of popup actions (handlers )

      • TODO provide a list or find a way to infer it automatically from source ?

    • an Eclipse perspective that customize the views and actions to be displayed by default

  • fr.irisa.atsyra.building.ide.ui.templates provides template projects for the new building project wizard

  • fr.irisa.atsyra.building.example.deployer provides ready to use examples available through the File → new → Examples…​ menu.

  • fr.irisa.atsyra.building.doc provides documentation available in Eclipse help system.

2.1. Necessary item usage and location graph

building item usage
Figure 7. ATSyRA Building Item usage plugins

2.2. Topoplan integration

building topoplan integration
Figure 8. ATSyRA Building topoplan integration plugins
  • Sketchup is an external tool used to draw the building map.

  • fr.irisa.atsyra.topoplan.win32 embeds a customized version of topoplan executable. It is used to extract the building structure from the map.

  • fr.irisa.atsyra.topoplan.infos.tpi is a model used to help to map building structure to an actual building model.

  • fr.irisa.atsyra.topoplan.infos.tpi.ide and fr.irisa.atsyra.topoplan.infos.tpi.ui textual editor eclipse integration for tpi models.

3. Netspec

TODO indicates location of current plugins

4. Tree Specification

4.1. Model

tree spec model
Figure 9. ATSyRA Tree specification Model plugins

5. Tree analysis

5.1. ResultStore model

tree analysis resultstore model
Figure 10. ATSyRA Tree analysis ResultStore model plugins

5.2. ResultStore tree editor

tree analysis resultstore tree editor
Figure 11. ATSyRA Tree analysis ResultStore tree editor plugins

5.3. Witness XText editor and model

tree analysis witness model
Figure 12. ATSyRA Tree analysis Witness model plugins

The ecore model for witness is directly inferred from the grammar and located in fr.irisa.atsyra.witness.xtext.