Requirements and models

Hello all,
I’m a new member of the forum, nice to meet you all!
I’ve recently discovered the Arcadia modeling philosophy, and I think it’s great to define system behavior and structure.
The reason why I got to know it is because I was really struggling with the handling of system behavior using just textual requirements inside a Requirement Management Tool (Visure requirements).
But now I don’t know how to proceed: shall I start collecting requirements directly inside Capella? Or a better approach would be to export them from the RMT and import them into Capella? And what if, during the architecture design I define more requirements for the sub components? Should I send them back to the RMT?

Hope I made myself clear!

Hi @Njon,

Firstly I would take a look at this youtube series:
https://www.youtube.com/@innovatingwithcapella/videos

There are many ways of achieving what you want:

  • Using Capella to augment textual requirements and validate that you have the right requirements (the most document based approach)
  • Using Capella to derive requirements, but keep a RMT as the authorities source of truth of the requirements. These would need to be exported using one of a number of methods (M2Doc, Python4Capella).
  • Have Capella as the RMT. Dont export anything from Capella and get people to use the models to look at the requirements (the most model based approach).

What approach you need will be dictated by the wider environment. Are you one of a larger team using an RMT? Is it just you or many other people working with the requirements? Who needs to see them? Are there external suppliers who want requirements in a certain format?

Note, your System Analysis will form the basis of your system requirements. The Physical Architecture will form the basis of your system definition. Your system definition could become requirements for a lower level sub-system through the system to sub-system transition.

Thanks,

Josh

1 Like

Thank you Josh for your precious feedback!
At the current state, I’m the only one handling the requirements in the RMT, but I hope that sooner or later I’ll get some help. So I need a tool that can be accessed by multiple users, maybe simultaneously.
Now I’m working more on constraints (dealing especially with product standards) rather than functionalities, as detailing behavior is a bit difficult without any modeling tool (at least for me).
I like the idea of keeping the RMT as the “master” and feedback into it the outcome of the analysis done via Capella. Is this process feasible or it requires som special piece of software?

Forgot to add a 4th option 1st time round:

  • Using Capella to augment textual requirements and validate that you have the right requirements (the most document based approach)
  • Using Capella to derive requirements, but keep a RMT as the authorities source of truth of the requirements. These would need to be exported using one of a number of methods (M2Doc, Python4Capella).
  • Use Capella to derive requirement and be the RMT, but publish requirements to stakeholders as needed via a number of methods (M2Doc, Python4Capella)
  • Have Capella as the RMT. Dont export anything from Capella and get people to use the models to look at the requirements (the most model based approach).

TeamsForCapella will allow multiple users to work in the Capella model at once.
Using DevOps to store and publish the models will allows multiple users to view and publish the models.

Probably at your scale, if there is only 1 person doing the modelling at once, just having a DevOps site to publish the models too is probably the best option. This will allow version tracking, baselining etc. Teams 4 Capella could be an advantage if you want to have people doing parallel working in the same model. To keep the RMT as the authorative source, this doesnt require special software. Only M2Doc or Python4Capella set up in such a way to export what you need from Capella.

Josh

Wow, this M2Doc seems to automate the process quite good!
In general though, is there a book or some material I could read/see where this concept of using both a RMT and a modeling tool is further depicted?
I think I understood the philosophy, but moving to a practical implementation would require much more study from my side.
Thanks!

Some theory:
“Augmenting requirements with models to improve the articulation between system engineering levels and optimize V&V practices”

Python4Capella entry page: GitHub - labs4capella/python4capella: Python for Capella (with pointers to the documentation as well)
M2Doc entry page: Capella M2Doc tutorial - M2Doc

Thank you! I really have a much clearer picture now.

As far as I understood, at least for the “problem definition phase”, I could use the tool in this way.

  1. Collect “customer requirements” in the RMT.
  2. Share the functional requirements via ReqIF to cappella.
  3. Perform an Operational and System Analysis linking the requirements to the different Capabilities/functions.
  4. Go back to the RMT, by sharing the system model via M2Doc or Python4Capella, and integrate the functional requirements with the non-functional requirements/constraints that come from, for example, product standards.

Do you think this process could work?
I only fear that I would spend too much time in the transitioning process between RTM and Capella and viceversa (I’m a bit scared of M2Doc… seems powerful, but it has to be setup properly…)

Not sure about step 4 - you may want to have a look at Publication for Capella Publication for Capella - Obeo

IMO what would work best is to do the collection and linking of all types of requirements (including constraints, standards etc.) in a RMT while iteratively exporting ReqIF to Capella to keep the model in sync. E.g. ReqView supports this use case out of the box.

Two-way sync between a RMT and Capella would mean a lot of overhead with M2Doc or Python4Capella, which are not ready-made solutions but just tools for a big DIY sync project. M2Doc produces Word docs, which cannot be used for round-trip exchanges in RMTs. With Python4Capella, you’d need to code everything yourself, it’s just an API to access the model in Capella.

Have any of you found a useable open source RMT that works well for these use cases described by OP?

The Eclipse/Formalmind ProR download no longer seems to be available. ReqView looks good but the limitations on the number of objects may be prohibitive.

A simple tool open source RMT tool, e.g., a ProR replacement, that can work with Capella/ReqIF would be great. Do not need (or expect from an open source tool) the full capabilities of something like DOORS, Polarion, JAMA etc., but a “ReqView-without-object-limits-type” tool or “ProR-type” tool would be very helpful.

Any suggestions?

I don’t think there’s any open-source or zero-cost tool with the needed ReqIF capabilities. I stumbled upon StrictDoc, but it seems the intended audience for it is people who want to code everything themselves; it can export to ReqIF, but I don’t know it if can preserve the internal ReqIF identifiers correctly between iterative exports.

Looking at ReqView pricing, the number of objects limitation only applies to the FREE license, there aren’t any limits with the paid plans. BTW, between DOORS, Polarion, JAMA and ReqView, ReqView is the only tool that you can easily download, test out with a trial license and then buy a license online at low cost compared to the others.

1 Like

Hi,

I did a quick search and stumbled upon this: GitHub - osrmt/osrmt: Open Source Requirements Management Tool.
To be honest, though, I have no info at all so I don’t know if it supports ReqIf (or even if it actually works). I was just thinking you might want to take a look…

Martin
ObeoSoft Canada

1 Like

ReqIF-Studio/ProR is still available here:
https://www.reqif.academy/

1 Like

Thank you, will give this a go first, see how it plays out. Have you used it?

Yes.
You can create a requirements ReqIF-File with the tool… :slight_smile:
Not very much comfort but the ReqIF is compliant with the norm!
(Most other tools as doors etc. fail with this.)
And you can (or must) define everything of the ReqIF as you want.

1 Like

We use open source tool Requality to create ReqIf from Word documents
and import it to Capella

https://requality.org/en/
It has quite good user guide
https://requality.org/en/doc.en.html

It’s based on Eclispe. I was able even to install it into Capella.

It can be used to import documents with requirements from Word documents
and create fromal requirements models from these documents.
Requality has ReqIf export for Doors. But it does not worked for us.

As a result we have created report settings that exports requirements model from Requality to ReqIf
that works with Capella well.

I can share this export to ReqIf if somebody will be interested.

We also enhanced standard Requirements plugin to support methodology
to link requirements to model elements adopted from AADL modeling language

The main difference is in the link creation between requirements and model elements.
Link to model elements is creating not for each requirement but for requirements folder.
All requirements in this folder implicitly “linked” to folder’s model element.
We also added layer with requirements creation\allocation tools for all diagrams.
When requirement is created and assigned to model element on diagram automatically
requirement folder for this element is created and requirement is placed into this folder.
We also added new edge definition for diagrams that shows such implicit requirements links.

You can try AADL approach for requirements creation and linking to model elements in open source OSATE tool
https://osate.org/

There is a git repositoty with requirements example projects

and tutorial
https://rawgit.com/osate/alisa-examples/master/Documentation/BasicRequirementSpecificationGuidance.html

for us it was quite usefull to learn this approach and adopt it to requirements in Capella