UML是以面向?qū)ο髨D形的方式來描述任何類型的系統(tǒng),應(yīng)用領(lǐng)域非常廣泛,其中常用的是建立軟件系統(tǒng)的模型。本書以Rose2007為建模工具全面講解了UML2.0的基本概念和建模方法。
全書分為14章,分別講解了用例圖、類圖、對象圖、順序圖、通信圖、狀態(tài)機(jī)圖、活動(dòng)圖、構(gòu)件圖、部署圖、包圖、組合結(jié)構(gòu)圖、定時(shí)圖和交互概覽圖等,并介紹了RUP過程開發(fā)模型。后安排了4個(gè)實(shí)戰(zhàn)案例,汽車租賃系統(tǒng)、新聞中心管理系統(tǒng)、BBS論壇系統(tǒng)和數(shù)碼錄音機(jī)系統(tǒng),通過這4個(gè)案例全面而系統(tǒng)地詳解UML建模與設(shè)計(jì)。
本書面向軟件工程師、系統(tǒng)架構(gòu)師、系統(tǒng)分析員、硬件工程師及其他系統(tǒng)設(shè)計(jì)人員,同時(shí)也適合高等院校和培訓(xùn)學(xué)校軟件相關(guān)專業(yè)的師生學(xué)習(xí)系統(tǒng)建模時(shí)參考使用。
軟件的發(fā)展至今已經(jīng)有近60年的歷史。面向?qū)ο蠹夹g(shù)開始有深入的研究并廣泛地應(yīng)用也近40年了,已經(jīng)成為軟件開發(fā)中分析、設(shè)計(jì)、實(shí)現(xiàn)的主流方法和技術(shù)。40年來,在面向?qū)ο蠹夹g(shù)發(fā)展的同時(shí),面向?qū)ο蠹夹g(shù)的各種軟件設(shè)計(jì)工具、規(guī)范等也獲得了較大發(fā)展。其中,重要的一個(gè)面向?qū)ο蟮慕<夹g(shù)的成果就是統(tǒng)一建模語言(Uniffed Modeling Language,UML)的出現(xiàn)。
本書基于使用廣泛、工具齊全的UML 2.0版本,并以Rose 2007為建模工具,對UML建模語言及其系統(tǒng)建模過程進(jìn)行了詳細(xì)講解。內(nèi)容安排緊湊,案例實(shí)用。
軟件的發(fā)展至今已經(jīng)有近60年的歷史。面向?qū)ο蠹夹g(shù)開始有深入的研究并廣泛地應(yīng)用也近40年了,已經(jīng)成為軟件開發(fā)中分析、設(shè)計(jì)、實(shí)現(xiàn)的主流方法和技術(shù)。40年來,在面向?qū)ο蠹夹g(shù)發(fā)展的同時(shí),面向?qū)ο蠹夹g(shù)的各種軟件設(shè)計(jì)工具、規(guī)范等也獲得了較大發(fā)展。其中,最重要的一個(gè)面向?qū)ο蟮慕<夹g(shù)的成果就是統(tǒng)一建模語言(Uniffed Modeling Language,UML)的出現(xiàn)。
UML的創(chuàng)建首先開始于1994年10月,由Grady Booch、Jim Rumbaugh和Ivar Jacobson共同開發(fā),并于1996年發(fā)布了UML版本0.9。隨后,公司聯(lián)合行動(dòng),由10多家公司組成UML伙伴組織,共同提出了UML 1.0和1.1,于1997年11月17日,對象管理組織(OMG)開始采納UML為其標(biāo)準(zhǔn)建模語言。第三階段的修訂是由OMG主導(dǎo)并控制完成了UML 1.2、1.3、1.4和1.5等版本。本世紀(jì)開始以來的修訂,推出了UML 2.0版本,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。到2011年8月,正式發(fā)布的版本已經(jīng)是UML 2.4.1了,目前UML 2.5正在醞釀之中。
本書基于使用最廣泛、工具最齊全的UML 2.0版本,并以Rose 2007為建模工具,對UML建模語言及其系統(tǒng)建模過程進(jìn)行了詳細(xì)講解。內(nèi)容安排緊湊,案例實(shí)用。本書由14章組成,講解的內(nèi)容劃分如下。
第1~3章:著重介紹UML的預(yù)備知識,包括面向?qū)ο蟾攀觥ML概述以及常見的UML建模工具的介紹。
第4~9章:著重介紹UML的各種圖,包括用例圖、類圖、對象圖、順序圖、通信圖、狀態(tài)機(jī)圖、活動(dòng)圖、構(gòu)件圖、部署圖、包圖、組合結(jié)構(gòu)圖、定時(shí)圖和交互概覽圖等,介紹了UML圖的基本概念、圖的組成要素和圖的建模技術(shù)和創(chuàng)建示例。通過這種方式能夠使讀者完整而系統(tǒng)地去把握和了解每一種UML圖。第9章對UML 2.0新增的幾種圖進(jìn)行了介紹。
第10章:著重對統(tǒng)一軟件過程RUP進(jìn)行介紹,并講解了Rose在RUP模型中的應(yīng)用。
第11~14章:詳細(xì)介紹了4個(gè)實(shí)戰(zhàn)案例,汽車租賃系統(tǒng)、新聞中心管理系統(tǒng)、BBS論壇系統(tǒng)和數(shù)碼錄音機(jī)系統(tǒng),其中數(shù)碼錄音機(jī)系統(tǒng)是一個(gè)實(shí)時(shí)嵌入式系統(tǒng),希望對硬件工程師使用UML設(shè)計(jì)嵌入式系統(tǒng)有啟迪作用。通過這4個(gè)實(shí)戰(zhàn)案例的學(xué)習(xí),讀者可以較為全面而系統(tǒng)地了解和掌握系統(tǒng)建模的過程。
不管您是業(yè)務(wù)系統(tǒng)的分析人員,還是從事面向?qū)ο筌浖_發(fā)的開發(fā)人員,或者是做嵌入式系統(tǒng)設(shè)計(jì)的硬件工程師,或者是希望通過學(xué)習(xí)UML幫助自己進(jìn)行系統(tǒng)建模的人員,本書都能夠幫助您全面了解UML的基本概念和建模方法。本書同樣也適合作為高等院校和培訓(xùn)學(xué)校計(jì)算機(jī)相關(guān)專業(yè)師生的教學(xué)用書或參考用書。
本書由李波、史江萍、楊弘平、呂海華和代欽等編寫,李波對全書進(jìn)行了規(guī)劃和整理。第1章、第4章、第5章由楊弘平完成;第2章、第3章和第13章由呂海華完成;第7章、第8章、第11章由史江萍完成;第9章由代欽完成;第6章和第10章由李波完成;第12章由楊弘平和史江萍共同完成;其他參與編寫的還有朱克敵、曾祥萍、孫憲麗、關(guān)穎、祝世東、衣云龍等排名不分先后。
由于編者水平有限,書中難免有疏漏之處,敬請讀者諒解。
如果下載有問題,請電子郵件聯(lián)系,郵件主題為“UML2與Rose示例”。
編者
2016年5月
李波,博士。從事軟件工程及其相關(guān)工作多年,編寫書籍教材多部,包括《JSP網(wǎng)絡(luò)編程學(xué)習(xí)筆記》《Android4.x從入門到精通》《UML基礎(chǔ)、建模與設(shè)計(jì)實(shí)戰(zhàn)》《PowerDesigner15系統(tǒng)分析與建模實(shí)戰(zhàn)》《Android5從入門到精通》等。
第1章 UML概述 1
1.1 什么是UML 1
1.2 UML的發(fā)展歷程 2
1.3 UML的特點(diǎn) 3
1.4 UML的組成 3
1.4.1 UML中的事物 3
1.4.2 UML中的關(guān)系 5
1.4.3 UML的圖 6
1.5 UML的視圖 12
1.5.1 用例視圖 13
1.5.2 邏輯視圖 13
1.5.3 并發(fā)視圖 13
1.5.4 組件視圖 13
1.5.5 部署視圖 13
1.6 系統(tǒng)開發(fā)階段 14
1.7 小 結(jié) 15
1.8 習(xí) 題 15
第2章 面向?qū)ο蠹夹g(shù)和建;A(chǔ) 16
2.1 面向?qū)ο蟮幕靖拍?16
2.1.1 面向?qū)ο蠓椒?17
2.1.2 對象 18
2.1.3 類 19
2.1.4 封裝 20
2.1.5 繼承 21
2.1.6 多態(tài) 22
2.1.7 消息 23
2.2 面向?qū)ο箝_發(fā) 24
2.2.1 系統(tǒng)調(diào)查和需求分析 24
2.2.2 面向?qū)ο蠓治龇椒?25
2.2.3 面向?qū)ο笤O(shè)計(jì)方法 26
2.3 軟件建模概述 27
2.3.1 軟件建模的概念 27
2.3.2 軟件建模的用途 27
2.3.3 軟件建模的優(yōu)點(diǎn) 28
2.4 小 結(jié) 28
2.5 習(xí) 題 29
第3章 UML建模工具簡介 30
3.1 常用UML建模工具 31
3.1.1 Visio 31
3.1.2 PowerDesigner 33
3.1.3 StarUML 34
3.1.4 Rational Rose 34
3.2 IBM Rational Rose Enterprise Edition 2007的安裝 37
3.2.1 安裝IBM Rational Rose Enterprise Edition 2007 37
3.2.2 插件程序的安裝 40
3.3 使用Rational Rose建模 40
3.3.1 Rational Rose可視化環(huán)境組成 41
3.3.2 Rose模型、視圖與圖 42
3.4 Rose建模的基本操作 43
3.4.1 新建Rose模型 44
3.4.2 打開Rose模型 45
3.4.3 創(chuàng)建Rose框圖 45
3.5 雙向工程 52
3.5.1 正向工程 52
3.5.2 逆向工程 56
3.6 小 結(jié) 57
3.7 習(xí) 題 58
第4章 用例和用例圖 59
4.1 用例和用例圖的概念 59
4.1.1 參與者 61
4.1.2 用例 62
4.1.3 用例描述 64
4.2 用例之間的可視化表示 65
4.2.1 包含關(guān)系 65
4.2.2 擴(kuò)展關(guān)系 66
4.2.3 泛化關(guān)系 67
4.2.4 分組關(guān)系 67
4.3 用例圖建模技術(shù)及應(yīng)用 67
4.3.1 識別出系統(tǒng)中的角色和用例 68
4.3.2 區(qū)分用例優(yōu)先次序 72
4.3.3 構(gòu)建用例圖模型 73
4.4 超市進(jìn)銷存管理系統(tǒng)用例圖模型構(gòu)建實(shí)例 74
4.5 小 結(jié) 78
4.6 習(xí) 題 78
第5章 類圖和對象圖 79
5.1 類圖和對象圖概述 79
5.1.1 類圖的概述 79
5.1.2 對象圖的概述 82
5.1.3 接口 84
5.1.4 抽象類 84
5.2 類之間的關(guān)系 85
5.2.1 依賴關(guān)系 85
5.2.2 泛化關(guān)系 87
5.2.3 關(guān)聯(lián)關(guān)系 87
5.2.4 實(shí)現(xiàn)關(guān)系 92
5.3 類圖的建模技術(shù)及應(yīng)用 93
5.3.1 類圖的建立過程 93
5.3.2 類的識別方法 94
5.3.3 類圖分析實(shí)例 96
5.4 小 結(jié) 105
5.5 習(xí) 題 106
第6章 順序圖和通信圖 107
6.1 順序圖 107
6.1.1 順序圖概述 107
6.1.2 順序圖的組成元素 108
6.1.3 消息的語法格式 116
6.1.4 順序圖的建模技術(shù)及應(yīng)用 117
6.2 通信圖 124
6.2.1 通信圖概述 124
6.2.2 通信圖的基本內(nèi)容 125
6.2.3 通信圖建模技術(shù)及應(yīng)用 128
6.2.4 順序圖與通信圖的比較 132
6.3 小 結(jié) 133
6.4 習(xí) 題 134
第7章 狀態(tài)機(jī)圖和活動(dòng)圖 135
7.1 狀態(tài)機(jī)圖 135
7.1.1 狀態(tài)機(jī)圖概述 135
7.1.2 狀態(tài)機(jī)圖的基本元素 137
7.1.3 狀態(tài) 137
7.1.4 轉(zhuǎn)換 140
7.1.5 狀態(tài)機(jī)圖的建模技術(shù)及應(yīng)用 142
7.2 活動(dòng)圖 145
7.2.1 活動(dòng)圖概述 145
7.2.2 活動(dòng)圖的基本元素 146
7.2.3 動(dòng)作狀態(tài) 146
7.2.4 活動(dòng)狀態(tài) 147
7.2.5 轉(zhuǎn)移 147
7.2.6 分支 147
7.2.7 分叉和匯合 148
7.2.8 泳道 148
7.2.9 對象流 149
7.2.10 活動(dòng)圖的建模技術(shù)及應(yīng)用 150
7.2.11 狀態(tài)機(jī)圖和活動(dòng)圖的比較 156
7.3 小 結(jié) 156
7.4 習(xí) 題 156
第8章 構(gòu)件圖和部署圖 158
8.1 構(gòu)件圖 158
8.1.1 構(gòu)件圖概述 158
8.1.2 組件(Component) 160
8.1.3 接口(Interface) 161
8.1.4 關(guān)系(Relationship) 162
8.1.5 使用構(gòu)件圖對系統(tǒng)建模及應(yīng)用 163
8.2 部署圖 166
8.2.1 部署圖概述 166
8.2.2 節(jié)點(diǎn)(Node) 166
8.2.3 組件(Component) 168
8.2.4 關(guān)系(Relationship) 169
8.2.5 部署圖的系統(tǒng)建模及應(yīng)用 169
8.3 小 結(jié) 173
8.5 習(xí) 題 174
第9章 包圖、組合結(jié)構(gòu)圖、定時(shí)圖和交互概覽圖 175
9.1 包 圖 175
9.1.1 包圖概述 175
9.1.2 包之間的關(guān)系 176
9.1.3 包圖的建模技術(shù)及應(yīng)用 177
9.2 組合結(jié)構(gòu)圖 178
9.2.1 組合結(jié)構(gòu)圖概述 178
9.2.2 基本元素 178
9.2.3 組合結(jié)構(gòu)圖的建模技術(shù)及應(yīng)用 178
9.3 定時(shí)圖 179
9.3.1 定時(shí)圖概述 179
9.3.2 基本元素 179
9.3.3 定時(shí)圖的建模技術(shù)及應(yīng)用 179
9.4 交互概覽圖 181
9.4.1 交互概覽圖概述 181
9.4.2 基本元素 182
9.4.3 交互概覽圖的建模技術(shù)及應(yīng)用 182
9.5 小 結(jié) 185
9.6 習(xí) 題 185
第10章 統(tǒng)一軟件過程RUP 186
10.1 RUP簡介 186
10.1.1 什么是RUP過程 186
10.1.2 RUP的特點(diǎn) 187
10.2 RUP工作流程 189
10.2.1 業(yè)務(wù)建模 190
10.2.2 需求分析 190
10.2.3 分析與設(shè)計(jì) 190
10.2.4 實(shí)現(xiàn) 190
10.2.5 測試 190
10.2.6 部署 190
10.2.7 配置和變更管理 191
10.2.8 項(xiàng)目管理 191
10.2.9 環(huán)境 191
10.2.10 統(tǒng)一軟件開發(fā)過程RUP裁剪 191
10.3 RUP的十大要素 191
10.3.1 開發(fā)前景 191
10.3.2 達(dá)成計(jì)劃 192
10.3.3 標(biāo)識和減少風(fēng)險(xiǎn) 192
10.3.4 分配和跟蹤任務(wù) 192
10.3.5 檢查商業(yè)理由 193
10.3.6 設(shè)計(jì)組件構(gòu)架 193
10.3.7 對產(chǎn)品進(jìn)行增量式的構(gòu)建和測試 193
10.3.8 驗(yàn)證和評價(jià)結(jié)果 193
10.3.9 管理和控制變化 193
10.3.10 提供用戶支持 194
10.4 Rose在RUP模型中的應(yīng)用 194
10.4.1 可視化建模 194
10.4.2 Rose介紹 194
10.4.3 Rose建模與RUP 195
10.4.4 Rose建模與RUP應(yīng)用實(shí)例 196
10.5 小 結(jié) 199
10.6 習(xí) 題 200
第11章 汽車租賃系統(tǒng) 201
11.1 系統(tǒng)需求分析 201
11.1.1 汽車租賃系統(tǒng)的需求分析 201
11.1.2 功能模塊圖 202
11.2 用例圖設(shè)計(jì)建模 204
11.2.1 汽車租賃系統(tǒng)中的用例圖簡述 204
11.2.2 與客戶有關(guān)的用例圖 204
11.2.3 與系統(tǒng)維護(hù)人員有關(guān)的用例圖 205
11.2.4 與技術(shù)人員有關(guān)的用例圖 206
11.3 類圖設(shè)計(jì)建模 207
11.4 順序圖 209
11.4.1 汽車租賃系統(tǒng)中的數(shù)據(jù)流和相應(yīng)順序圖 209
11.4.2 與客戶有關(guān)的事件流和順序圖 209
11.4.3 與系統(tǒng)維護(hù)人員有關(guān)的事件流和順序圖 213
11.4.4 與技術(shù)人員有關(guān)的事件流和用例圖 217
11.5 通信圖設(shè)計(jì)建模 220
11.5.1 汽車租賃系統(tǒng)中的通信圖 220
11.5.2 與客戶有關(guān)的通信圖 220
11.5.3 與技術(shù)人員有關(guān)的通信圖 222
11.5.4 與系統(tǒng)維護(hù)人員有關(guān)的通信圖 223
11.6 活動(dòng)圖 225
11.6.1 系統(tǒng)中的活動(dòng)圖 225
11.6.2 與客戶有關(guān)的活動(dòng)圖 226
11.6.3 與系統(tǒng)維護(hù)人員有關(guān)的活動(dòng)圖 229
11.6.4 與技術(shù)人員有關(guān)的活動(dòng)圖 232
11.7 狀態(tài)機(jī)圖設(shè)計(jì)建模 233
11.8 部署圖設(shè)計(jì)建模 235
第12章 新聞中心管理系統(tǒng) 237
12.1 系統(tǒng)需求說明 237
12.1.1 新聞中心管理系統(tǒng)的需求分析 237
12.1.2 新聞中心管理系統(tǒng)的功能模塊 238
12.1.3 UML對系統(tǒng)需求分析的支持 240
12.1.4 利用UML模型構(gòu)造軟件體系結(jié)構(gòu) 240
12.2 系統(tǒng)的用例圖 241
12.3 系統(tǒng)中的類圖 243
12.4 系統(tǒng)的順序圖 246
12.5 系統(tǒng)的通信圖 249
12.6 系統(tǒng)狀態(tài)機(jī)圖 250
12.7 系統(tǒng)的活動(dòng)圖 252
12.8 系統(tǒng)的配置和實(shí)現(xiàn) 253
12.9 系統(tǒng)的部署圖 253
12.10 生成Java代碼 254
12.11 逆向工程的實(shí)現(xiàn) 260
第13章 BBS論壇系統(tǒng) 262
13.1 BBS論壇系統(tǒng)的需求分析 262
13.1.1 系統(tǒng)的功能需求 263
13.1.2 前臺功能模塊 265
13.1.3 后臺功能模塊 267
13.2 BBS論壇系統(tǒng)的UML建模 270
13.2.1 BBS論壇系統(tǒng)的用例圖 270
13.2.2 BBS論壇系統(tǒng)的順序圖 274
13.2.3 BBS論壇系統(tǒng)的通信圖 292
13.2.4 BBS論壇系統(tǒng)的狀態(tài)機(jī)圖 300
13.2.5 BBS論壇系統(tǒng)的活動(dòng)圖 301
13.3 BBS論壇系統(tǒng)中的類及相互關(guān)系 308
13.3.1 BBS論壇系統(tǒng)中的類 308
13.3.2 類之間的關(guān)系圖 312
13.4 BBS論壇系統(tǒng)中的配置和部署 313
13.4.1 構(gòu)件圖的建立 313
13.4.2 部署圖的建立 313
第14章 數(shù)碼錄音機(jī)系統(tǒng) 314
14.1 數(shù)碼錄音機(jī)系統(tǒng)的需求分析 314
14.1.1 外部事件 315
14.1.2 數(shù)碼錄音機(jī)系統(tǒng)的用例圖 317
14.1.3 用例場景 318
14.2 數(shù)碼錄音機(jī)系統(tǒng)中的對象和類圖 319
14.2.1 數(shù)碼錄音機(jī)系統(tǒng)中的對象 319
14.2.2 數(shù)碼錄音機(jī)系統(tǒng)中的類圖 320
14.3 數(shù)碼錄音機(jī)系統(tǒng)的狀態(tài)圖 326
14.4 數(shù)碼錄音機(jī)系統(tǒng)的系統(tǒng)架構(gòu) 328
14.5 數(shù)碼錄音機(jī)系統(tǒng)的協(xié)作圖 330
14.6 數(shù)碼錄音機(jī)系統(tǒng)詳細(xì)設(shè)計(jì) 333
14.6.1 硬件的對象建模 333
14.6.2 音頻壓縮算法 333
14.6.3 使用直接內(nèi)存訪問通道 333
14.6.4 硬件資源分配 335
14.6.5 內(nèi)存分配 335
14.7 數(shù)碼錄音機(jī)系統(tǒng)實(shí)現(xiàn) 336
14.8 小 結(jié) 336