Print

嵌入式软件架构设计与实例

主办单位:中培网   中培管理咨询

时间地点:2016-06-25至2016-06-26 在 上海

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

费  用: 5800元

【培训对象】

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

【课程收益】

【课程大纲】

演讲嘉宾:

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

课程信息

1、代码分层设计

2、可移植性、可维护性

3、开发视图

4、逻辑视图

5、自动化测试

6、Cruise Control7、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的配置脚本

【讲师介绍】

        ▓▓▓▓▓▓▓▓▓ (此表复制有效)▓▓▓▓▓▓▓▓

                                    传真至:020-62355807

 

我单位共___ 人报名参加 2016-06-25至2016-06-26上海 举办的 嵌入式软件架构设计与实例

 

单位名称:______________________________________

 

培训联系人:_________ 联系电话:_________ 联系传真:________

 

移动电话:____________ 电子邮箱:__________________

 

参加人数:____ 费用总计:______

 

人:________ 所任职务:__________ 移动电话:_________

 

人:________ 所任职务:__________ 移动电话:_________

 

人:________ 所任职务:__________ 移动电话:_________

══════════════════════════════════════════

广州电话:(0203997189362355796              传真号码:(02062355807

人:赵小姐、张先生                   报名邮箱: 317709971@QQ.COM

参会方式:请您把培训回执表填写好回传,课前一星期您将会收到传真函,包括培训注意事项及详细安排

文档生成:http://www.chinacpx.com/word/<%=wsid%>.doc