首页/文章/ 详情

读书笔记:《汽车软件架构》

1年前浏览3834

 经常有朋友问有没有学习仿真的相关书籍推荐,于是搜集和阅读了一些,记录在这里,向大家分享。如果大家有觉得好的书籍,也请留言推荐,不胜感激。

《汽车软件架构》:米罗斯拉夫·斯塔隆著;王驷通,欧阳紫洲译. 北京:机械工业出版社,2020.9

本书系统的讲解了汽车软件架构相关知识包括软件架构范式、当前使用的软件架构和软件架构分析方法等。

除去最后一章的总结,全书共分9章,概述如下:

(1)第1章为概述。软件对汽车工业发展的影响逐渐升高,软件系统的高层设计即为软件架构,软件架构说明了一个软件功能怎样拆分为软件组件以及这些组件之间如何联系。作为对比,软件架构主要关注技术、质量和功能并定义设计原则和规则,项目管理关注进度和资源,软件设计关注如何在代码中实现架构所定义的原则、规则和决策。

(2)第2章讲解了软件架构的基础知识。软件架构指的是软件系统的高层结构、创建这些结构的原则,以及对这些原则的文档记录;这些结构可以被用来推导出整个软件系统。

架构视图包括:①功能视图,关注的是汽车的各项功能以及他们之间的相互依赖性,并将功能重组到不同的域中;②物理视图,是整个电气系统的顶层视图,描述了各种ECU的连接关系;③逻辑视图,呈现的是车载软件系统的拓扑结构,展示的是汽车软件中使用了哪些类、模块和组件,以及他们之间的相互关系,一般采用UML或SysML语言描述。

架构风格包括:分层架构、基于组件、单体、管道与过滤器、客户端-服务器、发布者-订阅者、事件驱动、中间件和面向服务等。

对架构的描述并不存在一个统一的形式,可采用系统建模语言SysML和EAST-ADL语言。

(3)第3章详细介绍了汽车软件开发流程。汽车软件开发一般遵循V模型。软件开发可分为需求工程、软件分析、架构设计、软件设计、实施和测试等阶段。

汽车软件需求工程非常依赖于严格的流程来保障对软件构建过程的掌控,需求的类型包括文本需求、用例和基于模型的需求。

集成阶段包括软件集成、软件-硬件集成和硬件集成。

测试阶段包括:①单元测试,在单独的软件实体上执行,目标是发现与源代码中的原子级功能及方法的实施有关的缺陷;②组件测试,也称为集成测试,目的是测试某组件内不同单元间代码的连接和交互,并随着项目的进展真实组件越来越多,常采用模型在环和硬件在环测试;③系统测试,在整个系统集成完成之后进行,测试内容包括功能、互操作性、性能、可扩展性、压力测试、可靠性和合规性等;④功能测试,验证系统的功能是否按照规格说明的要求正确运行。

数据库可将不同类型的需求汇聚在一起,为不同的参与者生成建构规范,为项目团队提供一致的软件系统视图。

(4)第4章介绍AUTOSAR标准在汽车软件架构开发中的作用。AUTOSAR标准提出的目的在于ECU参考架构、开发方法 论、描述语言和中间件的标准化,促进汽车软件系统和架构组件的分布式设计开发。

AUTOSAR的参考架构包括:应用软件层、运行时环境和基础软件层。

AUTOSAR的开发方法 论中,从业者分为OEM(逻辑和物理系统设计)、Tier1(某一ECU的设计和软件组件实施)、Tier2(ECU基础软件的实施)和Tier3(ECU硬件、硬件驱动和编译器)四种角色。

AUTOSAR定义了一个元模型,来规范不同角色之间被交换的模型的建模语言,这些模型用UML语言定义,并被序列化为XML格式文件,并通过模版来描述模型使用规范。

(5)第5章介绍汽车软件详细设计的方法。

首先通过一些实例介绍了在Simulink中进行软件系统建模的方法,Simulink建模的优势在于:①模型完成后,可执行模型并查看仿真结果;②模块化;③在目标平台自动生成可执行源代码。然后介绍了安全关键嵌入式系统的编程原则,包括MISRA-C标准和NASA 十条安全编程准则。最后介绍了ISO/IEC 25000标准对安全软件软件质量保证的要求。

(6)第6章是汽车软件架构评估的相关内容。

首先介绍了ISO/IEC 25000这一软件质量领域最重要的标准组中对质量特性的要求,重点介绍了可靠性的要求。可靠性是系统在一段时间内按照规范要求保持稳定运行的能力,主要包括成熟度、可用性、易恢复性和容错性。然后介绍了架构评估方法,包括失效模式和影响分析(FEMA)、架构权衡分析方法(ATAM)、软件架构分析方法(SAAM)和架构级可修改性分析(ALMA)。

架构权衡分析方法ATAM是一种专家参与的定性评估方法,步骤包括:评估负责人描述ATAM方法、项目负责人描述业务动机、架构负责人介绍架构设计、架构设计全队介绍架构设计方法、生成质量属性效用树、分析架构方法、确定场景优先级、分析架构方法和展示评估结果。书中还给出了具体的实施示例。

(7)第7章是介绍了软件设计和架构的定量评估方法。

首先介绍了ISO/IEC 15939中的测量信息模型和ISO/IEC 25000中的可用测度,如软件架构的基本测度有组件数量、处理单元数量、链接数量等,软件设计的基本测度有继承树的深度、圈复杂度、组件相关性等。然后给出了三个度量组别的指标:①架构的度量,其测度包括软件架构变更次数、复杂度和内外部接口数量;②设计稳定性的度量,其测度包括代码变化次数、缺陷个数、接口更改次数等;③技术负债及风险的度量,其测度包括组件链接的数量和隐式依赖的数量。

(8)第8章是汽车软件功能安全的内容。

功能安全由ISO 26262标准描述,国内标准为GB/T 34509,其定义为“不存在由电子电气系统的功能异常表现引起的危害而导致不合理的风险”,功能安全规定了一系列流程和方法来保障功能安全。书中简述了与软件开发相关的内容。

概念阶段,第一步是定义要开发功能及其相关项;第二步是危害分析和风险评估,其中危害事件按照ASIL等级分类,ASIL等级由可控性、暴露概率和严重度导出;第三步是功能安全概念,期间将每个具有ASIL等级的安全目标分解为功能安全需求,并进行相关的安全设计。

系统开发阶段,将功能安全概念细化为技术安全概念,将技术安全需求分解到不同ECU(包括软件和硬件)上。

软件开发阶段分为软件安全需求、软件架构设计、软件单元设计与实现、软件单元测试、软件集成与测试和软件安全需求验证等内容。

(9)第9章分析了汽车软件架构的趋势,包括自动驾驶、自主(自修复、自适应)系统、大数据和新的软件工程范式(敏捷方法)。

来源:孙工自动驾驶
汽车电子UMSimulink理论自动驾驶
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-22
最近编辑:1年前
孙工自动驾驶
硕士 专注自动驾驶仿真测试
获赞 16粉丝 23文章 78课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈