本書揭示基於模型的軟件開發方法的核心原則,展示如何分離每一個項目的關注點,使得參與者能夠為每個域特有的需要和特征進行優化。本書共分三部分,共有18章。第一部分(第1~6章)重點介紹面向對象方法誕生的歷史背景,闡述面向對象的方法旨在解決的問題。第二部分(第7~13章)討論面向對象開發的基本原則如何應用於MDB方法學中,如何定義穩定的應用結構或框架。第三部分(第14~18章)講述如何利用動態模型描述動態計算需要。
H.S.Lahman,1957年在插件板上寫了他的第一個軟件程序。在接下來的十年,他作為勘探地球物理學家在很多重要的沼澤、沙漠和苔原的叢林中使用尖端技術,這些磨練了他的意志。然后。他回到學校學習經濟學、運籌學和計算學。在接下來的30年中,他為MIS系統、科學和R—T/E環境開發軟件。1982年。他成為一名面向對象開發的倡導者。20世紀90年代,他成為一名軟件質量和開發過程改進的倡導者。
目錄
譯者序
前言
引言
第一部分 面向對象開發的根本
第1章 歷史的視角 2
1.1 歷史 2
1.2 結構化開發 3
1.3 寶貴教訓 8
1.3.1 全局數據 9
1.3.2 巨程序單元 9
1.3.3 軟件結構 10
1.3.4 缺乏內聚性 10
1.3.5 耦合 10
1.4 技術革新 12
1.4.1 圖靈機 13
1.4.2 語言和方法學 13
1.4.3 集合和圖 16
1.4.4 范式 16
1.4.5 數據流 18
1.4.6 狀態機 20
第2章 對象技術 22
2.1 基本理念 22
2.1.1 可維護性 22
2.1.2 問題域抽象 23
2.1.3 OOA、OOD和OOP 24
2.1.4 主題 25
2.1.5 關注點分離 26
2.1.6 抽象層次 26
2.1.7 問題域抽象 28
2.1.8 封裝 29
2.1.9 內聚性 29
2.1.10 邏輯不可分性 30
2.1.11 通信模型 31
2.2 廣度優先處理(又稱對等協作) 32
2.2.1 細化與轉化 33
2.2.2 消息范式 35
2.2.3 對象特征 36
第3章 泛化、繼承、泛型和多態 39
3.1 泛化 39
3.2 繼承 42
3.3 多態 42
3.4 泛型 45
第4章 MBD路線圖 46
4.1 問題域和計算域 46
4.1.1 問題域 48
4.1.2 計算域 49
4.1.3 轉換 50
4.2 可維護性 50
4.2.1 領域分析 50
4.2.2 不變量建模 51
4.2.3 應用分區 52
4.2.4 靜態視圖 52
4.2.5 動態視圖 52
第5章 不變量建模 55
5.1 什麼是不變量建模 55
5.1.1 不變量 56
5.1.2 數據 57
5.2 好處 58
5.3 例子 60
5.3.1 銀行ATM軟件 60
5.3.2 硬件接口 64
5.3.3 折舊 67
5.3.4 遠程POS輸入示例 72
第6章 應用分區 76
6.1 為什麼我們要關注 76
6.2 應用分區的基本概念 77
6.2.1 主題 79
6.2.2 客戶端/服務關系 82
6.2.3 抽象層次 84
6.2.4 接口 85
6.3 識別子系統 86
6.3.1 將相同的實體抽象為其他子系統時,當前子系統是否存在不同的視角 86
6.3.2 是否存在客戶端/服務的關系 86
6.3.3 服務是否比客戶端更加詳細 87
6.3.4 是否與其他子系統知識共享 87
6.3.5 是否與其他子系統行為共享 87
6.3.6 主題是否內聚 87
6.3.7 邊界定義是否清晰 88
6.3.8 能否重用 88
6.3.9 是否被分布式網絡環境綁定 88
6.3.10 是否針對不同的問題域 88
6.4 橋 89
6.4.1 消息范式,又是消息范式 89
6.4.2 橋模型 91
6.5 描述子系統 92
6.5.1 子系統描述 93
6.5.2 關系描述 94
6.5.3 需求分配 94
6.6 一個例子:寵物保健中心 94
6.7 過程 106
第二部分 靜?態?模?型
第7章 第二部分路線圖 112
7.1 什麼是靜態模型 113
7.2 知識和行為 114
7.3 實用的注釋 115
第8章 類 117
8.1 抽象表示 117
8.1.1 為真實的東西建模 118
8.1.2 局限於子系統或組件中 119
8.1.3 邏輯不可分性 119
8.1.4 委托 120
8.2 類表示法 121
8.3 識別類及其職責 122
8.3.1 對象「突擊」 123
8.3.2 用例變異 124
8.4 例子 125
8.4.1 傳奇的銀行ATM控制器 125
8.4.2 寵物保健中心:處置 131
8.5 使用序列圖和協作圖 134
第9章 類的職責 137
9.1 屬性:一個類對象應該知道什麼 137
9.1.1 定義和表示法 137
9.1.2 與數據存儲不同 138
9.1.3 狀態 139
9.1.4 抽象數據類型 140
9.2 操作和方法:對象必須做什麼 142
9.2.1 定義和表示法 142
9.2.2 識別行為 144
9.2.3 擬人化 148
9.3 過程 149
9.4 例子 150
9.4.1 ATM 150
9.4.2 寵物保健中心:處置 158
第10章 關聯 165
10.1 定義與基礎 165
10.2 表示法 170
10.3 邏輯連接的性質 172
10.3.1 導航到知識與導航到行為 173
10.3.2 關聯角色 174
10.3.3 關聯路徑 175
10.4 條件性 178
10.5 多重性 182
10.5.1 使用「一個」模型替換問題域的「一個或更多個」模型 183
10.5.2 為問題域關聯提供二次關聯 184
10.5.3 選擇和參與 185
10.6 約束 187
10.7 關聯類 189
10.8 識別關聯 192
10.9 例子 195
10.9.1 ATM控制器 195
10.9.2 寵物保健中心:處置 198
第11章 引用完整性和知識完整性 200
11.1 知識完整性 200
11.1.1 及時性 201
11.1.2 一致性 201
11.1.3 快照和實時訪問 202
11.1.4 依賴屬性 202
11.1.5 屬性標准化 204
11.2 引用完整性 207
11.2.1 標識與引用屬性 207
11.2.2 關聯循環 209
11.2.3 關系和面向對象范式:完全不同 211
第12章 泛化歸來 213
12.1 子類化 213
12.1.1 表示法和規則 215
12.1.2 泛化和特定化 216
12.1.3 分類 219
12.1.4 包含多態 223
12.1.5 為什麼是{相交,完整}的子集 225
12.2 多方向子類、多重繼承與組合 227
12.3 泛化的備選 235
12.3.1 委托 236
12.3.2 參數多態 238
12.3.3 基本抽象 238
第13章 識別知識 239
13.1 面向對象知識的性質是什麼 239
13.2 抽象聚合 241
13.3 挑選適合的抽象 245
13.3.1 抽象人們做什麼 246
13.3.2 潛在實體知道哪些 247
13.3.3 對象抽象應當知道哪些實體知識的子集 248
13.3.4 主題是什麼 248
13.3.5 抽象層次是什麼 251
13.4 抽象是否需要結合實體知識 252
第三部分 動?態?模?型
第14章 第三部分路線圖 258
14.1 第三部分路線圖 258
14.1.1 一切都關乎行為 259
14.1.2 對象生命周期 261
14.1.3 異步解決方案 262
14.1.4 同步服務 266
14.2 動作語言 269
14.3 Mealy機、Moore機和Harel機 270
14.4 學習曲線 272
第15章 有限狀態機 273
15.1 基本的有限狀態自動機 273
15.1.1 表示法 277
15.1.2 契約設計的作用 280
15.2 尋找狀態機 283
15.2.1 知識和行為 283
15.2.2 管理序列 286
15.3 一些例子 295
15.3.1 車庫門遙控器 295
15.3.2 自動家庭廚房 297
15.3.3 空中交通管制系統 297
15.3.4 岩石 298
第16章 狀態、轉換、事件和動作 300
16.1 狀態 300
16.2 轉換 305
16.3 事件 306
16.4 動作 309
16.5 執行模型 311
16.6 命名約定 313
第17章 開發狀態模型 316
17.1 設計狀態機 316
17.2 例子 325
17.2.1 ATM控制器:字符顯示 326
17.2.2 ATM控制器:調度器 331
17.2.3 ATM控制器:存款 340
第18章 抽象動作語言 344
18.1 AAL和ADFD 345
18.2 AAL語法 346
18.3 例子 348
18.3.1 車庫門遙控器 348
18.3.2 ATM:字符顯示 351
術語表 354
前言
引言
第一部分 面向對象開發的根本
第1章 歷史的視角 2
1.1 歷史 2
1.2 結構化開發 3
1.3 寶貴教訓 8
1.3.1 全局數據 9
1.3.2 巨程序單元 9
1.3.3 軟件結構 10
1.3.4 缺乏內聚性 10
1.3.5 耦合 10
1.4 技術革新 12
1.4.1 圖靈機 13
1.4.2 語言和方法學 13
1.4.3 集合和圖 16
1.4.4 范式 16
1.4.5 數據流 18
1.4.6 狀態機 20
第2章 對象技術 22
2.1 基本理念 22
2.1.1 可維護性 22
2.1.2 問題域抽象 23
2.1.3 OOA、OOD和OOP 24
2.1.4 主題 25
2.1.5 關注點分離 26
2.1.6 抽象層次 26
2.1.7 問題域抽象 28
2.1.8 封裝 29
2.1.9 內聚性 29
2.1.10 邏輯不可分性 30
2.1.11 通信模型 31
2.2 廣度優先處理(又稱對等協作) 32
2.2.1 細化與轉化 33
2.2.2 消息范式 35
2.2.3 對象特征 36
第3章 泛化、繼承、泛型和多態 39
3.1 泛化 39
3.2 繼承 42
3.3 多態 42
3.4 泛型 45
第4章 MBD路線圖 46
4.1 問題域和計算域 46
4.1.1 問題域 48
4.1.2 計算域 49
4.1.3 轉換 50
4.2 可維護性 50
4.2.1 領域分析 50
4.2.2 不變量建模 51
4.2.3 應用分區 52
4.2.4 靜態視圖 52
4.2.5 動態視圖 52
第5章 不變量建模 55
5.1 什麼是不變量建模 55
5.1.1 不變量 56
5.1.2 數據 57
5.2 好處 58
5.3 例子 60
5.3.1 銀行ATM軟件 60
5.3.2 硬件接口 64
5.3.3 折舊 67
5.3.4 遠程POS輸入示例 72
第6章 應用分區 76
6.1 為什麼我們要關注 76
6.2 應用分區的基本概念 77
6.2.1 主題 79
6.2.2 客戶端/服務關系 82
6.2.3 抽象層次 84
6.2.4 接口 85
6.3 識別子系統 86
6.3.1 將相同的實體抽象為其他子系統時,當前子系統是否存在不同的視角 86
6.3.2 是否存在客戶端/服務的關系 86
6.3.3 服務是否比客戶端更加詳細 87
6.3.4 是否與其他子系統知識共享 87
6.3.5 是否與其他子系統行為共享 87
6.3.6 主題是否內聚 87
6.3.7 邊界定義是否清晰 88
6.3.8 能否重用 88
6.3.9 是否被分布式網絡環境綁定 88
6.3.10 是否針對不同的問題域 88
6.4 橋 89
6.4.1 消息范式,又是消息范式 89
6.4.2 橋模型 91
6.5 描述子系統 92
6.5.1 子系統描述 93
6.5.2 關系描述 94
6.5.3 需求分配 94
6.6 一個例子:寵物保健中心 94
6.7 過程 106
第二部分 靜?態?模?型
第7章 第二部分路線圖 112
7.1 什麼是靜態模型 113
7.2 知識和行為 114
7.3 實用的注釋 115
第8章 類 117
8.1 抽象表示 117
8.1.1 為真實的東西建模 118
8.1.2 局限於子系統或組件中 119
8.1.3 邏輯不可分性 119
8.1.4 委托 120
8.2 類表示法 121
8.3 識別類及其職責 122
8.3.1 對象「突擊」 123
8.3.2 用例變異 124
8.4 例子 125
8.4.1 傳奇的銀行ATM控制器 125
8.4.2 寵物保健中心:處置 131
8.5 使用序列圖和協作圖 134
第9章 類的職責 137
9.1 屬性:一個類對象應該知道什麼 137
9.1.1 定義和表示法 137
9.1.2 與數據存儲不同 138
9.1.3 狀態 139
9.1.4 抽象數據類型 140
9.2 操作和方法:對象必須做什麼 142
9.2.1 定義和表示法 142
9.2.2 識別行為 144
9.2.3 擬人化 148
9.3 過程 149
9.4 例子 150
9.4.1 ATM 150
9.4.2 寵物保健中心:處置 158
第10章 關聯 165
10.1 定義與基礎 165
10.2 表示法 170
10.3 邏輯連接的性質 172
10.3.1 導航到知識與導航到行為 173
10.3.2 關聯角色 174
10.3.3 關聯路徑 175
10.4 條件性 178
10.5 多重性 182
10.5.1 使用「一個」模型替換問題域的「一個或更多個」模型 183
10.5.2 為問題域關聯提供二次關聯 184
10.5.3 選擇和參與 185
10.6 約束 187
10.7 關聯類 189
10.8 識別關聯 192
10.9 例子 195
10.9.1 ATM控制器 195
10.9.2 寵物保健中心:處置 198
第11章 引用完整性和知識完整性 200
11.1 知識完整性 200
11.1.1 及時性 201
11.1.2 一致性 201
11.1.3 快照和實時訪問 202
11.1.4 依賴屬性 202
11.1.5 屬性標准化 204
11.2 引用完整性 207
11.2.1 標識與引用屬性 207
11.2.2 關聯循環 209
11.2.3 關系和面向對象范式:完全不同 211
第12章 泛化歸來 213
12.1 子類化 213
12.1.1 表示法和規則 215
12.1.2 泛化和特定化 216
12.1.3 分類 219
12.1.4 包含多態 223
12.1.5 為什麼是{相交,完整}的子集 225
12.2 多方向子類、多重繼承與組合 227
12.3 泛化的備選 235
12.3.1 委托 236
12.3.2 參數多態 238
12.3.3 基本抽象 238
第13章 識別知識 239
13.1 面向對象知識的性質是什麼 239
13.2 抽象聚合 241
13.3 挑選適合的抽象 245
13.3.1 抽象人們做什麼 246
13.3.2 潛在實體知道哪些 247
13.3.3 對象抽象應當知道哪些實體知識的子集 248
13.3.4 主題是什麼 248
13.3.5 抽象層次是什麼 251
13.4 抽象是否需要結合實體知識 252
第三部分 動?態?模?型
第14章 第三部分路線圖 258
14.1 第三部分路線圖 258
14.1.1 一切都關乎行為 259
14.1.2 對象生命周期 261
14.1.3 異步解決方案 262
14.1.4 同步服務 266
14.2 動作語言 269
14.3 Mealy機、Moore機和Harel機 270
14.4 學習曲線 272
第15章 有限狀態機 273
15.1 基本的有限狀態自動機 273
15.1.1 表示法 277
15.1.2 契約設計的作用 280
15.2 尋找狀態機 283
15.2.1 知識和行為 283
15.2.2 管理序列 286
15.3 一些例子 295
15.3.1 車庫門遙控器 295
15.3.2 自動家庭廚房 297
15.3.3 空中交通管制系統 297
15.3.4 岩石 298
第16章 狀態、轉換、事件和動作 300
16.1 狀態 300
16.2 轉換 305
16.3 事件 306
16.4 動作 309
16.5 執行模型 311
16.6 命名約定 313
第17章 開發狀態模型 316
17.1 設計狀態機 316
17.2 例子 325
17.2.1 ATM控制器:字符顯示 326
17.2.2 ATM控制器:調度器 331
17.2.3 ATM控制器:存款 340
第18章 抽象動作語言 344
18.1 AAL和ADFD 345
18.2 AAL語法 346
18.3 例子 348
18.3.1 車庫門遙控器 348
18.3.2 ATM:字符顯示 351
術語表 354
網路書店
類別
折扣
價格
-
新書87折$517