Difference between pages "Creating a new plug-in using eclipse (How to extend Rodin Tutorial)" and "Current Developments"

From Event-B
(Difference between pages)
Jump to navigationJump to search
imported>Pascal
 
imported>Colin
 
Line 1: Line 1:
{{Navigation|Previous= [[Introduction_(How_to_extend_Rodin_Tutorial)|Introduction]] | Up= [[Plug-in_Tutorial|How to extend Rodin Tutorial (Index)]] | Next= [[Extend_Rodin_database_(How_to_extend_Rodin_Tutorial)|Extending the database]]}}
+
{{TOCright}}
 +
This page sum up the known developments that are being done around or for the [[Rodin Platform]]. ''Please contributes informations about your own development to keep the community informed''
  
=== In this part ===
+
== Deploy tasks ==
We will explain how to use Eclipse to easily create a plug-in package structure for our implementation. Developers which are familiar with plug-in building may skip this part and go to the next page of this tutorial.
+
The following tasks were planned at some stage of the [[Deploy]] project.
Before starting to perform the following step, you should have your development environment ready and open.
+
=== Rodin Index ===
 +
[[Systerel]] is in charge of this task.
 +
{{details|Rodin Index Design|Rodin index design}}
  
=== Step 1 ===
+
The purpose of the Rodin index manager is to store in a uniform way the entities that are declared in the database together with their occurrences. This central repository of declarations and occurrences will allow for fast implementations of various refactoring mechanisms (such as renaming) and support for searching models or browsing them.  
To create a plug-in, go to "'''File > New > Other'''" and select  "'''Plug-in Project'''" either from the general list if it appears, or from the category '''"Plug-in Development"'''.
 
Click on "'''Next'''".
 
  
[[Image:Extend_Rodin_Tuto_1_1_File_new_plugin.png|300px]]
 
  
=== Step 2 ===
 
The following wizard page appears:
 
  
[[Image:Extend_Rodin_Tuto_1_2_NewPlug-inProject.png|400px]]
+
=== UML-B plugin ===
 +
[[Southampton]] is in charge of [[UML-B]] plug-in.
  
1. In project name, enter the name of the plugin package that must appear in the project hierarchy. We used <tt>fr.systerel.rodinextension.sample</tt> but the formalism used often corresponds to <tt>mydomain.mycompany.mypluginname</tt><br>
+
* Support for synchronisation of transitions from different statemachines. This feature will allow two or more transitions in different statemachines to contribute to a single event. This feature is needed because a single event can alter several variables (in this case statemachines) simultaneously.
2. Verify that the plug-in is targeted to run with the appropriate Eclipse version and click on "'''Next'''".
 
  
=== Step 3 ===
 
[[Image:Extend_Rodin_Tuto_1_3_NewPlug-inProject_Content.png|400px]]
 
  
1. In field ID, enter the unique id that will identify the plug-in. Generally, we use the project name entered in the previous step : <tt>fr.systerel.rodinextension.sample</tt>,<br>
+
*Allow user to allocate the name of the 'implicit contextual instance' used in a class. Events and Transitions owned by a class are implicitly acting upon an instance of the class which has formerly been denoted by the reserved word 'self'. This modification allows the modeller to override 'self' (which is now the default name) with any other identifier. This feature is needed to avoid name clashes when synchronising transitions into a single event. It also allows events to be moved between different classes (or outside of all classes) during refinement without creating name clashes.
2. The version identify, the current plug-in version. This field can be later updated via the MANIFEST file. We let the default value <tt>1.0.0.qualifier</tt>,<br>
 
3. In the field Name, put the name of the plug-in, here Qualitative Probabilistic Reasoning Plug-in,<br>
 
4. In the provider field, you can put the name of your company or institution,<br>
 
5. Ensure that the Execution Environment is set to the appropriate Java version (the one used by the current Rodin Platform API),<br>
 
6. Enter the class name of the plug-in activator, preceded by its containing package. The activator is the static class responsible of the plug-in lifecycle (start, stop, etc.).<br>
 
Deselect "This plug-in will make contributions to the UI" as we will contribute to the UI with another dedicated plugin.
 
Ensure that <tt>Rich Client Application</tt> is set to <tt>No</tt><br>
 
7. Click on "'''Finish'''"<br>
 
  
=== What we got ===
 
[[Image:Extend_Rodin_Tuto_1_4_ProjectExplorer1.png]]
 
  
Eclipse created the plug-in structure that we will be able to use to extend Rodin.
+
* Better support for state machine refinement in UML-B. This is a revision to UML-B. It allows a statemachine to be recognised as a refinement of another one and to be treated in an appropriate way during translation to Event-B. The states of a refined statemachine can be elaborated by adding child statemachines and transitions can be elaborated within these child statemachines.
  
{{Navigation|Previous= [[Introduction_(How_to_extend_Rodin_Tutorial)|Introduction]] | Up= [[Plug-in_Tutorial|How to extend Rodin Tutorial (Index)]] | Next= [[Extend_Rodin_database_(How_to_extend_Rodin_Tutorial)|Extend the database]]}}
+
== Exploratory tasks ==
 +
=== One single View ===
 +
[[Maria]] is in charge of this exploratory work during is internship.
 +
{{details|Single View Design|Single View Design}}
 +
The goal of this project is to present everything in a single view in Rodin. So the user won't have to switch perspectives.
  
[[Category:Developer documentation|*Index]]
+
 
[[Category:Rodin Platform|*Index]]
+
 
[[Category:Tutorial|*Index]]
+
== Others ==
 +
 
 +
=== AnimB ===
 +
[[Christophe]] devotes some of its spare time for this plug-in.
 +
{{details|AnimB Current Developments|AnimB Current Developments}}
 +
The current developments around the [[AnimB]] plug-in encompass the following topics:
 +
;Live animation update
 +
:where the modification of the animated event-B model is instantaneously taken into account by the animator, without the need to restart the animation.
 +
;Collecting history
 +
:The history of the animation will be collected.
 +
 
 +
 
 +
 
 +
[[Category:Work in progress]]

Revision as of 13:23, 23 September 2008

This page sum up the known developments that are being done around or for the Rodin Platform. Please contributes informations about your own development to keep the community informed

Deploy tasks

The following tasks were planned at some stage of the Deploy project.

Rodin Index

Systerel is in charge of this task.

For more details on Rodin index design, see Rodin Index Design.

The purpose of the Rodin index manager is to store in a uniform way the entities that are declared in the database together with their occurrences. This central repository of declarations and occurrences will allow for fast implementations of various refactoring mechanisms (such as renaming) and support for searching models or browsing them.


UML-B plugin

Southampton is in charge of UML-B plug-in.

  • Support for synchronisation of transitions from different statemachines. This feature will allow two or more transitions in different statemachines to contribute to a single event. This feature is needed because a single event can alter several variables (in this case statemachines) simultaneously.


  • Allow user to allocate the name of the 'implicit contextual instance' used in a class. Events and Transitions owned by a class are implicitly acting upon an instance of the class which has formerly been denoted by the reserved word 'self'. This modification allows the modeller to override 'self' (which is now the default name) with any other identifier. This feature is needed to avoid name clashes when synchronising transitions into a single event. It also allows events to be moved between different classes (or outside of all classes) during refinement without creating name clashes.


  • Better support for state machine refinement in UML-B. This is a revision to UML-B. It allows a statemachine to be recognised as a refinement of another one and to be treated in an appropriate way during translation to Event-B. The states of a refined statemachine can be elaborated by adding child statemachines and transitions can be elaborated within these child statemachines.

Exploratory tasks

One single View

Maria is in charge of this exploratory work during is internship.

For more details on Single View Design, see Single View Design.

The goal of this project is to present everything in a single view in Rodin. So the user won't have to switch perspectives.


Others

AnimB

Christophe devotes some of its spare time for this plug-in.

For more details on AnimB Current Developments, see AnimB Current Developments.

The current developments around the AnimB plug-in encompass the following topics:

Live animation update
where the modification of the animated event-B model is instantaneously taken into account by the animator, without the need to restart the animation.
Collecting history
The history of the animation will be collected.