0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何评估哪个软件系统架构方法更合适

智能汽车电子与软件 来源:智车Robot 作者:Bruce Jiang 2022-12-01 17:34 次阅读

软件系统架构的选择对于软件系统开发的成败至关重要,软件架构各种风格各种方法,光分层架构方法就很多,如何评估哪个软件系统架构方法更合适。CMU/SEI(卡梅隆大学软件工程协会)提出了一套架构权衡分析方法,Architecture Tradeoff Analysis Method,简称ATAM。

传统软件架构评估方法按评估形式,一般分为三种。一是调查问卷法,即直接请对系统架构了解的专家学者对系统架构做出主观评估。二是度量法,即将软件系统架构完全量化,通过一些客观的数字指标来评估架构的好坏。三是场景评估法,即挑选出重要的系统使用场景,根据不同场景中各架构的表现分别作评估,ATAM属于场景评估法,主客观程度介于前面两种方法之间。

首先先了解三个概念。

一、软件质量属性

软件质量属性说的是我们评估软件架构,到底评估它的什么特性,一般有如下几个:

性能:指系统的响应能力,即系统执行某个特定事务所需要的时间。

可靠性:即在意外或错误使用的情况下,维持软件系统的功能特性的能力。一般包括容错和健壮性两个方面的能力。

可用性:是系统能够正常运行的时间比例,和可靠性相比,可用性除了体现出错概率外,还体现出错后恢复正常的速度上。

安全性:是指阻止非授权用户使用的企图或拒绝服务的能力。又可分为机密性、完整性、不可否认性及可控性。

可修改性:是指能够快速地以较高的性价比对系统进行变更的能力。包括可维护性,可扩展性,结构重组和可移植性。

二、敏感点和权衡点

敏感点和权衡点都是在软件架构中所做的关键决策,不同的是,敏感点决策只影响一个软件质量属性,而权衡点则同时影响多个质量属性,有时不同属性间还会互相冲突,比如选择不同的加密方式同时影响性能和安全性,所以需要权衡。

三、风险承担者

风险承担者是指那些关心软件架构,个人利益受软件架构好坏影响的人,在项目管理领域也称为项目干系人或涉众。这照些人整体上又可以分为系统的生产者和系统的消费者。生产者包括架构师,开发人员,维护人员,测试人员等;消费者包括客户,最终用户等。

ATAM通过理解体系结构方法来分析体系结构,评估过程分9个步骤:

1、描述ATAM方法

即评估小组负责人向参加会议的风险承担者介绍ATAM评估方法,负责人将解释评估的原则、评估的方案及目标(例如:那些质量特性应该优先考虑)。

2、描述业务动机

从业务角度介绍系统的概况,一般包括业务环境,背景,业务约束条件,技术约束,质量属性需求等内容。

3、描述体系结构

设计师或设计小组对体系结构进行详略适当的介绍。包括技术约束,与本系统交互的其他系统,用以满足质量属性要求的体系结构方法(功能,模块,进程,硬件)。

4、确定体系结构方法

由设计师确定体系结构方法,由分析小组捕获,但不进行分析。

5、生成质量属性效用树

评估小组,设计小组,管理人员和客户代表一起确定系统最重要的质量属性目标,并对这些目标设置优先级和细化。

6、分析架构方法

7、头脑风暴并确定场景的优先级

8、分析架构方法

9、描述评估结果

下面通过汽车后保险杠上加装后视摄像头案例介绍下ATAM在汽车软件中的应用。

1、描述ATAM方法

汽车后保险杠上加装后视摄像头。目前大部分汽车都有尾部摄像头,倒车时通过中控显示倒车影像。

当在原有的电气系统中加入摄像头后,从汽车尾部传输到汽车头部的数据量会急剧增加。同时,为确保倒车期间的安全性,倒车影像数据必须保证实时传输。而在总线上,还有其他安全关键信号也需要保证实时传输,这意味着通信总线不得不持续地在视频信号反馈和诸如驻车辅助等安全关键性传感器之问调整传输的优先级。在这一场景下,架构师需要回答一个问题:如何保证摄像头的加人不会对车上原有的安全关键性功能造成负面影响?相比实际车辆的软件架构,该案例有一定的简化和修改,仅作为ATAM的说明,这里充当“描述ATAM方法。”

2、描述业务动机

该架构的主要业务动机是使车辆达到高度安全性。

通过示例图来描述该架构。首先展示的是汽车的功能架构。因为关注的是摄像头功能,我们只选取了架构中与之相关的主动安全域、底盘域和车载娱乐域的功能,主动安全域包括紧急制动、制动防抱死(ABS)功能,底盘域包括转向灯、近光灯和刮水器,车载娱乐域包括中控屏和抬头显示设备(Head-up Display,HUD)中的信息显示功能。

poYBAGOIdVuAWoqzAAE2HyzvZo4285.jpg

架构中的功能从属示例

在介绍下汽车的EEA架构,这个案例中简化的物理视图。

pYYBAGOIdW-AGgO8AACSc_fiASk865.jpg

架构的物理视图示例

在物理视图中,存在两条总线:

CAN总线:连接车载娱乐域中的控制单元。

•FlexRay总线:连接安全域和底盘域中的控制单元。

除此之外,视图中还有如下控制单元节点:

•主控制单元:汽车的中枢控制单元,控制车辆配置,负责整个电子电气系统的初始化和诊断。该单元是车辆上计算能力最强的控制器

•制动防抱死控制单元(ABS):该控制单元负责车辆的制动和相关功能。这是一个高度安全关键的系统,具有车辆上最高的软件安全等级。

•高级驾驶辅助系统(ADAS):该控制单元负责主动安全领域更高级别的决策,例如制动防碰撞、紧急制动、防滑等功能。它也负责驻车辅助等功能。

•转向:该控制单元负责车辆的转向功能,例如电子转向系统;驻车辅助等功能的一部分也通过该控制单元实现。

•尾部控制单元(Back Body Controller,简称BBC):该控制单元负责与车辆尾部相关的非安全关键功能,例如:调节后视镜、行李舱电子开关、后窗除雾等功能。

接下来,是架构的逻辑视图,在该视图中,聚焦在车载娱乐系统显示的主要功能组件,以及它对摄像头控制单元的信号输人的处理。

poYBAGOIdYOAACn-AACsfdLw1Hg355.jpg

架构的逻辑视图示例

还有一种增加了摄像头后架构的潜在布置方案。在这种方案中,信号处理的主要工作在尾部控制器节点完成;

pYYBAGOIdZSAA8XnAACjFe_uPAA842.jpg

潜在方案示例

3、确定架构方法

我们关注的是目标控制单元上的软件组件的划分。无论采用何种软件架构,系统的物理架构(硬件)都没有变化。因此,架构方法的确定应仅依赖于汽车的电子电气系统。有另一种架构的替代方案,不同于将摄像头功能的软件组件划分至主控制器和尾部控制器的方式,所有的信号处理工作都在主控制器中进行。因为系统的主要功能是对图像信号的处理,因此我们采用了常见的管道过滤器(pipe-and-filter)风格来设计架构。汽车的电气系统应该支持主动安全的先进机制(通过软件控制),并且确保这些机制之间不会互相干扰,从而危及车辆安全。

pYYBAGOIdaaAS6GlAACiD8WvphY665.jpg

另一种替代方案示例

对这两种替代方案都进行研究,最终决定选择何种架构来支持最初期望的质量目标,基于它们的各自生成的质量属性效用树来完成架构的选型。

4、生成质量属性效用树

在这个案例中,让我们考虑两个互补的场景,虽然可以为上文提到的每个质量属性都找到多个场景,这里我们只关注安全性:场景一,当车辆倒车、倒车影像激活后,CAN总线出现了信号拥挤;场景二,当恶劣气候下主控制器单元已经过载时,影像信号的计算会对雨刮器、近光灯等功能的性能造成于扰。

场景多方面描述

方面 详细含义
后摄像头
刺激 影像信号
构件 主控制单元,尾部控制单元,CAN总线
环境 倒车过程中
响应 处理彩像数据并显示在中控屏上
度量 视频影像可以实时显示,同时来自驻车传感器的安全关键信号不会丢失

在第一个场最中,我们所关注的是倒车影像对安全性的影响。需要了解视频信号的数据传输会对连找主控制器和尾部控制器的CAN总线造成何种影响。因此,我们设计的两种架构布置方视频信号处理布置在主控制器单元或布置在尾部控制器中,都需要被纳入分析。假设两种架构方案都不会导致硬件的增加,因此对电气系统的整体性能没有影响。通过这一简化我们将不必分析物理架构,而将关注点全部放在架构的逻辑视图和布置方案上。

通信总线占用

场景编号 场景1:倒车过程中的总线信号拥挤阻止了安全关键信号的传输
剌激 该场景中,当车辆倒车时,来自尾部摄像头的倒车视频影像占用了过多的总线容量,导致总线信号无法传播由制动传感器发来的信号。
对该场景评估的关键问题是,哪种布置方案会对汽车软件的安全性造成最小的影响。
响应 —分析两种架构布置方案中潜在的信号拥挤
—列举每种架构方案对功能的限制因素
需求 该架构应该能让安全关键信号在任何时刻被发出、被接收
质量属性 安全性:在该场景中,需要找到不会造成总线信号拥挤并造成潜在信号丢失的架构。
文本(可选) 当倒车时,车尾摄像头发出的视频信号削减了制动传感器向主控制单元发送信号的能力,从而导致在潜在碰撞即将发生时,驾驶员没有得到预警提醒

主控制单元的过载

场景编号 场景2:在气候恶劣的情况下,已经满负载的主控制器单元会削减倒车影像信号的质量
剌激 当车辆倒车且遇到下雨/下雪等路况时,主控制单元需要同时负责驱动雨刮器工作、点亮近光灯以及处理视频信号,ECU的工作负载可能过大,而不足以同时完成所有的计算工作
对该场景评估的关键问题时:哪种布置方案会对汽车软件的性能造成最小的影响
响应 —分析两种架构布置方案中各类信号计算需要占用的ECU资源
—列举每种架构方案对功能的限制因素
需求 在任何气候条件下,车辆在倒车时都应该稳定地提供来自尾部摄像头的影像信号
质量属性 性能:在该场景中,我们需要找到不会造成车辆控制器计算过载并削减视频信号传输质量的架构方案
文本(可行) 当在恶劣气候条件下倒车时,汽车的控制单元可能会出现计算量过载,从而无法充分应对视频信号传输的任务

在上述分析中,之所以要同时考虑两种方案,是因为它们展示了功能在节点上分布方案背后的不同逻辑可能性。在这个的案例中,基于场景分析得到的质量效用树包含着两种质量属性安全性和性能。两种场景在效用树中的评级都是高。当生成了效用树后,就可以对两种架构进行分析,并找到它们各自的权衡点和敏感点。

poYBAGOIdbeAdFjkAACRiWpKaPs314.jpg

质量属性效用树

5、分析架构方法和决策

对架构及其两种部署方案进行深入分析。在分析过程中,会发现了很多风险,这里以一个风险为例:信号无法传输到另一个控制器的风险。

可以使用风险模板来完成描述。可以看到该风险会影响到乘客的安全,因此需要被消除。进一步分析,消除该风险意味着总线通信不能对安全关键信号造成影响。因此,应该优先考虑第一种架构方案—在尾部控制单元完成视频信号的处理。这一方案意味着尾部控制器需要有足够的计算能力完成对视频信号的实时处理,这可能会导致车辆电气系统的成本增加。但既然安全性是业务动机,单车成本的增加应该可以被车型销量的增加所平衡。

风险描述

风险编号 R1_S1
描述 来自制动传感器的信号无法通过总线传输。造成的风险,当车辆遇到障碍物时将无法有效制动,从而发生碰撞。
危险源/敏感点 该风险发生在连接主控器单元和尾部控制器单元之间的FlexRay总线上,如下图(SP1):
风险影响 功能安全ASIL等级C要求:
RQ1:车辆需要在检测到前方障碍物后,在2m之内制动停车。
该风险对用户的影响是,车辆无法制动停车,从而对系统造成危险。同时也会对乘客的健康造成轻微危害。
风险严重性 3
风险概率 5—该现象非常容易在倒车过程中发生(只要安全信号和视频信号影响信号需要同时传播)

6、描述评估结果

在实践中,架构和评估团队会执行与上述类似的完整讨论和展示工作,包括问题的发现,场景、场景优先级的排定以区头脑风暴等。

ATAM评估总结

场景 在倒车过程中捕获来自尾部的倒车影像信号并将其显示在中控屏上
属性 安全性
环境 车辆处于倒车状态
刺激 倒车影像信号在中控屏显示
响应 处理视频数据并在中控屏显示
架构决策 敏感点 权衡点 风险
将视频信号处理任务放在主控制单元进行 S1 T1 R1
将视频信号处理任务放在尾部处理单元进行 T2 R2
推理 主控制器单元的功能对系统至关重要(敏感点S1)
安全性的提升造成成本提升(权衡点T1)
由于主控制器的信号处理负荷过高,安全需求可能存在风险(风险R1)
架构视图

ATAM方法是为软件架构的设计而开发的。但是在汽车领域,汽车软件架构和物理硬件的架构是紧密联系的。建议在对汽车领域的软件架构进行ATAM评估时,将硬件也纳入评估团队,只有这样才能确保所设计的软件架构完全满足系统的要求。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15239

    浏览量

    171244
  • CMU
    CMU
    +关注

    关注

    0

    文章

    19

    浏览量

    15129
  • 智能汽车
    +关注

    关注

    30

    文章

    2626

    浏览量

    106400

原文标题:智能汽车软件架构评估方法-ATAM

文章出处:【微信号:智能汽车电子与软件,微信公众号:智能汽车电子与软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    维修锻压机瓦座磨损哪种办法更合适

    电子发烧友网站提供《维修锻压机瓦座磨损哪种办法更合适.docx》资料免费下载
    发表于 03-11 16:06 0次下载

    使用CYW920706WCDEVAL评估套件,什么是合适的外部天线?

    我刚才有几个疑问。 我将为我的项目购买CYW920706WCDEVAL。 1。 使用CYW920706WCDEVAL评估套件,什么是合适的外部天线? 2. Arduino的哪个版本与CYW920706WCDEVAL兼容?
    发表于 03-01 11:12

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要编写嵌入式系统硬件
    发表于 12-05 15:17

    PoE供电,选什么网线更合适

    PoE供电,选什么网线更合适? PoE(Power over Ethernet,以太供电)是一种技术,通过以太网电缆为网络设备(如IP摄像机、无线接入点、IP电话等)提供同时传输数据和电力的方式
    的头像 发表于 11-28 15:51 1576次阅读

    光纤的冷接和熔接,怎么选更合适

    的冷接和熔接的工作原理、特点以及适用场景,帮助读者了解如何选择更合适的光纤连接方式。 一、冷接的工作原理和特点 冷接是一种不需要加热或熔化光纤的连接方法。它通过机械手段将两根光纤精确对准并通过力的作用将它们连接在一起
    的头像 发表于 11-28 14:18 829次阅读

    电动车钠电池和锂电池有什么区别?选择哪个更合适

    电动车钠电池和锂电池有什么区别?选择哪个更合适? 电动车钠电池和锂电池是目前市场上最常见的电动车动力电池。它们在电动车领域都有各自独特的优点和适用范围。 1.化学成分和结构: 钠电池的正极采用
    的头像 发表于 11-06 11:19 1227次阅读

    cortexM3和armv7m到底哪个是内核哪个架构

    cortexM3和armv7m到底哪个是内核,哪个架构?他们有什么关系啊
    发表于 11-02 06:15

    SPWM和PWM驱动电机两者的哪个更好一点?

    哪个效果更合适
    发表于 10-30 06:09

    什么情况下选择热电偶?什么情况下选择热电阻?哪个更合适

    什么情况下选择热电偶?什么情况下选择热电阻?哪个更合适? 热电偶和热电阻都是温度传感器,用于测量温度。但是它们的原理、特性和应用场景不同。在实际选择中,需要根据具体情况,选择更合适的一种。 1.
    的头像 发表于 10-26 17:47 852次阅读

    仿真系统软件架构是什么样的啊

    智慧华盛恒辉仿真软件架构可以根据不同的仿真应用场景和需求而有所不同,但一般来说,以下是一些常见的仿真软件架构: 前向仿真架构:前向仿真是一
    的头像 发表于 10-16 17:02 410次阅读

    kicad的架构移植复杂度评估

    各位网友大家好啊~~~~我正在实施一个工具,以评估CPU架构移植的复杂性。它主要关注RISC-V体系结构的移植。作为我的数据集的一部分,我收集了kicad项目。我希望收集社会人士的意见,以支持我
    发表于 09-11 17:03

    请问做无感FOC用新唐的哪款单片机更合适

    新唐有NM1500系列的马达控制芯片,又有NM451系列,哪种做无感FOC更合适?另外,M451M和M451 Base系列有什么区别?
    发表于 09-05 07:43

    SWE.2软件架构设计

    过程ID : SWE.2 过程名称 : 软件架构设计 过程目的 : 软件架构设计过程目的是建立一个架构设计,识别哪些
    的头像 发表于 08-24 09:43 509次阅读

    合适架构才是最好的架构

    书并没有详细阐述微服务和单体架构的方方面面,但它也提供了足够多的信息 —— 甚至可以说是全部信息 —— 帮助我们做出最好的,或者说是最务实的决定,来构建软件。仅仅是目录本身就值得称赞!但是,即使过去了 25 年,这个行业似乎仍未领会到其最基本的教诲 —— 那就是,根据实际
    的头像 发表于 05-30 09:55 291次阅读

    详解FreeRTOS:嵌入式软件系统架构

    目前常见的嵌入式软件系统架构有三种可以分为:轮询系统架构、前后台系统
    的头像 发表于 05-04 16:40 1624次阅读
    详解FreeRTOS:嵌入式<b class='flag-5'>软件</b><b class='flag-5'>系统</b><b class='flag-5'>架构</b>