Changeset dd60a4a in rtems-docs
- Timestamp:
- 01/21/22 16:02:27 (23 months ago)
- Branches:
- master
- Children:
- 7073017
- Parents:
- 1ba0f41
- git-author:
- Sebastian Huber <sebastian.huber@…> (01/21/22 16:02:27)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (01/24/22 14:35:30)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
eng/req/howto.rst
r1ba0f41 rdd60a4a 1 1 .. SPDX-License-Identifier: CC-BY-SA-4.0 2 2 3 .. Copyright (C) 2020, 202 1embedded brains GmbH (http://www.embedded-brains.de)3 .. Copyright (C) 2020, 2022 embedded brains GmbH (http://www.embedded-brains.de) 4 4 5 5 How-To … … 33 33 cd rtems-central 34 34 . env/bin/activate 35 36 View the Specification Graph 37 ---------------------------- 38 39 The specification items form directed graphs through :ref:`SpecTypeLink` 40 attributes. Each link has a role. For a particular view only specific roles 41 may be of interest. For example, the requirements specification of RTEMS 42 starts with the ``spec:/req/root`` specification item. It should form a tree 43 (connected graph without cycles). A text representation of the tree can be 44 printed with the ``./specview.py`` script: 45 46 .. code-block:: none 47 48 cd rtems-central 49 . env/bin/activate 50 ./specview.py 51 52 This gives the following example output (shortened): 53 54 .. code-block:: none 55 56 /req/root (type=requirement/non-functional/design) 57 /bsp/if/group (type=requirement/non-functional/design-group, role=requirement-refinement) 58 /bsp/if/acfg-idle-task-body (type=interface/unspecified-define, role=interface-ingroup) 59 /bsp/sparc/leon3/req/idle-task-body (type=requirement/functional/function, role=interface-function) 60 /bsp/sparc/leon3/req/idle-task-power-down (type=requirement/functional/function, role=requirement-refinement) 61 /bsp/sparc/leon3/val/errata-gr712rc-08 (type=validation, role=validation) 62 /bsp/sparc/leon3/req/idle-task-power-down-errata (type=requirement/functional/function, role=requirement-refinement) 63 /bsp/sparc/leon3/val/errata-gr712rc-08 (type=validation, role=validation) 64 65 The actual specification graph depends on build configuration options which 66 enable or disable specification items. The ``--enabled`` command line option 67 may be used to specify the build configuration options, for example 68 ``--enabled=sparc,bsps/sparc/leon3,sparc/gr740,RTEMS_SMP,RTEMS_QUAL``. 69 70 The ``./specview.py`` script can display other views of the specification 71 through the ``--filter`` command line option. Transition maps of 72 :ref:`SpecTypeActionRequirementItemType` items can be printed using the 73 ``--filter=action-table`` or ``--filter=action-list`` filters. For example, 74 ``./specview.py --filter=action-table /rtems/timer/req/create`` prints 75 something like this: 76 77 .. code-block:: none 78 79 .. table:: 80 :class: longtable 81 82 ===== ========== ======= ===== ==== ======= ======= ===== 83 Entry Descriptor Name Id Free Status Name IdVar 84 ===== ========== ======= ===== ==== ======= ======= ===== 85 0 0 Valid Valid Yes Ok Valid Set 86 1 0 Valid Valid No TooMany Invalid Nop 87 2 0 Valid Null Yes InvAddr Invalid Nop 88 3 0 Valid Null No InvAddr Invalid Nop 89 4 0 Invalid Valid Yes InvName Invalid Nop 90 5 0 Invalid Valid No InvName Invalid Nop 91 6 0 Invalid Null Yes InvName Invalid Nop 92 7 0 Invalid Null No InvName Invalid Nop 93 ===== ========== ======= ===== ==== ======= ======= ===== 94 95 For example, ``./specview.py --filter=action-list /rtems/timer/req/create`` 96 prints something like this: 97 98 .. code-block:: none 99 100 Status = Ok, Name = Valid, IdVar = Set 101 102 * Name = Valid, Id = Valid, Free = Yes 103 104 Status = TooMany, Name = Invalid, IdVar = Nop 105 106 * Name = Valid, Id = Valid, Free = No 107 108 Status = InvAddr, Name = Invalid, IdVar = Nop 109 110 * Name = Valid, Id = Null, Free = { Yes, No } 111 112 Status = InvName, Name = Invalid, IdVar = Nop 113 114 * Name = Invalid, Id = { Valid, Null }, Free = { Yes, No } 115 116 The view above yields for each variation of post-condition states the list of 117 associated pre-condition state variations. 118 119 Generate Files from Specification Items 120 --------------------------------------- 121 122 The ``./spec2modules.py`` script generates program and documentation files in 123 :file:`modules/rtems` and :file:`modules/rtems-docs` using the specification 124 items as input. The script should be invoked whenever a specification item was 125 modified. After running the script, go into the subdirectories and create 126 corresponding patch sets. For these patch sets, the normal patch review 127 process applies, see *Support and Contributing* chapter of the *RTEMS User 128 Manual*. 35 129 36 130 Application Configuration Options … … 1031 1125 parameter in past calls to ${../if/directive:/name} shall not be 1032 1126 accessed by the ${../if/directive:/name} call. 1127 1128 Verify the Specification Items 1129 ------------------------------ 1130 1131 The ``./specverify.py`` script verifies that the specification items have the 1132 format documented in :ref:`ReqEngSpecificationItems`. To some extent the 1133 values of attributes are verified as well.
Note: See TracChangeset
for help on using the changeset viewer.