将需求和链接信息导出到 Excel
此示例展示如何使用 Requirements Toolbox™以编程方式导出需求和链接信息。该示例构建了一个您可以在需求集上使用的自定义函数,并将信息保存为 Excel® 电子表格。
检查导出函数
打开附加的 MATLAB®程序文件reqXlsExport.m
,查看函数代码。该函数使用编程命令将信息导出到 Excel 文件。
该函数按顺序接受三个输入参量:
您想要导出的需求集,指定为字符向量。该参量必须包含
.slreqx
扩展。要保存需求的 Excel 文件的名称,指定为字符向量。该名称必须包含
.xls
扩展名。您想要导出的属性,指定为字符向量元胞数组。您还可以包括与需求相关的链接的属性。指定至少一个需求属性。
reqXlsExport
可以检索此内置需求信息,它对应于相应的 slreq.Requirement
类属性:
Id
Index
Summary
Description
Rationale
Keywords
CreatedOn
Dirty
ModifiedOn
ModifiedBy
SID
您指定属性元胞数组参量中的一个或多个属性。
Description
和 Rationale
属性通常返回包含格式化命令的文本。导出此文本会导致 Excel 中的文本变得模糊。为了防止这种情况,reqXlsExport
代码使用
和 getDescriptionAsText
方法以纯文本形式返回描述和理由。getRationaleAsText
reqXlsExport
还可以检索需求的相关链接信息。函数代码使用
和slreq.getIncomingLinkTypeLabel
建立表中每个链接方向的标头,并使用slreq.getOutgoingLinkTypeLabel
、getOutgoingTypeLabel
、getIncomingTypeLabel
、getSourceLabel
方法判断选项卡是否符合需求。要检索链接信息,您必须在执行该函数之前加载与需求相关的链接。getDestinationLabel
您可以使用以下语法导出链接信息:
'<links-in>'
:导出与需求相关的传入链接标签并按类型分组。'<links-out>'
:导出与需求相关的传入链接标签并按类型分组。
您还可以通过在 links-out
或 links-in
后输入冒号和链接类型来指定与需求相关的链接类型。例如,要用验证类型的相关出向链接填充表,请在元胞数组中包含 '<links-out:verify>'
。
您还可以从原型和自定义链接类型指定自定义属性。有关定义自定义属性和链接类型的更多信息,请参阅 向需求添加自定义属性 和 定义自定义需求和链接类型和属性。
在检索需求和链接信息后,该函数将信息合并为一个数组,并使用
函数将数组导出到 Excel。writecell
从工程导出需求
在此示例中,您将导出 MATLAB 工程中的需求信息。打开附加的示例工程 CruiseRequirementsSafetyExample
。
addpath(pwd)
openProject("CruiseRequirementsSafetyExample");
接下来,打开要导出的需求集以及包含相关信息的文件,例如链接集、模型和测试。
sysReqSeqSet = slreq.open("crs_req.slreqx"); funcReqSet = slreq.open("crs_req_func_spec.slreqx"); sltest.testmanager.load("crs_controller_tests.mldatx"); sltest.testmanager.load("DriverSwRequest_Tests.mldatx"); open_system("crs_controller"); open_system("crs_plant"); open("crs_controllerdic.sldd");
加载需求集和支持文件后,使用 reqXlsExport
。例如,要将系统需求与链接详细信息一起导出,请输入以下代码:
outFile = 'sys_req_export.xls'; columnConfig = {'Index','Id','Type','Summary',... 'Description','<links-out:Derive>'}; reqXlsExport(sysReqSeqSet, outFile, columnConfig)
Excel 电子表格的配置与需求编辑器中的链接详细信息窗格类似。
您可以指定任意数量的想要检索的属性。例如,要导出功能需求集crs_req_func_spec.slreqx
的创建和修改信息,请输入:
outFile = 'full_func_req_export.xls'; columnConfig = {'Index','Id','Type','Summary','Description','Rationale',... '<links-in:Implement>','<links-in:Verify>','Keywords',... 'CreatedOn','CreatedBy','ModifiedOn','ModifiedBy','SID'}; reqXlsExport(funcReqSet, outFile, columnConfig)
清理
清除打开的需求集和链接而不保存更改,并关闭打开的模型和测试而不保存更改。
slreq.clear;
bdclose all;
另请参阅
函数
slreq.export
|slreq.getOutgoingLinkTypeLabel
|slreq.getIncomingLinkTypeLabel
|writecell
|getIncomingTypeLabel
|getOutgoingTypeLabel
|getSourceLabel
|getDestinationLabel
|getDescriptionAsText
|getRationaleAsText