查看原文
其他

基于模型的系统工程——自动驾驶汽车(20181004更新)

UMLChina 2023-06-27

原文链接:http://intercax.com/2018/01/11/model-based-systems-engineering-autonomous-vehicles-part-1/

作者 Dirk Zwemer


自动驾驶汽车(AV)是当前系统工程最大的挑战之一,不只是因为AV自身的复杂性,还因为它是更大的智慧道路的一部分。本文讨论基于模型的方法,包括SysML建模以及来自Intercax的MBSE平台Syndeia如何有助于解决复杂性。


图1展示了ADS (自动驾驶系统,Automated Driving System)操作领域的SysML块定义图,包括


• 1对多,不同自动水平的汽车(Vehicle)。
• 1对多,当自动水平变化时,司机(Driver)/乘客(Passenger)的区分变得模糊。
• 操作设计领域(Operational Design Domain,ODD),汽车在其中操作的通用环境。可变因子包括道路类型(RoadwayType)、天气(Weather)和每天的什么时间(TimeOfDay)。ODD 也包括通过电子手段和汽车相连的基础设施(路标、交通灯等等)。
• 障碍物(Obstacle),局部环境中的随机因子(例如行人),汽车或司机必须识别和恰当地响应。
• 操作中心(Operations Center),通信和控制的中央管控机构。


准备这样一张领域图,指定感兴趣系统(Vehicle)必须交互的的元素,通常是基于模型的系统工程早期工作。注意,这只是关于汽车的操作环境。其他建模还包括制造、分发、维护和其他因素。



图1 ADS Operations领域的SysML块定义图


图2展示了MBSE结构的架构。我们用Intercax的基于模型的工程平台Syndeia来创建、维护和可视化总体系统模型(Total System Model,TSM)。本例的工具集包括Jama、MagicDraw、GitHub和JIRA。也可以换成其他软件工具,例如IBM Rational Rhapsody和 DOORS NG。

图2 总体系统模型架构


通过Syndeia,系统工程师可以有两种方法把需求连接到其他系统模型元素。在图3左侧,我们创建一个引用连接(Reference Connection),在模型元素之间建立可跟踪的链接,但不假设任何系统信息。


图3 Syndeia的需求连接方法


另一种方法是图3右侧,模型变换连接(Model Transform Connection),变换Jama或DOORS NG里的需求为对等的SysML需求,并维护两者之间的连接。



图4 SysML序列图,视力障碍乘客场景


引用连接更简单,因为信息没有复制。在Syndeia中,这样的连接可以检查是否有新版本的Jama需求提交。模型变换连接则可以提供更多的建模灵活性,SysML需求可以通过标准关系(例如Satisfy、Verify和Refine依赖)链接到多个其他SysML元素。图4展示一张SysML行为图,描述了视力障碍乘客使用AV的场景。图5展示了SysML模型使用这个场景,通过标准Refine依赖来精化或澄清需求。如果SysML模型显式包括需求,包括需求验证和分解在内的其他任务可以被简化。



图5 用于精化需求的场景


我们假设需求一开始在需求管理工具中生成。图6展示了创建自US DoT(美国交通部)报告, "Automated Driving System 2.0: A Vision for Safety" (September 2017)的部分需求列表。在Jama中被捕获为多层需求模型。每条捕获进Jama的需求都有Name(名称), ID, Description(描述)和其他属性。图7展示了Jama web浏览器中的需求。注意:DoT报告是建议指南的集合,不是强制的需求,此处只是为了展示。



图6 Jama中的ADS需求模型



图7 Jama web 浏览器中的 "Collision Compatibility(碰撞相容性)" 需求


本例中,我们使用模型变换连接生成SysML需求结构。使用Syndeia可以一步到位。从Jama仓储拖放顶层需求规约DoT ADS Guidelines到MagicDraw模型,可以变换得到完整的4个层次、64个需求结构。每对需求相互连接,以便比较和同步。



图8 使用Syndeia把JIRA Task属性链接到SysML需求


再次使用Syndeia,我们使用SysML需求结构生成JIRA条目的集合,每条需求一条。图8展示了中层的需求规约。每条需求的JIRA条目可以用于项目管理,例如跟踪状态、安排进度和分配人员。本例中使用了引用连接,在SysML需求和JIRA条目之间没有共同的属性。然而,连接允许系统工程师在web浏览器中直接打开SysML模型元素或元素符号的JIRA条目,并为Jama仓储提供间接的反向链接。使用这些连接,我们就完成了图2中TSM架构左侧的工作。


MBSE方法学往往在开发周期早期强制生成功能架构,特别是针对软件为主要组件的信息物理融合系统。本例中,我们生成了12个AV功能,以展示这些功能映射到需求、软件文件和项目管理的方法。它们被建模为MagicDraw中的块(Block),如图9所示。



图9 AV功能架构


可以用同样的方法连接SysML功能块到JIRA条目。顶层块Autonomous_Vehicle_Functions被拖进 JIRA项目,生成13条JIRA新特性,每条通过引用连接链接回SysML功能。JIRA条目可以从功能直接打开。


 图10 Syndeia连接管理器,连接功能(左侧)到GitHub软件文件并提交(右侧)


本例中,正在开发的软件模块在GitHub仓储做配置管理。假设GitHub中的软件文件和SysML中的功能块是独立开发的,我们可以使用Syndeia,通过创建引用连接链接已有元素,如图10所示。


在这个阶段,我们已经连接每个SysML功能块到JIRA条目和一个或多个GitHub文件。为了创建需求和功能之间的连接,我们在MagicDraw中使用SysML的Satisfy依赖,如图11所示。这些关系存储在SysML建模工具中,这个阶段不涉及Syndeia。注意,集合中的一条需求没有Satisfy关系。好的MBSE实践应该跟踪和高亮这些遗漏。



图11 在SysML需求图中映射功能到需求


现在,整个连接架构已经实现了。除了使用这些连接来保持分离的模型一致之外,我们还可以使用它们来提供遍及TSM的跟踪能力。接下来要考虑连接构成的网或图的可视化和搜索。


不同工具的模型元素之间以及模型内部创建的连接,组成了一张图,即节点和边的集合。当图的规模变大时,我们可以利用强有力的新的图形数据库技术来可视化和查询,以获得系统信息的详细路线图以及前所未有的跟踪能力。



图12 MagicDraw、JIRA、Jama和GitHub模型间连接的全局可视化(弦图,Chord Plot)


 
图13 局部可视化展示SysML"Disability Access"需求的邻近元素


待续……


[UMLChinaSicilia 摘译,转载请注明出处。文章观点不代表UMLChina观点。]


===广告分隔线===

主题:软件需求设计UML全程实例剖析
开课时间:2018年10月20-21日(周六、周日)(9:00-12:00,13:30-17:30)
上课地点:北京
费用:

每人2400元,含午餐。交通、住宿费请自理。可以开增值税专用发票和增值税普通发票。

微信报名:

18758097122

QQ报名:1493943028
Email报名:

umlchinacourse@163.com

咨询电话:18758097122
报名交费:

步骤一、报名

教室座位有限,需要先报名。请通过以上任何联系方式告知我们您的姓名和单位,以便我们预留座位。

步骤二、交费

按以下方法办理交费,将交费凭证(截屏或照片)、发票单位名称(如果要开)通过以上任何方式告知我们。我们收到费用后会给您发听课证,听课证是一个pdf文件,上有详细听课地点和您的座位号。听课证上有详细地址和座位细节。

不方便现场交费,因为需按交费顺序安排座位,而且现场只有老师,无人收款。

如果您交费后因故未能参加,您的名额和上课时间将会一直保留。

交费方法:

(1)支付宝支付到talk@umlchina.com,手机扫描二维码或PC上点击付款图标即可付款



(2)微信支付到18758097122

(3)如果是公司财务汇,可以汇到负责UMLChina商务事宜的以下公司账号:

户名:杭州先思软件技术有限公司
帐号:3310 6594 0018 0100 29896
开户行:交通银行杭州滨江支行

课前准备:


请下载以下资料:
(1)最新版本的本次课程训练幻灯
http://www.umlchina.com/training/slide.htm
(2)建模软件EA30天试用版
http://www.sparxsystems.com/products/ea/trial/request.html
(3)UMLChina模型模板
http://www.umlchina.com/training/myproject.rar
(4)《软件方法(上)》第2版,自行到书店购买
(5)《软件方法(下)》目前公开内容,请在http://www.umlchina.com/book/softmeth0809.pdf下载
(6)课上可以专门以学员的项目作为主要讨论项目。如果您希望在课上讨论您的项目,麻烦下载http://www.umlchina.com/training/project.doc 填好后发给我们,以便老师针对您的项目相关领域事先做准备。


[训练介绍]

软件开发中,需求是解决“产品怎样好卖”的问题,设计是解决“降低生产成本”的问题。二者相辅相成,缺一不可。而且,不能相互取代。要迈向“低成本制造好卖的产品”的境界,并非喊喊口号就能达到,需要静下心来,学习和实践各种技能。

在这个强调“做减法”的时代,建模是正确帮助您“做减法”的绝佳工具。

本训练就是教授如何使用UML2.5相关的需求和设计技能来全程实例剖析一个系统的过程。

本训练对每个开发工作流,结合讲解、做练习巩固、应用到实际项目三种方式,展示使用UML2.5相关技能开发软件系统的全过程,解答实际应用中的疑难细节问题。

[学员要求]

有一年以上项目经验的需求或设计(编码)人员。不需要您有“UML基础”,只需要您有项目经验。欢迎学员携带自己的项目来听课,由专家在现场进行剖析。

[专家]

UMLChina首席专家 潘加宇。在1999年还是一名程序员时,利用业余时间创建了UMLChina,潜心研究软件需求和设计技能。2002年开始对外提供UML需求和设计的技术指导和训练服务,到现在为止,已经上门为超过270家的软件组织提供服务,覆盖了国内各个领域的领袖企业,包括通信、企业管理、电子商务、房地产、网络游戏、地理信息、物流、数码设备、医疗设备、工业控制.....等领域。

[课程大纲]

1. 概论
--需求和设计的关键区别
--核心工作流
--UML的统一
--使用UML开发过程、工具、资料介绍
2. 愿景
--愿景的要点
--如何揣摩愿景
--项目实作:愿景 
3. 业务建模
--组织的外观和内观
--选取合适的建模业务单元
--业务执行者和业务用例
--业务序列图
--改进业务序列图
--项目实作:绘制业务用例图、业务序列图 
4. 需求
--系统执行者要点剖析
--系统用例要点剖析
--从业务序列图映射到系统用例图
--项目实作:绘制系统用例图 
--书写用例规约
--项目实作:书写用例规约 
--通过关系整理用例
--需求启发技术
5. 结构分析之类图
--抽象和封装
--识别类及其属性
--识别类之间的泛化
--识别类之间的关联
--项目实作:绘制类图 
--彩色建模技术
--典型分析模式
6. 行为分析之序列图
--序列图精要
--用例、类图、序列图的互动
--专家原则和单一责任原则
--老板原则和聚合根
--可视原则
--项目实作:绘制序列图 
7. 行为分析之状态图
--状态图、类图、序列图的映射
--状态
--事件、动作和转换
--层次状态、历史状态
--转换执行序列
--分层和细化
--状态图和代码的映射
--项目实作:绘制状态机图 
8. 架构和设计
--存储层的映射
--数据源层的映射
--业务层的映射
--界面层的映射
--领域驱动设计
9. 改进指南
--根据团队情况改进
--小步前进
--正确的改进心态

以上时间分配会根据项目特点和训练进程调整。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存