汽车软件架构学习笔记(一):九问软件架构

本文探讨了软件架构的重要性和作用,特别是在汽车软件系统中的应用。内容涵盖架构的定义、何时需要架构、推定架构与参考架构的差异,以及架构在项目中的运用。此外,还解释了企业架构师与应用架构师的区别,以及康威定律如何影响软件架构设计。
摘要由CSDN通过智能技术生成

Q1.什么是软件架构?

软件架构的定义没有一个统一的标准,各有各的看法。但可以参考来自SEI的定义:

计算系统的软件架构是解释该系统所需要的结构体的集合,包括软件元素、元素的交互,以及两者各自的属性。

可以从 2 个维度描述:

  • 静态结构,包括层次、模块划分以及更细节的数据结构体等等,代表一个系统的骨架,就如一幢建筑物的框架;
  • 动态行为,包括模块间的通信、交互机制,代表系统的行为。

Q2.什么属于架构层面的内容?

架构一般指的是软件系统宏观层面的设计部分,前面讲到架构是骨架,关注于整体,一般不会关注于细节。

但同时,如果有一些元素的设计会影响到整体系统的质量属性,那么它也应该被拉进架构设计中讨论。 比如,嵌入式系统当中,实时性是一个很重要的质量属性,那么对于通信协议的技术选型也就是非常重要的。比如,一个汽车软件架构师,你说不你懂CAN协议终归不合适。

Q3.架构重要吗?

重要,关系到软件系统的成败。
有下面的作用:

  • 扮演着系统骨架的角色
  • 影响质量属性
  • 与软件功能正交 决定系统能做什么
  • 更加重要的是决定系统不做什么

尤其是最后一点非常重要,比如在汽车自动驾驶当中,自动化程度是分等级的,假如你设计一个L2级别自动驾驶系统,你就应该将L3级别以上功能排除在外,通过 ODD 进行准确的界定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

frank909

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值