本書從軟件文化背景入手,分析軟件工程面臨的問題及軟件建模的必要性。以UML對象建模語言為背景,由淺入深,由抽象概念到具體實(shí)例,全面介紹了面向?qū)ο蠓治雠c設(shè)計(jì)方法。本書重點(diǎn)圍繞統(tǒng)一建模語言——UML展開,介紹對象建模的三個核心內(nèi)容,即對象的概念建模、行為建模和功能建模,并且以一個較為完整的示例介紹這些方法如何在實(shí)踐中運(yùn)用。本書提供電子課件,讀者可登錄華信教育資源網(wǎng)www.hxedu.com.cn免費(fèi)注冊下載。本書可作為高等學(xué)校本科生和研究生教材,也可作為程序員和分析員基礎(chǔ)理論培訓(xùn)教材。
解放軍理工大學(xué)軟件工程專業(yè)博士,陸軍工程大學(xué)教師,主要從事軟件系統(tǒng)建模與仿真研究,講授軟件系統(tǒng)建模與仿真本科和研究生課程;2017年獲軍隊(duì)科技進(jìn)步三等獎1項(xiàng),2018年獲計(jì)算機(jī)軟件著作權(quán)1項(xiàng),2020年獲得中國指控學(xué)會科技進(jìn)步一等獎1項(xiàng)。
目錄
第1章 軟件建模概述 1
1.1 計(jì)算機(jī)軟件及其編程語言發(fā)展的啟迪 1
1.1.1 計(jì)算機(jī)編程語言發(fā)展史 1
1.1.2 人類語言與計(jì)算機(jī)編程語言對比 2
1.1.3 需求鴻溝及解決方法 4
1.2 軟件工程 5
1.2.1 軟件危機(jī) 5
1.2.2 軟件工程方法 6
1.2.3 需求工程 6
1.2.4 模型驅(qū)動工程 7
1.3 建模的基本原理 8
1.3.1 知識的概念 8
1.3.2 模型的概念 9
1.3.3 元模型及其作用 13
1.3.4 建模的基本原則 14
1.4 本章小結(jié) 18
1.5 習(xí)題 18
第2章 面向?qū)ο蟮幕靖拍?19
2.1 對象的概念 19
2.1.1 面向?qū)ο蟮乃枷?19
2.1.2 什么是對象 20
2.1.3 什么是類 21
2.1.4 什么是實(shí)例 22
2.1.5 計(jì)算機(jī)程序與對象 23
2.2 對象模型的概念 23
2.2.1 現(xiàn)實(shí)世界的對象模型 24
2.2.2 計(jì)算機(jī)世界的對象模型 24
2.2.3 對象模型的可視化表示 25
2.3 面向?qū)ο蠓治鲈O(shè)計(jì)的共性問題 26
2.3.1 對象的封裝 26
2.3.2 對象的抽象層次 27
2.3.3 對象的多態(tài)性 28
2.3.4 對象之間的信息交互 29
2.3.5 軟件復(fù)用 30
2.4 其他方法比較 32
2.4.1 面向過程的方法 32
2.4.2 面向數(shù)據(jù)的方法 33
2.4.3 面向控制的方法 33
2.5 本章小結(jié) 34
2.6 習(xí)題 35
第3章 統(tǒng)一建模語言 38
3.1 UML概覽 38
3.1.1 UML的起源與發(fā)展 38
3.1.2 UML的作用 40
3.1.3 UML方法論 40
3.2 UML機(jī)理 42
3.2.1 UML建模機(jī)制 42
3.2.2 UML擴(kuò)展機(jī)制 48
3.2.3 UML形式化機(jī)制 50
3.3 UML 2.0與UML 1.0的區(qū)別 54
3.3.1 類圖的區(qū)別 55
3.3.2 用例圖的區(qū)別 56
3.3.3 活動圖的區(qū)別 56
3.3.4 UML 2.0新增的模型圖 58
3.4 本章小結(jié) 60
3.5 習(xí)題 61
第4章 對象概念建模 62
4.1 概念建模及其意義 62
4.2 UML類圖和對象圖表示法 64
4.2.1 類和對象的表示法 64
4.2.2 屬性的表示法 66
4.2.3 操作的表示法 67
4.3 對象之間的聯(lián)系及其表示法 68
4.3.1 關(guān)聯(lián)關(guān)系及表示法 68
4.3.2 聚合關(guān)系及表示法 70
4.3.3 關(guān)聯(lián)類關(guān)系及表示法 71
4.3.4 依賴關(guān)系及表示法 73
4.3.5 其他關(guān)系及表示法 74
4.4 對象概念的泛化與繼承 76
4.4.1 泛化的概念及應(yīng)用 77
4.4.2 繼承的概念及應(yīng)用 78
4.4.3 對象的多態(tài)性及應(yīng)用 80
4.5 理解概念模型 83
4.5.1 理解的概念 83
4.5.2 理解的關(guān)系 85
4.5.3 理解的細(xì)節(jié)內(nèi)容 86
4.6 建立概念模型 87
4.6.1 識別對象及其關(guān)系 87
4.6.2 識別對象屬性 90
4.6.3 識別對象操作 93
4.6.4 概念模型的精化 95
4.7 其他UML靜態(tài)概念模型 96
4.7.1 包圖 97
4.7.2 對象圖 98
4.7.3 組件圖 99
4.7.4 復(fù)合結(jié)構(gòu)圖 101
4.8 本章小結(jié) 102
4.9 習(xí)題 103
第5章 對象行為建模 104
5.1 行為建模的基本概念 104
5.1.1 行為模型及其意義 104
5.1.2 基于UML的行為建模方法 105
5.2 UML狀態(tài)圖表示法 105
5.2.1 狀態(tài)圖的基本元素 105
5.2.2 一般狀態(tài)圖 107
5.2.3 復(fù)雜狀態(tài)圖 108
5.3 UML狀態(tài)圖應(yīng)用 110
5.3.1 狀態(tài)模型的適用范圍及作用 110
5.3.2 建立狀態(tài)模型 111
5.3.3 狀態(tài)模型與對象概念模型的關(guān)系 113
5.4 UML活動圖表示法 114
5.4.1 活動圖的基本元素 114
5.4.2 一般活動圖 115
5.4.3 分層活動圖 117
5.4.4 泳道活動圖 117
5.4.5 對象流活動圖 118
5.5 UML活動圖應(yīng)用 120
5.5.1 活動圖的適用范圍及作用 120
5.5.2 建立活動圖 120
5.5.3 活動圖與對象概念圖的關(guān)系 123
5.5.4 狀態(tài)圖與活動圖的比較 123
5.6 UML交互圖表示法 124
5.6.1 時序圖 124
5.6.2 通信圖 129
5.6.3 交互概覽圖 130
5.7 UML交互圖應(yīng)用 130
5.7.1 交互模型的作用 131
5.7.2 建立交互模型 132
5.7.3 交互模型之間的關(guān)系 136
5.7.4 交互模型與概念模型的關(guān)系 136
5.8 本章小結(jié) 137
5.9 習(xí)題 137
第6章 對象功能建模 138
6.1 功能建模的基本概念 138
6.1.1 功能模型及其意義 138
6.1.2 基于UML的功能需求分析方法 139
6.2 UML用例圖表示法 140
6.2.1 角色 141
6.2.2 用例 143
6.2.3 關(guān)系 144
6.3 UML用例圖建模 147
6.3.1 用例模型的作用 147
6.3.2 理解用例模型 148
6.3.3 建立用例模型 151
6.3.4 描述用例細(xì)節(jié) 159
6.4 本章小結(jié) 163
6.5 習(xí)題 164
第7章 系統(tǒng)建模 166
7.1 系統(tǒng)建模概述 166
7.1.1 系統(tǒng)的概念 166
7.1.2 系統(tǒng)建模 168
7.2 組件建模 169
7.2.1 組件建模概述 169
7.2.2 組件建模元素 170
7.2.3 組件建模示例 173
7.3 復(fù)合結(jié)構(gòu)建模 174
7.3.1 復(fù)合結(jié)構(gòu)建模概述 174
7.3.2 復(fù)合結(jié)構(gòu)建模元素 175
7.4 系統(tǒng)建模語言 176
7.4.1 系統(tǒng)建模語言概述 176
7.4.2 系統(tǒng)結(jié)構(gòu)建模 180
7.4.3 系統(tǒng)行為建模 183
7.4.4 系統(tǒng)需求建模 185
7.5 本章小結(jié) 186
7.6 習(xí)題 187
第8章 軟件建模實(shí)踐 188
8.1 PowerDesigner工具介紹 188
8.1.1 PowerDesigner主界面 188
8.1.2 PowerDesigner支持的模型 189
8.1.3 PowerDesigner新建模型的步驟 191
8.1.4 PowerDesigner的工具選項(xiàng)板 193
8.2 案例介紹 194
8.2.1 項(xiàng)目背景及需求概要 194
8.2.2 需求分析 195
8.2.3 軟件分析建模 199
8.2.4 軟件設(shè)計(jì)建模 210
8.3 本章小結(jié) 215
參考文獻(xiàn) 216