编辑推荐: |
本文主要介绍了SysML模型图的理解以及实践举例。希望对您有所帮助。
本文来源于知乎,由火龙果软件Linda编辑,推荐。 |
|
引言
最近通过阅读MBSE系统工程方面的一些文献,以及与其它行业的MBSE实践者的交流,体会到MBSE的思想代表着系统工程理论应用的一个趋势,通过计算机语言和工具逐步替代基于文档的方式去帮助人们开发更为复杂的系统。本篇是对SysML模型图的理解以及实践举例。在轨道交通领域文献很少,所有图例为笔者手工绘制,如有错误请指正。
一、SysML图分类
MBSE建模语言SysML包括九种图,它是软件统一建模语言UML的一种扩展,用于表示系统开发中的所有活动,如下图所示:
图1 SysML图分类
包图(Package diagram):用于表示模型内部元素的层次关系;
需求图(Requirement diagram):用于表示文字形式的需求,以及不同层次之间需求的追溯关系,需求与测试用例之间的追溯关系;
活动图(Activity diagram):表示一种控制流程,由输入经过一系列控制动作到输出的流程,属于系统行为的一种;
序列图(Sequence diagram):表示模型的不同组成部分通过信息交互的时序关系,属于系统行为的一种;
状态机图(State Machine diagram):表示模型不同状态之间的转换关系,属于系统行为的一种;
用例图(Use Case diagram):表示系统的功能动作与外部参与者之间的关系,属于系统行为的一种;
参数图(Parametric diagram):表示系统属性的约束,用于工程分析,如可靠性、可用性、成本;
模块定义图(Block Definition diagram):表示系统中各元素的结构化,组成和分类,如上图就是一个模块定义图,描述了SysML图的分类;
内部模块图(Internal block diagram):描述模块内部各部分的组成和相互关系。
以上九种图综合起来,描述了系统不同方面的特性:
结构化的组成,互联关系和分类;
不同类型的控制行为:基于流的,基于信息的,基于状态的;
系统的约束属性;
系统控制行为、结构和约束之间的分配关系;
不同层级的需求,及需求与测试用例之间的对应关系。
二、SysML语言在MBSE建模的应用
看完SysML九类图的基本介绍,对于如何运用SysML建模语言和系统开发过程结合起来,在每个阶段应该用什么形式的模型图把模型的某方面特性表现出来,然后建立模型不同图之间的连接关系,是MBSE三大核心之一——建模方法。国际上有不少公司和组织建立了不同的建模方法,如:
IBM Telelogic Harmony-SE;
IBM Rational Unified Process for Systems Engineering
(RUP SE) for Model-Driven Systems Development (MDSD);
INCOSE 面向对象系统工程方法OOSEM;
Vitech 基于模型系统工程方法;
JPL状态分析。
本文以《A Practical Guide to SysML》书中的一个简化MBSE建模方法为基础,介绍SysML语言在系统开发生命周期的应用,这个简化的方法示例主要用SysML语言进行系统的需求分析,架构设计和实现,侧重V模型左侧的活动,流程图如下图所示:
图2 简化MBSE方法流程
三、示例
本节以第二部分的MBSE流程展开,以轨道交通的CBTC信号系统为例,以一些模型图示例说明MBSE建模方法与SysML语言的结合,侧重表示模型图的应用,对技术实现做了简化。
3.1 建立模型的框架
在第一步中,采用包图(package diagram)建立模型的框架架构,相当于文档中的配置库目录结构。
图3 包图示例
3.2 分析利益相关方需求
识别利益相关方以及所关注的问题;
定义系统domain模型(采用模块定义图)识别系统范围,与外部系统和用户之间的接口,模块定义图用于模块之间的关系,如下图描述了信号系统与外部系统、用户、其它实体之间的层次关系,即它们都属于信号系统域的组成部分;
图4 模块定义图示例
定义系统顶层用例(采用用例图)来表示系统所实现的目标,用例图通常与需求相关,表示系统的顶层功能或目标,用例图可以描述系统关联的场景;
图5 用例图示例
定义系统需求的确认策略,可用于衡量是否满足了利益相关者需求的有效措施。
3.3 确定系统需求,包含系统的功能、接口、物理和性能特性,和其它质量特性,以支持目标和有效性度量
绘制基于文本的需求到需求图,以支持系统目标和有效性度量;
图6 需求图示例
建模每个用例场景(使用活动图/序列图/状态机图)来描述系统行为需求,这三种图都可以用来描述系统的行为,活动图可以表示一个控制动作由输入到输出的转变,序列图可以表示不同模块之间的交互关系,状态机图可以表示模块的行为如何根据它的不同状态而变化,下面以车载VOBC的模式切换,列车初始定位,系统运行等级切换分别作为序列图、活动图和状态机图的示例。
图7 序列图示例
图8 活动图示例
图9 状态机图示例
生成系统内部连接图(内部模块图)来识别系统外部接口,系统内部各模块之间的连接关系,下图为车载子系统内部单元之间连接的简化示例,它与车载系统整体的模块定义图(图11)是一致的。
图10 内部模块图示例
3.4 综合备选的系统解决方案提供划分系统设计到组件,其可以满足系统需求
分解系统使用模块定义图;
图11 车载控制器组成结构图
使用活动图(图8)定义组成部分之间控制动作的动态活动;
使用的内部模块图(图10)定义组成部分之间的相互连接关系。
3.5 通过系统特性(性能、质量属性、可靠性、成本、和其它关键属性)分析来评估和选择满足系统需求和系统效能最大化的一个优选解决方案
捕捉分析语境来标识分析将被执行;
捕捉每个分析正如,一个参数图- 执行工程分析来确定系统属性的值。
在系统特性分析时,系统模型可以与其它工具方法相结合,比如系统安全性分析,可以在模块定义图(BDD)和内部模块图(IBD)建立的基础上,与安全领域的HAZOP、FMEA、FTA等工具结合,实现系统的安全分析,导出安全需求。
3.6 维护需求可追溯性来确保建议的解决方案满足系统需求和关联的涉众需求
捕捉系统需求和涉众需求之间的可追溯性;
显示系统设计如何满足系统需求;
标识测试用例需要的来验证系统需求和捕捉验证结果。
使用SysML建模语言相比基于文档的方法对于需求追溯性有着先天的优势。基于文档的方法中,需求分配在不同层级的需求和设计文件中,需要利用需求管理工具软件进行跟踪,保持需求的一致性和完整性,系统的需求条目越多,保持它们之间的可追溯性和变更影响的评估要付出的成本越大。而在模型中,不同的设计者在面对一个统一的模型,系统需求通过不同形式的模型图分配到子系统的控制过程中,通过它们之间模型的关联,易于实现需求的分配和管理。
图12 模型图关联示例
四、结语
SysML语言作为MBSE的支柱,是基于模型系统工程用于交流的基本语言,其有助于系统工程师理解MBSE这一新的系统工程方法,但不是所有的企业都适合使用,对于轨道交通行业,有无必要开展这一方向的应用探索,笔者提出三点设想:
对于开发复杂系统的大型企业,涉及到机械、电子、软件、气动等多个不同专业的子系统,并正在研发目前市场上没有的新型系统,需要管理上千条需求,比如车辆,可以尝试开展MBSE的试点应用,搭建以模型为中心的协同开发环境,建立MBSE学习性组织;
对于开发一般复杂系统的中型企业,涉及到硬件、软件等较少专业,比如信号系统、综合监控系统、车辆网络系统,可以考虑将MBSE部分过程与既有系统研发过程结合,利用系统建模方法的可视化为系统需求分析、场景安全分析和前期仿真验证提供支撑;
对于开发单一产品的中小型企业,从企业角度工作重心在于如何做好现有产品,没有能力考虑引入新的系统工程方法,但从作为企业核心的系统架构师角度,可以学习SysML建模语言和建模方法,理解它背后代表的系统工程思想,把一些建模方法应用到系统设计中,提高工作效率和个人的工作能力。 |