高级检索结果页
欢迎来到工程科技数字图书馆
登录 | 注册
 
您当前的位置:图书 > 嵌入式软件架构设计:方法与实践

嵌入式软件架构设计:方法与实践

  • 相关图书推荐
  • 相关课程推荐
  • DeepSeek+AI赋能工作效率提升
  • DeepSeek实用技巧
  • DeepSeek与AI办公提效
  • AI通识与DeepSeek提问逻辑
  • Deepseek高效使用技巧
  • 计算机组装与维护教程
  • C语言程序设计
  • Python编程基础与应用
  • Java算法从菜鸟到达人
  • deepseek高效辅助课题申报
  • AI辅助教学
  • deepseek高效辅助论文写作

这是一本为嵌入式软件工程师量身打造的架构设计指南,手把手带你从“实现功能”走向“设计系统”,建立驾驭复杂嵌入式软件的架构思维与方法体系,让你在智能汽车、机器人、芯片自研的浪潮中具备不可替代的系统级设计能力。
书中不仅有系统的架构设计方法论,更有超多拿来就能用的实战工具。从架构师的思维建立到软硬件整合设计,从多视图建模到模块化与设计模式,从产品族架构到底层模块抽象,全方位解锁嵌入式软件架构设计的完整能力栈
读完这本书,你将收获以下8项核心能力提升:
(1)架构思维重塑:理解“架构是面向长期业务发展的重要决策”,完成从开发思维到架构思维的转变-不再只盯着眼前的功能实现,而是站在系统演进的高度做决策。
(2)软硬件整合设计能力:掌握从系统级逻辑分解到软硬件边界划分的完整方法,破解“先硬件后软件”的传统困局,让硬件变更不再是软件开发的噩梦。
(3)多视图建模能力:熟练运用逻辑视图、开发视图、过程视图、部署视图分离关注点,学会用多维度描述驾驭复杂系统,不再“一张架构图走天下”
(4)架构设计全流程能力:掌握从需求分析(识别架构重要性需求)、架构设计到架构评估(一致性与完整性检验)的完整闭环,让架构设计有章法、可验证。
(5)模块化与接口设计能力:学会功能分解与分层设计、抽象接口定义、依赖方向确定的系统方法,从根本上解决“高耦合、低内聚”的代码顽疾。
(6)产品族架构设计能力:掌握共性与差异识别的三个层次、产品族架构的工作量评估方法与常见陷阱,从容应对多型号、多版本产品的代码复用与维护挑战。
(7)底层模块抽象能力:通过I2C驱动、持久化存储、音视频编解码等真实案例,理解“底层视角”与“高层视角”的差异,知道何时该统一抽象、何时该差异化对待。
(8)从面向过程到面向对象演化的能力:理清面向过程与面向对象的逻辑关系,掌握在嵌入式复杂代码中基于原有过程与数据进行封装、平滑演化至面向对象的实战方法

封面
前折页
书名页
版权页
前言
目录
基础篇
 第1章 什么是软件架构设计
  1.1 软件架构的定义
  1.2 软件开发中重要的事情
   1.2.1 支撑业务的发展
   1.2.2 面向长期的设计
  1.3 再看软件架构的定义
  1.4 架构设计工作的边界和程度
   1.4.1 架构设计与普通开发设计的区别
   1.4.2 架构设计做得越详细越好吗
  1.5 从普通开发人员到架构师的思想转变
   1.5.1 养成业务导向型思维方式
   1.5.2 看清理想与现实的落差
 第2章 嵌入式软件需要架构设计吗
  2.1 什么是嵌入式软件
  2.2 现状:很多嵌入式软件没有架构设计
  2.3 嵌入式软件的发展趋势和挑战
  2.4 嵌入式软件工程师的应对之道
方法篇
 第3章 本书的方法论是如何形成的
  3.1 通用软件架构设计的方法论
   3.1.1 IEEE 1471—2000《软件密集型系统架构描述的推荐实践》
   3.1.2 “4+1”视图模型
   3.1.3 属性驱动设计
   3.1.4 《架构整洁之道》之设计原则和组件构建原则
  3.2 本书的方法论介绍
 第4章 软硬件整合设计
  4.1 从长期视角看软硬件变更:谁更容易被修改
  4.2 传统设计方法
   4.2.1 传统设计方法简介
   4.2.2 传统设计方法的适用性
   4.2.3 传统设计方法面临的挑战
  4.3 软硬件整合设计方法
   4.3.1 软硬件整合设计方法的目标和关键措施
   4.3.2 软硬件整合设计方法的过程
   4.3.3 软硬件整合设计方法与传统设计方法的比较汇总
   4.3.4 关于软硬件整合设计方法的常见疑问
 第5章 多视图方法
  5.1 多视图方法简介
   5.1.1 多视图方法描述架构的核心动因
   5.1.2 多视图方法的必要性和作用
  5.2 常用的四个视图
   5.2.1 逻辑视图
   5.2.2 开发视图
   5.2.3 过程视图
   5.2.4 部署视图
   5.2.5 各视图间的关系
   5.2.6 关于视图的表示法
  5.3 视图的选择与设计过程
   5.3.1 逻辑、开发、过程、部署四个视图并非架构描述的唯一选择
   5.3.2 视图的选择与设计
 第6章 架构设计过程
  6.1 架构设计过程概述
   6.1.1 过程模型
   6.1.2 架构设计过程和版本开发过程的关系
  6.2 需求分析
   6.2.1 架构设计过程和版本开发过程中的需求分析有什么区别
   6.2.2 哪些需求属于架构重要性需求
   6.2.3 长期业务目标对架构重要性需求的影响
   6.2.4 识别架构重要性需求
   6.2.5 正确理解需求
  6.3 架构设计
  6.4 架构评估
   6.4.1 设计一致性评估
   6.4.2 完整性评估
 第7章 面向过程和面向对象
  7.1 面向过程和面向对象的关系
   7.1.1 什么是面向过程,什么是面向对象
   7.1.2 面向过程和面向对象的区别、联系及适用场景
  7.2 面向过程和面向对象的分解
   7.2.1 面向对象的分解
   7.2.2 面向过程的分解
   7.2.3 从面向过程到面向对象
  7.3 案例:将处理过程和数据封装为对象
 第8章 模块化
  8.1 模块化概述
   8.1.1 模块化、组件化、插件化的关系
   8.1.2 模块化的本质:关注点分离
   8.1.3 模块化的步骤
  8.2 如何进行模块划分
   8.2.1 功能分解
   8.2.2 分层
   8.2.3 综合功能分解和分层的结果
   8.2.4 进一步审视模块划分的情况
  8.3 如何定义抽象接口
   8.3.1 引子:OSAL的案例
   8.3.2 什么是抽象
   8.3.3 抽象接口与依赖反转
  8.4 如何确定依赖方向
   8.4.1 传统的上层依赖下层
   8.4.2 向稳定的模块依赖
   8.4.3 向关键业务模块依赖
   8.4.4 结合多视图方法判断关键业务模块
   8.4.5 几种依赖方向的方案选择
  8.5 典型案例和问题
   8.5.1 案例:依赖方向与接口稳定性
   8.5.2 回顾:OSAL的案例
   8.5.3 一个可实现性的问题
   8.5.4 “万能”的中间层
   8.5.5 不同视角下的业务逻辑模块
   8.5.6 案例:从用户配置模块依赖Flash驱动模块到Flash驱动模块依赖用户配置模块
 第9章 如何应用设计模式
  9.1 设计模式概述
   9.1.1 什么是设计模式
   9.1.2 针对设计模式的常见疑问
  9.2 设计模式在架构设计中的作用
  9.3 应用设计模式时的常见问题及其解决方法
   9.3.1 问题及其解决方法概述
   9.3.2 灵活应用设计模式:以在宏内核中应用微内核模式为例
   9.3.3 结合实际案例理解设计模式:以简单工厂模式和工厂方法模式为例
 第10章 以案例串联:本篇所述方法的整合应用
  10.1 案例背景描述
  10.2 需求分析
  10.3 架构设计
   10.3.1 系统级逻辑视图
   10.3.2 系统级开发视图和部署视图
   10.3.3 相框端软件子系统的需求
   10.3.4 相框端软件子系统的逻辑视图
   10.3.5 相框端软件子系统的过程视图
   10.3.6 相框端软件子系统的开发视图
实践篇
 第11章 产品族软件架构设计
  11.1 产品族软件架构概述
   11.1.1 什么是产品族软件架构
   11.1.2 产品族软件架构设计的目标
  11.2 识别、处理共性和差异
   11.2.1 根据大粒度需求识别、处理共性和差异
   11.2.2 根据功能逻辑识别、处理共性和差异
   11.2.3 识别、处理实现细节的共性和差异
   11.2.4 针对差异的代码实现方案
  11.3 警惕:代码表面相似
  11.4 警惕:耦合
  11.5 采用产品族软件架构后的工作量分析
   11.5.1 想象中的场景
   11.5.2 存在的问题
   11.5.3 几种常见的方案
 第12章 底层模块软件架构设计
  12.1 底层模块软件架构概述
  12.2 底层模块的分层设计
   12.2.1 I2C驱动的案例:尝试进一步分离底层模块的关注点
   12.2.2 扩展:如何处理更底层的模块
  12.3 不同视角下的底层模块架构设计
   12.3.1 概念:底层视角与高层视角、系统边界与设计边界
   12.3.2 底层视角下的设计
   12.3.3 高层视角下的设计
   12.3.4 如何选择:底层视角与高层视角
 第13章 硬件差异管理
  13.1 陷阱:用抽象层屏蔽硬件差异
  13.2 硬件差异的合理性
   13.2.1 识别方法和管理思路
   13.2.2 arch/arm目录下代码的案例
  13.3 不合理硬件差异及其管理的案例
   13.3.1 提前参与,提前制定规则
   13.3.2 软硬件的版本演进计划相互配合
   13.3.3 结合人员和团队的实际情况
 第14章 设计案例:从单一产品到产品族的设计
  14.1 背景描述
  14.2 需求分析
  14.3 架构设计
   14.3.1 系统级逻辑视图
   14.3.2 系统级开发视图和部署视图
   14.3.3 相框端软件子系统的需求
   14.3.4 相框端软件子系统的逻辑视图
   14.3.5 相框端软件子系统的过程视图
   14.3.6 相框端软件子系统的开发视图
 第15章 设计案例:产品族底层模块的设计
  15.1 背景描述
  15.2 持久化存储相关需求的分析与设计
   15.2.1 需求分析
   15.2.2 系统级逻辑视图和开发视图
   15.2.3 软件子系统的逻辑视图和开发视图
  15.3 音视频编解码相关需求的分析与设计
附录
 附录A 本书使用的软硬件建模语言
 附录B C语言面向对象编程
后折页
封底

机工科技数字图书馆