面向對象設計UML實踐(第2版)(世界著名計算機教材精選)

面向對象設計UML實踐(第2版)(世界著名計算機教材精選)

本書是一本實用的和易於理解的面向對象設計的入門教程,闡述了UML的原則和套用。

基本介紹

  • 書名:面向對象設計UML實踐(第2版)
  • 作者:Mark Priestley
  • 譯者:龔曉慶
  • ISBN:9787302105879
  • 定價:39
  • 出版社:清華大學出版社
  • 出版時間:2012-12
  • 裝幀:平裝
基本信息,內容簡介,圖書目錄,

基本信息

面向對象設計UML實踐(第2版)
作者:Mark Priestley著、龔曉慶等譯
ISBN:9787302105879
定價:39元
印次:1-7
裝幀:平裝
印刷日期:2012-12-14

內容簡介

本書的目的是提供一本實用的和易於理解的面向對象設計的入門教程,它要求讀者具有面向對象程式設計語言的知識(最好是Java),而且闡述了UML的原則和套用。本書針對的讀者主要是計算機科學或軟體工程專業的大學本科高年級學生或碩士生,當然也希望其他讀者會發覺這本書是有用的。
本書的總體構想是強調設計的表示法與代碼之間的聯繫。現在已經有許多討論用UML進行系統分析和設計的教程,不過對最終產品,即被開發系統的代碼,給予特別注意的還不多見。然而UML實質上是一種表達面向對象程式的設計語言,從這個角度考慮該語言的表示法和語義看來是很自然的。在過去幾年,我已發現這是把設計表示法的真實含義傳授給學生的好方法。
與這個總體構想有關,本書有兩個主要目標。第一個是提供一個使用UML描述的面向對象開發的完整示例。開始講述需求,最後講述一個完整的可執行代碼,這個代碼可以運行、修改和擴展。
教程的目標限制了可以考慮的事例的規模。為此,本書採用一個典型的獨立的桌面套用系統,作為範例體系結構。它支持圖形用戶界面並與關係資料庫接口。在這個框架中,正文仔細地對某些核心功能的開發進行了探討,並把系統的擴展作為練習留給讀者。
第二個目標是對UML在開發這種套用的重要方面提供指導。特別把重點放在清楚地闡明此設計語言的結構和表示法,並通過示例說明設計和面向對象程式實現之間的緊密關係。這些問題在許多書中講的相當粗略。然而,如果對此沒有清楚的理解,就難以正確使用UML。
UML是一個龐大而複雜的語言,學習UML時的危險是被這些表示法的細節所淹沒。為了避免這點,本書使用的是足以用於開發桌面套用的UML的一個子集。並發性、活動圖和除了部署圖的簡要敘述外的其他部分,都作了相當大的省略。UML語言的這些方面對於UML的“工業化”套用顯然是重要的,但是這些已超出本書針對的讀者的經驗。

圖書目錄

第1章 UML導論1
1.1 模型與建模1
1.1.1 軟體模型1
1.1.2 套用模型3
1.1.3 分析模型和設計模型的關係3
1.2 方法學4
1.2.1 方法學的分類5
1.3 統一建模語言5
1.3.1 視圖6
1.3.2 模型6
1.3.3 模型元素7
1.3.4 圖7
1.3.5 理解UML8
1.4 設計模型和代碼8
1.5 軟體開發過程9
1.6 本章小結9
1.7 練習題10
第2章 對象建模11
2.1 對象模型11
2.1.1 對象模型在設計中的作用12
2.1.2 一個庫存控制的示例12
2.2 類和對象12
2.2.1 對象創建14
2.3 對象的特性14
2.3.1 狀態14
2.3.2 行為14
2.3.3 本體15
2.3.4 對象名15
2.3.5 封裝16
2.4 避免數據重複16
2.5 連結17
2.5.1 對象圖19
2.6 關聯19
2.6.1 類圖20
2.7 訊息傳遞20
2.8 多態性21
2.8.1 多態性的實現23
2.8.2 UML的多態性24
2.8.3 抽象類25
2.9 動態綁定25
2.10 對象模型的適用性27
2.11 本章小結28
2.12 練習題28
第3章 軟體開發過程31
3.1 瀑布模型31
3.1.1 瀑布模型中的風險管理32
3.1.2 瀑布模型中的系統需求33
3.2 非瀑布模型34
3.2.1 演化模型34
3.2.2 螺旋模型34
3.2.3 疊代和增量開發36
3.3 統一過程36
3.4 模型在開發中的作用37
3.5 UML在統一過程中的運用38
3.5.1 需求38
3.5.2 用例驅動的過程39
3.6 本章小結40
3.7 練習題40
第4章 餐館系統的業務建模42
4.1 非正式的需求42
4.1.1 對計算機化系統的需要43
4.1.2 定義一次疊代43
4.2 用例建模43
4.2.1 用例44
4.2.2 參與者44
4.2.3 用例圖45
4.3 描述用例45
4.3.1 事件路徑46
4.3.2 用戶界面原型47
4.4 組織用例模型48
4.4.1 用例包含49
4.4.2 參與者泛化50
4.4.3 用例擴展50
4.5 完成用例模型51
4.5.1 一個用例模型何時完成52
4.6 領域建模53
4.6.1 領域模型的正確性55
4.7 術語表55
4.8 本章小結56
4.9 練習題57
第5章 餐館系統的分析59
5.1 分析的目的59
5.1.1 分析和設計的區別60
5.2 對象設計60
5.2.1 對象責任60
5.3 軟體架構61
5.3.1 層次架構62
5.3.2 分析類的構造型63
5.4 用例實化64
5.4.1 系統訊息64
5.4.2 存取預約66
5.4.3 檢索預約細節67
5.4.4 細化領域模型67
5.5 記錄新預約68
5.5.1 創建新對象69
5.5.2 記錄未預約顧客的預約70
5.6 取消預約70
5.6.1 細化領域模型71
5.7 更新預約72
5.7.1 調換餐桌73
5.8 完成分析模型73
5.9 本章小結74
5.10 練習題75
第6章 餐館系統的設計76
6.1 接收用戶輸入76
6.2 產生輸出78
6.2.1 套用設計模式78
6.3 持久數據存儲80
6.3.1 設計資料庫模式81
6.3.2 保存和裝入持久對象83
6.3.3 持久性和層次結構83
6.4 設計模型84
6.5 詳細的類設計85
6.6 動態行為建模86
6.6.1 訊息的順序86
6.6.2 與歷史有關的行為87
6.6.3 指定行為87
6.7 預約系統的狀態圖88
6.7.1 非確定性88
6.7.2 監護條件89
6.7.3 動作90
6.7.4 組合狀態90
6.8 預定的狀態圖91
6.9 本章小結92
6.10 練習題93
第7章 餐館系統的實現94
7.1 實現圖94
7.1.1 構件94
7.1.2 構件圖95
7.1.3 部署圖96
7.2 實現策略96
7.3 套用框架96
7.3.1 熱點97
7.3.2 控制的倒置99
7.4 Java AWT框架99
7.4.1 用UML文檔化一個框架99
7.4.2 集成預約系統和AWT框架100
7.5 類的實現101
7.5.1 類101
7.5.2 泛化102
7.5.3 類的重數103
7.6 關聯的實現104
7.6.1 雙向性104
7.6.2 關聯的單向實現105
7.6.3 實現重數約束106
7.7 操作的實現107
7.7.1 狀態圖的實現107
7.8 本章小結108
7.9 練習題108
第8章 類圖和對象圖110
8.1 數據類型111
8.2 類112
8.3 用類描述對象113
8.3.1 屬性113
8.3.2 操作114
8.3.3 標識對象115
8.3.4 特徵的可見性116
8.4 關聯116
8.4.1 連結117
8.4.2 關聯端點的特性117
8.4.3 導航性118
8.4.4 關聯的不同種類118
8.4.5 標註關聯119
8.4.6 物化關聯119
8.5 泛化和特化121
8.5.1 泛化的意義122
8.5.2 抽象類123
8.5.3 泛化層次124
8.6 屬性和操作的繼承124
8.6.1 向子類中增加特徵125
8.6.2 在子類中覆蓋操作126
8.6.3 抽象操作126
8.7 聚合127
8.8 組合129
8.9 關聯類130
8.10 n-元關聯132
8.11 限定關聯133
8.12 接口135
8.13 模板136
8.14 本章小結137
8.15 練習題138
第9章 互動圖145
9.1 協作145
9.2 類元角色146
9.3 關聯角色147
9.4 互動圖148
9.4.1 順序圖149
9.4.2 協作圖149
9.5 對象創建151
9.6 對象銷毀152
9.7 角色的重數與疊代訊息153
9.8 多對象154
9.9 條件訊息155
9.10 自返訊息157
9.11 本章小結159
9.12 練習題159
第10章 狀態圖162
10.1 依賴狀態的行為162
10.2 狀態、事件和轉換163
10.3 初始狀態和終止狀態164
10.4 監護條件165
10.5 動作167
10.6 活動168
10.6.1 完成轉換168
10.6.2 內部轉換169
10.7 組合狀態169
10.8 歷史狀態172
10.9 CD播放機小結173
10.10 實際中的動態建模173
10.10.1 狀態機和事件序列174
10.10.2 付款之前選擇車票174
10.10.3 選擇車票之前付款175
10.10.4 集成交易176
10.11 時間事件177
10.12 活動狀態178
10.13 售票機小結179
10.14 本章小結179
10.15 練習題180
第11章 構件圖184
11.1 依賴性184
11.2 構件和製品185
11.2.1 製品186
11.3 構件圖187
11.4 某些常見的物理關係187
11.4.1 原始碼187
11.4.2 編譯188
11.4.3 檔案檔案和庫188
11.5 編譯依賴189
11.5.1 依賴來自哪裡190
11.5.2 依賴圖191
11.5.3 物理層次191
11.6 構件和接口192
11.7 本章小結192
11.8 練習題193
第12章 約束194
12.1 標準約束194
12.1.1 xor約束195
12.1.2 子集約束195
12.2 對象約束語言196
12.3 約束的上下文196
12.4 導航表達式197
12.4.1 跟隨連結(Following links)198
12.4.2 對象和聚集(collection)199
12.4.3 疊代遍歷199
12.4.4 遍歷限定關聯199
12.4.5 使用關聯類200
12.5 OCL數據類型和操作200
12.5.1 基本類型200
12.5.2 模型類型201
12.5.3 聚集(collection)201
12.5.4 聚集操作202
12.6 約束204
12.6.1 基本約束204
12.6.2 組契約束205
12.6.3 疊代約束205
12.7 構造型的約束206
12.7.1 類不變數206
12.7.2 前置條件和後置條件207
12.7.3 按契約設計208
12.8 約束和泛化208
12.9 本章小結209
12.10 練習題210
第13章 實現策略212
13.1 實現關聯212
13.2 單向實現213
13.2.1 可選關聯213
13.2.2 一對一關聯214
13.2.3 重數為多的關聯215
13.3 雙向實現216
13.3.1 一對一與可選關聯217
13.3.2 一對多關聯220
13.3.3 多對多關聯220
13.3.4 不可變的雙向關聯220
13.4 實現限定關聯221
13.5 實現關聯類222
13.6 實現約束224
13.7 實現狀態圖225
13.8 逆向工程227
13.9 本章小結230
13.10 練習題231
第14章 原則和模式235
14.1 開-閉原則235
14.1.1 數據抽象236
14.1.2 抽象接口類237
14.2 無具體超類238
14.3 接口層次的解耦240
14.4 Liskov替換原則241
14.5 互動決定結構242
14.6 設計模式244
14.6.1 模式的定義245
14.6.2 模式和框架245
14.7 遞歸結構246
14.7.1 組合模式247
14.7.2 UML中的模式248
14.8 狀態和策略模式248
14.9 MVC、文檔/視圖和觀察者250
14.9.1 模型-視圖-控制者250
14.9.2 文檔/視圖架構251
14.9.3 觀察者模式252
14.10 訪問者模式對庫存控制程式的套用252
14.11 本章小結255
14.12 練習題256
附錄A UML表示法概述257
A.1 一般概念257
A.2 模型結構259
A.3 用例圖260
A.4 對象圖260
A.5 協作261
A.6 訊息262
A.7 協作圖263
A.8 順序圖263
A.9 類圖264
A.10 狀態圖266
A.11 構件圖267
A.12 模板268
附錄B OCL概述269
B.1 約束269
B.2 表達式269
B.3 基本類型269
B.3.1 OCL類型的特性270
B.3.2 所有類型的特性270
B.3.3 數字類型的特性270
B.3.4 布爾特性271
B.3.5 字元串特性271
B.4 模型類型271
B.5 聚集271
B.5.1 謂詞特徵272
附錄C 用例描述模板275
參考文獻277
術語表279

相關詞條

熱門詞條

聯絡我們