致力于提升研发企业的持续创新能力

结盟众多企业“教练”, 共同设计、开发及提供人才培养解决方案,通过新颖多样的学习方式,针对性的定制化内容,助力企业全面提升竞争优势。

课程分类列表

嵌入式软件架构设计与实例
课程类别:软件架构

嵌入式 设计 软件架构

课程讲师:

张云龙

课程周期:

2天

课程费用:

5200元

一、培训特色 
课程内容:代码分层的思想、可移植性代码的设计、代码解耦的技巧、硬件层抽象、PC上模拟硬件、业务层在PC上的模拟运行、业务层在PC上的自动化测试、业务代码持续优化、架构设计文档撰写、接口说明文档撰写等内容。
本课程不单单是嵌入式架构设计的技能讲解,而且在设计中引入可测试性和可维护性设计。最终的结果是,让开发出来的嵌入式软件可以PC电脑上模拟运行,并进行自动化的测试。


二、目标收益
让程序员开发出来的嵌入式软件,具有高移植性和高维护性。
让嵌入式软件的测试自动化,减少低效率的重复回归测试。
让设计人员撰写出能指导开发人员工作的设计文档,而不是写出只是为了归档的文档。


三、培训对象
培训面向人群:开发嵌入式产品的软件架构师、软件设计师、程序员、测试人员。
该培训对于开发以下类型嵌入式产品特别有帮助:
1. 业务逻辑特别复杂
2. 集成功能繁多
3. 测试环境/条件难以创造


四、学员基础 
学习本课程应具备下列基础知识:

1. 熟悉C语言;  

2. 至少了解一种嵌入式微处理器。


五、关键词
1. 代码分层设计
2. 可移植性、可维护性
3. 开发视图
4. 逻辑视图
5. 敏捷开发
6. 自动化测试
7. CruiseControl
8. gTest

引子  从两个案例说起。指出大部分的软件都是“意大利面条”式的代码。引申出解决之道――软件架构设计、代码持续优化和自动化测试。
第1单元 架构设计思路
1. 架构设计思路 • 考虑驱动因素
• 设计基础架构
• 输出设计结果
• 跟随项目持续优化
• 输出优化代码
2. 架构设计的驱动因素 • 软件质量模型
• 质量属性间的互斥
• 性能与其他属性的取舍
第2单元 模块化程序设计思想 该单元介绍代码分模块、分层的思想,以及一些基本的代码解耦方法。
1. 模块化设计的目的
2. 模块化程序设计方法
• 什么是模块?
• 什么是好模块?
• 模块接口设计
• “C语言”模块怎么组包
3. 模块第1大杀手--全局变量 • 全局变量的缺点
• 减少全局变量使用
• 限制全局变量范围
4. 模块第2大杀手--循环依赖 • 次晨综合症
• 分层设计思想
第3单元 架构设计文档
1. 架构视图 • 开发视图
• 逻辑视图
• 4+1视图
• 4+1视图在架构文档中的取舍
2. 架构设计文档 • 架构文档的价值
• 架构文档的撰写原则
3. 平台接口说明文档 • 平台架构思想
• 平台接口约束文档
第4单元 嵌入式分层设计实例 该单元展示2个嵌入式架构设计的文档案例。
1. 架构设计实例 • 架构设计文档实例
• 可读性设计
• 可移植性设计
2. 硬件接口设计实例 • 提取硬件抽象
• 接口设计文档实例
• 可靠性设计
• 现场可维护性设计
第5单元 底层硬件API封装模板 该单元主要介绍硬件封装的代码架构模板。该模板的目的是提高底层硬件代码的可维护性,以及一致性的统一模板对可读性的提高。然后通过多个实现案例,讲解了几种特殊硬件封装的解耦办法。最后总结几个模板的分类。
1. 模板结构 • 设备硬件结构体类型定义
• 设备结构体配置
• 设备个数宏定义
• 设备实现需要的全局变量
• 设备功能实现代码
2. 中断处理的封装:回调函数
3. 硬件复用设备对上层的不可见封装
4. 硬件耦合设备对上层的不可见封装
5. 模板的分类
第6单元 PC模拟底层硬件 该单元讲解如何在PC上实现一套假硬件设备,为业务层在PC上运行和自动化测试做准备。
1. PC版与真实硬件环境的不同
2. PC版测试接口
3. PC版模拟中断接口
4. PC版线程互斥处理
第7单元 PC模拟运行业务层与自动化测试 讲解测试封装设计。演示业务层代码在PC上的模拟运行。演示如何让业务层代码进行自动化测试。讲解测试用例撰写的方式方法。
1. 测试封装 • 增加测试代码的可读性封装
• 增加测试代码的易用性封装
• 利用测试接口定位问题
2. 自动化测试 • 自动化测试原理
• 自动化测试演示
3. 测试用例流程
4. 测试用例文档撰写
5. 测试用例代码撰写
第8单元 业务层持续优化 该单元先讲解两个业务层架构重构案例。通过案例学习两个设计原则。另外,通过学习案例的整个重构过程,让学员学习架构师最有效果的工作方式。
1. 架构重构案例1 • 包的单一职责原则
• 函数的单一职责原则
2. 架构重构案例2 • 共同重用原则
3. 架构师如何工作 • 和团队一起工作
• 代码走读
• 结对编程
• 加强学习
第9单元 测试工具 简单介绍测试断言工具gTest、测试打桩工具mockcpp等测试工具的使用。详细介绍自动化测试运行工具CruiseControl的安装和配置方法。
1. 自动化测试工具gTest • gTest的断言
• gTest的测试结果文件
2. 打桩工具mockcpp
3. 持续集成工具CruiseControl • 什么是持续集成
• CruiseControl的工作原理
• CruiseControl的配置脚本
找到所需课程了吗?即刻 填写申请表格 与我们联络吧