嵌入式电信软件敏捷开发实践
Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand. PART Ⅰ 观念篇
第1章 嵌入式电信软件开发面临的挑战
? 平台的易变性、硬件的多样性
? 系统的特殊性和分布性
? 开发支持工具的缺乏
? 测试、调试环境的昂贵
? 高可靠性和高性能要求
? 升级的平滑性
? 功能需求的快速演化性
? 高的开发效率和质量要求
第2章 传统开发方法的困境
? 瀑布式、结构化
? 无法进行有效地进度度量和测试
? 僵化,维护费用低
? 软硬件无法有效地并行开发和测试
? 无法满足市场竞争的要求
第3章 面向对象和敏捷为何有助于应对这些挑战
? 重新认识软件
? 上述挑战对于软件开发的内在要求
? 敏捷和模式的内涵
? 优秀的软件技术和敏捷如何帮助我们减少所面临的困难
PART Ⅱ 基本技术篇
第4章 面向对象的内涵和原则
? 世界观
? 表达方法
? 程序的组织方法
? 程序模块间依赖关系的管理方法
? 面向对象原则的应用:注重实效的观点
? 其他程序设计范型:FP、AOP、GP等 第5章 敏捷技术的内涵
? 基于软件内在规律的技术
? 基于真实反馈和度量的技术
? 关注于持续改进的技术
? 关注于团队凝聚力建设的技术
? 关注于提供团队整体开发技能的技术
? 注重实效的技术 第6章 模式和架构
? 模式和架构的概念
? 从敏捷技术的视角看模式和架构
? 模式生成架构 第7章 具体表达语言:C++
? 为何选择C++?
? C++精要
? 嵌入式开发相关语言问题(如何避免高代价的特性、多态和条件逻辑、内存管理问题、代价高昂的副作用、编译器相容问题、和C混和编程问题、测试问题等)
? 模板和STL的应用
? 一种多范型程序设计语言
? 抽象和效率 第8章 认识迭代
? 对迭代的误解
? 迭代和反复的本质区别
? 迭代对于进度控制的和降低风险的重大作用
? 迭代和需求是否稳定无关
? 如何进行有效地迭代 第9章 嵌入式电信软件敏捷实践:测试驱动开发
? 测试驱动开发的内涵(不仅仅是一种测试技术,更是分析、设计技术,是TestCase驱动技术)
? CppUnitLite
? 面向对象技术如何有助于平台无关测试
? 嵌入式电信软件TDD实例 第10章 嵌入式电信软件敏捷实践:多平台软件配置管理
? 多平台支持软件对于敏捷开发的重要性
? 如何进行多平台软件开发的规划
? 多平台软件的源码本版控制管理
? Subversion
? 实例 第11章 嵌入式电信软件敏捷实践:软、硬件系统的并行开发和测试
? 开发环境和系统运行环境
? 传统的硬件仿真环境开发的问题
? 面向对象设计
? 并行开发实例 第12章 嵌入式电信软件敏捷开发的基石:测试驱动开发、重构以及持续集成
? 这三者对于高效软件开发重要意义
? 节奏的控制
? 使得C++易于重构的原则介绍
? 实例
第13章 嵌入式电信软件敏捷实践:持续集成环境的搭建
? 实例介绍如何搭建一个持续集成环境 第14章 如何向组织内中引入敏捷方法
? 引入敏捷方法会遇到的困难
? 引入方式
? 引入的节奏
? 实践时的一些指导原则
? 推广方式 PART Ⅲ 领域分析案例
第15章 领域驱动设计
? 传统功能点分析方法的缺陷
? 领域分析的概念
? 领域驱动技术介绍
? Domain-Specific Language和抽象
? Naked Object
? 领域分析如何有助于业务平台的搭建(这是企业领域知识积累的核心)
第16章 领域驱动设计案例
? (嵌入式电信软件实例)领域分析
? half-object plus protocol模式
? (嵌入式电信软件实例)领域模型 PART Ⅳ 网络协议软件框架案例研究
第17章 网络协议软件结构分析
? 网络协议软件结构抽象
? Mux、Protocol、Adapter以及ConduitFactory
第18章 Adapter和Command模式
? 适应外部接口的多样性、提供First Class Object的能力
第19章 State模式和Strategy模式
第20章 Singleton模式和Prototype模式
第21章 Visitor模式
第22章 模式生成框架:Conduits+
第23章 基于Conduits+框架的电信软件协议栈实现
PART Ⅴ 嵌入式电信软件支撑平台案例研究
第24章 嵌入式电信软件支撑平台的目标
第25章 Wrapper Facade模式
第26章 Reactor模式
第27章 Asynchronous Completion Token模式
第28章 Scope Locking、Strategized Locking和Thread-Safe Interace 模式
第29章 Active Object模式
第30章 Half-Sync/Half-Async模式
第31章 FSM的实现方法及其适用情形
第32章 嵌入式电信软件支撑平台构建实例
PART Ⅵ 嵌入式电信软件主备业务同步案例研究
第33章 嵌入式电信软件对主备业务同步的要求
第34章 AOP和横切关系的处理
第35章 Decorator模式和Policy-based design技术
第36章 业务同步支撑框架的构建实例
PART Ⅶ 嵌入式电信软件硬件抽象层案例研究
第37章 依赖倒置原则
第38章 领域对象对底层硬件功能层的需求接口分析
第39章 静态多态(template policy)和动态多态(Bridge模式)
第40章 硬件抽象层构建实例
PART Ⅷ OR Mapping案例研究
第41章 嵌入式电信软件的对象持久化考虑
第42章 各种持久化方案的比较和选择
第43章 XML的优势以及一个简单的SAX解析器
第44章 OR Mapping层构建实例
附录
A. 软件思考系列文章
B. 如何有效改造遗留代码
参考文献