| <!-- | |
| This document is provided as a template along with some guidance for creating | |
| your project proposal. This is just a template. Feel free to change it as | |
| you see fit (add sections, remove section). We feel, however, that the | |
| suggestions represented in this document represent the reasonable minimum | |
| amount of information to move forward. | |
| Please keep the formatting in this document simple. Please do not edit | |
| this document in Microsoft Word as it adds huge piles of markup that make | |
| it difficult to restyle. | |
| More information is available here: | |
| http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase | |
| Direct any questions about this template to emo@eclipse.org | |
| --> | |
| <html> | |
| <head> | |
| <!-- | |
| Include the title here. We will parse it out of here and include it on the | |
| rendered webpage. Do not duplicate the title within the text of your page. | |
| --> | |
| <title>ReqCycle</title> | |
| </head> | |
| <!-- | |
| We make use of the 'classic' HTML Definition List (dl) tag to specify | |
| committers. I know... you haven't seen this tag in a long while... | |
| --> | |
| <style type="text/css"> | |
| dt { | |
| display: list-item; | |
| list-style-position: outside; | |
| list-style-image: | |
| url(/eclipse.org-common/themes/Phoenix/images/arrow.gif); | |
| margin-left: 16px; | |
| } | |
| dd { | |
| margin-left: 25px; | |
| margin-bottom: 5px; | |
| } | |
| </style> | |
| <body> | |
| <p> | |
| ReqCycle project is a proposed open source project under the <a | |
| href="http://Polarsys.org/">PolarSys Top level Project</a>. | |
| </p> | |
| <!-- | |
| The communication channel must be specified. Typically, this is the | |
| "Proposals" forum. In general, you don't need to change this. | |
| --> | |
| <p> | |
| 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 <a | |
| href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse | |
| Proposals</a> Forum. | |
| </p> | |
| <h2>Background</h2> | |
| <!-- | |
| Optionally provide the background that has lead you to creating this project. | |
| --> | |
| <p>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, satisfy | |
| them with design models and verify them with testing models.</p> | |
| <p>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…</p> | |
| <p>There exist open source solutions to manage requirements but | |
| they generally provide limited flexibility in requirement | |
| organization/classification. Industry needs tooling able to classify | |
| requirements and links through a customizable data model to organize | |
| requirements and links according to scopes (customer, system, | |
| subsystem A, SubSystem B, …).</p> | |
| <p>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).</p> | |
| <p> | |
| ReqCycle has been developed on the basis of <a | |
| href="http://www.topcased.org">TOPCASED</a> 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. | |
| </p> | |
| <h2>Scope</h2> | |
| <!-- | |
| All projects must have a well-defined scope. Describe, concisely, what | |
| is in-scope and (optionally) what is out-of-scope. An Eclipse project | |
| cannot have an open-ended scope. | |
| --> | |
| <p>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.</p> | |
| <p>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.</p> | |
| <p>ReqCycle can display all imported/referenced/created | |
| requirements into treeview or tables and filter them with custom | |
| criteria on requirements attributes and values.</p> | |
| <p>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.</p> | |
| <p>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.</p> | |
| <p>ReqCycle can display all traceability links (created or | |
| captured) into a treeview or a table and filter links with custom | |
| criteria.</p> | |
| <p>The framework can be extended to add new requirement import | |
| connectors, new traceability analysis engines, new artefacts to take | |
| into account as link targets.</p> | |
| <p> | |
| <img src='ReqCycleBigPicture.png' alt="" width="480"/> | |
| </p> | |
| <br /> | |
| <h2>Description</h2> | |
| <!-- | |
| Describe the project here. Be concise, but provide enough information that | |
| somebody who doesn't already know very much about your project idea or domain | |
| has at least a fighting chance of understanding its purpose. | |
| --> | |
| <p>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.</p> | |
| <p>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.</p> | |
| <table> | |
| <tr> | |
| <td><img src='1.png' alt=""/></td> | |
| <td>Configuration: Define data model for your project or your | |
| company with scopes and requirements types (list of attributes).</td> | |
| </tr> | |
| <tr> | |
| <td><img src='2.png' alt=""/></td> | |
| <td>Configuration: Define kinds of traceability links needed by | |
| the project or your company.</td> | |
| </tr> | |
| <tr> | |
| <td><img src='3.png' alt=""/></td> | |
| <td>Operations: Import/update/reference requirements and manage | |
| them according to the data model (scopes, requirements structure).</td> | |
| </tr> | |
| <tr> | |
| <td><img src='4.png' alt=""/></td> | |
| <td>Operations: Create links between requirements and | |
| development artefacts according to traceability link types defined | |
| in configuration.</td> | |
| </tr> | |
| <tr> | |
| <td><img src='5.png' alt=""/></td> | |
| <td>Operations: capture other traceability links according to | |
| registered traceability engines and aggregate those links with those | |
| created previously. Calculate traceability metrics. Export | |
| traceability data.</td> | |
| </tr> | |
| </table> | |
| <p>Example of SysML requirement traceability captured and | |
| visualized in a treeview.</p> | |
| <p> | |
| <img src="Traceability.png" alt="" width="480"/> | |
| </p> | |
| <p> | |
| ReqCycle is currently experimented in several contexts (avionics, | |
| railways, automotive) to support use cases from <a | |
| href="http://www.systematic-paris-region.org/fr/projets/agesys">AGeSys</a> | |
| French collaborative project. | |
| </p> | |
| <h2>Why PolarSys?</h2> | |
| <!-- | |
| Answer these two questions: What value does this project bring to the Eclipse | |
| community? What value do you expect to obtain from hosting your project at Eclipse? | |
| What value do you get by having your project at Eclipse over and above the value | |
| of hosting at Eclipse Labs? | |
| --> | |
| <p>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.</p> | |
| <h2>Initial Contribution</h2> | |
| <!-- | |
| Projects are expected to arrive at Eclipse with existing code. | |
| Describe the existing code that will be contributed to the project. Please provide | |
| a couple of paragraphs describing the code with modest detail, including important | |
| information like code ownership (who holds the copyright?), and some consideration | |
| of community that exists around the code. Include a listing of third-party libraries | |
| and associated licenses. | |
| --> | |
| <p> | |
| AGeSys consortium is offering ReqCycle as initial code base. See <a | |
| href="https://github.com/aradouan/ReqCycle/">ReqCycle gitHub</a>. | |
| </p> | |
| <h2>Third party libraries</h2> | |
| <ul> | |
| <li><a href="https://code.google.com/p/guava-libraries">Google | |
| guava</a> (license: <a href="http://www.apache.org/licenses/LICENSE-2.0"> | |
| http://www.apache.org/licenses/LICENSE-2.0</a>)</li> | |
| <li><a href="https://github.com/tinkerpop/blueprints/wiki">BluePrint | |
| : </a> (license: BSD-like license, <a | |
| href="https://github.com/tinkerpop/blueprints/raw/master/LICENSE.txt"> | |
| https://github.com/tinkerpop/blueprints/raw/master/LICENSE.txt</a>)</li> | |
| <li><a href="http://www.openrdf.org/">OpenRDF Sesame : </a> | |
| (license: <a | |
| href="https://bitbucket.org/openrdf/sesame/raw/b21436e56ae5a0c1434117ccc5c97c7151a5fe05/core/LICENSE.txt"> | |
| https://bitbucket.org/openrdf/sesame/raw/b21436e56ae5a0c1434117ccc5c97c7151a5fe05/core/LICENSE.txt</a>)</li> | |
| </ul> | |
| <h2>Legal Issues</h2> | |
| <!-- | |
| Please describe any potential legal issues in this section. Does somebody else | |
| own the trademark to the project name? Is there some issue that prevents you | |
| from licensing the project under the Eclipse Public License? Are parts of the | |
| code available under some other license? Are there any LGPL/GPL bits that you | |
| absolutely require? | |
| --> | |
| All contributions will be distributed under the Eclipse Public License. | |
| <h2>Committers</h2> | |
| <!-- | |
| List any initial committers that should be provisioned along with the | |
| new project. Include affiliation, but do not include email addresses at | |
| this point. | |
| --> | |
| <p>The following individuals are proposed as initial committers to | |
| the project:</p> | |
| <dl> | |
| <dt>Anass RADOUANI, Atos</dt> | |
| <dd>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</dd> | |
| <dt>Mathieu VELTEN, Atos</dt> | |
| <dd>He is an Eclipse committer on MDT Papyrus and works on | |
| TOPCASED.</dd> | |
| </dl> | |
| <p>We welcome additional committers and contributions.</p> | |
| <p>The following individual is proposed as leader of the project:</p> | |
| <dl> | |
| <dt>Raphaël Faudou, Atos</dt> | |
| <dd>He is the leader of Atos participation to AGeSys project and | |
| he has written the ReqCycle specifications in the frame of ReqCycle | |
| project.</dd> | |
| </dl> | |
| <!-- | |
| Describe any initial contributions of code that will be brought to the | |
| project. If there is no existing code, just remove this section. | |
| --> | |
| <h2>Mentors</h2> | |
| <!-- | |
| New Eclipse projects require a minimum of two mentors from the Architecture | |
| Council. You need to identify two mentors before the project is created. The | |
| proposal can be posted before this section is filled in (it's a little easier | |
| to find a mentor when the proposal itself is public). | |
| --> | |
| <p>The following Architecture Council members will mentor this | |
| project:</p> | |
| <ul> | |
| <li>Benoit LANGLOIS (Thales Global Services)</li> | |
| <li>TBD</li> | |
| </ul> | |
| <h2>Interested Parties</h2> | |
| <!-- | |
| Provide a list of individuals, organisations, companies, and other Eclipse | |
| projects that are interested in this project. This list will provide some | |
| insight into who your project's community will ultimately include. Where | |
| possible, include affiliations. Do not include email addresses. | |
| --> | |
| <p>The following individuals, organisations, companies and projects | |
| have expressed interest in this project:</p> | |
| <ul> | |
| <li><a href='http://www.airbus.com'>Airbus</a></li> | |
| <li><a href='http://www.ansys.com'>Ansys</a></li> | |
| <li><a href='https://www.thalesgroup.com/'>Thales</a></li> | |
| <li><a href='http://www.scilab-enterprises.com//'>Scilab | |
| Enterprises</a></li> | |
| </ul> | |
| <h2>Project Scheduling</h2> | |
| <!-- | |
| Describe, in rough terms, what the basic scheduling of the project will | |
| be. You might, for example, include an indication of when an initial contribution | |
| should be expected, when your first build will be ready, etc. Exact | |
| dates are not required. | |
| --> | |
| <p> | |
| </p><ul> | |
| <li>November 2013: code submission and IP review</li> | |
| <li>January 2014: first builds on the Eclipse infrastructure.</li> | |
| </ul> | |
| <p></p> | |
| <h2>Changes to this Document</h2> | |
| <!-- | |
| List any changes that have occurred in the document here. | |
| You only need to document changes that have occurred after the document | |
| has been posted live for the community to view and comment. | |
| --> | |
| <table> | |
| <tr> | |
| <th>Date</th> | |
| <th>Change</th> | |
| </tr> | |
| <tr> | |
| <td>04-November-2014</td> | |
| <td>Document created</td> | |
| </tr> | |
| </table> | |
| </body> | |
| </html> | |