嵌入式電信軟件敏捷開發實踐
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. 如何有效改造遺留代碼
參考文獻