知识卡片

AUTOSAR案例:概念架构如何"直指目标"

普通读书笔记卡

内容

概念架构是直指目标的设计思想和重大选择,”直指目标”意味着每一条设计决策都能清楚地回答”这是在解决什么问题”。汽车电子AUTOSAR(AUTomotive Open System Architecture)架构案例完整演示了这条原则如何落地。直指的目标:现代汽车电子系统从单一控制发展到多变量多任务协调控制,软件越来越庞大复杂,同时汽车功能创新加剧、要求更多创新定制和快速上市——在这个背景下,不同厂商的车载ECU(电子控制单元)软件互不兼容、重用性差,导致用户连故障诊断器坏了都买不到匹配型号;AUTOSAR直指的目标就是让软件模块能跨平台、跨产品复用,避免不同产品间的代码复制、反复开发和版本增殖。设计思想:分层抽象——微控制器抽象层封装微控制器控制细节使上层独立于微控制器;ECU抽象层封装ECU结构、与控制器无关;服务层提供网络/存储/操作系统/诊断等系统服务,除操作系统外均与平台无关;应用层与硬件无关——这套分层把”控制器相关”“ECU相关”“硬件无关”三种关注点彻底分开,利于重用。另一项设计思想是RTE(Runtime Environment):如果没有RTE,构件的创建销毁、服务调用、数据传递都要由构件自身直接负责,会大幅增加复杂性和耦合;RTE作为构件运行环境统一负责构件生命周期管理、运行管理、通信管理,让RTE以下的基础软件对应用层不可见,支撑起”在标准上合作、在实现上竞争”的产业链原则。重大选择:在集中式和分布式架构之间,AUTOSAR选择了分布式——集中式架构控制状态复杂、容易出错、重用性差;分布式架构通过子系统交互控制整车,配置灵活、单个子系统可靠性高。更耐人寻味的重大选择是复杂设备驱动(CDD)——这个模块刻意放弃了”层次化”设计、选择了”一体化”的折衷设计,允许直接访问ECU基础软件和微控制器硬件,目的是应对复杂传感器和执行器操作时的严格时序问题——这说明”重大选择”有时恰恰是明知故犯地打破自己设定的架构原则,只要这个打破是有意识的、针对特定场景的权衡,而不是无意识的妥协。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第9章《概念架构设计》"9.1.2 案例1:汽车电子AUTOSAR——跨平台复用"节(源文件:_epub-src/OEBPS/text00012.html) - 结论依据:原文说明AUTOSAR"直指"的目标是"能够跨平台、跨产品复用软件模块;避免不同产品之间的代码复制、反复开发和版本增殖问题",并详细描述分层抽象、RTE、分布式架构选择、复杂设备驱动"放弃层次化、选择一体化"四项设计决策,直接支撑本卡片结论。 - 原始内容:复杂设备驱动(Complex Device Driver,CDD)的设计选择的是"一体化"甚至"一锅粥"的设计,而没有采用"服务层—ECU抽象层—微控制器抽象层"的"层次化"设计。显然,这种设计明显带有折衷的性质,但相当明智!