MBSE技术从理论到实践,逐渐在一些企业得到应用,在国内掀起了一股热潮。究竟MBSE是什么,如何学习和应用,本文做了一个入门的简单介绍。在文章最后,列出了作者学习MBSE技术中接触到的一些参考资料,推荐给读者,希望对大家学习MBSE技术有用。
学习和应用MBSE技术,离不开软件工具的支持。可在本论坛或www.zhiruisiwei.com网站下载中文版、国产化的MBSE建模软件工具:智睿思维基于模型的系统工程软件(MBSES)。请关注公众号“智睿思维MBSE”,获取最新的软件更新消息和最新技术文章,以及MBSES软件在线用户手册。发消息给客服,可获取本文中列出部分电子版学习资料。如果您在学习MBSE技术中有任何问题,也可以发消息给客户。
目录
1.MBSE是什么?
2.MBSE有什么用?
3.MBSE的方法有哪些?
4.MBSE怎么学习?
“MBSE”是“基于模型的系统工程”的英文“Model-Based Systems Engineering”的首字母缩写。从字面意思能看出MBSE这个概念有三个核心的概念“系统”、“系统工程”、“基于模型”。我们从“国际系统工程协会”(INCOSE)的出版物“系统工程手册”中摘录上面三个概念的定义如下:
“系统”(System):系统是相互作用的多个部分组成的为完成特定目的的一个整体。从这个基本概念看,这个世界上很多东西都可以称为“系统”。但是工程技术人员的研究领域中,这个“系统”主要是指软、硬件组成的产品、平台等。这个“系统”也包括其中的流程、人员、信息、技术和设施等。至于纯“人”的社会系统则不是这个技术研究的范围。
“系统工程”(SE,Systems Engineering):系统工程是一种使系统能够成功实现的跨学科的方法和手段。“系统工程”工作包括:在“系统”开发周期的早期阶段定义客户需求及功能,并文档化。然后进行设计综合和系统确认。同时考虑整个系统各方面的问题,包括系统运行、成本、进度、性能、培训、支持、试验、制造和销毁等。这里的“系统工程”简单说指的是产品研发过程的技术方法。
“基于模型的系统工程”(MBSE):“支持以概念设计阶段开始,并持续贯穿于开发和后期的生命周期阶段的系统需求、设计、分析、验证和确认活动的正规化建模应用。”用通俗一点语言解释的话,MBSE就是开发一个产品、平台的时候,把产品、平台研发中涉及到的各个方面用“计算机数据模型”方式建立起来,形成一个统一的“系统模型”。
MBSE有什么用,也就是建立那个统一的计算机数据化的“系统模型”有啥用?
在没有使用MBSE技术之前,“系统工程”工作成果就是一堆的“文档”。这些文档也是电子化的,只不过它们都是“非结构化”的数据,不能称为“模型”数据。相比“基于文档的系统工程”方法,MBSE方法具有很多优势。
在INCOSE 的《系统工程手册》中,总结了以下几点MBSE的好处:
(1)改善了开发系统的利益相关者(客户、项目管理人员、系统工程师、软硬件工程师、测试人员和各专业工程学科的人员)之间的沟通。
因为MBSE是基于标准的建模语言建立的规范化说明,相当于大家交流的语言是统一的。而基于自然语言的“文档”容易在不同专业的人员之间产生歧义。而且MBSE的这个“模型化说明”在各类专业人员之间传递时候是可以通过计算机软件转换为各自专业的语言、数据,而自然语言是很难实现这个转换的。但是,这要求大家要新学习一门通用的“系统建模语言”。如果大家都不懂这门语言的话,只会产生和上面的观点相反的结果。
(2)通过使系统模型能够被从多个侧面进行观察,以及提供变更影响分析的能力, 提高了管理复杂系统的能力。
这个是说系统的同一套数据模型,可以从不同的专业角度进行浏览和分析。而且由于系统模型数据之间有相互关联关系,如果那个地方更改,可以通过关系查询到所有影响到的地方。这个对于非结构化的文档来说,是做不到,或者很麻烦。即使文档也能提供从各个专业角度的说明,但是这些文档数据之间没有关联,可以说是基于各自多套数据来源的,而不是唯一的一套数据模型。这个观点也是在说“MBSE提高了开发复杂系统的能力”。
(3)通过提供可评估一致性、正确性和完善性的无歧义的且精确的系统模型,提升了产品质量。
产品的质量问题有很多是设计问题,而这些设计问题并不简简单单是设计人员的水平问题、责任心问题,而更多是复杂过程本身不可避免的会出现的质量问题。想让所有人不犯错是不可能的,而只能是通过技术手段使人少犯错。MBSE是一种使人少犯错的技术手段,因为MBSE建立的模型可以通过计算机软件自动的检查错误。相比之下传统的文档容易隐藏错误,一个笔误可能造成严重损失。
(4)通过以更加标准化的方式捕获信息并高效地利用模型驱动方法固有的内置抽象机制,增强知识捕获及信息的复用。这会导致缩短开发周期和更低的维护成本,以改进设计。
这个观点是说系统模型数据更容易复用,比文档手段的“复制、粘贴、替换”文本效率要高。模型数据的复用,可以采取“引用”方式。而且可以建立共用的模型库,提高知识的复用率。
(5)通过提供概念清晰且无歧义的表达,提升教授与学习系统工程基本原理的能力。学会了MBSE,就掌握了系统工程的方法。
在系统工程技术结合计算机信息技术发展的过程中,其实有多种技术方向在发展。这些技术途径都可以称为MBSE。这其中主要的方法有6种:INCOSE(就是前面说的那个国际系统工程协会)的面向对象的系统工程方法(OOSEM)方法、IBM的Rational Telelogic Harmony-SE、IBM的RUP系统工程方法、Vitech MBSE方法论、JPL状态分析(SA)方法和Dori的对象过程方法(OPM)。
另外,随着MBSE建模软件的不断发展,达索 NoMagic和IBM两大公司也都在不断改进MBSE的方法论。其中NoMagic主推的"Magic Grid"方法具有很大的影响,NASA的项目也都应用这个方法。在国产化MBSE建模软件"智睿思维基于模型的系统工程软件"MBSES中也可以应用这种方法(请关注智"睿思维MBSE",将会有一篇详细介绍MagicGrid方法的文章发布)。IBM增加了“敏捷MBSE”(aMBSE)方法,这个方法详细说明,参见《敏捷系统工程》这本树有详细的说明。
3.1 OOSEM方法
OOSEM是一种自顶向下、场景驱动建模过程,它使用SysML(系统建模语言,Systems Modeling Language)语言作为建模语言,支持系统的分析、定义、设计、和验证。该过程使用面向对象的概念和其它建模方法来构建灵活和可扩展的系统,使其能够适应技术的不断进化和需求的变更。
OOSEM过程的主要活动包括:
(1) 分析利益相关者的需求。这个工作简单说就是分析使用产品的用户的需求,就是用户最初始的想法是啥,想怎么用这个产品、需要产品有那些功能。了解用户当前情况是什么、有什么局限,未来可以有哪些提升。
(2) 分析系统需求。简单说就是产品本身应该提供那些功能,用户是如何使用产品的。在这个过程中要推导出产品的功能需求、接口需求、数据需求和性能需求。
(3) 定义逻辑架构。先将系统分解为多个逻辑组件,这些逻辑组件是暂且虚拟的一个部件,它能够满足产品的各项需求。但是具体用什么硬件或软件的方案来实现它,在下一步的物理架构设计中实现。将系统方案分为逻辑架构和物理架构两个层级,有利于减少需求和技术变化对设计的影响。
(4) 综合候选的物理架构。可能建立几个和逻辑元素相对应的物理架构,以进行对比分析,确定哪一个最合适。物理架构的元素是具体产品部件,包括软件和硬件。前面逻辑架构中的功能,有些是可以用软件来实现,也可以用硬件来实现,或者用不同型号规格的硬件来实现。
(5) 优化并评价备选方案。对上述备选的物理架构方案进行优选,利用模型的数据,进行性能、可靠性、生命周期成本、人员和其它专业工程相关的模型参数的分析,对备选方案进行优化,确定一个最终的方案。
(6) 管理需求的可追踪性。为保证需求、架构、设计、分析与验证元素之间的可追踪性,系统模型应该始终保持需求和其它元素的关系。设计过程就是一个不断填补空白需求的实现过程。当需求变动时,利用建立的需求实现关系,追踪和评估需求变更对系统设计、分析和验证元素的影响,并及时更改系统方案,使其和需求保持一致。
(7) 确认和验证系统。该活动验证系统设计满足其需求,并确认哪些需求满足利益相关者的需求。开发验证计划、程序和方法。
OOSEM的活动过程,用SysML的活动图,可以表示如下:
3.2 Harmony-SE
Harmony-SE本来是开发嵌入式软件的系统工程方法,逐渐成为通用的MBSE方法。这个方法的详细说明,可以参考《基于模型的系统工程最佳实践》这本书,是经典的Harmony-SE方法论说明。这里简单给出这种方法的流程图如下:
Harmony SE的V型开发流程:
Harmony SE方法过程:
MagicGid方法将MBSE过程各阶段工作流程放在一个表格中,这个表格典型内容如下图所示:
在这个表格中,采取从左到右、从上到下的顺序逐步开展MBSE的工作。通过建立各阶段的模型之间的关系,可以统计需求覆盖情况,以及追踪模型变动的影响。有关此方法的详细说明,笔者将会在“智睿思维MBSE"公众号发布一篇详细的介绍文章,敬请关注。此方法已在"智睿思维MBSES"1.5版本中的实现,可以试用。
MBSE技术已经成为系统工程师必须掌握的基本知识。有些单位甚至要求设计师持证上岗。至于怎么学习MBSE技术,最简单的方法,那就是找一个软件来直接上手使用。结合自己的产品,一边用、一边学。推荐国产的中文软件:智睿思维基于模型的系统工程软件(MBSES),这个软件可以在本论坛或www.zhiruisiwei.com下载。这个软件的界面、用户手册全部都是中文的,比较容易上手。
如果您想系统了解一些MBSE、SysML建模的相关知识,下面列举了国内可以买得到或可以获取的书籍和技术资料。
(1)《SysML精粹》,(美)Lenny Delligatti著,侯伯薇、朱艳兰译,机械工业出版社。
这本书是讲述MBSE入门技术的一本经典好书。内容浅显易懂,结合案例,对建模技术说明的很透彻。这本书出版的时间比较早。当时还是SysML1.3版的时候,现在是SysML1.6版,有些地方已经变动了。比如流端口、共轭端口类型已经去掉,同时增加了共轭接口模块。视图构造型原先扩展包元素,新版中扩展类元素。
推荐指数:★★★★★
(2)《SysML实践指南》,英文版名称《A Practical Guide to SysML The Systems Modeling Language》。互联网上有第二版中文翻译,英文版有电子书(第三版)。
这本书也是案例结合SysML语法介绍,还有一个章节专门讲OOSEM方法。可以说是MBSE方法论+SysML建模语言+案例的好书。
推荐指数:★★★★★
(3)INCOSE《系统工程手册》,张新国译,中英文对照,机械工业出版社。
很厚的一本书,900多页,网上有售。这本书是对整个系统工程技术的编著,其中有一个章节讲MBSE。内容不多,但是对了解MBSE在整个系统工程过程中的地位会有帮助。
推荐指数:★★★★
(4)《敏捷系统工程》,[美]Bruce Powel Douglass著,张新国 谷炼译,清华大学出版社。
全书讲述了MBSE的基本理论,方法论基于IBM的Harmony SE,提出了“敏捷MBSE”的概念。这本书国内网上有售。
推荐指数:★★★★
(5)《基于模型的系统工程最佳实践》,[德]Hans-Peter Hoffmann著,谷炼译,航空工业出版社。
这本书是IBM的Harmony SE方法的经典之作,结合IBM的Rhapsody软件中的案例,对整个流程进行了详细的说明。
推荐指数:★★★★★
(6)《基于模型的系统工程有效方法》,[美]John M.Borky, Thomas H.Bradley著,高星海译,北京航空航天大学出版社。
也很厚的一本书,讲述了很多系统建模的实践。不过想要看懂这本书,需要先学好MBSE的基础知识。
推荐指数:★★★★
(7)《SysML for Systems Engineering 2nd Edition: A model-based approach》,Jon Holt and Simon Perry。
纯英文,没见到中文翻译版,网上有电子版。从SysML讲到MBSE,内容丰富。
推荐指数:★★★★★
(8)《基于模型的系统工程—综合运用OPM和SysML》[以]Dov Dori,杨雄 王文广王涛 李志飞译,电子工业出版社。
基于Dori(就是原书的作者)的OPM方法。这种方法主要的建模语言是OPL(对象过程语言),独立的一个标准,和SysML不同。支持这种语言的建模工具只有作者开发的工具。
推荐指数:★★★
(9)《基于模型的系统工程(MBSE)方法论综述》,[美]杰弗里.A.艾,张新国译,机械工业出版社。
这本书是INCOSE的一个调研报告的翻译本。此书介绍了常用的几种系统工程方法(本文第3节说那些方法,这些方法有些来自于上述另外一本书),以及其他的系统工程的基本概念。
这本书出版的比较早,现在没有卖的了。JD上旧书价格有点离谱。网上有英文电子版。
推荐指数:★★★★★
MBSE有关标准:
有关MBSE技术,参考的标准如下。这些标准对深刻学习和理解建模技术很重要。
(1)《OMG Systems Modeling Language》1.6版。
下载地址:https://www.omg.org/spec/SysML/1.6/PDF
(2)OMG® Unified Modeling Language® (OMG UML®) Version 2.51
SysML标准只是讲述扩展的内容。对一些基本的建模知识,还是需要参考这个UML标准。
下载地址:https://www.omg.org/spec/UML/2.5.1/PDF
(3)中国国家标准汇编526 GB 28174( 2011 年制定)。可以理解为UML2.0中文版。
网上有售,网上有电子版。
关注下面微信公众号,可获取上述部分资料电子版(发消息给客服)。
关联文章:
MBSE建模学习之五:交互和序列图
MBSE建模学习之四:活动(Activity)及活动图
MBSE建模学习之三:系统功能--行为(Behavior)的说明
MBSE建模学习之二:+-#~/^*都啥意思?详细说说属性
MBSE建模学习之一:说说模块(Block)