MBSE建模方法研究:业务、系统和软件建模

2023-03-01 08:06金成杰俎涛张宏亮段博
电子制作 2023年2期
关键词:用例视图安保

金成杰,俎涛,张宏亮,段博

(1.上海中广核工程科技有限公司,上海, 200241;2.北京火龙果网络技术有限公司,北京, 100088)

0 引言

当前,随着系统的复杂性越来越高,MBSE越来越被重视。MBSE讲求在整个系统的开发过程中以模型描述各个阶段的分析设计成果,并实现各个阶段的模型的跟踪。一个复杂系统的工程实践中,一般存在三个分析设计:业务分析设计、系统分析设计、软件设计。相应的也就需要建立三个模型:业务模型、系统模型、软件模型。在实际项目中,很多人都存在这样的困惑:

这些模型都有什么内容?

这些模型有哪些可以采用的建模语言?

这些模型如何紧密衔接,实现需求跟踪?

本文将引入相关的建模规范,并结合工程范例研究相关的建模方法。

1 MBSE建模方法的现状和遇到的问题

当前MBSE标准的最主要的建模语言是:

SysML:系统工程建模语言,用于对系统建模。

UML:软件工程建模语言,用于对软件建模。

但是缺乏明确的业务建模语言规范。而SysML和UML也是面向不同的层次,实际的系统分析设计中,系统和软件都需要建模,而且还要紧密相关。所以,即使当前采用SysML和UML建模的工程师,也存在如下困惑:

业务建模都建模什么,用什么建模语言,如何建模?

SysML建立的系统模型和UML建立的软件模型如何对接?

对于非功能需求(例如:性能)如何建模?

业务模型、系统模型、软件模型如何紧密衔接?

2 MBSE建模解决方案

下面提供MBSE的建模解决方案:

采用UML作为基础建模语言,根据建模的需要扩展出业务建模语言BML。

把BML和SysML建立模型映射,实现业务模型到系统模型的紧密衔接。

把SysML和UML建立模型映射,实现系统模型到软件模型的紧密衔接。

建模者可以根据自己的建模需要,基于UML扩展特定的建模形式规范。

MBSE过程可以描述为角色、活动和模型,如图2所示[1]:

图2 MBSE过程中的模型

说明如下:

业务分析师进行业务分析,建立业务模型;

系统工程师进行系统分析,建立系统模型;

软件工程师基于软件分析设计、软件开发和软件测试,建立了软件模型;

测试工程师基于模型对系统进行测试。

下面以目前正在实施的某核安保监控系统为例说明MBSE工程实践中的建模方法。

3 业务建模方法

在系统分析之前,应梳理清楚业务。这就需要通过业务模型对业务进行清晰地描述。业务模型的构成通常如表1所示[2]。

表1 业务建模的内容

业务建模目前可以采用BPMN进行工作流建模,但是对于如上的完整业务模型并没有对应的建模规范。而对业务模型的构成和现有的建模规范进行对比,可以看到UML具有描述业务模型的所有基本形式。所以可以对UML进行扩展,建立业务建模语言。

■3.1 业务域建模

业务域是指一个业务的问题空间,是逻辑层次的,其中含有业务人员、业务对象、系统。业务域的含义和UML包图中的包含义一致,所以可以用包图建模业务域。图3是核安保系统的业务域模型。

图3 业务域模型(UML包图)

■3.2 业务角色和业务服务建模

每个业务域都存在业务角色和业务服务。业务角色就是对业务中的人的抽象,可以采用UML中用例图中的Actor,Actor就是主要用于描述角色的抽象。业务服务本质上是一种行为,所以可以采用UML的活动图中的Activity来描述。这样,核安保系统的《业务域:访客服务》的业务服务的模型可以描述如图4所示。

图4 访客服务的业务流程(UML活动图)

■3.3 业务流程建模

业务服务通过业务流程来实现,业务流程的建模要体现出:执行者、活动、活动之间的对象流[3]。这些要素和UML的活动图的Partition、Activity和Object对应。所以可以采用UML的活动图建模业务流程,核安保系统的《业务域:访客服务》的《业务服务:办理通行卡和使用》对应的业务流程图建模如图5所示。

图5 通行卡办理及使用流程(UML活动图)

4 系统建模方法

在分析了业务并建立了相应的模型后,就需要对相应的系统建模。系统建模一般需要建模如表2所示[4]。

表2 系统建模的内容

系统建模一般采用SysML进行,下面以核安保系统为例说明。

■4.1 系统的构成建模

定义一个系统的构成,需要二个视图:物理视图和逻辑视图。物理视图为客观存在的对象及其关系图,而逻辑视图则存在于人的头脑中,是对物体、行为、数据、关系进行了概念抽象,以便更好地理解系统。对于整个系统的理解,常常需要把这两个视图对照阅读。这就产生了一种需要—建立能够同时描述物理和逻辑的综合视图,方法如下:

首先建立物理视图,描述系统的实体和关系;然后建立逻辑视图,描述事物、行为、关系等概念。再后建立一个复合视图,把物理元素和概念进行关联。物理视图可以采用SysML的模块定义图建模[5],逻辑视图可以采用UML图建模。复合视图则需要做一些扩展:因为模块(Block)和类(Class)在外观上很像,所以对Block定义了一个新的构造型(Physical Block),并采用了能够表达物理特点的长方体外形,这样,就可以清晰地区分出物理模块和逻辑类之间的外观。图6是核安保系统构成的复合视图[6-7]。

图6 系统构成复合视图(SysML的BDD和UML的类图)

系统构成复合视图中的元素说明如表3所示。

表3 核安保系统的构成的复合视图元素说明

■4.2 功能分析与建模

系统的功能可以采用SysML的用例图建模,每个Actor代表一个用户角色的抽象,每个Use Case代表一个用户使用系统执行的功能[8]。应建立用例的逐级分解机制,顶级用例也称为最大整体用例,是指一组完全独立的功能,可以进一步分解为更小的功能用例;而最小用例是可以独立执行的最小功能。图7是核安保系统的保安这个角色的顶级用例模型。

图7 保安的顶级用例模型(SysML用例图)

■4.3 子系统分析与建模

系统可以分解为子系统,并把功能分配到各个子系统上,才能够对系统的功能进行最终的定义。对子系统的建模,主要描述其提供的功能。可以采用SysML的模块定义图(BDD)进行建模。模块表示子系统,属性(Property)表述子系统具有的功能[9]。图8是核安保系统的子系统功能定义图。

图8 子系统功能分配(SysML模块定义图)

■4.4 子系统的接口交互建模

在定义了子系统后,应该对子系统之间的接口进行建模,然后对接口进行详细描述:接口的归属、接口的通信属性、数据流和非功能需求[10]。图9是描述核安保系统子系统接口的模块定义图(BDD)。

图9 子系统接口图(SysML模块定义图)

而对于子系统的接口交互,可以采用SysML的顺序图进行描述,图10是核安保系统的接口交互建模示例。

图1 复杂系统的MBSE 相关的模型和建模语言

图10 子系统接口交互图(SysML顺序图)

■4.5 非功能需求分析与建模

非功能需求包含两个视角:用户视角和系统视角。非功能需求的分析过程是从用户视角到系统视角逐步细化的过程。因为涉及2个视角,所以有必要建立一个上下文图:用SysML的用例图描述用户视角,用模块定义图(BDD)描述系统视角。图11是核安保系统中门禁控制器的性能上下文图。

图11 门禁控制器的性能上下文图(SysML的用例图+模块定义图)

对于用户视角的性能需求,描述如表4所示。

表4 门禁控制器的性能需求

对于系统视角的性能需求,把用例的场景分解为子系统和设备的交互过程,可以采用SysML的顺序图建模,图12是门禁控制的系统性能分析图。

图12 门禁控制器的系统性能分析图(SysML顺序图)

5 软件设计与建模

软件设计的建模包括如下表5所示[11]。

表5 软件设计建模的内容

下面以核安保系统为例,说明软件的建模方法。

■5.1 数据设计与建模

数据设计是对系统使用和存储的数据进行定义,这是从概念到逻辑、再到物理的逐步落地的过程,相应的数据模型包括概念视图、逻辑视图和物理视图。概念视图只关注数据对象,不关注数据属性。逻辑视图则进一步关注数据对象的属性,二者都可以采用UML类图建模[12],图13是核安保系统的逻辑数据模型简化示例。

图13 核安保系统的逻辑数据模型—部分(UML类图)

物理视图关注数据的存储空间及其网络连接。可以采用UML的部署图建模[13],图14是核安保系统的物理数据模型示例。

图14 核安保系统的数据物理模型(UML部署图)

■5.2 软件框架结构设计与建模

软件层次框架设计的目的是把问题分解为不同的层次,分别进行处理,提高开发的复用性和效率。

核安保系统的多个上位机子系统(监控子系统,管理子系统,服务子系统)具有类似的层次:

应用层:为用户或客户端提供应用功能;

服务层:为应用层提供服务;

业务对象层:提供数据对象及其相关的数据处理;

数据资源层:提供数据资源及其访问服务。

层可以用包建模,其中的逻辑模块可以采用类建模、实现模块可以采用组件建模,所以完整的层次框架视图需要结合UML的包图、类图和组件图才能进行完整建模[14]。核安保系统的软件层次模型如图15所示。

图15 核安保系统的软件层次框架视图(UML包图+类图+组件图)

■5.3 软件处理逻辑设计与建模

对于软件处理流程分析的时候,需要描述清楚:活动由谁执行、活动的时序和数据流。采用UML的活动图可以充分地描述以上流程信息[15]。图16是核安保系统中非常复杂的一个功能“进门检查”的处理流程的活动图分解示例。首先是一级活动图,描述进门检查功能有哪些子系统协作,分别执行什么活动、传递什么数据。

图16 一级软件处理逻辑流程图(UML活动图)

然后对于有必要细化的活动可以建立下级流程描述,编排为可编程的基本处理单元:顺序处理、判定分支处理、循环处理。图17是“读卡器检查”的二级处理流程描述。

图17

图17 二级软件处理逻辑流程图(UML活动图)

6 结论

MBSE是对复杂系统进行分析设计的有效方法,MBSE的全周期建模涉及业务、系统和软件,需要建立三个层次建模规范,各种模型视图建立映射关系,模型才能真正成为提高系统分析设计能力的载体。本文通过MBSE的业务、系统、软件的建模需要,基于业界公认的建模规范UML和SysML,给出了业务、系统和软件的建模方法和形式标准,并采用核安保系统为例,给出了具体的图例和建模方法。这些可以为MBSE实践者提供有意义的参考。

如上的MBSE建模方法已经通过实际工程项目—核安保系统的实施进行了验证,相关的工作成果得到了用户代表和开发代表的认可,一致认为提高了分析设计的能力和效率。

另外需要注意的是:在各个行业领域的建模内容会有所不同,所以本文提出的建模方法还可以结合具体行业应用的需要进一步具体化,使其对特定的领域更有针对性,这些工作可以作为后续研究的内容。

猜你喜欢
用例视图安保
中军军弘集团秦皇岛安保公司 以党建为统领 打造“军”字品牌安保企业
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
跟踪导练(一)
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
如何找准安保与宣传的平衡点——以G20杭州峰会安保宣传为例
5.3 视图与投影
视图
Y—20重型运输机多视图