Doorstop Issues

Sebastian Huber sebastian.huber at embedded-brains.de
Sun Apr 19 15:14:02 UTC 2020


Hello,

I am about to add the next couple of hundred specification items for the 
RTEMS pre-qualification activity. Before I do this, I would like to 
present some issues that popped up during my daily work with Doorstop. 
Doorstop is a requirements management tool which was selected for the 
pre-qualification activity:

https://docs.rtems.org/branches/master/eng/req-eng.html#selected-tool-doorstop

I am quite happy that Jan Sommer suggested to use this tool. I has some 
pretty nice features. In particular, I think the file based organization 
in YAML format forming a directed acyclic graph is really the right 
thing for this project. However, it turned out that it lacks the 
required flexibility.

1. Its use case is requirements management. So it has some standard 
attributes useful in this domain, like derived, header, level, 
normative, ref, reviewed, and text. However, I want to use it more 
generally for specification items and these attributes make not always 
sense. Having them in every item is just overhead and may cause confusion.

2. The links cannot have custom attributes, e.g. role, enabled-by.

3. Inside a document (directory) items are supposed to have a common 
type. I would like to store at a hierarchy level also distinct 
specializations.

4. The verification if the items is quite limited. We need verification 
with type-based rules.

5. The UIDs in combination with the document hierarchy lead to 
duplication, e.g. a/b/c/a-b-c-d.yml. You have the path (a/b/c) also in 
the file name (a-b-c). You cannot have relative UIDs in links (e.g. 
../parent-req) . The specification items may contain multiple 
requirements, e.g. min/max attributes. There is no way to identify them.

I will probably stop using Doorstop and use a custom tooling. With 
Python, this is quite easy. I already have the infrastructure for this in:

https://git.rtems.org/sebh/rtems-qual.git/

I will try this out with the new build system.



More information about the devel mailing list