Link validity
Linked data is only useful when semantic consistency exists between two artifacts and their relationship. In projects with large data sets, achieving and maintaining consistency across linked data can be challenging over time. You can use the link validity status to achieve consistency across artifacts and links as you make changes that propagate through linked data.
In regulated industries, show the relationships that someone confirmed as valid, such as requirements validated by test cases. List the relationships where validity status isn't defined so that someone can assess whether the relationship is valid.
Link validity information in Engineering Lifecycle Management applications:
- Link validity status: The status of links between artifacts, which indicates whether the contents of two artifacts meet the intended meaning of the link between them. Link validity status is a property of a link.
- Validity summary: A rollup of the status of all the relevant links for an artifact. The summary specifies whether you need to investigate specific relationships further and modify artifacts to achieve or restore the intended meaning of the link. Validity summary is a property of an artifact.
The IBM Engineering Workflow Management (Engineering Workflow Management or CCM) application source control management (SCM) feature provides link validity status information about SCM-controlled files only. Validity summary information is not available here.
The IBM Rhapsody® Model Manager (Rhapsody Model Manager or AM) application provides link validity status information only. Validity summary information is not available here.
- Link validity
- What link validity is not
- Link validity status options
- Link validity data representation
- Link validity and container types
- Links (symmetric and asymmetric) and artifacts (upstream and downstream)
- Validity summary information
- Validity summary status options
- Example 1: Changing a requirement
- Example 2: Changing a test case
- Example 3: Reuse of link validity in other configurations
- Other examples of how link validity is shared
- Link validity status and global configurations
- Link validity status and change sets
- Test case approval and automatic link validation
- Enabling link validity later in a release
- Reporting on link validity
- Exceptions to changing only the downstream artifact to restore intended meaning
Link validity
The link validity indicates whether the meaning of a link is satisfied by the content of the two artifacts that are connected by the link. An artifact’s content is the set of fields and attributes (such as summary, description) that define its meaning. Artifact metadata, such as system-generated properties (creator, creation date, last modification date, priority), does not affect link validity status.
The validity of a link is assessed as shown: Contents of artifact version
X + link type + contents of artifact version Y =>
[has a] validity status
What link validity is not
Link validity status does not assess whether the link must exist between two versions of artifacts, nor whether the correct link type exists between the artifacts. It is not a date-based check for changes to artifacts, nor is it a tool to compare changes in configurations or to see changes.
To see whether changes to artifacts make them incompatible and invalidate the link relationship between them, use the link validity status and validity summary information.
You cannot use validity to identify which artifacts are changed in a component because validity statements are reused across configurations. To identify which artifacts changed, or to see what the changes are, or to ensure that changes to an artifact make sense, compare the configurations in their Engineering Lifecycle Management application, such as comparing a stream to a baseline.
Link validity status options
- Suspect (gray icons)
- The system sets links as suspect when they are new or unknown. A person must verify whether the
contents of both artifacts satisfy the intended meaning of the link.
If you cannot determine that, leave the link as suspect and analyze it more later.
- Valid (green icons)
- Team members set this status when the contents of the two artifacts satisfy the meaning of the link that connects them. Consider a “validates” link between a test case and a requirement: if the test case validates the requirement, the relationship is valid.
- Invalid (red icons)
- Team members set this status when the contents of the two artifacts do not satisfy the intended meaning of the link that connects them. For example, you know that a test case no longer validates a requirement. Set the status to invalid, and later, you (or another member of your team) might change the test case (the downstream artifact) to make the link valid.
If the system cannot access the linked artifact to get validity status, or if the validity service is not responding, the validity status is Unknown. Sometimes it happens if artifacts are deleted. To solve the problem, contact your application or project area administrator, or follow the instructions on the page.
Consider a test case that validates a requirement. If you change the contents of either artifact, the status of the link becomes suspect. You must examine whether the contents of the two artifacts meet the intended meaning of the link (does that test case validate that requirement?), and likely set a new status for that link. The link validity status is updated automatically in the respective applications. However, the validity summary of each artifact differs.
Link validity data representation
- Case-1: The link has no link validity resource.
- The link is implicitly suspect.
- Case-2: The link has a link validity resource, but its status is
Unknown
. - The link is explicitly suspect.
- Case-3: The link has a link validity resource, and its status is
Valid
. - The link is explicitly valid.
- Case-4: The link has a link validity resource, and its status is
Invalid
. - The link is explicitly invalid.
Link validity and container types
Links (symmetric and asymmetric) and artifacts (upstream and downstream)
A link type can be asymmetric or symmetric. If a link type is asymmetric, the artifact on one side of the link is normally created or modified first, and then the artifact on the other side of the link is created or modified in response to the creation or modification of the first artifact. The artifact that is created first is called upstream artifact, and the artifact that is created later is called downstream artifact.
For an asymmetric link type, the downstream artifact is the source artifact (where the link is stored), and the upstream artifact is the target artifact (the artifact that is referenced by the link).
Validity summary information
- Asymmetric links: A change to either artifact affects the validity summary of the downstream artifact.
- Symmetric links: A change to either artifact affects the validity summary of both artifacts.
The validity summary shows you at a glance the status of all the links to relevant artifacts so you know which downstream artifacts you must examine to verify intended meaning of a link.
- Requirements are upstream of models, designs, and tests.
- Tests are downstream of requirements, models, and designs.
Requirements are considered symmetric to each other. For example, stakeholder requirements are symmetric to system requirements: a change to either artifact affects the validity status of the link between them.
The directions (symmetric, upstream, and downstream) affect only the calculation of the validity summary for artifacts, not the validity status of individual links.
- Engineering Test Management application: Validates (links from test cases to requirements; does not apply to steps in test scripts).
- DOORS Next application: Link To, Link From, Elaborates, Satisfies, Traced By Architecture Element, or a link to another DOORS Next artifact that has a custom link type. Validated By (links to downstream test cases) links are ignored in validity summary calculations.
- Rhapsody Model Manager application: You can set link validity status on any link between an Rhapsody Model Manager and DOORS Next or Engineering Test Management artifact. The link types can include Derives From and Validated By.
- Engineering Workflow Management
application:
- You can link files in Engineering Workflow Management source control to DOORS Next requirements or Engineering Test Management test scripts, and set link validity status on these links by using "Implements" link type.
- You can link work items to other Engineering Lifecycle Management artifacts, but because work items are not versioned, you cannot set the link validity status on the link. For example, you can create an “Implements” link type from a work item to a requirement, but no link validity status icon is shown on either end of the link in the respective Engineering Lifecycle Management application.
Validity summary options
You do not change a validity summary; you change only the status of the individual links that contribute to it, which in turn can affect the summary. Summary icons are the same colors as for link validity.
- Invalid
: At least one relevant artifact link is invalid, even if other links are suspect or
valid.Note: In an artifact view, you must add the link type column to the table in the view before you can set link validity. Hover over the validity summary to determine which columns to add.
- Suspect : At least one relevant artifact link is suspect and must be verified, but no invalid or undetermined links exist.
- Valid : All the associated artifact links that affect this artifact are valid.
To resolve links, use an approach that is appropriate for your situation. You might want to first inspect all the suspect values to see how many invalid values are there. Or, because invalid links mean that someone verified that a relationship is not semantically consistent, you might want to examine such relationships first, and then address suspect items. Suspect relationships might still be consistent; it’s just that the system detected changes that you must verify.
Example 1. Modifying a stakeholder requirement
You start off with five artifacts in a simple scenario. A system requirement elaborates two stakeholder requirements, and is verified by two test cases.
The system sets the link to and from Stakeholder requirement A v2 as Suspect because it can no longer verify that the contents of the Stakeholder requirement A v2 and other relevant artifacts (in this case, the system requirement) meet the intended meaning of their link. The Suspect validity summary for either of the artifacts indicates that someone must verify whether the contents of the artifacts on both ends of the link satisfy the intended meaning of the link. In this case, verify that System requirement M v1 elaborates Stakeholder requirement A v2.
Step 4. The new artifact content in System requirement M v2 affects the validity status of links to the stakeholder requirements and the test cases. Since the stakeholder requirements are fixed, start by examining whether the System requirement M v2 still elaborates the stakeholder requirements.
Step 5. Because you still have a suspect link as a result of changing the system requirement, you must confirm that System requirement M v2 still elaborates Stakeholder requirement B v1. You confirm that it does and set the link validity status to Valid . The validity summary for Stakeholder requirement B v1 now becomes Valid because the relevant link to it is Valid .
- You see that Test case X v1 still validates System requirement
M v2, so you set the link as Valid
. The validity summary for that test case becomes Valid
because all links to requirements (upstream artifacts) are valid.Note: In the DOORS Next application, the status of the link is also updated to Valid .
- You see that Test case Y v1 does not validate System
requirement M v2, so you set the link as Invalid
. The validity summary for this test case becomes Invalid
because an invalid link to a requirement (upstream artifact) exists.Note: In the DOORS Next application, the status of the link is also updated to Invalid .
Example 2. Changing a test case
Continuing with the previous example, later in the release, you want to improve Test case X v1 by reducing the number of steps.
Example 3. Reuse of link validity in other configurations
When you set a link validity status in one configuration, the status is refreshed in any other configurations that contain the same two artifacts with that same content and link type between them. The status is refreshed when someone who is working in the other configuration starts an operation that refreshes the page (for example, Save).
Team members who are working in other streams that contain those versions of artifacts and their links know that the artifacts in their configuration satisfy the meanings of those links, without having to analyze them.
Other examples of how link validity is shared
- When you set the validity of a link in a global configuration, the status is shared with local streams that have the contents.
- When you set link validity in a local stream, the status is shared with global configurations that use the stream.
- When you set link validity in a baseline, the status is shared with the same contents in predecessor or successor streams. You can revert to a known good baseline and set the validity status there.
- When you set link validity in a stream, the status is shared with predecessor or successor baselines.
Validity and global configurations
When you work in a global configuration context, you can set the status of links to different artifact types in other applications. For example, you can create links to, and set the validity status of, links between requirements and test cases.
In the DOORS Next application, when you work in a change set in a personal stream, you can add and remove links to other artifacts, such as test cases. If you are not working in a global configuration, you can link only to other requirements.
However, if you are working in an DOORS Next configuration, you can see only links to requirement artifacts.
To see your configuration context at any time, click the Current Configuration menu on the toolbar and see the Configuration Context information.
Validity and change sets
- Create a change set.
Change the system requirement so it satisfies a stakeholder requirement, which creates a new version of the system requirement.
- In the change set, set the link status between the system requirement and the stakeholder requirement.
- Deliver your changes.
- The stream now has the same content and link status as what was in your change set.
The link validity status that you set in the change set is applied to the stream when you deliver the change set, only if you must not merge your changes with the changes from another change set that was also delivered. If you had to merge your changes and the content of the requirement artifact got modified, the link between the requirements is set to Suspect and someone must examine it.
Test case approval and automatic link validation
In the Engineering Test Management application, an administrator can set the system to automatically set links to requirements to Valid when you complete a test case review and approve it. For more information, see the related topic about enabling link validity.
Enabling link validity later in a release
Link validity information is always tracked, whether you show it in the Engineering Lifecycle Management applications. When an application or project area administrator enables it for the first time in the project areas, links between artifacts are labeled as suspect because no one ever marked them otherwise. However, some cross-project links might be already set as valid or invalid someone set the status in other applications.
Reporting on link validity
Different applications support different methods for reporting on link validity information. For more information, see Reporting on link validity status in Report Builder.
Exceptions to changing only the downstream artifact to restore intended meaning
Typically, you change the downstream artifact so that artifacts in a linked relationship meet the intended meaning of the link that connects them. However, if a performance test case fails, you might request a change to the requirement to specify a different performance outcome. Then, change the test case so that it validates that requirement, and the intended meaning of the link is satisfied and the test case passes.