軟件再工程:優化現有軟件系統的方法與最佳實踐

軟件再工程:優化現有軟件系統的方法與最佳實踐
定價:414
NT $ 360
  • 作者:(美)厄比
  • 出版社:機械工業出版社
  • 出版日期:2014-03-01
  • 語言:簡體中文
  • ISBN10:7111448812
  • ISBN13:9787111448815
  • 裝訂:253頁 / 普通級 / 1-1
 

內容簡介

再工程領域的集大成之作,由有20余年實踐經驗的傑出CTO 、資深軟件架構師撰寫,亞馬遜全五星好評,指引你學會如何以最小的花費,在最短的時間通過再工程方法使舊版系統煥發新生。本書結合真實案例和示例代碼,充分展示探究舊有代碼真實狀態、制定再工程計划、引入最新的工具和方法以提升性能的思維、方法和最佳實踐,從而將新架構以及開發進展集成到不可離線的關鍵業務系統中。

《軟件再工程(優化現有軟件系統的方法與最佳實踐)/軟件工程技術叢書》共分兩部分。

第一部分包括第1~5章。第1章以面向服務的架構為基礎,講解如何明確最終目標的架構。

第2章分析3種常見架構模式的區別、工作機制,以及如何選擇適用的架構和設計模式。

第3章以一個較高的層次重新認識單元測試的理念和實現。

第4章講解如何利用依賴倒置原則打破應用程序的緊耦合,以便進行優化。

第5章介紹對單元測試使用測試替身的要點。

第二部分包括第6~13章。第6章介紹如何從整體上認識再工程項目的原解決方案,辨析當前代碼的真實狀態。

第7章分析再工程團隊在項目規划和管理方面所面臨的挑戰,並給出解決方案。

第8章介紹高效的再工程工具、方法。

第9章介紹如何清除舊版解決方案。

第10章講解具體添加核心服務、類、庫的方法,以建立再工程基礎。

第11章討論如何將新的架構整合到舊版系統。

第12章介紹架構重構中的一些重難點任務。第13章講解將窗體重構為控制器的方法和具體步驟。

Bradley Irby 資深軟件架構師和CTO,擁有20余年行業經驗,擅長軟件再工程和軟件遷移,在提升和改善舊版系統的質量和穩定性方面有豐富的經驗。曾將多個基於VB6、ASP-Classic和早期.NET版本的應用再工程為當前體系結構和最新質量方法下的現代應用。憑借其高超的技藝,再工程一個200萬行代碼的.NET應用,而該過程幾乎是零缺陷。與此同時,他也擅長在不關閉和不停止功能開發的情況下更新應用程序,贏得客戶廣泛好評。他還常為知名公司和政府部門開發高度定制的系統和應用,是舊金山.NET用戶聯盟管理者,常在全美發表演講。
 

目錄

譯者序
前言

第一部分 目標架構
第1章 實現面向服務的架構 2
1.1 面向服務的架構概覽 2
1.2 理解標准化服務約定 3
1.3 理解耦合 8
1.4 理解服務抽象 10
1.5 設計可復用服務 13
1.6 理解服務自治和服務組合 13
1.7 理解服務的無狀態性 13
1.8 一個服務示例 18
1.9 總結 19
第2章 理解應用程序架構 20
2.1 使用架構模式 20
2.2 架構模式概覽 20
2.3 MVP、MVC和MVVM的區別 21
2.3.1 模型訪問 22
2.3.2 視圖模型 23
2.4 處理UI事件 28
2.5 模式如何工作 32
2.6 應該選擇哪種模式 33
2.7 總結 34
第3章 單元測試 35
3.1 一個單元測試示例 35
3.2 創建單元測試 36
3.3 編寫測試 38
3.4 檢測異常 43
3.5 理解Assert的強大 46
3.6 單元測試與集成測試比較 46
3.7 使用InternalsVisibleTo屬性 46
3.8 理解測試驅動開發 48
3.9 了解單元測試的更多內容 49
3.10 總結 49
第4章 理解依賴倒置原則 50
4.1 理解緊耦合 50
4.2 實現抽象工廠模式 56
4.3 引入接口 59
4.4 創建單元測試 62
4.5 理解服務定位 63
4.5.1 控制反轉容器 63
4.5.2 服務定位器 66
4.5.3 一個真實的示例 68
4.5.4 按需服務屬性 72
4.5.5 單元測試的優點 75
4.5.6 最后調整 75
4.6 使用依賴注入 78
4.7 為什麼服務定位對再工程來說更好 82
4.8 總結 86
第5章 對單元測試使用測試替身 87
5.1 測試替身如何工作 87
5.2 測試替身可以滿足什麼需要 87
5.3 創建存根 90
5.4 創建模擬 94
5.4.1 第二個模擬示例 97
5.4.2 第三個模擬示例 98
5.5 使用模擬系統服務 99
5.6 了解測試替身的更多內容 101
5.7 總結 101

第二部分 再工程
第6章 回顧最初的解決方案 104
6.1 分析代碼 104
6.1.1 基礎架構 105
6.1.2 代碼結構 105
6.1.3 數據庫訪問 106
6.1.4 數據結構 106
6.1.5 外部接口 106
6.1.6 應用程序控件與窗體控件 107
6.2 分析一般代碼結構 107
6.3 管理語言遷移 108
6.4 刪除死代碼 108
6.5 使用全局變量 109
6.6 適度代碼轉換 111
6.7 使用自動化代碼轉換實用工具 112
6.8 使用數據訪問技術 113
6.8.1 偵測數據模型 113
6.8.2 偵測數據訪問模式 115
6.9 總結 115
第7章 項目規划 116
7.1 管理期望 116
7.2 創建再工程團隊 116
7.3 識別開發工具和生成過程 117
7.3.1 引入源代碼管理 117
7.3.2 引入缺陷跟蹤 118
7.3.3 安裝和使用持續集成服務器 118
7.4 清理舊版解決方案 119
7.5 建立基礎 119
7.6 重構以使用基本服務 120
7.7 重構以使用高級服務 121
7.8 向利益相關者報告進展情況 121
7.9 管理溝通和培訓 122
7.10 總結 122
第8章 識別開發工具和生成過程 123
8.1 使用源代碼管理 123
8.1.1 源代碼管理的類型 123
8.1.2 第一個流程示例:使用分布式系統 124
8.1.3 第二個流程示例:使用分布式系統 125
8.1.4 第三個流程示例:使用集中式系統 125
8.2 理解集中式系統和分布式系統的優缺點 125
8.2.1 使用別人的共享代碼 126
8.2.2 與別人共享代碼並審查更改 126
8.2.3 備份代碼 126
8.2.4 管理簽入頻率 126
8.2.5 管理合並沖突 127
8.2.6 管理控制 127
8.2.7 優缺點的最后說明 127
8.3 評估主機托管服務 127
8.3.1 使用Apache Subversion 128
8.3.2 使用微軟的團隊基礎服務器 128
8.3.3 使用Git 129
8.4 管理功能和缺陷 129
8.4.1 管理自定義工作流 129
8.4.2 管理敏捷開發 130
8.4.3 管理報告 130
8.5 使用持續集成服務器和生成服務器 130
8.6 使用Visual Studio 2010開發工具 131
8.6.1 Visual Studio的重構工具 131
8.6.2 第三方重構工具 132
8.7 總結 133
第9章 清理舊版解決方案 134
9.1 組織文件系統 134
9.2 項目結構化 135
9.3 確定項目類別 136
9.4 理解項目類型 137
9.4.1 應用程序無關項目 137
9.4.2 通用UI項目 137
9.4.3 模型無關項目 138
9.4.4 模型特定項目 138
9.5 再工程項目建議 138
9.5.1 常量 138
9.5.2 數據傳輸對象項目 139
9.5.3 接口 140
9.5.4 服務 140
9.5.5 域模型項目 141
9.5.6 Repository項目 141
9.5.7 控制器、視圖模型和表示器 142
9.6 重構解決方案結構 142
9.6.1 去除不必要的Using語句 142
9.6.2 分離單元測試和集成測試 143
9.6.3 將類移動到合適的項目 143
9.6.4 將快捷方式移動到庫 144
9.7 影響邏輯的重構 144
9.7.1 將初始化邏輯移動到構造器內 145
9.7.2 用衛語句代替嵌套的if語句 146
9.7.3 去除對實體類構造器的訪問 150
9.8 總結 150
第10章 建立基礎 151
10.1 添加新項目 151
10.2 使用Prism、Unity和Enterprise Library 版本 151
10.3 修改外殼程序 154
10.3.1 創建IBaseView 154
10.3.2 修改當前外殼程序 155
10.3.3 添加一個外殼程序控制器 156
10.4 創建服務定位器 157
10.5 建立Bootstrapper類 159
10.5.1 創建Winforms引導程序 159
10.5.2 更新Winforms Program類 161
10.5.3 創建一個WPF應用程序和引導程序 163
10.5.4 使用替代引導程序的配置 166
10.6 總結 168
第11章 服務的基本重構 169
11.1 使用DialogService 169
11.1.1 單元測試 173
11.1.2 重構DialogService 178
11.1.3 添加單元測試 179
11.2 使用LogWriterService 179
11.3 跟蹤會話信息 184
11.4 以SOA方式訪問資源 186
11.5 使用消息聚合器 190
11.6 轉換靜態類 194
11.7 重構靜態類 194
11.8 總結 195
第12章 服務的高級重構 196
12.1 使用知識庫模式 196
12.1.1 用域模型創建知識庫 203
12.1.2 再工程知識庫的方法 207
12.1.3 轉換現有代碼以使用域模型 207
12.1.4 向域模型中添加數據驗證 208
12.1.5 再工程域模型以使用驗證 212
12.2 使用通用對象管理器 212
12.3 用命令調度服務簡化復雜代碼 217
12.4 總結 225
第13章 重構為控制器 226
13.1 使用舊版方法創建窗體 226
13.2 准備視圖 229
13.3 引入控制器 230
13.4 優化控制器 231
13.5 總結 233

附錄 用Visual Studio 2012 再工程.NET項目 234
網路書店 類別 折扣 價格
  1. 新書
    87
    $360