原文链接: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架构左侧的工作。
待续……
[UMLChinaSicilia 摘译,转载请注明出处。文章观点不代表UMLChina观点。]
===广告分隔线===
|
||||||||||||||||||||
[训练介绍] 软件开发中,需求是解决“产品怎样好卖”的问题,设计是解决“降低生产成本”的问题。二者相辅相成,缺一不可。而且,不能相互取代。要迈向“低成本制造好卖的产品”的境界,并非喊喊口号就能达到,需要静下心来,学习和实践各种技能。 在这个强调“做减法”的时代,建模是正确帮助您“做减法”的绝佳工具。 本训练就是教授如何使用UML2.5相关的需求和设计技能来全程实例剖析一个系统的过程。 本训练对每个开发工作流,结合讲解、做练习巩固、应用到实际项目三种方式,展示使用UML2.5相关技能开发软件系统的全过程,解答实际应用中的疑难细节问题。 [学员要求] 有一年以上项目经验的需求或设计(编码)人员。不需要您有“UML基础”,只需要您有项目经验。欢迎学员携带自己的项目来听课,由专家在现场进行剖析。 [专家] UMLChina首席专家 潘加宇。在1999年还是一名程序员时,利用业余时间创建了UMLChina,潜心研究软件需求和设计技能。2002年开始对外提供UML需求和设计的技术指导和训练服务,到现在为止,已经上门为超过270家的软件组织提供服务,覆盖了国内各个领域的领袖企业,包括通信、企业管理、电子商务、房地产、网络游戏、地理信息、物流、数码设备、医疗设备、工业控制.....等领域。 [课程大纲] 1. 概论 以上时间分配会根据项目特点和训练进程调整。 |