Traceability in UML models

As you build and model a system or project, you must create new elements to address defects, design decisions, and changed requirements, which can increase the complexity of the system. You can help stakeholders understand the specifications of elements in a project by establishing trace relationships between the elements that you create.

If you create trace relationships effectively, you can follow a trail of directed trace relationships between elements to discover the following information:

In the context of traceability, implementation, specification, and trace relationships are defined as follows:

Level of abstraction refers to the level of complexity from which a system is viewed. When you build or model a system, you start at a high level of abstraction; for example, with requirements and little detail. Then, you proceed to a lower level of abstraction; for example, to a design with more detail. Next, you go to the lowest level of abstraction, which might be a concrete implementation with elements such as Java classes, and lots of detail. Viewing the system from different levels of abstraction can help stakeholders such as project managers, developers, and testers better understand how the system works.

You can trace an element in either a forward or backward direction. For example, you can trace an element such as an IBM® Rational® RequisitePro® requirement in a forward direction to discover the code element that implements it, or you can trace a code element such as a Java class in a backward direction to discover the requirement that motivated its creation.

IBM Rational modeling products support traceability between the elements from the following three domains:

A domain is a grouping of elements from a field of knowledge. In the context of software development, there is a requirements domain, a modeling domain, and an implementation domain. The requirements domain includes requirement elements such as use cases, stakeholder requests, and features. The modeling domain includes UML modeling elements such as use cases, classes, and actors. The implementation domain includes implementation elements such as Java classes, packages, and interfaces.

Depending on the type of element that you work with, the procedure for establishing traceability varies:

Impact analysis

Whether you must add new features to a system, resolve defects, or refactor existing functionality, you must evolve the system by either modifying one of the existing elements or creating new elements. The successful evolution of a system involves changing the system in some way without breaking it. Successfully evolving a complex system can be a challenge because of the amount of dependencies that exist between system elements and because each modification to an element can potentially break the system.

You can minimize the risk of introducing undesirable effects to the system by increasing your understanding of how the proposed change might affect the elements in the system. You can perform an impact analysis to investigate the potential consequences of a change before you introduce it to a system, and you can browse the dependency relationships in a diagram. Visualizing dependency relationships between system elements can help you understand the dependencies that exist between system elements and how the system works.


Feedback