Where to Store Requirements for RTEMS Components

Sebastian Huber sebastian.huber at embedded-brains.de
Wed May 22 14:25:33 UTC 2019

Hello Joel,

On 22/05/2019 16:06, Joel Sherrill wrote:
> Where to store the artifacts and what component to do first are 
> independent topics and should be on separate threads. I have changed 
> the subject.
> On Wed, May 22, 2019 at 7:29 AM Ting Peng 
> <ting.peng at embedded-brains.de <mailto:ting.peng at embedded-brains.de>> 
> wrote:
>     Hello,
>     As to the requirements documentation, we need to decide a place to
>     store
>     those requirements documentation. One suggestion is to store in
>     rtems/reqs folder, the other is to store in rtems-docs/reqs
>     folder. We
>     suggest to put the requirements related files (by Doorstop) inside
>     rtems/reqs so that the versions of both source code and the
>     requirements
>     could be consistent. If you wouldn't express any disagreement,
>     then we
>     will use /rtems/reqs. Thank you for your attention.
> This is ambiguous to me. Is the suggestion to add a requirements/ 
> directory
> at either the top of the rtems source tree or the rtems-docs source tree?
> Note that rtems is at least one subdirectory in the RTEMS git repository
> so I could interpret that as adding a requirements directory per 
> component.
> Anyway, this can't be answered without knowing the processing 
> requirements.
> If we are tracing requirements to implementation to test implementation to
> coverage, it may make sense to put them in the source tree but that makes
> them harder to include in an RTEMS documentation build. Thinking out loud,
> it is probably easier to include them in the rtems-docs and have any 
> requirements
> tracing tools be told where the rtems-docs and rtems source is.
> Either way, I doubt we will end up with a flat set of requirement 
> files under the
> top requirements directory. Especially since Doorstop seemed to want one
> requirement per file. I see us with a directory per subsystem.
> But this is all assuming that having a separate repository for 
> qualification
> artifacts is not a desirable option.

it is not clear to me how all the bits and pieces related to 
requirements look like. This is why I would like to work out a small 
example software component.

We definitely need a repository to store the requirements files 
(Doorstop, YAML). This is the first thing we have to know. If it later 
turns out that the choice was bad, we can still remove it from one 
repository and do a subtree import in another.

Doorstop uses one file per requirement. We probably need some hierarchy 
in the requirements. This can be done by directories or 
a-b-c-d-lowest.yml file names. We can spread out the files across the 
sources or aggregate them in a "reqs" directory. I would use the "reqs" 
directory approach (this makes it easer to move to another repository if 

What can you do with the requirements files? You can generate a human 
readable Software Requirements Specification from them. We have to write 
a Sphinx generator for this. It may be used together with hand written 
Sphinx files.

YAML is quite a nice file format. We could also add test plans to it. 
 From this we could generate a test plan document maybe also together 
with hand written Sphinx files.

Depending on the requirements detail level, we could also generate API 
level header files with Doxygen markup. We could also generate partial 
content for the RTEMS Classic API Guide from this.

With test output form the new test framework we could automatically do 
some simple consistency checking between the test plan the actual test 

We have to consider also various traceability requirements, e.g. from 
requirement to software component. We could use Doxygen group names and 
requirement IDs as tool input to generate the traceability information 
in various documents.

It is quite a lot of work ahead and my approach is to use a prototype 
(Interrupt Manager Extension) to figure out how we can do it.

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the devel mailing list