众所周知,PREEvision是一款强大的电子电气架构协同开发及管理软件,可以很好地帮助架构工程师完成架构开发工作,其功能包括需求管理、定义功能逻辑、系统软件开发、网络设计、线束设计及整体工程的产品线管理和变形管理等。随着工程师们越来越重视系统工程分析,PREEvision也逐渐丰富 UML相关设计语言。UML(Unified Modeling Language)统一建模语言,可用于系统分析和设计,是辅助工程师进行思考和沟通的工具。
在软件行业,UML系统开发初期需要做需求获取、需求分析等工作,这里面的需求获取是系统设计的源头,需求分析是对系统设计前期的验证和过渡,包含业务用例、概念用例等分析,但是对于整车功能的设计而言,输入多为制定好的功能列表,前期的需求已经相对明确,架构工程师只要从系统分析阶段入手就可以了。
接下来我们将以“后视镜折叠功能”为例,了解在PREEvision中是如何应用UML进行分析建模的。
定义用例
作为系统需求分析的起点,通常以功能为用例,例如后视镜折叠是一个功能,而折叠方式是功能的实现方式,可以把手动折叠后视镜和自动折叠后视镜作为后视镜折叠功能的继承,如图所示:
描述用例
描述系统用例有两种方式:1.用例规约 2.用例场景(活动图)
用例规约是对用例的具体描述,包括触发条件、执行步骤等,可以在Use Case构件的Description或自定义属性中描述,如下图对“自动折叠后视镜”用例进行描述:
也可以用活动图去描述用例,该种方式更为直观,能够体现功能的执行流程。同样,根据“自动折叠后视镜”用例画出活动图。因为自动折叠后视镜的前提是完成锁车,所以我们分为两个活动图去设计,也便于锁车活动被其他功能调用,如图所示:
左侧自动折叠后视镜活动图中的“执行锁车”Action可以关联右侧的遥控闭锁活动图;在PREEvision中可以找到两者的调用关系,如图所示:
假设自动折叠后视镜功能组成部分为“钥匙”、“锁系统”、“后视镜”、“后视镜控制”,那么可以将活动图分泳道显示,如图所示:
这里的泳道叫做Activity Partition,可以将其与逻辑模块/软件模块/Class进行关联,代表Partition的提供者。
类图设计
类图用于描述系统中各类之间的交互关系,帮助工程师简化对系统的理解,实现系统的结构化设计。从上面的活动图分析中可以得到相关的类及其属性参数,如图所示:
定义逻辑模块
针对类图的分析,可以整理规划出逻辑模块,并根据类的属性方法、类之间的交互关系定义逻辑接口。该部分工作类似于UML设计中的类到组件的映射,但PREEvision已经有非常完备的逻辑图,逻辑模块可以代表类和接口的集合,也可以用软件层的SWC去承接设计,但是个人比较习惯用逻辑层进行初步的接口定义,到软件层再进行细化设计。
接着上面“自动折叠后视镜”功能继续分析,在逻辑层有三种常用逻辑类型,输入(Sense)、控制(Logical Function)、输出(Actuation),我们把上面的Class按照这三种类型进行分类,“门”、“钥匙”、“电源模式”、“锁”都为Sense,“门锁控制”、“后视镜控制”属于Logical Function,“后视镜”由于既有状态监控又有驱动执行,所以可以把它拆分为Sense和Actuation两个逻辑模块,如图所示:
其实在前面类的分析时也可以把后视镜传感和执行分别设计成两个类,门和锁也可以划为一个逻辑模块,这个就取决于工程师个人的设计思路了。
设计逻辑图
将定义好接口的逻辑模块整理连接,得到逻辑框图,如图所示:
软件架构设计
根据逻辑框图建立SWC,创建其接口信息和映射关系,完成软件架构设计,如图所示:
软件架构设计完成后就可以映射到ECU,通过信号路由生成信号,通讯工程师可以基于此进行通讯设计,这里就不展开叙述了。
状态机设计
在PREEvision中可以针对某一个逻辑/软件模块分析其不同状态的转换关系,这里我们对软件模块“Rearview mirror control”进行状态分析。确认好模块所有的状态,并定义模块之间的现态/次态关系以及转换的触发事件、监护条件、执行动作等信息,完成模型如图所示:
状态转换可以定义的信息如图所示:
状态可定义的信息如图所示:
在系统分析过程中,可能会得到一些新的系统需求,我们可以逐步完善需求库,并做好追溯关系。
系统工程设计有很多的方法和流程,包括OOSEM、Arcadia、Harmony SE、State Analysis、MagicGrid等,但是不同的企业有不同的组织结构和工作流程,所以必然不能照搬硬套,需要结合实际情况去定制化裁剪或者探索出适合自己的系统设计方法。
支持系统工程语言的工具也有很多,比如EA、Rhapsody、Umodel、Agilian等,但是这些工具在汽车电子电气架构设计方面局限性较大,对于整车厂而言需要工具支持的不仅仅是需求分析,还有软件架构设计、硬件设计、整车通讯设计、功能安全、测试管理等,因此需要的是能够覆盖整车开发V流程的工具,那么PREEvision则可以满足以上V流程的设计和管理。
本篇短文只是简单介绍了PREEvision在UML建模方面的应用,若想获取更加详细的建模方法,可以后台留言或将需求发送至东信创智市场邮箱market@dotrustech.com,期待与您进一步沟通。