Traceability from specification to source code?

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Apr 17 14:06:11 UTC 2020


Hello,

with the pre-qualified build of RTEMS

https://lists.rtems.org/pipermail/devel/2020-April/059445.html

I try out the following approach. I run Doxygen on the set of 
pre-qualified files to produce the documentation and a tagfile:

# The TAGFILES tag can be used to specify one or more tag files. For 
each tag
# file the location of the external documentation should be added. The 
format of
# a tag file without this location is as follows:
# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
# TAGFILES = file1=loc1 "file2 = loc2" ...
# where loc1 and loc2 can be relative or absolute paths or URLs. See the
# section "Linking to external documentation" for more information about 
the use
# of tag files.
# Note: Each tag file must have a unique name (where the name does NOT 
include
# the path). If a tag file is not located in the directory in which 
doxygen is
# run, you must also specify the path to the tagfile here.

The tagfile is in XML and contains things like this:

     <member kind="function">
       <type>RTEMS_INLINE_ROUTINE uint64_t</type>
       <name>_Watchdog_Ticks_from_seconds</name>
<anchorfile>group__RTEMSScoreWatchdog.html</anchorfile>
<anchor>gae368bd39a2a612b0e7701d954d363ce6</anchor>
       <arglist>(uint32_t seconds)</arglist>
     </member>

In the specification, I place a reference like this:

ref:
- kind: function
   name: _Watchdog_Ticks_from_seconds

I can then use the tagfile to lookup this reference. With the 
information in the tagfile, I can generate additional documentation 
content, for example:

/**
  * @fn RTEMS_INLINE_ROUTINE uint64_t _Watchdog_Ticks_from_seconds 
(uint32_t seconds)
  *
  * bla blub
  */

In a second Doxygen run, this information is added to the 
_Watchdog_Ticks_from_seconds() documentation:

Converts the seconds to ticks.

Parameters
     seconds    The seconds to convert to ticks.

Returns
     seconds converted to ticks.

bla blub

The benefits of this approach is that we don't have to modify the RTEMS 
sources for the specification traceability and the references in the 
specification can be done at a high level without a lot of details.



More information about the devel mailing list