麦思博软件技术有限公司举办《张云龙培训公开课:嵌入式软件架构设计与实例(2017年10月 北京站)》

2017年10月27日 8:00 至 2017年10月28日 18:00 ,麦思博软件技术有限公司在 北京举办《张云龙培训公开课:嵌入式软件架构设计与实例(2017年10月 北京站)》。

课程介绍


张云龙培训公开课:嵌入式软件架构设计与实例(2017年10月 北京站)

张云龙培训公开课:嵌入式软件架构设计与实例(2017年10月 北京站)宣传图


1、代码分层设计

2、可移植性、可维护性

3、开发视图

4、逻辑视图

5、自动化测试

6、Cruise Control

7、gTest


代码分层的思想、可移植性代码的设计、代码解耦的技巧、硬件层抽象、PC上模拟硬件、业务层抽象、业务层在PC上的模拟运行、业务层在PC上的自动化测试、架构设计文档撰写、接口说明文档撰写等内容。

本课程不单单是嵌入式架构设计的技能讲解,而且在设计中引入可测试性和可维护性设计。最终的结果是,让开发出来的嵌入式软件可以PC电脑上模拟运行,并进行自动化的测试。


让程序员开发出来的嵌入式软件,具有高移植性和高维护性。

让嵌入式软件的测试自动化,减少低效率的重复回归测试。

让设计人员撰写出能指导开发人员工作的设计文档,而不是写出只是为了归档的文档。


开发嵌入式产品的软件架构师、软件设计师、程序员。

该培训对于开发以下类型嵌入式产品特别有帮助:

1、业务逻辑特别复杂

2、集成功能繁多

3、测试环境/条件难以创造


1、熟悉C语言

2、至少了解一种嵌入式微处理器;


2天

麦思博软件技术有限公司

麦思博(msup)有限公司发源美国西雅图,2007年创办,是一家面向技术型组织的培训咨询机构,服务于技术团队的技能提升、软件工程的实际应用和产品品质的创新与超越。强调人员、技术、流程和管理的有机结合,注重角色岗位的技能提升与职业发展,以及技术团队复合管理与协作。每年超过1000家企业续单参与msup旗下公开课、工作坊、案例研究、国际游学等培训项目。

课程大纲


主题

内容

引子

从我们身边的工作说起。指出大部分的软件都是“意大利面条”式的代码。
引申出解决之道――软件架构设计、代码持续优化和自动化测试。

第一单元
模块化程序设计思想

该单元介绍代码分层、分模块的思想,以及一些基本的代码解耦方法。

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的配置脚本

讲师介绍


科陆

首席架构师

具有多年嵌入式软件开发、设计和管理经验,曾在华为和科陆公司担任高级软件工程师、系统工程师、敏捷教练等职务。主要擅长敏捷实践在各领域的应用,包括代码持续优化与重构、嵌入式C语言架构设计与自动化测试、C#软件架构设计与自动化测试。精通ARM、Cotex-M3、51等MCU体系结构,精通嵌入式操作系统uCOS移植与运用开发。同时在项目管理尤其是敏捷软件管理方面具有丰富的经验。

课程费用


课程费用:5800元/人

相关领域
商业