Difference between revisions of "ReqsManagement"

From Event-B
Jump to navigationJump to search
imported>Jastram
imported>Jastram
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Description ==
+
== Requirements support now via ProR ==
 +
 
 +
The Requirements Plugin described here is deprecated and will not be developed further.  Instead, the ProR platform is actively being developed.
 +
 
 +
ProR is documented at [http://pror.org pror.org]
 +
 
 +
== Overview ==
 +
 
 +
Requirements Management is a crucial aspect of system development.  Even a proven B-Model is useless if it doesn't realize the desired requirements.  The objective of the requirements plug-in is to allow traceability between requirements and Event-B Models.
  
 
The Requirements Plugin...
 
The Requirements Plugin...
Line 5: Line 13:
 
* Manages Text-Based Requirements
 
* Manages Text-Based Requirements
  
* Requirements are managed and edited in an external Tool (currently Latex, Plain Text and OpenOffice)
+
* Requirements are managed and edited in an external Tool (currently Latex, Plain Text or OpenOffice)
  
 
* Multiple Requirement Specifications can be managed in a Requirements Project.
 
* Multiple Requirement Specifications can be managed in a Requirements Project.
  
== Status ==
+
* A Requirements Project manages Links between individual requirements and the Event-B Specification.
 
 
The Requirements-Plug-In is currently available through CVS only and not yet useable.
 
  
 
== User Documentation ==
 
== User Documentation ==
  
Currently, a new Requirements Project is created by manually creating a file, ending in .req, containing the following:
+
You find the User Documentation in the form of a [[Requirements Tutorial]].
 
 
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
<root>
 
</root>
 
  
 
== Developer Documentation ==
 
== Developer Documentation ==
Line 27: Line 29:
 
=== Architecture ===
 
=== Architecture ===
  
The "Connection" between a Requirements Document (managed and edited outside Rodin) and an Event-B Machine is a .req file.  This file can manage any number of Requirements Documents.
+
[[Image:rodin-requirements.png|right]]
 +
 
 +
In order to manage Requirements in Rodin, a Requirements Map must be created.  This Map is part of a Project.  It keeps track of Requirements Documents that are managed outside of Rodin.  Currently, Plain Text, Latex and OpenOffice are supported.
 +
 
 +
Each Requirements Document is broken into Requirements.  Within Rodin, only textual Requirements are visible and Formatting is lost.  Individual Requirements can then be marked as relevant and fulfilled, and can be linked with individual Event-B-Elements.
 +
 
 +
All additional information (links, fulfillment information, etc.) is stored in the Map, nothing is stored in the Requirements Documents or Event-B.
 +
 
 +
More than one Map can be created.  This could be useful for different relationships, e.g. "fulfills", "tests", etc.
  
 
=== Package Structure ===
 
=== Package Structure ===
Line 33: Line 43:
 
The package name space is fr.systerel.reqsmgr
 
The package name space is fr.systerel.reqsmgr
  
* The elemnts-Package contains the interfaces to the entities inside Rodin, which are Associations, Documents and Requirements.  The elements.basis package provides implementations of those interfaces.  This package is a good starting point for understanding the data structures.
+
* The elements package contains the interfaces to the entities inside Rodin, which are Associations, Documents and Requirements.  The elements.basis package provides implementations of these interfaces.  This package is a good starting point for understanding the data structures.
 +
 
 +
* The external_docs package contains the interfaces to entities outside Rodin, which are Document, ExternalRequirement, etc.
  
* The exteranl_docs package contains the interfaces to entities outside Rodin, which are Document, ExternalRequirement, etc.
+
[[Category:User documentation]]
 +
[[Category:Design proposal]]
 +
[[Category:Requirement Plugin]]

Latest revision as of 14:16, 3 December 2010

Requirements support now via ProR

The Requirements Plugin described here is deprecated and will not be developed further. Instead, the ProR platform is actively being developed.

ProR is documented at pror.org

Overview

Requirements Management is a crucial aspect of system development. Even a proven B-Model is useless if it doesn't realize the desired requirements. The objective of the requirements plug-in is to allow traceability between requirements and Event-B Models.

The Requirements Plugin...

  • Manages Text-Based Requirements
  • Requirements are managed and edited in an external Tool (currently Latex, Plain Text or OpenOffice)
  • Multiple Requirement Specifications can be managed in a Requirements Project.
  • A Requirements Project manages Links between individual requirements and the Event-B Specification.

User Documentation

You find the User Documentation in the form of a Requirements Tutorial.

Developer Documentation

The Requirements Plug-in has the plug-in ID fr.systerel.reqsmgr

Architecture

Rodin-requirements.png

In order to manage Requirements in Rodin, a Requirements Map must be created. This Map is part of a Project. It keeps track of Requirements Documents that are managed outside of Rodin. Currently, Plain Text, Latex and OpenOffice are supported.

Each Requirements Document is broken into Requirements. Within Rodin, only textual Requirements are visible and Formatting is lost. Individual Requirements can then be marked as relevant and fulfilled, and can be linked with individual Event-B-Elements.

All additional information (links, fulfillment information, etc.) is stored in the Map, nothing is stored in the Requirements Documents or Event-B.

More than one Map can be created. This could be useful for different relationships, e.g. "fulfills", "tests", etc.

Package Structure

The package name space is fr.systerel.reqsmgr

  • The elements package contains the interfaces to the entities inside Rodin, which are Associations, Documents and Requirements. The elements.basis package provides implementations of these interfaces. This package is a good starting point for understanding the data structures.
  • The external_docs package contains the interfaces to entities outside Rodin, which are Document, ExternalRequirement, etc.