Requirements + UML = SysML

What happens if you start with UML, take a little away, add something new and tweak it a bit?  Depending on what exactly you add, you may end up with SysML.  SysML created some excitement in the requirements engineering (RE) community, as it provides some rudimentary tools for creating traceability between requirements and model elements.

What does SysML offer to RE?

SysML adds the Requirements Diagram, Requirements Notation, as well as as four dependency relationships (Derive, Verify, Refine, Trace).  It includes the Requirements Table as a tool to aggregate all requirements in list form in one place.  Here is an example of a requirements diagram, taken from the SysML specification:

Requirements diagrams are fairly straight forward: They consist of boxes labeled with the requirement stereotype which have certain attributes like id and text.  They can have relationships (the unlabeled relationships on the right represent the containment relationship).

The relationships shown here are not that exciting, as they concern just requirements.  Things get really interesting if relationships to other model elements are created.

How formal is SysML?

There is no formality involved in SysML, just conventions, which can still be useful.  Even without rigorous formality, process can be employed for using the manually created and maintained traceability to validate and verify model and requirements.

How useful this is in practice also depends on tool support, and the tool’s reporting facilities in particular.  If the source or target of a trace changes, it is highly desirable that the tool records this, so that the link can be inspected to see whether it is still valid. Providing this is no rocket science, and process is needed to make such a feature useful in the context of systems development.

ProR as a tool platform for SysML requirements?

The requirements structures defined by SysML could easily be modeled on top of the ReqIF data model: containment relationships would correspond to the hierarchy of specifications, while SpecRelationTypes could model the types of traces.  An integration with an Eclipse-based SysML editor like Topcased would be fairly straight forward (see our paper “Requirement Traceability in Topcased with the Requirements Interchange Format (RIF/ReqIF)“).

What would be the advantages? First, the ProR requirements editor is more powerful than the requirements table defined by SysML.  Second, an arbitrary number of attributes could be added to the requirements and to the traces.  Third, ProR could act as the bridge to existing RE tools, thereby facilitating the introduction of model tracing into existing processes.  And last, Eclipse-based reporting facilities could be used for analyzing the traceability.

Please tell us what you think about this at the Formal Mind Blog.

Graphics have been taken from the OMG SysML specification under the license terms and copyrights stated therein.