用途:从 Simulink 模型生成或更新需求草稿,并建立模型到需求的可追溯性。适用于创建 .slreqx 或 .yaml 需求产物;不适用于从 ReqIF、DOORS、Word、Excel 等现有来源导入需求、编写或运行测试、无保存产物的自由文本笔记,或用户明确要求其他文本格式。
主要能力:默认文件名为 <Model>_Requirements.slreqx 或 <model>requirements.yaml;需求 ID 采用 REQ<SYSTEM>_001 等稳定顺序编号,更新时保留已有 ID 并追加新 ID;每条需求标记为 draft。需求须表达行为意图而非模型拓扑,采用 EARS 模式(Ubiquitous、Event-driven、State-driven、Unwanted behavior、Optional feature、Combined)。数值引用需包含工作区变量名与解析值,如 VarName (value)。
使用方式:先选择后端。用户明确要求 .slreqx 或仓库已使用时用 Requirements Toolbox;明确要求 .yaml 或仓库已使用时用结构化 YAML;未指定时探测 Requirements Toolbox,探测失败则静默回退 YAML。探测命令:hasSlreq = ~isempty(which('slreq.new')); if hasSlreq, try, slreq.find(Type="Link"); catch, hasSlreq = false; end, end; disp(hasSlreq)。工作流为:用 model_overview、model_read、model_query_params、model_resolve_params 理解模型并提取参数,构建捕获表,执行后端路径,最后按评审门检查。Path A 使用 slreq.new、add、slreq.createLink 等 API,链接方向为模型元素→需求,优先子系统级链接,创建链接前需 load_system,并保存需求集与所有链接集。Path B 生成 YAML,设置 status: Draft 与 keywords: [draft],并用 python -c "import yaml, sys; yaml.safe_load(open(sys.argv[1])); print('OK')" path/to/requirements.yaml 校验。
限制:所有输出均为草稿,需人工评审批准;不得在需求 Summary 中使用块或子系统名称;不得反向链接;不得在用户明确要求 .slreqx 时静默回退 YAML;不得在重新生成时重编号已有 ID;仅使用 R2023a+ API。参考资料包括 references/slreq-patterns.md、references/yaml-requirements.md、assets/slreq_from_model.m、assets/requirements.yaml。