Difference between revisions of "Rodin Plug-ins"

From Event-B
Jump to navigationJump to search
imported>Ladenberger
imported>Richardcook
(Undo revision 14486 by Richardcook (talk))
 
(28 intermediate revisions by 10 users not shown)
Line 6: Line 6:
 
* [[Text Editor]] augments the standard structured editor of Rodin with a text editor.
 
* [[Text Editor]] augments the standard structured editor of Rodin with a text editor.
 
* [[Rodin Editor]] augments the standard structured editor of Rodin with a structured text based editor.
 
* [[Rodin Editor]] augments the standard structured editor of Rodin with a structured text based editor.
 +
* [[CamilleX]] (formerly XEvent-B) with support for text editors and modelling mechanisms such as ''machine inclusion''.
 
* [[Records_Extension|Records]] provide structured types for Event-B.
 
* [[Records_Extension|Records]] provide structured types for Event-B.
 
* [[UML-B]] provides a 'UML-like' graphical front end for Event-B.
 
* [[UML-B]] provides a 'UML-like' graphical front end for Event-B.
Line 16: Line 17:
 
* [[Mode/FT Views]] plug-in brings modelling of modal and fault tolerance features.
 
* [[Mode/FT Views]] plug-in brings modelling of modal and fault tolerance features.
 
* [[Team-based development]] enables Event-B models to be stored in a shared repository (e.g. SVN).
 
* [[Team-based development]] enables Event-B models to be stored in a shared repository (e.g. SVN).
 +
* [[Event-B Qualitative Probability User Guide | Qualitative Probability]] provides supports for reasoning about termination with probability 1 (almost-certain termination).
  
 
=== Animation ===
 
=== Animation ===
* [[ProB]] is an animator and model checker for the B-Method,
+
* [[Image:prob_logo_small.png|16px]] [[ProB]] is an animator and model checker for the B-Method,
 
* [[Image:AnimB.png|50px]] [[AnimB]] is an animator for the Rodin platform,
 
* [[Image:AnimB.png|50px]] [[AnimB]] is an animator for the Rodin platform,
 
* [[UML-B - Statemachine Animation]] provides an animation (using Pro-B) of UML-B State-machines,
 
* [[UML-B - Statemachine Animation]] provides an animation (using Pro-B) of UML-B State-machines,
  
 
=== Visualization ===
 
=== Visualization ===
* [[Image:bms_logo_small.png|50px]] [[BMotion Studio]] a visual editor which enables the developer of a formal model to set-up easily a domain specific visualization.
+
* [[Image:bms_logo_small.png|16px]] [[BMotion Studio]] a visual editor which enables the developer of a formal model to set-up easily a domain specific visualization.
  
 
=== Documentation ===
 
=== Documentation ===
* [[ReqsManagement]] offer supports for requirements management.
+
* [[Image:ProR_logo.png|32px]] [[ProR]] supports integration of natural language requirements and Event-B models.
 
* [[B2Latex]] allows to typeset an event-B model with latex,
 
* [[B2Latex]] allows to typeset an event-B model with latex,
  
 
=== Theory and Proof ===
 
=== Theory and Proof ===
 +
* [[Isabelle for Rodin]]: Prove proof obligations with Isabelle/HOL. Export proof obligations to Isabelle/HOL theories.
 
* [[Theory Plug-in|Theory Plug-in]] provides capabilities to extend the Event-B mathematical language and the Rodin proving infrastructure.
 
* [[Theory Plug-in|Theory Plug-in]] provides capabilities to extend the Event-B mathematical language and the Rodin proving infrastructure.
 
* [[Proof Purger Interface|Proof Purger]] offers to delete unused proofs.
 
* [[Proof Purger Interface|Proof Purger]] offers to delete unused proofs.
Line 37: Line 40:
  
 
=== Code Generation ===
 
=== Code Generation ===
 +
* [http://poporo.uma.pt/favas/EventB2Java.html EventB2Java] generates JML-specified Java implementations of Event-B models. Contributions by Néstor Cataño, Tim Wahls, Camilo Rueda and Víctor Rivera.
 +
* [http://poporo.uma.pt/favas/EventB2JML.html EventB2JML] translates Event-B machines to JML-specified Java abstract classes. Contributions by Néstor Cataño, Tim Wahls, Camilo Rueda and Víctor Rivera.
 +
* [http://poporo.uma.pt/eventb2dafny/Home.html EventB2Dafny] translates Event-B proof-obligations into the input language of Dafny. Developed by Néstor Cataño.
 +
* [http://users.dickinson.edu/~wahlst/eventb2sql/eventb2sql.html EventB2SQL] translates Event-B machines to Java implementations that make the state of a machine persistent by storing it in a database.
 
* [http://eb2all.loria.fr/ EB2ALL] (Beta Version) supports automatic code generation from Event-B to C, C++, Java and C#.
 
* [http://eb2all.loria.fr/ EB2ALL] (Beta Version) supports automatic code generation from Event-B to C, C++, Java and C#.
* [[Code Generation|Multitasking code generation]] supports generation of multi-tasking Ada code from Event-B.
+
* [[Code Generation|Tasking Event-B]] supports generation of multi-tasking Java, Ada, and OpenMP C code from Event-B.
 
* [[B2C plugin|B2C]] translates Event-B models to C source code, which may then be compiled using external C development tools.
 
* [[B2C plugin|B2C]] translates Event-B models to C source code, which may then be compiled using external C development tools.
* [http://eventb-to-vhdl.tk/ EHDL] VHDL code generation plug-in allows designers to transform formal Event-B models into VHDL design file automatically.
+
* [http://www.eb2vhdl.tk/ EHDL] The plug-in enables [http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6037401 VHDL code generation] from formal Event-B models automatically.
  
 
=== Experimental ===
 
=== Experimental ===
Line 49: Line 56:
 
* [[Pattern]] allows the reusing of existing models within a development in order to save the modelling and proving effort.
 
* [[Pattern]] allows the reusing of existing models within a development in order to save the modelling and proving effort.
 
* [[Image:Project diagram icon s.png]] [[Project Diagram]] displays the diagram of a Rodin project.
 
* [[Image:Project diagram icon s.png]] [[Project Diagram]] displays the diagram of a Rodin project.
* [[Export to Isabelle]] exports proof obligations to Isabelle/HOL
+
* [[MBT_plugin|MBT plugin]] can be used to generate test sequences covering the events of an Event-B model.
* [[Image:IUMLB.png]] [[Event-B Statemachines]] adds state machines directly to your Event-B models and also allows to animate them.
 
 
* [[Transformation patterns]] allow writing and running transformation scripts in EOL over Event-B models.
 
* [[Transformation patterns]] allow writing and running transformation scripts in EOL over Event-B models.
  

Latest revision as of 16:19, 13 February 2020

For developer support, see Rodin Developer Support

Rodin Plug-in Documentation

Modelling

  • Text Editor augments the standard structured editor of Rodin with a text editor.
  • Rodin Editor augments the standard structured editor of Rodin with a structured text based editor.
  • CamilleX (formerly XEvent-B) with support for text editors and modelling mechanisms such as machine inclusion.
  • Records provide structured types for Event-B.
  • UML-B provides a 'UML-like' graphical front end for Event-B.
  • Parallel Composition using Event-B allows the composition of machines through events for Event-B.
  • Decomposition Plug-in allows the decomposition of Event-B machines/contexts (shared variables (A-style) and shared events decomposition (B-style))
  • Refactoring Framework allows the refactoring of elements that are part of file (and also on related files).
  • Rose (Structured) Editor a model structured editor.
  • Flows plug-in allows the addition of control flow to a machine.
  • Mlogo big.png Modularisation Plug-in provides a mechanism for constructing and proving modular developments.
  • Mode/FT Views plug-in brings modelling of modal and fault tolerance features.
  • Team-based development enables Event-B models to be stored in a shared repository (e.g. SVN).
  • Qualitative Probability provides supports for reasoning about termination with probability 1 (almost-certain termination).

Animation

Visualization

  • Bms logo small.png BMotion Studio a visual editor which enables the developer of a formal model to set-up easily a domain specific visualization.

Documentation

  • ProR logo.png ProR supports integration of natural language requirements and Event-B models.
  • B2Latex allows to typeset an event-B model with latex,

Theory and Proof

Code Generation

  • EventB2Java generates JML-specified Java implementations of Event-B models. Contributions by Néstor Cataño, Tim Wahls, Camilo Rueda and Víctor Rivera.
  • EventB2JML translates Event-B machines to JML-specified Java abstract classes. Contributions by Néstor Cataño, Tim Wahls, Camilo Rueda and Víctor Rivera.
  • EventB2Dafny translates Event-B proof-obligations into the input language of Dafny. Developed by Néstor Cataño.
  • EventB2SQL translates Event-B machines to Java implementations that make the state of a machine persistent by storing it in a database.
  • EB2ALL (Beta Version) supports automatic code generation from Event-B to C, C++, Java and C#.
  • Tasking Event-B supports generation of multi-tasking Java, Ada, and OpenMP C code from Event-B.
  • B2C translates Event-B models to C source code, which may then be compiled using external C development tools.
  • EHDL The plug-in enables VHDL code generation from formal Event-B models automatically.

Experimental

  • Group Refinement changes the set of refinement laws for one refinement step to facilitate a case of atomicity refinement.
  • Model Critic is an extension using the Epsilon scripting language to analyse Event-B models
  • Feature Composition Plug-in allows the composition of Event-B features (machines|contexts) and helps the user in resolving conflicts before composition.
  • Feature Modelling Tool (prototype) can be used to build feature models for product lines and configure these to generate product line members.
  • Pattern allows the reusing of existing models within a development in order to save the modelling and proving effort.
  • Project diagram icon s.png Project Diagram displays the diagram of a Rodin project.
  • MBT plugin can be used to generate test sequences covering the events of an Event-B model.
  • Transformation patterns allow writing and running transformation scripts in EOL over Event-B models.

Rodin Plug-in Tutorials

Tips & Tricks