授课讲师:李云
课程价格:5800
培训对象:

学习导引(1小时)
1. 学什么?
2. 怎么学?
3. 工程师技术能力层次模型
4. 高质高效软件开发团队效能模型
【硬件篇】处理器的基本概念(40分钟)
1. 微处理器与微控制器
2. 寄存器
3. 处理器的启动
4. 输入与输出
5. 指令与数据
6. 中断
7. 字节序
8. 边界对齐
9. 断点
10. 内存管理单元
11. 缓存
【硬件篇】开发活动中的硬件问题(20分钟)
1. 两个软件异常案例
2. 异常的背后 — 信号完整性
3. 应对信号完整性问题的方法
【工具篇】gcc,C语言编译器(1小时)
1. 交叉编译用其环境
2. gcc幕后工作原理
3. 实用的gcc选项
【工具篇】bintuils工具集,软件开发利器(1小时)
1. addr2line,指令地址翻译器
2. ar,静态库生成器
3. nm,符号显示器
4. objdump,信息查看器
5. objcopy,段剪辑器
6. size,段大小观察器
7. strings,字符串窥视器
8. strip,程序文件瘦身器
【工具篇】ld,链接器(0.5小时)
1. 重定位的概念
2. 链接脚本
【编程语言篇】掌握必要的汇编知识(0.25小时)
1. AT&T和Intel语法格式
2. as的语法
3. 嵌入汇编的语法
【编程语言篇】深入理解程序的结构(0.25小时)
1. 段
2. 栈
3. 堆
【编程语言篇】ABI/EABI规范,缔造程序兼容合约(0.5小时)
1. 定义基本数据结构
2. 规范字节对齐处理
3. 分配寄存器的功能
4. 规定栈帧结构
【编程语言篇】混淆指针与数组所导致的问题(0.5小时)
1. 问题示例
2. 问题分析
3. 问题成因
4. 预防措施
【编程语言篇】volatile,让我保持原样(0.25小时)
1. 从例子理解volatile
【设计篇】设计,软件质量之本(1小时)
1. 软件设计是什么
2. 软件质量的概念
3. 阻碍改善设计的常见观念
4. 如何提高设计能力
5. 设计模式、设计原则和设计思想
6. 放之四海皆适用的设计原则
7. 软件技术发展的驱动力
主 题大 纲
【设计篇】模块管理,保障系统有序运行(0.5小时)
1. 模块管理参照系
2. 设计思路
3. 程序实现
4. 模块管理的一些思考
【设计篇】错误管理,不可获缺的用户需求(0.75小时)
1. 现状与出路
2. 表达错误的通用方法
3. 优化错误日志
【设计篇】目录结构管理,使项目进展更顺利(0.25小时)
1. 规划目录结构的意义
2. 出色目录结构的特点
3. 一个示例
【设计篇】平台与框架开发,高质量软件打造之路(0.5小时)
1. 系统库、平台和框架
2. 本质和优点
3. 架构模型
4. 困境与生命周期理论
【设计篇】可开发性设计,一种高效且经济的开发模式(0.5小时)
1. 可开发性问题一瞥
2. 可开发性设计的内涵
3. 设备抽象层
4. 更复杂的设备抽象层
5. 图形界面的可开发性设计
6. 其他可开发性设计
[操作系统篇】引导加载器,系统启航者(0.5小时)
1. 功能
2. 文件存储布局
3. 程序加载原理
4. 优点
【质量保证篇】质量保证导言(0.75小时)
1. 软件开发的特点
2. 保证质量的关键要素
3. 质量保证需要系统性的方法论
4. 走出质量困境的指导性思想
【质量保证篇】编程好习惯,质量保证的基本条件(0.75小时)
1. 一些终生受用的编程好习惯
【质量保证篇】单元测试,被忽视的质量保证方法(0.75小时)
1. 警惕单元测试无用论
2. 一个简单但不完善的单元测试例子
3. 构建单元测试框架
4. 无缝整合单元测试
5. 几个实施问题
6. 桩函数和打桩
7. 错误注入,一种可测试性设计
8. 平台开发与单元测试
9. 被测行为的确定性
10. 被测用例的有效性
【质量保证篇】代码覆盖,单元测试效果的衡量指标(0.25小时)
1. 了解代码覆盖工具
2. 无缝整合代码覆盖
3. 三个代码覆盖度量指标
【质量保证篇】静态分析,防止将失误带给用户(0.25小时)
1. 认识静态分析工具
2. 无缝整合静态分析工具
【质量保证篇】动态分析,使程序更健壮(0.5小时)
1. 结识动态分析工具
2. 无缝整合动态分析工具
【质量保证篇] 性能分析,让优化程序有的放矢(0.25小时)1. 初探性能分析工具
2. 无缝整合性能分析工具