source: rtems-docs/eng/req/traceability.rst @ 59312aa

5
Last change on this file since 59312aa was 59312aa, checked in by Sebastian Huber <sebastian.huber@…>, on 05/20/20 at 17:42:11

eng: Split up requirements engineering chapter

This allows to more easily generate the specification item section with
a script using specification items.

Update #3715.

  • Property mode set to 100644
File size: 3.8 KB
Line 
1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 2019, 2020 embedded brains GmbH (http://www.embedded-brains.de)
4
5.. _ReqEngTrace:
6
7Traceability of Specification Items
8===================================
9
10The standard ECSS-E-ST-10-06C demands that requirements shall be under
11configuration management, backwards-traceable and forward-traceable
12:cite:`ECSS_E_ST_10_06C`.  Requirements are a specialization of specification
13items in RTEMS.
14
15.. _ReqEngTraceHistory:
16
17History of Specification Items
18------------------------------
19
20The RTEMS specification items should placed in the RTEMS sources using Git for
21version control.  The history of specification items can be traced with Git.
22Special commit procedures for changes in specification item files should be
23established.  For example, it should be allowed to change only one
24specification item per commit.  A dedicated Git commit message format may be
25used as well, e.g. use of ``Approved-by:`` or ``Reviewed-by:`` lines which
26indicate an agreed statement (similar to the
27`Linux kernel patch submission guidelines <https://www.kernel.org/doc/html/latest//process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>`_).
28Git commit procedures may be ensured through a server-side pre-receive hook.
29The history of requirements may be also added to the specification items
30directly in a *revision* attribute.  This would make it possible to generate
31the history information for documents without having the Git repository
32available, e.g. from an RTEMS source release archive.
33
34.. _ReqEngTraceBackward:
35
36Backward Traceability of Specification Items
37--------------------------------------------
38
39Providing backward traceability of specification items means that we must be
40able to find the corresponding higher level specification item for each refined
41specification item.  A custom tool needs to verify this.
42
43.. _ReqEngTraceForward:
44
45Forward Traceability of Specification Items
46-------------------------------------------
47
48Providing forward traceability of specification items means that we must be
49able to find all the refined specification items for each higher level
50specification item.  A custom tool needs to verify this.  The links from
51parent to child specification items are implicitly defined by links from a
52child item to a parent item.
53
54.. _ReqEngTraceReqArchDesign:
55
56Traceability between Software Requirements, Architecture and Design
57-------------------------------------------------------------------
58
59The software requirements are implemented in custom YAML files, see
60:ref:`ReqEngSpecItems`.  The software architecture and design is written in
61Doxygen markup.  Doxygen markup is used throughout all header and source files.
62A Doxygen filter program may be provided to place Doxygen markup in assembler
63files.  The software architecture is documented via Doxygen groups.  Each
64Doxygen group name should have a project-specific name and the name should be
65unique within the project, e.g.  RTEMSTopLevel\ MidLevel\ LowLevel.  The link
66from a Doxygen group to its parent group is realized through the ``@ingroup``
67special command.  The link from a Doxygen group or :term:`software component`
68to the corresponding requirement is realized through a ``@satisfy{req}``
69`custom command <http://www.doxygen.nl/manual/custcmd.html>`_ which needs the
70identifier of the requirement as its one and only parameter.  Only links to
71parents are explicitly given in the Doxygen markup.  The links from a parent to
72its children are only implicitly specified via the link from a child to its
73parent.  So, a tool must process all files to get the complete hierarchy of
74software requirements, architecture and design. Links from a software component
75to another software component are realized through automatic Doxygen references
76or the ``@ref`` and ``@see`` special commands.
Note: See TracBrowser for help on using the repository browser.