在系统级别进行设计。第3部分:链接System Composer和MathWorks工具链

2在本教程的各个部分中,我们着眼于在系统级别构建系统架构和设计,同时还研究了System Composer。系统本身的体系结构非常出色,但是您需要确保它与开发的系统连接。顺便说一句,在使用SysML或UML的传统工具中缺少这种连接是创建System Composer的原因。事实是,许多公司已经使用面向模型的设计(MOS)范式进行开发,而他们不得不使用第三方工具进行系统工程,这很不方便。创建System Composer来弥合这一差距。在本教程的最后一部分中,我将展示如何将System Composer与MathWorks工具链一起用于面向模型的设计。

将体系结构绑定到需求


首先,让我们定义一下需求。需求是系统应该做什么。它们与技术规范的不同之处在于,要求是对系统功能的描述。MATLAB / Simulink具有Simulink需求管理工具。它使您既可以从外部系统(例如IBM DOORS)导入需求,又可以在本机的需求编辑器中编写需求。需求本身存储在扩展名为* .slreqx的特殊文件中。创建需求并将其保存在文件AccessControl.slreqx中。我们将从第一部分的推理中自己制定需求:

  • 必须提供RFID标签读取。
  • 从RFID标签检索的数据必须转移到外部数据库
  • 根据数据库响应,生成禁止或许可
  • 必须通知用户访问状态
  • 根据访问状态将锁解锁

这些需求是在需求编辑器中创建的,需求编辑器是Simulink需求随附的需求创建工具,并已保存到文件中。如果使用Requirements Perspective在模型本身中打开此文件,那么我们将看到以下内容:



为了将需求附加到架构元素,只需用鼠标将需求转移到所需的架构元素。

而且,如果需求发生了变化(在设计的早期阶段经常如此),该怎么办?如何分析它们对我们的体系结构的影响?幸运的是,Simulink需求允许您跟踪需求的变化并标记受这些变化影响的那些架构元素:



要分析具有需求的体系结构的覆盖范围,请在“需求”选项卡上,选择“共享”,然后选择“生成可跟踪性矩阵”。将创建一个可追溯性矩阵,以图形方式显示需求和元素之间的关系。该矩阵是一个表,其列是架构或模型的元素,行是需求本身,并且单元格包含有关需求与元素之间关系的图形注释。

如果单击“突出显示缺少的链接”按钮,则矩阵中未发现的元素将以黄色突出显示:



如果您创建对安全至关重要的系统,那么对需求范围的完整性及其可追溯性的分析是非常重要的过程,对于飞机,汽车或核反应堆而言,这无关紧要。对于此类系统,要求中不应包含任何要素!如果您对如何开发这些系统以及如何在MOS范式中开发它们感兴趣,请在注释中写下,因为该主题非常广泛,冗长,并且超出了本教程的范围。

MATLAB的架构分析


由于System Composer是MathWorks工具链的一部分,因此我们可以分析体系结构的属性,生成报告等。通过对体系结构进行分析,您可以计算出实施该系统所需的工作时间,最小的重量和尺寸,TDP等。而且,如果我们系统地而不是一次性地进行分析,那么我们可以看到系统开发的动态,并找到问题所在。

假设对于我们的ACS,我们要计算工作时间。所有组件都有一个共同的Workload属性,显然我们需要将这些属性的值加起来。为此,让我们通过单击“分析模型”来创建一个用于分析的体系结构实例,然后选择要分析的GenericComponent:



然后单击“实例化”按钮并获得以下结果:



在这里我们可以为每个元素分配Workload属性的值,然后单击Update按钮以更新架构本身中的这些值。而且我们不必单击,因为该实例与体系结构分开存在,并且我们可以使用属性值来查找项目折衷或找到最佳属性值。分析本身由在MATLAB中创建的单独函数执行。例如,以下是我们的“分析”功能的代码:

function AccessControl_simple_analytics(instance,varargin)
if instance.isComponent()
workload = 0;    
    for child=instance.Components
        child_workload = child.getValue("GenericComponent.Workload");
        workload = workload + child_workload;
    end
instance.setValue("GenericComponent.Workload",workload);
end
end

创建功能后,单击“分析”,然后在“选择功能”菜单中将其选中。现在,当单击Analyze按钮时,将对Workload属性的值求和:



这是一个非常简单的体系结构分析示例,在实际,实战,分析任务中,使用了MATLAB分析功能的全部范围,例如曲线拟合,回归分析等。

这里最主要的是,我们可以并且应该对我们的体系结构进行系统的分析,以便开发该项目。

组件之间的关系及其实现


最后,System Composer不是与Simulink分开存在的独立工具。定义架构后,可以将其每个组件绑定到Simulink模型,而您可以选择现有模型或自动创建模型!这使您可以直接在System Composer中运行模拟并探索系统的行为特征。



最重要的是,如果从组件创建模型,则会在模型中自动生成具有必要接口的输入和输出端口。这是一个非常重要的琐事,因为组件集成通常会由于组件接口不一致而减慢速度,并且预先构建的接口可以解决此问题。每个生成的模型都可以提供给特定的艺术家,并且可以稍后将其集成到架构中

发现


在三篇文章中,我展示了系统级别的基本设计技术。现在该盘点一下。

在系统级别进行设计需要对任务进行相当详细的分析,并需要直观的工具。 System Composer是一个易于学习的工具,并且充分利用了面向模型的设计方法来创建和分析系统体系结构以及MATLAB的分析功能。

使用System Composer进行设计决策的全面分析,使我们能够了解组件的性质并确定系统的潜在瓶颈,否则这些瓶颈将在开发的后期发现。可以使用各种方法进行分析-从数据流分析到数值分析。

而且,正如您所看到的,系统级的设计一点也不可怕,支持系统设计的工具可以帮助您实现这一目标。

想知道更多?我们举办了关于系统工程的入门网络研讨会,作为该网络研讨会的一部分,我刚刚展示了本教程。我的同事Mikhail Peselnik讲了为什么根本需要系统工程。网络研讨会本身就在这里

All Articles