创建你的第一条 Zephyr RTOS 需求

仓库概述

Zephyr 需求在 reqmgmt 仓库中使用 StrictDoc 进行管理。该仓库包括:

  • docs/ :包含 StrictDoc 格式的需求文档

  • tools/ :实用脚本和配置

  • strictdoc.toml :StrictDoc 的项目配置

  • tasks.py :使用 Invoke 实现任务自动化

步骤 1:创建或编辑需求文件

进入仓库中的 docs/ 文件夹。

文件夹概述

docs/ 文件夹包含所有以 StrictDoc 格式编写的需求文档。

docs/ 文件夹包含两个子文件夹,其组织方式如下:

  • system_requirements/ 包含高层系统需求,用于描述 Zephyr RTOS 的总体目标、约束和预期行为。

    • system_requirements.sgra 包含 GRAMMAR,用于定义需求的形式化结构

    • index.sdoc 包含实际的需求陈述

  • software_requirements/ 包含组件级需求。此文件夹中的每个文件都对应一个特定的子系统或模块。

    • software_requirements.sgra 包含所有软件需求的 GRAMMAR

    • 一组 .sdoc 片段文件,这些文件汇编成一份大型软件需求文档,例如:

      • interrupts.sdoc

      • queues.sdoc

      • semaphore.sdoc

      • threads.sdoc

这些文件采用模块化组织方式,允许贡献者独立处理系统的特定部分。你可以编辑现有的 .sdoc 文件,也可以创建新文件。以下是需求块的一个基本示例:

[REQUIREMENT]
UID: ZEP-SRS-17-1
STATUS: Draft
TYPE: Functional
COMPONENT: File System
TITLE: Create file
STATEMENT: >>>
Zephyr shall provide file create capabilities for files on the file system.
<<<

将 UID 设置为 TBD ,以便 StrictDoc 在后续步骤中自动生成 UID。

步骤 2:保存文件

将文件保存到 docs/ 文件夹中的系统需求或软件需求子文件夹中。如果创建新文件,请为其取一个有意义的名称,通常应体现其内容所针对的组件或功能。

步骤 3:自动分配 UID

在仓库根目录下运行以下命令:

strictdoc manage auto-uid .

此命令将执行以下操作:

  • 遍历项目目录

  • 查找包含 UID: TBD 的需求

  • 为每项需求分配唯一标识符

步骤 4:验证 UID 分配结果

再次打开文件。此时应看到类似以下内容:

UID: ZEP-SRS-17-2
STATUS: Draft
TYPE: Functional
COMPONENT: File System
TITLE: Create file
STATEMENT: >>>
Zephyr shall provide file create capabilities for files on the file system.
<<<

注意:可以在 strictdoc.toml 中配置 UID 格式。

可选:生成 HTML 文档

要构建 HTML 版本的需求文档:

strictdoc export .

这将在 output/ 文件夹中生成可浏览的文档。

可选:启动 Web 编辑器

要以交互方式浏览和编辑需求:

strictdoc server .

这将启动一个本地 Web 界面,用于编辑和评审需求。

总结

  • 在 docs/ 中创建或编辑需求,并将 UID 设置为 UID: TBD

  • 运行 strictdoc manage auto-uid . 以分配 UID

  • 可选择生成 HTML 文档或启动 Web 编辑器

StrictDoc 帮助 Zephyr 在各个平台上维护结构化、可追溯且可编辑的需求。