基于PREEvision的UML设计

众所周知,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,期待与您进一步沟通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

闲谭Scala(2)--安装与环境配置

1. 概述 Java开发环境安装,需要两步,第一安装JDK,第二配置环境变量。 Scala的话,也是两步,第一安装Scale环境,第二配置环境变量。 需要注意的是,配置环境变量,主要是想让windows操…

智慧地下采矿:可视化引领未来矿业管理

图扑智慧地下采矿可视化平台通过整合多源数据,提供实时 3D 矿井地图及分析,提升了矿产开采的安全性与效率,为矿业管理提供数据驱动的智能决策支持,推动行业数字化转型。

XXL-TOOL v1.3.2 发布 | Java工具类库

Release Notes 1、【新增】新增工具类模块: Encrypt模块 | 一系列处理编解码、加解密的工具。Net模块 | 一系列处理Web、网络通讯相关的工具。 2、【完善】工具类单测完善;3、【升级】升级依赖版本,如freemarker、junit…等。 部分工具代码…

王鹤棣新剧《大奉打更人》开播 数据亮眼刷新招商纪录

临近年末,各类国产剧集仍频上新,档期竞争格外激烈。而由王鹤棣领衔主演的古装悬疑轻喜剧《大奉打更人》已于12月28日在CCTV-8和腾讯视频同步播出,开播即横扫各大榜单。该剧从定档官宣到开播,热度一路攀升,开播后更是掀…

Java中StopWatch的使用详解

stopWatch 是org.springframework.util 包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比。 在未使用这个工具类之前,如果我们需要统计某段代码的耗时,我们会这样写: public static void main(String[] args…

数据中台从centos升级为国产操作系统后,资源增加字段时,提交报500错误

文章目录 背景一、步骤1.分析阶段2.查看nginx3.修改用户(也可以修改所有者权限) 背景 故障报错: nginx报错信息: 2024/12/19 15:25:31 [crit, 500299#0: *249 onen0 " /var/lib/nginx/tmp/cient body/0000000001" f…

org.apache.zookeeper.server.quorum.QuorumPeerMain

QuorumPeerMain源代码 package org.apache.zookeeper.server.quorum;import java.io.IOException; import javax.management.JMException; import javax.security.sasl.SaslException; import org.apache.yetus.audience.InterfaceAudience; import org.apache.zookeeper.audi…

在K8S中,如果Pod处于不健康状态如何排查?

在kubernetes中,Pod处于不健康状态可能由多种原因导致。为了排查这个问题,你需要采用一系列步骤来确定问题的根源。下面是一个详细的排查过程: 1. 检查Pod的状态: 使用kubectl get pods命令来查看Pod的当前状态。不健康的Pod可能…

广东粤万润与时序数据库TDengine携手打造智慧酒店新未来:数据驱动智能化转型

在智能化转型浪潮席卷全球的当下,智慧酒店行业已然成为推进智能生活应用的先锋领域。从智能照明到环境监测,从安防系统到沉浸式影音娱乐,智慧酒店通过技术赋能为用户提供了更加舒适、高效且个性化的服务体验。然而,随着设备的增多…

mysql_real_connect的概念和使用案例

mysql_real_connect 是 MySQL C API 中的一个函数,用于建立一个到 MySQL 数据库服务器的连接。这个函数尝试建立一个连接,并根据提供的参数进行连接设置。 概念 以下是 mysql_real_connect 函数的基本概念: 函数原型:MYSQL *my…

CSS系列(44)-- Nesting详解

前端技术探索系列:CSS Nesting详解 📦 致读者:探索样式嵌套的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS Nesting,这个强大的样式组织特性。 基础语法 🚀 基础嵌套 /* 简单嵌套 */ .c…

ARM64 CSEL条件 B条件一览

其实整体概括下来,就是两个寄存器比大小,按照不同的格式(有符号,无符号)比 条件选择 (Conditional Selection, CSEL) 示例 CSEL X3, X1, X2, EQ在这个例子中,如果条件码 EQ 为真(即条件寄存器的…

BLE core 内容整理解释

本文内容比较杂散,只是做记录使用,后续会整理的有条理些 link layer 基本介绍 **Link Layer Control(链路层控制)**是蓝牙低功耗(BLE)协议栈的核心部分,负责实现设备间可靠、安全、低功耗的数…

【疑难杂症】 HarmonyOS NEXT中Axios库的响应拦截器无法拦截424状态码怎么办?

今天在开发一个HarmonyOS NEXT的应用的时候,发现http接口如果返回的状态码是424时,我在axios中定义的拦截器失效了。直接走到了业务调用的catch中。 问题表现: 我的拦截器代码如下: 解决办法: 先说解决办法&#xff…

一起来看--红黑树

【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 红黑树是一种自平衡的二叉搜索树,广泛应用于计算机科学中,尤其是在实现关联数组和集合时。它的设计旨在确保在最坏情况下,基本动态集合操作(如插入、删除和查找&am…

聚类评价指标

聚类评价指标分为 内部指标 和 外部指标 两大类,用于评估聚类算法的性能。 一、内部评价指标 内部评价指标不依赖真实标签,主要通过聚类结果本身的紧凑性和分离性进行评估。 轮廓系数(Silhouette Coefficient, SC) 衡量数据点与其…

flask后端开发(1):第一个Flask项目

目录 一、Helloworddebug、host、port的配置 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 一、Helloword 一般是会创建两个文件夹和app.py app.py from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello…

C++ 设计模式:抽象工厂(Abstract Factory)

链接:C 设计模式 链接:C 设计模式 - 工厂方法 链接:C 设计模式 - 原型模式 链接:C 设计模式 - 建造者模式 抽象工厂(Abstract Factory)是一种创建型设计模式,它提供一个接口,用于创…

docker 安装与配置 gitlab

前提条件 Docker:确保你已经安装了 Docker 和 Docker Compose。可以通过以下命令来检查是否安装 Docker:docker --version1. 拉取 GitLab Docker 镜像 首先,我们需要拉取 GitLab 的官方 Docker 镜像。可以使用以下命令来获取 GitLab CE&…

C语言-详细讲解-字符串加密

1.题目要求 编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。假设句子长度不超过50个字符。根据给定的句子加密函数原型SentenceEncoding,编写函数SentenceEncoding调用字符加密函数CharEncoding完成句子加密。然…