将需求和链接信息导出到 Excel
此示例展示如何使用 Requirements Toolbox™ 以编程方式导出需求和链接信息。该示例构建了一个您可以在需求集上使用的自定义函数,并将信息保存为 Excel® 电子表格。
检查导出函数
打开附加的 MATLAB® 程序文件 reqXlsExport.m,查看函数代码。该函数使用编程命令将信息导出到 Excel 文件。
该函数按顺序接受三个输入参量:
您想要导出的需求集,指定为字符向量。该参量必须包含
.slreqx扩展。要保存需求的 Excel 文件的名称,指定为字符向量。该名称必须包含
.xls扩展名。您想要导出的属性,指定为字符向量元胞数组。您还可以包括与需求相关的链接的属性。指定至少一个需求属性。
reqXlsExport 可以检索此内置需求信息,它对应于相应的 slreq.Requirement 类属性:
IdIndexSummaryDescriptionRationaleKeywordsCreatedOnDirtyModifiedOnModifiedBySID
您指定属性元胞数组参量中的一个或多个属性。
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.export|slreq.getOutgoingLinkTypeLabel|slreq.getIncomingLinkTypeLabel|writecell|getIncomingTypeLabel|getOutgoingTypeLabel|getSourceLabel|getDestinationLabel|getDescriptionAsText|getRationaleAsText