班级规模及环境--热线:4008699035 手机:15921673576( 微信同号) |
坚持小班授课,为保证培训效果,增加互动环节,每期人数限3到5人。 |
上课时间和地点 |
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山学院/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦
最近开课时间(周末班/连续班/晚班):2024年12月30日 |
实验设备 |
☆资深工程师授课
☆注重质量
☆边讲边练
☆合格学员免费推荐工作
★实验设备请点击这儿查看★ |
质量保障 |
1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
2、课程完成后,授课老师留给学员手机和Email,保障培训效果,免费提供半年的技术支持。
3、培训合格学员可享受免费推荐就业机会。 |
课程大纲 |
课程信息
1、代码分层设计
2、可移植性、可维护性
3、开发视图
4、逻辑视图
5、自动化测试
6、Cruise Control
7、gTest
培训特色
代码分层的思想、可移植性代码的设计、代码解耦的技巧、硬件层抽象、PC上模拟硬件、业务层抽象、业务层在PC上的模拟运行、业务层在PC上的自动化测试、架构设计文档撰写、接口说明文档撰写等内容。
本课程不单单是嵌入式架构设计的技能讲解,而且在设计中引入可测试性和可维护性设计。最终的结果是,让开发出来的嵌入式软件可以PC电脑上模拟运行,并进行自动化的测试。
目标收益
让程序员开发出来的嵌入式软件,具有高移植性和高维护性。
让嵌入式软件的测试自动化,减少低效率的重复回归测试。
让设计人员撰写出能指导开发人员工作的设计文档,而不是写出只是为了归档的文档。
培训对象
开发嵌入式产品的软件架构师、软件设计师、程序员。
该培训对于开发以下类型嵌入式产品特别有帮助:
1、业务逻辑特别复杂
2、集成功能繁多
3、测试环境/条件难以创造
学员基础
1、熟悉C语言;
2、至少了解一种嵌入式微处理器;
课程大纲
主题 内容
引子
从我们身边的工作说起。指出大部分的软件都是“意大利面条”式的代码。
引申出解决之道――软件架构设计、代码持续优化和自动化测试。
第一单元
模块化程序设计思想
该单元介绍代码分层、分模块的思想,以及一些基本的代码解耦方法。
1、 模块化程序设计的核心
讲解什么形式的代码才算是模块化的代码。
2、 代码分层的思想
(1) 代码分层思路
(2) 嵌入式软件推荐的分层架构
3、 代码解耦的一些基础方法
(1) 封装模块文件夹
(2) 程序文件的分割
(3) 函数封装
(4) static函数限制函数使用范围
(5) static全局变量限制变量使用范围
(6) 减少全局变量的使用
第二单元
嵌入式分层设计
展示一个嵌入式分层设计的案例,并讲解架构设计文档的撰写。
演示硬件分离后代码的可移植性;并以MCU定时器为例讲解如何分离硬件。
最后讲解其他硬件设备的接口定义,由此引申出接口说明文档的撰写准则。
1、 嵌入式架构设计
(1) 某产品的开发视图
(2) 避免循环依赖
(3) 逻辑视图
(4) 4+1视图在嵌入式设计文档中取舍
(5) 设计文档的度与量
2、 嵌入式分层设计的追求――可移植
(1) 演示代码的可移植性
(2) 硬件封装的基本思想
(3) 硬件模块的分离
3、 硬件接口设计
(1) 提取硬件抽象
(2) 接口文档的撰写
第三单元
底层硬件API封装模板
该单元主要介绍硬件封装的代码架构模板,该模板的目的是提高底层硬件代码的可维护性。
然后通过多个实现案例,讲解了几种特殊硬件封装的解耦办法。
最后总结几个模板的分类。
1、 模板结构
(1) 设备硬件结构体类型定义
(2) 设备结构体配置
(3) 设备个数宏定义
(4) 设备实现需要的全局变量
(5) 设备功能实现代码
2、 利用老模板实现新硬件封装
3、 中断处理的封装:回调函数
4、 硬件复用设备对上层的不可见封装
5、 硬件耦合设备对上层的不可见封装
6、 模板的分类
第四单元
PC模拟底层硬件
该单元讲解如何在PC上实现一套假硬件设备,为业务层在PC上运行和自动化测试做准备。
1、 PC版与真实硬件环境的不同
2、 PC版测试接口
3、 PC版模拟中断接口
4、 PC版线程互斥处理
第五单元
业务层分层架构
在真实案例的基础上,讲解业务层的架构设计。
1、 可读性封装
2、 提取业务抽象
(1) 抽象的原则
(2) 案例:命令收发与命令业务处理的分离
3、 同步通讯的限制性封装
4、 异步通信的限制性封装
5、 异步设备封装成同步设备
6、 分层设计总结
第六单元
PC模拟运行业务层与自动化测试
演示业务层代码在PC上的模拟运行。演示如何让业务层代码进行自动化测试。
讲解测试封装设计。
讲解测试用例撰写的方式方法。
1、 测试封装
(1) 测试代码的可读性封装
(2) 测试代码的易用性封装
(3) 设备测试打桩接口
(4) 利用测试接口定位问题
2、 测试流程
3、 测试用例文档撰写
4、 测试用例代码撰写
(1) 利用测试套
(2) 使用打桩工具
(3) 测试延时和模拟系统延时的区别
第七单元
测试工具
简单介绍测试断言工具gTest、打桩工具mockcpp、自动化测试运行工具CruiseControl的使用。
1、 自动化测试工具gTest
(1) gTest的断言
(2) gTest的测试结果文件
2、 打桩工具mockcpp
3、 持续集成工具CruiseControl
(1) 什么是持续集成
(2) CruiseControl的工作原理
(3) CruiseControl的配置脚本 |
|