Why is this important?
We see Rhapsody/SysML as a valuable requirements definition environment. It's not just that we can create requirement quickly, we can trace model elements to requirements at the same time. DOORS is a great requirements management tool, ensuring that IDs are never re-allocated and enabling exchange of requirements across the enterprise and test teams. Capturing traceability in SysML ensures completeness and mitigates the risk of gold plating but it also enables us to easily cope with the inevitable requirement changes for formal review. We want a pragmatic combination that squeezes productivity from both of these worlds.
Capturing traceability in the model
The first stage is to capture the requirements and traceability in the model. In the following model we're using a simple activity diagram to capture textual use case steps. We're then using these use case steps to create our first iteration of functional requirements, a systematic method that results in a set of functional requirements fully traced to the steps of the use case that gave birth to them.
How do we do it?
To get the requirements into DOORS we first need to get the DOORS module we want to import the requirements into ready. We use the DOORS Wizard functionality in the Rhapsody Gateway to set up a corresponding Gateway Type of Analysis.The Add high-level requirements of the currently blank set of requirements into the model creates a "fromX" stereotype in the model where X is the name you gave to the type of analysis. It also creates a Package where the requirements will be synchronized to.
At this stage the requirements are in Rhapsody but not yet in DOORS so the package is empty. We move the requirements that we want in DOORS into this package and stereotype them using the "fromX" stereotype.
With the Rhapsody requirement stereotyped we choose the Rational Rhapsody Gateway > Synchronize menu to launch the Gateway's Rhapsody/DOORS Synchronization dialog.
To move the requirements in Rhapsody into our DOORS module we deselect both "Add high level requirements to Rhapsody" and "Export model to DOORS" and choose "Update high level requirements from Rhapsody" and "Reload high level documents after modifications" instead and then Perform Sync.
The requirements are moved into the DOORS module, allocated a unique ID by DOORS, and then updated in Rhapsody. At this point Rhapsody and DOORS are fully synchronized and the names updated to the DOORS unique ID. If I want to, we can use Rhapsody to modify the text or add new requirements and then repeat the process to update DOORS. Seems to work well so far.