在设计开始之前检测不正确、缺少和冲突的需求。
STIMULUS 提供了一种建模语言,使系统架构师能够在完全集成的仿真环境中将正式的文本化需求、状态机和方框图结合在一起。可以在系统功能体系结构的每个级别分配文本化需求,而状态机通常用于描述原子系统的运行模式或操作顺序。
1、文本化需求
STIMULUS 提供了语言模板库,支持关于编写非模糊和标准化系统需求的常见行业实践。
2、状态机
STIMULUS 提供了分层状态机,可以轻松地与文本化需求相结合,以便为每种运行模式指定预期的系统行为。
3、方框图
STIMULUS 提供了方框图,允许对功能或系统架构进行描述。在每个系统级别,均可细化需求并将其分配到子系统。
通过使用 STIMULUS,您可以将系统规范(需求、状态机和方框图)作为一个整体进行仿真,并在设计阶段之前查找规范错误,从而采用有效的需求和测试驱动型开发流程。STIMULUS 会生成许多满足系统规范的执行跟踪,并提供强大的调试功能以分析需求仿真结果:冲突和缺失需求的自动检测和诊断、需求覆盖范围、有效需求突出显示、信号监控等。
1、冲突的需求
在仿真时,STIMULUS 解算器将检测需求之间的冲突。如果在既定的时间点发生冲突,仿真程序将会停止,以突出显示该组冲突的需求。
2、缺失的需求
在仿真时,某些系统输出未被任何需求所定义,则 STIMULUS 将检测到缺失的需求(更准确地说,是时间点),并在仿真窗口中以虚线表示。
3、需求覆盖范围
将需求转变为观察因素时,STIMULUS 将测量其功能覆盖范围。如果自仿真开始后至少激活了一次需求,则可以认为该需求已被覆盖。
下图显示了 STIMULUS 的一个屏幕截图,其中的需求仿真导致发生一些冲突。一旦由 STIMULUS 检测到冲突,用户就可以使用调试功能(向后仿真、突出显示需求、信号监控等)来分析冲突。
自动生成测试向量和测试预言。
被测系统的代码可以作为 FMI 组件轻松导入,可以完全由代码生成工具(Simulink、Scade、ControlBuild 等)生成,也可以部分由 STIMULUS 生成以嵌入您的 C 代码。在集成时,您还可以导入 CSV 日志文件以执行真实系统的后期分析。
可以定义多个用例来测试系统,并且 STIMULUS 将为每个用例自动生成多个测试向量,以便最大限度地扩展测试活动的功能覆盖范围。可以将需求轻松地重复用作测试观察因素,以检测和报告任何违反规范的情况。
测试活动可自动执行通过用例生成的大量测试向量,并且 STIMULUS 将报告有关需求违例和覆盖范围的全面指标。每次失败的测试都可以在仿真环境中重新运行,并可在该环境中分析需求违例。
代码开发完成后,STIMULUS可以自动检查其是否符合系统要求。您可以使用方框图构建一个测试环境,在其中将需求转换为测试观察因素,并使用标准FMI协议将被测系统导入为DLL。随后,您可以生成并运行多个测试向量,STIMULUS将自动检查被测系统的行为是否符合其规格。在测试活动期间,STIMULUS还会计算并报告关于需求功能覆盖范围的全面指标。