It's all about the answers!

Ask a question

RRC/RPE Granular Links & Traceability

Ragi M.S. (133) | asked Dec 04 '13, 2:16 a.m.
edited Jan 07 '14, 10:23 a.m. by Stef van Dijk (2.0k79)

This is actually a follow-up question based on

It turns out that RRC (3.0.1 onwards) enables links to be created from a task or sub-process in a business process diagram to other artifacts. Similarly, you can create links between individual elements in a use case diagram (such as system boundary or use cases) to other artifacts.

But for some inexplicable reason, this linkage is only visible in the "Links" tab on the RRC sidebar on the right hand side (as part of "Overview", "Comments", "Links" and "Where Used"). I have combed through the RRC Links Explorer, Traceability Report and even the RPE schema and I am having no luck trying to find this link data.

I am pretty sure that the link between the individual task inside a BPD or UCD and an external artifact exists on RRC. I am just having trouble pulling it out. Any ideas?

P.S. This release note for v3.0 states explicitly that RRC supports granular traceability. So I am pretty sure later versions should continue to support this feature.

"You can now create a link from a Task in a Business Process Diagram to a User Interface Sketch that illustrates the UI for that task, or associate additional requirements to that task. Links created in this way are fully traceable and can be included in requirements trace or gap analysis activities."

3 answers

permanent link
Mike Jaworski (1.4k6) | answered Jan 15 '14, 2:51 p.m.

It sounds like you may have some links within graphical artifacts which have not been made traceable. What version of RRC are you currently using? Have you migrated from a previous version? Do you observe the expected link behavior if you create new graphical artifacts and links within the graphical content?

For instance, if these graphical artifacts were created in RRC 2.x and migrated to 3.x, then there is a limitation of the product where any graphical content-links are not made traceable through the migration process. However, there is a diagnostic tool available through IBM Support called "FixGraphicalLinks" which can make these content-links also traceable, which will allow the links to be exposed through the RRC Publishing services to consume through RPE. If this sounds like the issue you are facing, I would suggest you open a PMR through IBM Support in order to obtain the diagnostic tool in question. Here's a link to Support:

Hope this helps!
Mike Jaworski

permanent link
Ragi M.S. (133) | answered Jan 16 '14, 12:54 a.m.
edited Jan 16 '14, 2:20 a.m.

Hi Mike,

Thanks for your reply. It is reassuring to know that RRC supports this kind of traceability.

However, I am not upgrading from v2.0. In fact, I am currently checking out v4.0.3 and v4.0.5 and I am facing the same problems on both the versions.

Might be I can illustrate what I am trying to achieve -

1. I create a new business process diagram (sat BPD_1) and add a task within it (say "Task 1") in the "Edit" mode. I then click on the task and use the add link button to create a link to another artifact (say "Requirement A") within the same requirements project. I am assuming these link types are traceable.

2. I then save the changes and check out of the "Edit" mode. In the normal view mode, when I hover over the task element, I can see the links that I just created. Furthermore, when I click on the "Links" section on the sidebar on the right hand side, I can see my links in this format - "Requirement A (Task 1)".

3. However, when I use the "Links Explorer" tool, I can only view a link between the "Requirement A" and "BPD 1" (I cannot even see the task name in paranthesis).

4. Finally, the xml source file of the business process diagram only contains a high-level link to the external artifact, as shown below. Even though the task has a unique task ID, I am not able to check the links associated with that task.

---- The ID for Requirement A is _vt2acX5ZEeOkGKJv7z3DoA. So I tried the xml source file for "Requirement A" at https://localhost:9443/rm/publish/resources?&resourceURI=_vt2acX5ZEeOkGKJv7z3DoA. Here again, I only find a high level link to "BPD 1".

<ds:traceability><ds:links><ds:Link type="Link"><rrm:title>Satisfies</rrm:title><ds:linkType>https://localhost:9443/rm/types/_ZK1jsHIoEeOAw7CtktU8Pg</ds:linkType><ds:isParentLink>false</ds:isParentLink><ds:isChildLink>false</ds:isChildLink><rrm:relation>https://localhost:9443/rm/resources/_YbSS4X5ZEeOkGKJv7z3DoA</rrm:relation><rrm:alternative>https://localhost:9443/rm/publish/resources?resourceURI=_YbSS4X5ZEeOkGKJv7z3DoA</rrm:alternative><rrm:identifier>2671</rrm:identifier><ds:content><rrm:identifier>2671</rrm:identifier><rrm:title>BPD 1</rrm:title><rrm:description>Test</rrm:description><rrm:format>BusinessProcessDiagram</rrm:format><ds:artifactFormat>Business Process Diagram</ds:artifactFormat></ds:content></ds:Link></ds:links></ds:traceability>

---- "BPD 1" - ID is "_YbSS4X5ZEeOkGKJv7z3DoA". I go to https://localhost:9443/rm/publish/processes?&resourceURI=_YbSS4X5ZEeOkGKJv7z3DoA. I find only a high level link to "Requirement A".

<ds:traceability><ds:links><ds:Link type="Link"><rrm:title>Satisfied By</rrm:title><ds:linkType>https://localhost:9443/rm/types/_ZK1jsHIoEeOAw7CtktU8Pg</ds:linkType><ds:isParentLink>false</ds:isParentLink><ds:isChildLink>false</ds:isChildLink><rrm:relation>https://localhost:9443/rm/resources/_vt2acX5ZEeOkGKJv7z3DoA</rrm:relation><rrm:alternative>https://localhost:9443/rm/publish/resources?resourceURI=_vt2acX5ZEeOkGKJv7z3DoA</rrm:alternative><rrm:identifier>2672</rrm:identifier><ds:content><rrm:identifier>2672</rrm:identifier><rrm:title>Requirement A</rrm:title><rrm:description>Test</rrm:description><rrm:format>Text</rrm:format><ds:artifactFormat>Non Functional</ds:artifactFormat></ds:content></ds:Link></ds:links></ds:traceability>

---- The only ray of hope is to leverage on the task IDs that I can find in the xml source file of "BPD 1" as follows. But I am not aware of the schema of tasks (i.e. how to use the TaskURI)...

<bpmn20:process bpmn20:id="Process__ea847efb-5c56-4b11-830a-cc57dde5181d" bpmn20:name="Process1" bpmn20:processType="none"><bpmn20:task bpmn20:id="Task__otjAcH5ZEeO2-uROD_Ygmw" bpmn20:isForCompensation="false" bpmn20:name="Task 1"><bpmn20:activityDataRequirement bpmn20:id="ActivityDataRequirement__otkOkH5ZEeO2-uROD_Ygmw" extensions:name="ActivityDataRequirement1"><bpmn20:inputSet bpmn20:id="InputSet__otk1oH5ZEeO2-uROD_Ygmw" bpmn20:name="InputSet1"/></bpmn20:activityDataRequirement><bpmn20:activityDataResult bpmn20:id="ActivityDataResult__otk1oX5ZEeO2-uROD_Ygmw" extensions:name="ActivityDataResult1"><bpmn20:outputSet bpmn20:id="OutputSet__otlcsH5ZEeO2-uROD_Ygmw" bpmn20:name="OutputSet1"/></bpmn20:activityDataResult></bpmn20:task></bpmn20:process>

Thank you once again for your time and support! Appreciate your taking time off to answer my questions.

Ragi M.S.

permanent link
Mike Jaworski (1.4k6) | answered Jan 16 '14, 9:34 a.m.

Ok, that makes a little more sense. The problem is that your "Task 1" object is not a distinct Requirement resource, but rather is considered as merely an element of the parent artifact. This means that there is not an actual database resource for the Task object you created, so it technically does not exist outside the context of your Business Process Diagram ("BPD 1"). Therefore, because the link that you created to "Requirement A" needs to have two distinct Requirement resources as endpoints, the second endpoint that is used is the parent artifact ("BPD 1") instead of the child element ("Task 1"). 

Unfortunately, I'm not readily aware of a way to perform the exact actions you've mentioned here, but I do have a suggestion: Given the criteria that you've mentioned, I would suggest that you use the "Use Case Diagram" artifact format instead of a Business Process Diagram. By using a UCD, instead of having vague "Task" objects, you can insert "Actors" or "Use Case References" which represent actual RRC artifacts. From there, you can create "Associations" between the artifacts represented in the UCD, which can serve as a graphical representation of existing relationships between artifacts. I'm not sure if this method will allow you to create traceable links to two artifacts outside the context of the UCD, so any traceable links would need to be added manually (from the grid view, or the links explorer).

Hope this helps! Sorry I don't have better news ...
Mike Jaworski

Your answer

Register or to post your answer.