您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
基于模型的系统工程(MBSE)的案例研究
 
作者:Mohit Choudhary 来源:IBM 发布于: 2015-9-30
   次浏览      
 

第 1 部分: IBM Rational Harmony 的集中式系统模型

建模自出现以来,一直是系统工程的重要组成部分。在过去十年中,工程师们已经大幅增加基于模型的技术的使用,并发展出一门新的学科,基于模型的系统工程(Model-Based Systems Engineering, MBSE)。这门学科与传统的系统工程不同,它强调中央系统模型,该模型同时捕捉系统需求和满足这些需求的设计决策。除了作为系统工程的工作构件的知识库之外,还可以通过模拟系统模型来验证成本、性能研究和设计选择。IBM Rational Harmony for Systems Engineers 等广泛应用的 MBSE 流程重点关注的是系统功能分析,也就是说,关注如何将功能要求转换为一致的系统操作描述。然后,使用系统操作获得所分配系统架构块之间的端口和接口。这些接口形成了各子系统之间的正式切换的基础。

本系列的这一部分旨在通过一个案例研究来探讨标准 MBSE 流程。首先,我们根据 UAV(无人驾驶飞机)地面站控制器的设计来拟定这个案例研究的范围。然后,我们会介绍 Rational Harmony 系统工程流程的基本概念、工作流和工作产品。最后,我们通过定义任务流来实现 UAV 地面站控制器的设计,同时构造每个阶段所需的构件。

案例研究

本案例研究基于对少部分 UAV 地面站控制器的设计分析,这些控制器的功能必须符合表 1 中的要求。

表 1. UAV 地面站控制器需求

Rational Harmony 系统工程中基于模型的系统工程

Rational Harmony for Systems Engineering 使您能够识别并推导出所需的系统功能,还能够确定相关的系统模式和状态。此外,您还可以将已确定的系统功能和状态分配给子系统结构,并确定跨子系统的端口和接口。图 1 显示了您在每个工程阶段为了完成系统设计而必须执行的基本输入和输出。

图 1. 工程阶段的生命周期

系统开发生命周期图

在功能分析阶段,通过一个活动图定义用例的功能流。然后,从活动图推导出用例场景。各场景通过一组序列图表示,创建用例块的端口和接口时需要用到它们。最后,用例基于状态的行为被捕获为一个状态图。

在架构设计阶段,选定的系统块被分解成几部分。最终的系统结构被捕获在 SysML 块定义图 (BDD) 和 SysML 内部块图 (IBD) 中。每个用例分配都可以通过一个关联的白盒活动图以图形的形式表示。下图是用例的黑盒活动图的副本,但它被划分为泳道 (swim lane)。每条泳道代表分解层次的一个块。然后,根据选定的设计理念,将操作 “移动” 到各自的块泳道。这种分配的一个基本要求是要求维护操作之间的初始链接(功能流)。最后,详细架构设计阶段的重点是端口和接口的定义,以及在架构分解的最低层,系统块基于状态的行为的定义。

设计流程/大纲

UAV 地面站的系统要求被划分成两个用例,如图 2 所示。为了实现可追溯性,需要将已确定的系统要求与相关的用例相关联。在本文中,假设已经完成需求分析。对于本案例研究,我们将重点关注 Uc1 PerformAreaSearch 用例。

图 2. UAV 管理系统用例图

UAV 管理系统用例分拆

功能分析

用例的功能流涵盖的方面包括:将搜索分配给选定的 UAV、接收来自 UAV 传感器的追踪信息、保持系统追踪信息与传感器追踪信息一致、维护所需要的传感器追踪信息更新历史、允许操作员中止搜索。您可以使用该工具在黑盒活动图中详细说明每个功能流,如图 3 所示。

图 3. 黑盒活动图

描述备用功能流的第一个用例的活动流

用例场景

您可以看到,活动图中的每个流都表示一个不同的用例场景。这些流不仅能帮助我们详细了解功能流中的操作,还能形成在各个开发阶段验证用例行为的基础。在图 4 所示的五个场景中,您可以通过其中三个场景获得我们的用例。

图 4. 黑盒用例场景

在每个序列图中捕获的备用活动流

用例状态图

在下一步中,您可以使用序列图获得端口和接口。获得端口和接口之后,必须在状态图中捕捉用例的状态行为。最后,为了设定用例的黑盒行为的基线,需要执行状态机,并且将生成的序列图与刚才创建为场景的序列图进行对比。本用例的状态机如图 5 所示。

图 5. 黑盒状态图

不同的序列图相结合,用于逐步演变用例状态机

状态 “Search Executed” 有两个 ‘and' 子状态:“Perform Sensor Track Management 执行传感器追踪信息管理” 和 “Perform History Check”。第一个子状态支持追踪信息的建立或更新,第二个子状态清除大于 30 分钟的传感器追踪信息历史,如果传感器追踪信息没有历史记录,则清除传感器追踪信息本身。

架构设计

在架构设计阶段,您需要重点关注结构分解,以及如何将操作和行为分配给子系统组件。首先,我们描述了将系统结构性分解成子系统的系统 BDD(参见图 6),然后我们将获得 Use Case White-Box Activity Diagram,并通过它将用例的操作分配给分解后的子系统(参见图 7)。

当将系统分解成子块后,它会以关键系统功能的定义为基础。这一阶段的目标是对系统功能进行分组,每个组可以通过一个子系统组件实现。第一步是将相关的系统功能划分为关键系统功能。对于本用例,我们通过用例黑盒活动图的分析,确定了以下三个关键系统功能:

1.管理传感器追踪信息

2.控制人机界面

3.执行历史管理

图 6. UAV 管理系统 BDD

UAV 管理系统架构块分解

考虑到要使用一些关键系统功能,我们获得了如图 6 所示的 BDD。因为我们有子系统块,所以接下来的任务是在各个泳道中执行分配操作,以描绘每个独立的子系统块。以下是重要的分配规则:

如果您无法将操作分配到单个块,那么必须将操作分解。在这种情况下,已分解的相关业务必须通过各自的依赖关系链接到父操作。

您可以将一个系统级的操作分配到多个块。在这种情况下,需要将相关的操作复制到相应的块泳道,并将它们集成到功能流中。

图 7. 白盒活动图

用例的活动流拆分到子系统泳道

在图 7 中,与操作员交互相关的操作已包含在人机界面 (MMI) 控制器组件中。同样,与创建、更新和处理传感器追踪信息相关的操作被分配到 Track Manager 泳道。而与历史数据管理有关的操作都推送到 History Manager 泳道。在将连续流拆分成两个块的地方,可以利用消息操作来表示从一个块到另一个块的转发请求。这种模式的一个示例是,从 History Manager 组件到 Track Manager 组件的消息操作 purgeSensorTrack(),该操作请求后一个组件执行 disposeSensorTrack()。

现在,已将操作分配给泳道,下一步就是执行具体的架构设计。

具体的架构设计

在进行具体的架构设计阶段,需要重点关注端口和接口的定义,以及实现子系统块基于状态的行为。为了做到这一点,必须使用白盒序列图确定所子系统块的端口和接口。

黑盒活动图的重点是确定不同的系统功能(操作)流,而白盒活动图的重点则是不同子系统之间的协作,同时还要考虑到操作的分配。接收到服务请求定义一个块的接口。在定义了端口和接口后,必须将所产生的每个叶块基于状态的行为捕获到某个状态图中。

代理白盒序列图如图 8 所示。序列图显示一个子系统块为了满足场景而向另一个子系统块请求的服务。

图 8. 白盒序列图

用例序列图,每个子系统块分别对应一个时间轴

我们继续使用白盒序列图来获得子系统之间的端口和接口,并获得代理子系统组件基于状态的行为,如图 9、图 10 和图 11 所示。

图 9. MMI 控制器状态

图中的 MMI 控制器状态

图 10. 追踪信息管理器的状态图

系统的追踪信息管理器块的状态机

图 11. 白盒端口和接口

子系统和操作员之间的端口和接口

结束语

我们描述了如何通过案例研究来应用 Rational Harmony 系统工程流程。从系统工程切换到后续系统开发的关键构件是一个可执行基线模型。该模型是生成规范文档和操作 ICD 的资料库。切换包中包含下列项目:

1.可执行子系统模型的基线

2.子系统已分配的操作的定义

3.子系统端口和逻辑 接口的定义

4.子系统行为的定义,捕获在状态图中

5.测试场景,从系统级用例场景中获得

第 2 部分: 为分布式系统的分析和设计开发以数据为中心的流程

分布式系统本身是面向数据的,它通过数据实体规定子系统边界,并通过特定数据交互来定义系统的动态特性。数据实体及其在分布式环境中的行为是不容忽视的。因此,通过对 IBM? Rational? Harmony 系统工程流程等典型 MBSE 工作流中进行功能分析,可以推导出端口和接口(数据交互和属性)的来源,在这种情况下,这种结果似乎比较奇怪。在本文中,我们将探索如何开发适用于分布式系统的分析和设计的 MBSE 流程。

在本系列的第 1 部分中,我们获得了 UAV 地面控制器的系统设计,我们使用 IBM Rational Harmony 系统工程作为一个流程,指引我们了解子系统和逻辑接口。不过,分布式系统的设计往往以数据为中心,而数据实体在系统设计中又占据最重要的位置。因此,很显然,我们只好稍微调整一下 Rational Harmony 系统工程流程,让设计流程把重点放在数据实体上,同时继续将 Rational Harmony 系统工程等成熟的 MBSE 流程的优势融入设计中。

在分布式系统设计中,使用一个先进的接口语言来定义这些数据交互是有必要的,这样做不仅可以在整个交互过程中确保各子系统的一致性,还可以捕获设置在语言本身中的数据的交互目的和行为。在不断变化的接口规范语言中,类似的步骤是通过 OMG 数据分发服务 (Data Distribution Service, DDS) 规范(参阅参考资料)实现。在派生的逻辑接口中的子系统之间弹出操作性 ICD(界面控制文件)时,标准的 Rational Harmony 系统工程流程结束时的切换(参阅参考资料)已经足够用,但是,在利用数据分发服务 (DDS) 将这些逻辑接口映射到信息交换结构时,可能并不简单。

在本文中,我们将尝试调整标准的 Rational Harmony 系统工程流程的工作流,让它支持分布式不协调性,而不是支持 Rational Harmony。首先,我们将介绍 DDS 规范和 Problem-frame Analysis 的结构(请参阅参考资料)。然后,我们遵循修改过的 MBSE 流程中所涉及的步骤,这些步骤及时采用了 DDS,并在整个分布式系统的分析和设计过程中体现它。最后,您应该能够通过使用与本文第 1 部分中相同的案例研究来运行这些步骤。

了解 DDS 和问题框架分析

OMG 数据分布服务 (Data Distribution Service, DDS) 规范被划分为两个架构层次。下层是以数据为中心的发布和订阅 (Data Centric Publish and Subscribe, DCPS) 层,其中包含了发布和订阅通信机制的类型安全的接口。上层是数据本地重构层 (Data Local Reconstruction Layer, DLRL),它使应用程序开发人员能够在 DCPS 层上构建本地对象模型,以屏蔽应用程序对 DCPS 的感知。本文的内容仅限于 DCPS 的一些特定结构。

以数据为中心的发布和订阅

DCPS 层将数据从发布者传播到感兴趣的订阅者。它的实现所使用的概念是,发布者 和数据编写器 和在发送端,而订阅者 和数据读取器 在接收端。DCPS 层由一个或多个数据域组成,其中每个域都包含通过 DDS 进行通信的发布者和订阅者。每对发布者和订阅者都从属于一个域。在所有数据域中,都是根据主题 来识别数据,主题是一个类型特定的域段,使发布者和订阅者能够明确地指定数据。

在一个域中,每个主题都将惟一的主题名称、数据类型 和一组服务质量 (QoS) 策略与数据相关联。每个主题都与一个数据类型相关联,但多个不同主题可以发布相同的数据类型。发布者的行为由与发布者、数据创建者和特定数据源的主题元素关联的 QoS 策略决定。同样,订阅者的行为由与订阅者、数据读取器和特定数据接收器的主题元素关联的 QoS 策略决定。可以在语言中指定并在案例研究中使用的一些 QoS 策略和操作,如表 1 和表 2 所示。QoS 策略和操作如下所示。

表 1. 记录相关的 DDS QoS 策略

表 2. 记录相关的 DDS 操作

问题框架分析

Problem Frames Approach(问题框架方法)是需求分析的方法。它使您能够将系统需求归类为一组预定义的问题,类似于解决方案范畴的设计模式。在将问题归类后,就可以通过解答与每个问题框架相关的一套标准题目来轻松地解释这些问题。图 1 显示了本文如何使用该技术来记录案例研究的构件。

图 1. 通过问题框架进行记录

使用实际对象作为模型元素和查询

建议的工作流

建议的处理工作流如图 2 所示。

图 2. MBSE 流程的工作流

面向数据的 MBSE 流程的建议工作流

在需求分析阶段已定义了系统级用例,该流程旨在通过问题框架分析如何为每个系统用例定义数据实体、属性和操作。您可以使用这些信息问题框架来开发模型实体及其属性、连接和转换问题框架,然后定义这些实体的行为和工件问题框架,从而在已定义的实体上进行开发操作。

接下来,我们需要根据在问题框架分析阶段确定的实体来定义系统信息模型。通过分析所产生的构件是一个主题模型,它定义了已确定的 DDS 主题的名称、类型和 QoS。因为我们已有了主题模型,所以在下一阶段的实体功能分析中,将重点介绍如何围绕已确定主题模型实体的生命周期操作来执行功能分析。您可以使用黑盒活动图来捕获每个已确定实体的生命周期并行流。此外,您必须通过组合一个或多个流来建立与序列图一致的真正功能流,从而生成黑盒用例场景。可以使用序列生成用例块的端口和接口。然后捕获用例的基于状态的行为,验证所生成的序列图,并将它们与黑盒场景序列图进行比较。

设计合成从执行系统结构分解开始,其依据不仅是关键功能,还有模型实体本身。在下一步中,在描述白盒活动图的同时,还需要将 DDS-Data-space 作为其中一个子系统组件包含在内,以修补独立的功能流。先将 DDS-Data-space 定义为一个子系统组件,然后使白盒状态机作为一个可执行模型来运行,同时保留在使用 DDS 过程中所要求的时间和空间的分离。现在,通过比较我们在这里生成的序列图与白盒场景所产生的序列图,可以验证这个可执行模型。最后,您需要生成系统内部结构框图 (IBD),它将产生白盒端口和接口。毫不奇怪,在本例中的接口与信息模型中的主题是一一对应的,这些主题已经充分定义了属性及其行为。

问题框架分析

该分析的范围由 Perform Area Search 用例定义,它检测飞行中的 UAV,将搜索区域分配给 UAV,从传感器获取追踪信息数据,并将该信息存储在信息模型中。所执行的分析如表 3 和表 4 所示。

表 3. 信息和连接问题框架分析

表 4. 工件问题框架分析

信息模型分析

在这一步中,您需要使用前一阶段的信息和连接问题框架分析来执行信息模型分析。这一阶段的目标是,确定代表数据实体及其行为的 DDS 主题。所有这些主题共同构成 DDS 环境中的交互单元,其行为的正确表示可以大大减轻子系统在维护和通用管理方面的责任。案例研究的一个有代表性的信息模型子集如图 2 所示。

在为主题 “SensorTrackMeasure” 定义的行为中,可以看到这种责任减少的示例。在这个主题上定义的键描述(其值构成键的数据字段列表)是一种复合结构,由 SensorID 和 TrackID 组成。具有相同键值的不同数据值代表相同实例的连续值,而具有不同键值的不同数据值则代表不同的实例。此外,主题的 HistoryQosPolicy 被定义为 KEEP_ALL,其深度为 1800,这表示在数据空间中为每个这样的实例最多保存 1800 个样本(按照 @ 1Hz 的频率更新 30 分钟时间)。最后,持续时间对应为 30 分钟的 LifespanQosPolicy 指定数据样本在 DDS 空间的最长有效时间,这段时间过去后,系统会自动处理该样本。有关 SensorTrackMeasure 实体这种行为的定义,明确地定义了 DDS 服务接管实体的历史管理责任。现在,在用例中对该功能进行建模会是重复操作。

图 3. 主题模型表示

备注:

图 2 中有代表性的主题模型描述了与主题 “SensorTrackMeasure” 相关的名称、类型和 QoS 策略。我们使用一个类似的练习在用例的其余部分中描述以下主题:

1.UAVInfo

2.SensorTrack

3.SensorTrackMeasure

4.Command

这里需要重点注意的是,并非所有在问题框架分析阶段中确定的模型实体都与主题模型存在一一对应关系。

实体功能分析

实体功能分析阶段的输入是主题模型和工件问题框架分析模型。这个阶段的重点是围绕已确定主题的生命周期操作来执行功能分析。在此步骤中产生的构件是用例的黑盒活动图、场景和状态图。用例的黑盒活动图如图 4 所示,而有代表性的场景和状态图分别如图 5 和图 6 所示。

黑盒活动图表示基于 read、write、content_filter 或 read_with_query_condition 等 DDS 结构的操作。这些结构是简化功能流的一种途径。可以将这样的绑定带入活动流程,这被认为是通过使用 DDS 实现功能效率的必要条件。另一方面,可以创建黑盒场景,用它们代表现实世界的场景,将所产生的流的不同序列引入到代表该场景的主序列中。为了确保能够满足需求分析阶段所了解的需求,这一步非常重要。反过来,这将有助于我们对详细主题及围绕这些主题的操作进行效能分析。

如果出现不匹配的情况,则有必要回头修改信息模型,直到实现所需的现实世界功能序列。此外,获得用例的状态机也很简单。用例的状态机由多个 'AND' 状态组成,每个 AND 状态分别代表活动图中的独立功能流的状态行为。虽然每个流都由一个 AND 状态表示,并因此可以独立执行,但这些流都通过从一个 AND 状态到其他等待子状态的事件流被捆绑在一起,以便支持作为一个整体状态机来执行。通过模型执行,参照之前生成的黑盒场景来验证自动生成的序列,这样做是有必要的。

图 4. 黑盒活动图(面向数据)

以数据为重点的黑盒活动图

图 5. 黑盒场景(面向数据)

修补过的面向数据的序列图

图 6. 黑盒状态图(面向数据)

多个 AND 状态

设计合成

在这种方法中的系统结构分解不仅基于关键系统功能的识别,还基于已获得的主题模型。此外,白盒活动图的功能分配的执行通过将黑盒活动图的完整流独立分配到一个泳道来完成。这种分配是可以实现的,因为通过 DDS 全球数据空间可以跨子系统边界访问所获得的主题实例和样本。

为用例所生成的白盒活动图如图 7 所示。分配给代表 DDS 数据空间的泳道的功能,是通过发布/订阅模式将其余组件拼接在一起的功能。为了使子系统在模型级别共同参与现实世界的场景,并且使可执行白盒状态机生效,这种表示方式被认为是必要的。该流程的下一步是发展用例的白盒场景,代表黑盒子场景的白盒视图。有代表性的白盒场景如图 8 所示。

最后,我们从白盒场景推导出端口和接口,并实现子系统组件的白盒状态行为,以准备切换。有代表性的子系统的状态行为以及白盒端口和接口分别如图 9 和图 10 所示。

本例中的子系统状态图使用与相应黑盒状态图完全相同的模式。两者之间仅有的区别是从子系统等待状态过渡的触发事件,这些事件由组件 DDS-Data-space 产生。DDS-Data-space 的状态机是一种模拟表示形式,用于支持不同分离组件的执行。立即执行白盒状态机,以便比较生成的序列图与白盒场景,从而针对切换确定模型的基线。最后,明确映射到主题模型的子系统接口是根据确定基线的模型生成的,如表 5 所示。

图 7. 白盒活动图(面向数据)

活动流拆分为分解的块

图 8. 白盒序列图(面向数据)

子系统块包括 DDS 数据空间

图 9. 白盒状态行为(面向数据)

每个子系统的状态机

图 10. 白盒端口和接口(面向数据)

多个子系统和操作员

表 5. 白盒接口列表

结束语

在把基于分布式组件的系统架构放在一起时,主要需要考虑的事项是,能够明确界定业务功能及其跨子系统的接口。如果系统遵循下面这些面向服务的架构的 Open Architecture 原则(请参阅参考资料),那么我们完全可以解决上述这些问题:

模块化:这意味着,架构已仔细划分业务和技术功能,使用户能够单独访问它们,并在状态之间保持最少量的交互需求。在分布式系统的设计中使用发布和订阅模式,这从本质上促进了子系统设计的无状态性质的使用。从本文的案例研究中,显然可以得出以下结论:每个独立的活动流应当代表组件的一个 AND 状态,而每个 AND 状态中惟一的主导状态是每个流的等待状态。行为主要是无状态的,因此,已定义实体的创建或更新本身就是通过写操作暴露给系统的其余部分,并且从不保存。这样的设计自然地呈现模块化系统的属性,即在状态之间保持最少交互。

开放式标准:使用开放式标准对分布式系统的设计造成的最大影响最大是,这些标准必须在何处完成服务描述、发现和功能访问。SysML 是基于开放式标准的建模语言,所以也是 DDS 规范。SysML 是用于明确定义系统或子系统功能的语言。而 DDS 是用于明确定义子系统接口的语言,它也在其自身中封装了发现和访问机制。

互操作性:在分布式系统中,互操作性依赖于定义良好的接口语法和语义。作为接口语言的 DDS 不仅清楚地暴露了接口功能,还明确暴露了数据模型的相关语义和??行为。这避免了因为对解析采用了错误的上下文而造成数据的误解。

因此,我们考虑在 MBSE 流程中将两个驱动因素(即 DDS 和 SysML)结合在一起,这看起来似乎是成功的分布式系统分析和设计,该分析和设计严格采用了 Rational Harmony 系统工程等成熟流程定义的路径,而这些流程本身就以系统工程的最佳实践为基础。

   
次浏览       
 
相关文章

UML概览
UML图解:用例图(Use case diagram )
UML图解:活动图(activity diagram )
UML图解:类图(class diagram )
UML图解:对象图(object diagram)
UML图解:顺序图( sequence diagram )
 
相关文档

模型跟踪:跟踪图、矩阵、关系(建模工具EA)
自定义表格(Custom Table)在EA中的使用
元素的详情浏览控制
UAF 1.2规范解读(DMM 和 UAFML )
EA中支持的各种图表
EA中的界面原型建模
 
相关课程

UML与面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于SysML和EA进行系统设计与建模
基于模型的需求管理
业务建模 & 领域驱动设计
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

如何向妻子解释OOD
OOAD与UML笔记
UML类图与类的关系详解
UML统一建模语言初学
总结一下领域模型的验证
基于 UML 的业务建模

面向对象的分析设计
基于UML的面向对象分析设计
UML + 嵌入式系统分析设计
关系数据库面向OOAD设计
业务建模与业务架构
使用用例进行需求管理

某航空IT部门 业务分析与业务建模
联想 业务需求分析与建模
北京航管科技 EA工具与架构设计
使用EA和UML进行嵌入式系统分析
全球最大的茶业集团 UML系统分析
华为 基于EA的嵌入式系统建模
水资源服务商 基于EA进行UML建模
更多...