Difference between revisions of "D32 General Platform Maintenance"

From Event-B
Jump to navigationJump to search
imported>Renato
imported>Tommy
Line 4: Line 4:
 
The terse list below gives an overwiew of the noteworthy features added in the main platform during the past year:
 
The terse list below gives an overwiew of the noteworthy features added in the main platform during the past year:
 
* Proof replay on undischarged POs (releases 1.3 and upper)
 
* Proof replay on undischarged POs (releases 1.3 and upper)
: It often happens, while modifying a model, that a set of previously manually discharged POs are slightly changed and need to be discharged again. However, replaying the proof for those POs could most of the time be enough to discharge it. Hence, a command was added to manually try replaying the proofs for a set of undischarged POs. This request was expressed by [https://sourceforge.net/tracker/?func=detail&aid=2949606&group_id=108850&atid=651672 end users]. See [http://wiki.event-b.org/index.php/Proof_Obligation_Commands].
+
: It often happens, while modifying a model, that a set of previously manually discharged POs are slightly changed and need to be discharged again. However, replaying the proof for those POs could most of the time be enough to discharge it. Hence, a command was added to manually try replaying the proofs for a set of undischarged POs. This request was expressed by end users<ref>https://sourceforge.net/tracker/?func=detail&aid=2949606&group_id=108850&atid=651672</ref>. See <ref>http://wiki.event-b.org/index.php/Proof_Obligation_Commands</ref>.
 
* Rule Details View (releases 2.0 and upper)
 
* Rule Details View (releases 2.0 and upper)
: When doing an interactive proof, one is guided by the proof tree appearing on the proof tree view. However, it is sometimes needed to get more informations about the rules being involved in a proof, such as instantiation details, used hypotheses, etc. The [http://wiki.event-b.org/index.php/Rodin_Proving_Perspective#Rule_Details_View Rule Details View] displaying such details has been added.
+
: When doing an interactive proof, one is guided by the proof tree appearing on the proof tree view. However, it is sometimes needed to get more informations about the rules being involved in a proof, such as instantiation details, used hypotheses, etc. The Rule Details View<ref>http://wiki.event-b.org/index.php/Rodin_Proving_Perspective#Rule_Details_View</ref> displaying such details has been added.
 
* Refactory plug-in (releases 1.2 and upper)
 
* Refactory plug-in (releases 1.2 and upper)
: The [http://wiki.event-b.org/index.php/Refactoring_Framework Refactory] plug-in allows the users of the Rodin platform to rename modelling elements. With an unique operation, both declaration and occurrences of an element are renamed. Moreover, renaming an element does not modify their existing proof state (no loss of proof).
+
: The Refactory<ref>http://wiki.event-b.org/index.php/Refactoring_Framework</ref> plug-in allows the users of the Rodin platform to rename modelling elements. With an unique operation, both declaration and occurrences of an element are renamed. Moreover, renaming an element does not modify their existing proof state (no loss of proof).
 
* Mathematical extensions (releases 2.0 and upper)
 
* Mathematical extensions (releases 2.0 and upper)
: The mathematical extension integration required important modifications to the core platform. See [http://wiki.event-b.org/index.php/D32_Mathematical_Extensions].
+
: The mathematical extension integration required important modifications to the core platform. See <ref>http://wiki.event-b.org/index.php/D32_Mathematical_Extensions</ref>.
 
* Documentation
 
* Documentation
: Plug-in developers expressed their need to get a detailed documentation about Rodin extension ability. A dedicated [http://wiki.event-b.org/index.php/Plug-in_Tutorial tutorial][http://wiki.event-b.org/index.php/D23_General_Platform_Maintenance#Available_Documentation] has been written accordingly, and was the support of a training session given at the [http://www.event-b.org/rodin10.html Rodin User and Developer Workshop] in Düsseldorf this year.
+
: Plug-in developers expressed their need to get a detailed documentation about Rodin extension ability. A dedicated tutorial<ref>http://wiki.event-b.org/index.php/Plug-in_Tutorial </ref><ref name="documentation">http://wiki.event-b.org/index.php/D23_General_Platform_Maintenance#Available_Documentation</ref> has been written accordingly, and was the support of a training session given at the Rodin User and Developer Workshop<ref>http://www.event-b.org/rodin10.html </ref> in Düsseldorf this year.
: The user manual, user tutorial and other developer documentation on the [http://wiki.event-b.org wiki] are continuously, and collaboratively updated and enhanced. Moreover, as soon as a new feature is added to the platform, the corresponding user documentation is created on the Wiki.
+
: The user manual, user tutorial and other developer documentation on the wiki<ref>http://wiki.event-b.org</ref> are continuously, and collaboratively updated and enhanced. Moreover, as soon as a new feature is added to the platform, the corresponding user documentation is created on the Wiki.
  
See the [http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Available_Documentation Release Notes] and the [http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Available_Documentation SourceForge] databases (bugs and feature requests) for details about the previous and upcoming releases of the Rodin platform.
+
See the Release Notes<ref name="documentation">http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Available_Documentation</ref> and the SourceForge<ref name=documentation>http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Available_Documentation</ref> databases (bugs and feature requests) for details about the previous and upcoming releases of the Rodin platform.
  
 
= Motivations =
 
= Motivations =
 
The evolutive maintenance (resp. corrective maintenance) has its origin in the DEPLOY project's description of work, and the various requests (resp. bug reports) listed by WP1-4 partners, developers and users. Since the DEPLOY project's birth, various streams can be used to express feature requests or track an encountered bug :
 
The evolutive maintenance (resp. corrective maintenance) has its origin in the DEPLOY project's description of work, and the various requests (resp. bug reports) listed by WP1-4 partners, developers and users. Since the DEPLOY project's birth, various streams can be used to express feature requests or track an encountered bug :
: - [http://wiki.event-b.org/index.php/D23_General_Platform_Maintenance#Available_Documentation dedicated trackers],
+
: - dedicated trackers<ref name="documentation">http://wiki.event-b.org/index.php/D23_General_Platform_Maintenance#Available_Documentation</ref>,
 
: - DEPLOY mailing lists.
 
: - DEPLOY mailing lists.
 
Maintenance tasks to perform are collected from the aforementioned streams and scheduled during WP9 meetings. These tasks are processed in the same way as the task planned in the description of work.
 
Maintenance tasks to perform are collected from the aforementioned streams and scheduled during WP9 meetings. These tasks are processed in the same way as the task planned in the description of work.
Line 30: Line 30:
 
| DoW / WP1-4 partners || Prover efficiency and integrity || x || x
 
| DoW / WP1-4 partners || Prover efficiency and integrity || x || x
 
|-
 
|-
| Qualoss assessment || Test reports and test coverage [http://bscw.cs.ncl.ac.uk/bscw/bscw.cgi/105531] ||  || x
+
| Qualoss assessment || Test reports and test coverage <ref>http://bscw.cs.ncl.ac.uk/bscw/bscw.cgi/105531</ref> ||  || x
 
|-  
 
|-  
 
| WP1-4 partners|| Updating fields of records || x ||  
 
| WP1-4 partners|| Updating fields of records || x ||  
Line 40: Line 40:
 
| WP1-4 partners|| Increase platform stability ||  || x
 
| WP1-4 partners|| Increase platform stability ||  || x
 
|-
 
|-
| WP1-4 partners|| Comments everywhere [https://sourceforge.net/tracker/index.php?func=detail&aid=3007797&group_id=108850&atid=651672] ||  || x
+
| WP1-4 partners|| Comments everywhere <ref>https://sourceforge.net/tracker/index.php?func=detail&aid=3007797&group_id=108850&atid=651672</ref> ||  || x
 
|-
 
|-
 
| WP1-4 partners|| Plug-in incompatibilities ||  || x
 
| WP1-4 partners|| Plug-in incompatibilities ||  || x
 
|-
 
|-
| WP1-4 partners|| Search in goal window [https://sourceforge.net/tracker/?func=detail&atid=651672&aid=3092835&group_id=108850] ||  || x
+
| WP1-4 partners|| Search in goal window <ref>https://sourceforge.net/tracker/?func=detail&atid=651672&aid=3092835&group_id=108850</ref> ||  || x
 
|-
 
|-
| WP1-4 partners|| Preferences for the automatic tactics [http://sourceforge.net/tracker/index.php?func=detail&aid=1581775&group_id=108850&atid=651672] ||  || x
+
| WP1-4 partners|| Preferences for the automatic tactics <ref>http://sourceforge.net/tracker/index.php?func=detail&aid=1581775&group_id=108850&atid=651672</ref> ||  || x
 
|-
 
|-
 
| WP1-4 partners|| Hierarchy / refinement view ||  || x
 
| WP1-4 partners|| Hierarchy / refinement view ||  || x
 
|-
 
|-
| Plug-in developers|| API to extend the Pretty Printer view [http://sourceforge.net/tracker/?func=detail&aid=2926238&group_id=108850&atid=651672] || x ||
+
| Plug-in developers|| API to extend the Pretty Printer view <ref>http://sourceforge.net/tracker/?func=detail&aid=2926238&group_id=108850&atid=651672</ref> || x ||
 
|-
 
|-
| Plug-in developers|| View the error log [http://sourceforge.net/tracker/?func=detail&aid=2990974&group_id=108850&atid=651672] || x ||
+
| Plug-in developers|| View the error log <ref>http://sourceforge.net/tracker/?func=detail&aid=2990974&group_id=108850&atid=651672</ref> || x ||
 
|-
 
|-
 
| Plug-in developers|| Prover API || x ||
 
| Plug-in developers|| Prover API || x ||
Line 60: Line 60:
 
| End Users|| 64-bit Rodin for Mac || x ||
 
| End Users|| 64-bit Rodin for Mac || x ||
 
|-
 
|-
| End Users|| Adding a replay proof command in the Event-B explorer [http://sourceforge.net/tracker/?func=detail&aid=2949606&group_id=108850&atid=651672] || x ||
+
| End Users|| Adding a replay proof command in the Event-B explorer <ref>http://sourceforge.net/tracker/?func=detail&aid=2949606&group_id=108850&atid=651672</ref> || x ||
 
|-  
 
|-  
| End Users|| Having auto-completion in proof control [http://sourceforge.net/tracker/?func=detail&aid=2979367&group_id=108850&atid=651672] || x ||
+
| End Users|| Having auto-completion in proof control <ref>http://sourceforge.net/tracker/?func=detail&aid=2979367&group_id=108850&atid=651672</ref> || x ||
 
|-   
 
|-   
| End Users|| Displaying instantiated hypotheses [http://sourceforge.net/tracker/?func=detail&aid=3008636&group_id=108850&atid=651672] || x ||
+
| End Users|| Displaying instantiated hypotheses <ref>http://sourceforge.net/tracker/?func=detail&aid=3008636&group_id=108850&atid=651672</ref> || x ||
 
|-   
 
|-   
 
| End Users || Displaying the inherited elements || || x
 
| End Users || Displaying the inherited elements || || x
Line 76: Line 76:
 
: The Rodin platforms family is then composed of three executables : 32-bit platforms for Linux and Windows environments and a 64-bit platform for Mac computers.
 
: The Rodin platforms family is then composed of three executables : 32-bit platforms for Linux and Windows environments and a 64-bit platform for Mac computers.
 
* Rodin sources
 
* Rodin sources
: The sources of Rodin releases are now packed with the platform. It has been decided to ship the sources in every platform release. It is, for developers, a convenient alternative to the available sources on SourceForge (See [http://wiki.event-b.org/index.php/Using_Rodin_as_Target_Platform]).
+
: The sources of Rodin releases are now packed with the platform. It has been decided to ship the sources in every platform release. It is, for developers, a convenient alternative to the available sources on SourceForge (See <ref>http://wiki.event-b.org/index.php/Using_Rodin_as_Target_Platform</ref>).
 
* Release notes
 
* Release notes
 
: The release notes contain information about the released plug-ins and centralise the requirements or existing issues which could not be stated at the main platform release date. Thus, since Rodin 2.0 release, it has been chosen to link the contents of the release notes text file included in Rodin releases, with the contents of the dedicated Wiki page.
 
: The release notes contain information about the released plug-ins and centralise the requirements or existing issues which could not be stated at the main platform release date. Thus, since Rodin 2.0 release, it has been chosen to link the contents of the release notes text file included in Rodin releases, with the contents of the dedicated Wiki page.
Line 83: Line 83:
 
The following pages give useful information about the Rodin platform releases:
 
The following pages give useful information about the Rodin platform releases:
 
* Release notes.
 
* Release notes.
: See [http://wiki.event-b.org/index.php/Rodin_Platform_Releases Rodin Platform Releases].
+
: See <ref>http://wiki.event-b.org/index.php/Rodin_Platform_Releases Rodin Platform Releases</ref>.
 
* Bugs.
 
* Bugs.
: See [http://sourceforge.net/tracker/?atid=651669&group_id=108850].
+
: See <ref>http://sourceforge.net/tracker/?atid=651669&group_id=108850</ref>.
 
* Feature requests.
 
* Feature requests.
: See [http://sourceforge.net/tracker/?group_id=108850&atid=651672].
+
: See <ref>http://sourceforge.net/tracker/?group_id=108850&atid=651672</ref>.
  
 
= Planning =
 
= Planning =
During the coming year, special efforts will be made on the following topics, which where pointed out at the last plenary meeting by the WP1-WP4 and encompass end-user requests (see scheduled tasks in [http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Motivations]):
+
During the coming year, special efforts will be made on the following topics, which where pointed out at the last plenary meeting by the WP1-WP4 and encompass end-user requests (see scheduled tasks in <ref>http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Motivations</ref>):
 
* Platform stability and performances
 
* Platform stability and performances
 
: Currently, users struggle through performance flows in the Rodin platform while editing or proving a model. Solving these issues represents a real challenge for the coming year and will be mandatory for the industrial adoption of Rodin and the Event-B methodology.
 
: Currently, users struggle through performance flows in the Rodin platform while editing or proving a model. Solving these issues represents a real challenge for the coming year and will be mandatory for the industrial adoption of Rodin and the Event-B methodology.
Line 97: Line 97:
 
* Plug-in incompatibilities
 
* Plug-in incompatibilities
 
: The problem occurs when several plug-ins are installed and conflicts exist between them. The cumbersome behaviour often spawned by such incompatibilities leads to user's disappointment, or even to the impossility to use the platform. Particular efforts will be given to identify the sources of incompatibilities among plug-ins and coordinate the assignment and processing of the necessary corrective maintenance tasks.
 
: The problem occurs when several plug-ins are installed and conflicts exist between them. The cumbersome behaviour often spawned by such incompatibilities leads to user's disappointment, or even to the impossility to use the platform. Particular efforts will be given to identify the sources of incompatibilities among plug-ins and coordinate the assignment and processing of the necessary corrective maintenance tasks.
 +
 +
===References===
 +
<references/>
  
 
[[Category:D32 Deliverable]]
 
[[Category:D32 Deliverable]]

Revision as of 18:03, 19 November 2010

Overview

The main goal of the platform corrective and evolutive maintenance is to fix the listed known bugs, and implement some new requested features. As in the previous years of DEPLOY, these bugs and features are reported either by mail or through dedicated SourceForge trackers.

The terse list below gives an overwiew of the noteworthy features added in the main platform during the past year:

  • Proof replay on undischarged POs (releases 1.3 and upper)
It often happens, while modifying a model, that a set of previously manually discharged POs are slightly changed and need to be discharged again. However, replaying the proof for those POs could most of the time be enough to discharge it. Hence, a command was added to manually try replaying the proofs for a set of undischarged POs. This request was expressed by end users[1]. See [2].
  • Rule Details View (releases 2.0 and upper)
When doing an interactive proof, one is guided by the proof tree appearing on the proof tree view. However, it is sometimes needed to get more informations about the rules being involved in a proof, such as instantiation details, used hypotheses, etc. The Rule Details View[3] displaying such details has been added.
  • Refactory plug-in (releases 1.2 and upper)
The Refactory[4] plug-in allows the users of the Rodin platform to rename modelling elements. With an unique operation, both declaration and occurrences of an element are renamed. Moreover, renaming an element does not modify their existing proof state (no loss of proof).
  • Mathematical extensions (releases 2.0 and upper)
The mathematical extension integration required important modifications to the core platform. See [5].
  • Documentation
Plug-in developers expressed their need to get a detailed documentation about Rodin extension ability. A dedicated tutorial[6][7] has been written accordingly, and was the support of a training session given at the Rodin User and Developer Workshop[8] in Düsseldorf this year.
The user manual, user tutorial and other developer documentation on the wiki[9] are continuously, and collaboratively updated and enhanced. Moreover, as soon as a new feature is added to the platform, the corresponding user documentation is created on the Wiki.

See the Release Notes[7] and the SourceForge[7] databases (bugs and feature requests) for details about the previous and upcoming releases of the Rodin platform.

Motivations

The evolutive maintenance (resp. corrective maintenance) has its origin in the DEPLOY project's description of work, and the various requests (resp. bug reports) listed by WP1-4 partners, developers and users. Since the DEPLOY project's birth, various streams can be used to express feature requests or track an encountered bug :

- dedicated trackers[7],
- DEPLOY mailing lists.

Maintenance tasks to perform are collected from the aforementioned streams and scheduled during WP9 meetings. These tasks are processed in the same way as the task planned in the description of work.

The following table describes the main tasks performed or scheduled tasks motivating the evolutive maintenance:

Origin Maintenance Task Done in 2010 Scheduled in 2011
DoW / WP1-4 partners Prover efficiency and integrity x x
Qualoss assessment Test reports and test coverage [10] x
WP1-4 partners Updating fields of records x
WP1-4 partners Team work x
WP1-4 partners Edition x
WP1-4 partners Increase platform stability x
WP1-4 partners Comments everywhere [11] x
WP1-4 partners Plug-in incompatibilities x
WP1-4 partners Search in goal window [12] x
WP1-4 partners Preferences for the automatic tactics [13] x
WP1-4 partners Hierarchy / refinement view x
Plug-in developers API to extend the Pretty Printer view [14] x
Plug-in developers View the error log [15] x
Plug-in developers Prover API x
Plug-in developers A different update site for unstable plug-ins x
End Users 64-bit Rodin for Mac x
End Users Adding a replay proof command in the Event-B explorer [16] x
End Users Having auto-completion in proof control [17] x
End Users Displaying instantiated hypotheses [18] x
End Users Displaying the inherited elements x

Choices / Decisions

  • Task priority
Listed tasks are being given a priority during WP9 bi-weekly meetings, and then assigned to partners in charge of their processing. It has been decided to give a higher priority to WP1-4 partner's requests.
  • 64-bit release of Rodin for Mac platforms
A major UI bug, due to some incompatibilities between Eclipse 3.5 and Java 1.6 on Mac platforms motivated the migration to the Eclipse 3.6 as basis for the Rodin 2.0 platform. In the meantime, as the 32-bit Java Virtual Machine is no longer supported on Mac platforms, Rodin migrated to Java 1.6, so that the release 2.0 of Rodin became a 64-bit Mac platform only.
The Rodin platforms family is then composed of three executables : 32-bit platforms for Linux and Windows environments and a 64-bit platform for Mac computers.
  • Rodin sources
The sources of Rodin releases are now packed with the platform. It has been decided to ship the sources in every platform release. It is, for developers, a convenient alternative to the available sources on SourceForge (See [19]).
  • Release notes
The release notes contain information about the released plug-ins and centralise the requirements or existing issues which could not be stated at the main platform release date. Thus, since Rodin 2.0 release, it has been chosen to link the contents of the release notes text file included in Rodin releases, with the contents of the dedicated Wiki page.

Available Documentation

The following pages give useful information about the Rodin platform releases:

  • Release notes.
See [20].
  • Bugs.
See [21].
  • Feature requests.
See [22].

Planning

During the coming year, special efforts will be made on the following topics, which where pointed out at the last plenary meeting by the WP1-WP4 and encompass end-user requests (see scheduled tasks in [23]):

  • Platform stability and performances
Currently, users struggle through performance flows in the Rodin platform while editing or proving a model. Solving these issues represents a real challenge for the coming year and will be mandatory for the industrial adoption of Rodin and the Event-B methodology.
  • Prover efficiency and integrity
Reaching a state where POs are hundred percent automatically proved is the wager that Rodin developers aim. Getting close to this ideal will increase the satisfaction of industrial users and decrease costs. Enhancing prover facilities are as well, one significant help given to the person in charge of the proving. Enhancing prover is then a continuous task that will be performed until the DEPLOY project's end. However, such automatic or manual pieces of program are main points of integrity concerns. Ensuring their correctness and getting more confidence into them, will thus be a task conducted during this coming year.
  • Plug-in incompatibilities
The problem occurs when several plug-ins are installed and conflicts exist between them. The cumbersome behaviour often spawned by such incompatibilities leads to user's disappointment, or even to the impossility to use the platform. Particular efforts will be given to identify the sources of incompatibilities among plug-ins and coordinate the assignment and processing of the necessary corrective maintenance tasks.

References

  1. https://sourceforge.net/tracker/?func=detail&aid=2949606&group_id=108850&atid=651672
  2. http://wiki.event-b.org/index.php/Proof_Obligation_Commands
  3. http://wiki.event-b.org/index.php/Rodin_Proving_Perspective#Rule_Details_View
  4. http://wiki.event-b.org/index.php/Refactoring_Framework
  5. http://wiki.event-b.org/index.php/D32_Mathematical_Extensions
  6. http://wiki.event-b.org/index.php/Plug-in_Tutorial
  7. 7.0 7.1 7.2 7.3 http://wiki.event-b.org/index.php/D23_General_Platform_Maintenance#Available_Documentation Cite error: Invalid <ref> tag; name "documentation" defined multiple times with different content Cite error: Invalid <ref> tag; name "documentation" defined multiple times with different content Cite error: Invalid <ref> tag; name "documentation" defined multiple times with different content
  8. http://www.event-b.org/rodin10.html
  9. http://wiki.event-b.org
  10. http://bscw.cs.ncl.ac.uk/bscw/bscw.cgi/105531
  11. https://sourceforge.net/tracker/index.php?func=detail&aid=3007797&group_id=108850&atid=651672
  12. https://sourceforge.net/tracker/?func=detail&atid=651672&aid=3092835&group_id=108850
  13. http://sourceforge.net/tracker/index.php?func=detail&aid=1581775&group_id=108850&atid=651672
  14. http://sourceforge.net/tracker/?func=detail&aid=2926238&group_id=108850&atid=651672
  15. http://sourceforge.net/tracker/?func=detail&aid=2990974&group_id=108850&atid=651672
  16. http://sourceforge.net/tracker/?func=detail&aid=2949606&group_id=108850&atid=651672
  17. http://sourceforge.net/tracker/?func=detail&aid=2979367&group_id=108850&atid=651672
  18. http://sourceforge.net/tracker/?func=detail&aid=3008636&group_id=108850&atid=651672
  19. http://wiki.event-b.org/index.php/Using_Rodin_as_Target_Platform
  20. http://wiki.event-b.org/index.php/Rodin_Platform_Releases Rodin Platform Releases
  21. http://sourceforge.net/tracker/?atid=651669&group_id=108850
  22. http://sourceforge.net/tracker/?group_id=108850&atid=651672
  23. http://wiki.event-b.org/index.php/D32_General_Platform_Maintenance#Motivations