The project has been approved and is awaiting provisioning.
ReqCycle project is a proposed open source project under the PolarSys Top level Project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Eclipse Proposals Forum.
Model-driven engineering is more and more used and industry has started to switch from traditional document-based approach to this new approach. There is a clear need for system engineers to be able to weave textual requirements and models all along the development cycle: formalize requirements, refine them with specification models, implement them with design models and verify them with testing models.
So there is a growing request from industry to get an open source solution able to create textual requirements or gather requirements wherever they exist (documents, Database, model elements, annotations in code…) and to give ability to define links from those requirements to any development artefact including models, but also test cases, code…
There exist open source solutions to manage requirements but they generally provide limited flexibility in requirement organization/classification. Industry needs tooling able to: 1) classify requirements and links through a customizable data model to organize requirements and links according to scopes (customer, system, subsystem A, SubSystem B, …); 2) check coverage with traceability matrices and perform impact analysis from customer needs to models. (and models to requirements); and 3) check coverage with traceability matrices and perform impact analysis from customer needs to models. (and models to requirements).
There exist open source solutions that allow creating links between requirements and other objects but there the creation of links is generally too generic to provide required guidance and semantics. Industry seeks for tooling able to give semantics to the links created between requirements and development artefacts: for instance "refine", "satisfy", "implement", verify", … and it must be possible to restrict links so that they apply only between some requirements (some scope for instance) and some artefacts (SysML blocks for instance).
ReqCycle has been developed on the basis of TOPCASED Requirement component in order to offer an Open Source solution addressing both requirement management (create data model, create/import/reference requirements…) and requirement traceability to any development artefact that can be clearly identified as a "Reacheable object" (through a Unified Resource Identifier) and with flexibility to conform to a custom process and associated data model.
ReqCycle can define data models to classify requirements in scopes (team organization) and in types (list of attributes) like "functional requirements", "safety requirements", and more.
ReqCycle can create requirements, import/update or reference textual requirements existing in different data sources or formats such as ReqIF (.reqIf), OpenOffice Writer (.odt) , Microsoft Word™(.docx), openOffice Calc (.ods) or Microsoft Excel™(.xslx). It can also reference requirements contained in EMF models through usage of OCL rules to identify requirements.
ReqCycle can display all imported/referenced/created requirements into treeview or tables and filter them with custom criteria on requirements attributes and values.
ReqCycle can define traceability link types from requirement to a model element or code, provide associated semantics to the links and attributes (for instance "lifecycle" attribute to manage requirement validation or "rationale" attribute in case of "satisfy" semantics). The requirement can be restricted to a given scope or structure and the model element can be restricted to a specific metaclass/concept.
ReqCycle can create traceability links between requirements and UML/SysML Papyrus models or Java™ code according to the traceability link types defined in preferences. ReqCycle provides extension points to create traceability to other models, code or other artefacts. ReqCycle can capture existing traceability links coming from different sources like SysML models or Java code.
ReqCycle can display all traceability links (created or captured) into a treeview or a table and filter links with custom criteria.
The framework can be extended to add new requirement import connectors, new traceability analysis engines, new artefacts to take into account as link targets.
ReqCycle addresses both requirement management (create data model, create/import/reference requirements…) and requirement traceability of development artefacts that can be clearly identified as "Reacheable objects" (through a Unified Resource Identifier) and with flexibility to conform to a custom process and associated data model.
ReqCycle is generally used in two different steps: configuration and operations. Configuration is generally done by "methods/quality" team while operations are done by system engineers.
|Configuration: Define data model for your project or your company with scopes and requirements types (list of attributes).|
|Configuration: Define kinds of traceability links needed by the project or your company.|
|Operations: Import/update/reference requirements and manage them according to the data model (scopes, requirements structure).|
|Operations: Create links between requirements and development artefacts according to traceability link types defined in configuration.|
|Operations: capture other traceability links according to registered traceability engines and aggregate those links with those created previously. Calculate traceability metrics. Export traceability data.|
Example of SysML requirement traceability captured and visualized in a treeview.
ReqCycle is currently experimented in several contexts (avionics, railways, automotive) to support use cases from AGeSys French collaborative project.
ReqCycle is a transversal component based on top of Eclipse-based technologies (EMF, M2T, RMF, Papyrus) that can be used in any industrial domain where requirements are key artefacts. PolarSys has already identified the need of two components to manage requirements and their traceability on top of Eclipse technologies. ReqCycle seems to match those expectations and PolarSys is then the natural place to host this project.
AGeSys consortium is offering ReqCycle as initial code base. See ReqCycle gitHub.
Third party libraries
- Google guava (license: http://www.apache.org/licenses/LICENSE-2.0)
- BluePrint : (license: BSD-like license, https://github.com/tinkerpop/blueprints/raw/master/LICENSE.txt)
- OpenRDF Sesame : (license: https://bitbucket.org/openrdf/sesame/raw/b21436e56ae5a0c1434117ccc5c97c7151a5fe05/core/LICENSE.txt)
Legal IssuesAll contributions will be distributed under the Eclipse Public License.
The following individuals are proposed as initial committers to the project:
- Anass RADOUANI, Atos
- He is a committer on several TOPCASED components including TOPCASED-requirement where he has made significant contributions over the last years. He is the main developer of ReqCycle
- Mathieu VELTEN, Atos
- He is an Eclipse committer on MDT Papyrus and works on TOPCASED.
We welcome additional committers and contributions.
The following individual is proposed as leader of the project:
- Raphaël Faudou, Samares Engineering
- He has written the ReqCycle specifications in the frame of ReqCycle project.
The following Architecture Council members will mentor this project:
- Benoit LANGLOIS (Thales Global Services)
- Jonas Helming
The following individuals, organisations, companies and projects have expressed interest in this project:
- November 2013: code submission and IP review
- January 2014: first builds on the Eclipse infrastructure.
Changes to this Document