Difference between pages "Parallel Composition using Event-B" and "Rodin Workshop 2009"

From Event-B
(Difference between pages)
Jump to navigationJump to search
imported>Renato
(Update for the version 1.1.2 for shared event composition, compatible with Rodin 1.0.0)
 
imported>Mathieu
m (Reverted edits by Marie101 (Talk); changed back to last version by Liza79anderson)
 
Line 1: Line 1:
{| align="right"
+
{{TOCright}}
| __TOC__
 
|}
 
  
==News ==
 
* ''1st July 2009'': [[#Version_1.1.2|Version 1.1.2]] released. It is based on Rodin 1.0.0 RC1.
 
  
 +
= Rodin User and Developer Workshop July 15-17 2009 =
  
==Shared Event Composition Plug-in ==
 
  
[[User:Renato]] at [[Southampton]] is in charge of the [[Parallel Composition using Event-B]].
+
While much of the continued development and use of Rodin takes place within the DEPLOY Project, there is a growing group of users and plug-in developers outside of DEPLOY. In July 2009, DEPLOY organised a workshop at the University of Southampton to bring together existing and potential users and developers of the Rodin toolset and to foster a broader community of Rodin users and developers.  For Rodin users the workshop provided an opportunity to share tool experiences and to gain an understanding of on-going tool developments. For plug-in developers the workshop provided an opportunity to showcase their tools and to achieve better coordination of tool development effort.  Moving towards an open source development project will mean that features that cannot be resourced from within the project can be developed outside the project.  It will also help to guarantee the longer-term future of the Rodin platform.
 +
This report contains the abstracts of the presentations at the workshop on 16 and 17 July 2009.  The workshop was preceded by a tutorial for Rodin Plug-in developers on 15 July.
  
Composition is the process by which it is possible to combine different sub-systems into a larger system. Known and studied in several areas, this has the advantage of reusability and combination of systems especially when it comes to distributed systems. While applying composition, properties must be maintained and proofs obligations need to be discharged in order for the final result to be considered valid. Our goal is to add this feature to the Rodin Platform (using Event-B notation) and study the concerns, properties, conditions, proof obligations, advantages and disadvantages when create/analysing system specifications. Since the composition maintains the monotonicity property of the systems, the sub-systems can be refined independently on a further stage, preserving composition properties.
+
We would like to acknowledge the support of the School of Electronics and Computer Science at the University of Southampton (especially the organisational work of Maggie Bond), the DEPLOY project and additional government funding of site's [http://www.bestessays.com.au term papers], [http://primarytermpapers.com/custom-writing-company custom writing company].
  
[[Image:share_event_machine.jpeg]]
 
  
 +
'''Organisers'''
  
[[Image:share_event_mach_comp1.jpeg]]
+
Michael Butler, University of Southampton
[[Image:share_event_machine_comp2.jpg]]
 
  
A machine '''''S''''' with events '''''e1, e2, e3''''' and '''''e4''''' and variables '''''v1, v2''''' and '''''v3''''' can be decomposed using event (de)-composition of event ''e2'' (as can be seen above). This would result in the machine '''''S1''''' and '''''S2''''' that have a partial part of the event ''e2'': machine ''S1'' has the part related to the variable ''v1'' (''e2''') and machine ''S2'' has the part related to the machine ''v2'' (''e2''<nowiki>''</nowiki>). Also some other events are separated (''e1'' and ''v1'' only exist on machine ''S1'' and events ''e3'' and ''e4'' with variable ''v3'' only exist on the machine ''S2'') as can be seen above.
+
Stefan Hallerstede, Heinrich-Heine-Universität Düsseldorf
  
The composition is based on proposals for parallel composition in Event-B in the following paper: [http://deploy-eprints.ecs.soton.ac.uk/51/].
+
Laurent Voisin, Systerel
  
==Installing/Updating ==
 
  
The installation or update for the shared event composition plug-in is available under the main Rodin Update site (http://rodin-b-sharp.sourceforge.net/updates). It is available for the category 'Shared Event Composition'. Like always, after the installation, restarting the application is recommended.
+
== [http://deploy-eprints.ecs.soton.ac.uk/137/  Report containing the abstracts is available here] ==
  
 +
== Slides from presentations  ==
  
==Usage==
+
=== Wednesday 15 July ===
  
In order to use the composition plug-in, it is necessary to create a composition file (bcp extension).
+
Laurent Voisin and
 +
Stefan Hallerstede,
 +
[http://wiki.event-b.org/images/Rodin_plug-in_tutorial_2009-07-15.pdf Rodin Plug-in Development Tutorial]
  
# To create a new composition file, go to Toolbar (on top), New>>Other... Event-B>>Composition Machine. Then select the project (if not selected already) and filename (by default is cm.bcp).
+
===Thursday 16 July===
# Bcp files are visible on Event-B perspective(from Rodin 0.9). For Rodin 0.8.2, go to Resource or Java perspective to edit the file.
 
# After editing the properties of the bcp file, you can generate a new bum file (machine), by using the green button on the toolbar (CM - symbol of machine) or by right clicling on the bcp file and choose the option :'Create Composed Machine'. You will have to introduce a name for the new machine and after that is just press 'OK'.
 
  
 +
* Michael Butler, [http://wiki.event-b.org/images/Intro.pdf Introduction]
  
The Shared Event Composition Plugin is divided in 6 sections:
+
* Ken Robinson, [http://wiki.event-b.org/images/Rodin-workshop-article.pdf System Modelling and Design: Refining Software Engineering]                         
  
* '''Refines''' : allows to define an abstract machine of this composed machine. It is a valid machine that exists on the project.
+
* Jean-Raymond Abrial, [http://deploy-eprints.ecs.soton.ac.uk/138/ Doing Mathematics with the Rodin Platform]
* '''Includes''': to compose a model, it is necessary to define which sub-systems(machines) interact. The machines must be abstract (not refinements of other machines) and have to be valid. It is also possible to choose if the included machine invariant should be visible to the composed machine or not (for proof optimization).
 
* '''Sees''': allows to add contexts to the composed machine. The contexts seen by the ''included machines'' are visible to the composed machine. So it is only allowed to see contexts that are not already seen by the composed machine.
 
* '''Invariants''': allows the inclusion of invariant clauses to the composed file. The inclusion of more invariants (from the included machines) depends on the user’s choice on ''Includes''. The defined invariants on the composed machine are “joint” properties between the included machines (gluing invariants), so variables and contexts from all the included machines become part of the composed machine scope.
 
*'''Variant''': since the composed machine can be a refinement of an abstract model, there is the possibility of introducing new events. In order to avoid divergence, variants are necessary for the new events.  
 
*'''Composes Events''': the interaction between systems only happens when the composed events are synchronised and ready to be executed. The systems can interact through shared parameters. It is possible to define the following properties for composes events:
 
** Name: name of the composes event
 
** Extended/Not Extended: in the composes machine refines an abstract machine and if there are events with the same name, the concrete event can extend the abstract one (from Rodin 0.9).
 
** Convergence: event can be chosen from ''Ordinary'', ''Convergence'' or ''Anticipated''.
 
  
 +
* Stephen Wright, [http://wiki.event-b.org/index.php/Image:Steve_Wright_Quite_Big_Model_Presentation.pdf Experiences with a Quite Big Event-B Model]
  
Still under '''Composes Events''', there are more properties that characterise a composed event:
+
* John Colley, [http://wiki.event-b.org/images/ColleyJuly09.pdf On Proving with Event-B that a Pipelined Processor Model Implements its ISA Specification]
* '''Refines''' : possibility to choose if the composes event it is a refinement of an abstract event
 
* '''Combines Event''': selection of the events that shall be composed. First the machine (out from the included machine list) is chosen and after, which event is supposed to be combined. It is possible to have only one combined event.
 
** The parameters are listed in one single (composed) event. Parameters (from different events) with the same name will be merged (becoming only one parameter). This correspond to the shared event composition with message passing, where a parameter is passed from one event to other.
 
** The guards from the different combined events are merged using conjuction. So this composed event will be available if all the guards are true.
 
** the actions are also merged and executed in parallel.
 
  
 +
* Fangfang Yuan, [http://wiki.event-b.org/images/soton-workshop.pdf Quantitative Design Decisions Measurement using Formal Method]
  
Like mention above,a machine can be generated containing all the properties defined on the composed machine file. The generation of the new machine can be executed by using the green button on the toolbar (CM - symbol of machine) or by right clicling on the bcp file and choosing the option :''Create Composed Machine''. A name for the new machine have to be introduced (a name is suggested by default ) and by clicking 'OK' or 'Override', a new machine file is generated.
+
* Kriangsak Damchoom and Michael Butler, [http://www.event-b.org/rodin09/FlashFileSysRodinWorkshopJuly2009.ppt An Experiment in Applying Event-B and Rodin to a Flash-Based Filestore]
  
== Bugs, Features and Comments ==
+
* Philipp Ruemmer,  [http://wiki.event-b.org/images/Talk_rodin09_philipp_ruemmer.pdf A Theory of Finite Sets, Lists, and Maps for the SMT-Lib Standard]
  
''Any reports of bugs, features or comments are welcome. You can add any of them here.''
+
* Matthias Schmalz, [http://wiki.event-b.org/images/Atp_improvements.pdf Better automated theorem proving in Event-B]
  
====Bugs ====
+
* Issam Maamria, [http://wiki.event-b.org/images/Proposal_for_Rule-based_prover.pdf Proposal for an extensible rule-based prover for Event-B]
* -
 
  
====Features ====
+
* Gudmund Grov,  [http://wiki.event-b.org/images/Reasoned_modelling.pdf A Proposal for a Rodin Proof Planner & Reasoned Modelling Plug-in]
* -
 
  
====Comments ====
+
* Jens Bendisposto, [http://wiki.event-b.org/images/Using_and_extending_prob.pdf  Using and Extending ProB]
* -
 
  
== Releases ==
+
* Ilya Lopatkin, Towards the SAL plugin for the Rodin platform
  
 +
* Kenneth Lausdahl and Miguel Ferreira, [http://wiki.event-b.org/images/An_Overview_of_Overture.pdf  An Overview of Overture]
  
=====Version 1.1.2 =====
+
* Michael Butler,  [http://wiki.event-b.org/images/Roadmap.pdf Roadmap for the Rodin Tool]
  
''1st July 2009''
+
===Friday 17 July===
  
Version compatible with Rodin 1.0.0.  
+
* Aryldo G Russo Jr., [http://wiki.event-b.org/images/ICFEM_2009_revised_presentation.pdf Formal Methods Outside the Mother Land  ]
  
*Improvements
+
* Maria Teresa Llano, [http://wiki.event-b.org/images/RodinWorkshopPresentation.pdf Systems Evolution via Animation and Reasoning]
** By adding a machine in the refines section, the events of the abstract machine are automatically added as a composed event.
+
* Atif Mashkoor, [http://wiki.event-b.org/images/BRANIMATION20090717.pdf BRANIMATION]
** Added the 'extended' button to the composed events.
 
  
 +
* Fredrik Degerlund and Richard Grönblom, A Framework for Code Generation and Scheduling of Event-B Models
  
[[Category:Parallel composition plugin]]
+
* Andy Edmunds, [http://wiki.event-b.org/images/RodinWorkshop2009.pdf Code Generation from Event-B - Using an Intermediate Specification Notation]
[[Category:User documentation]]
+
 
 +
* Alexei Iliasov, [http://wiki.event-b.org/images/Soton_flow.pdf On Event-B and Control Flow]
 +
 
 +
* Michael Jastram, [http://wiki.event-b.org/images/Requirements-quo-vadis.pdf Requirements Traceability]
 +
 
 +
* Joris Rehm, LORIA, [http://wiki.event-b.org/images/Timed_machine_plugin_visual.pdf A Rodin plugin for quantitative timed models]
 +
 
 +
* Renato Silva, [http://wiki.event-b.org/images/Composition,_Renaming_and_Generic_Instantiation.pdf Composition, Renaming and Generic Instantiation in Event-B Development] 
 +
 
 +
* Abderrahman Matoussi, [http://wiki.event-b.org/images/Slides_matoussi_-Southampton-.pdf Expressing KAOS Goal Refinement Patterns with Event-B ]
 +
 
 +
* Eduardo Mazza, A tool for specifying and validating software responsibility
 +
 
 +
* Mar Yah Said, [http://wiki.event-b.org/images/Rodin_Workshop_16_July_2009_2.pdf Language and Tool Support for Class and State Machine Refinement in UML-B]
 +
 
 +
* Colin Snook, [http://wiki.event-b.org/images/An_EMF_framework_for_EventB.pdf An EMF Framework for Event-B]
 +
 
 +
* James Sharp, Using CSP Refusal Specifications to Ensure Event-B Refinement
 +
 
 +
 
 +
[[Category:Meetings]]

Revision as of 08:24, 4 May 2010


Rodin User and Developer Workshop July 15-17 2009

While much of the continued development and use of Rodin takes place within the DEPLOY Project, there is a growing group of users and plug-in developers outside of DEPLOY. In July 2009, DEPLOY organised a workshop at the University of Southampton to bring together existing and potential users and developers of the Rodin toolset and to foster a broader community of Rodin users and developers. For Rodin users the workshop provided an opportunity to share tool experiences and to gain an understanding of on-going tool developments. For plug-in developers the workshop provided an opportunity to showcase their tools and to achieve better coordination of tool development effort. Moving towards an open source development project will mean that features that cannot be resourced from within the project can be developed outside the project. It will also help to guarantee the longer-term future of the Rodin platform. This report contains the abstracts of the presentations at the workshop on 16 and 17 July 2009. The workshop was preceded by a tutorial for Rodin Plug-in developers on 15 July.

We would like to acknowledge the support of the School of Electronics and Computer Science at the University of Southampton (especially the organisational work of Maggie Bond), the DEPLOY project and additional government funding of site's term papers, custom writing company.


Organisers

Michael Butler, University of Southampton

Stefan Hallerstede, Heinrich-Heine-Universität Düsseldorf

Laurent Voisin, Systerel


Report containing the abstracts is available here

Slides from presentations

Wednesday 15 July

Laurent Voisin and Stefan Hallerstede, Rodin Plug-in Development Tutorial

Thursday 16 July

  • Ilya Lopatkin, Towards the SAL plugin for the Rodin platform

Friday 17 July

  • Fredrik Degerlund and Richard Grönblom, A Framework for Code Generation and Scheduling of Event-B Models
  • Eduardo Mazza, A tool for specifying and validating software responsibility
  • James Sharp, Using CSP Refusal Specifications to Ensure Event-B Refinement