注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學軟件工程

軟件工程

軟件工程

定 價:¥48.00

作 者: 李愛萍,崔冬華,李東生 編
出版社: 人民郵電出版社
叢編項: 工業(yè)和信息化普通高等教育"十二五"規(guī)劃教材
標 簽: 工學 教材 研究生/本科/專科教材

ISBN: 9787115340795 出版時間: 2014-03-01 包裝: 平裝
開本: 16開 頁數(shù): 354 字數(shù):  

內(nèi)容簡介

  本書系統(tǒng)地介紹了軟件工程的概念、原理、方法和案例,比較全面地反映了軟件工程技術的全貌。全書共3篇,分16章,分別以“面向過程的軟件工程”、“面向?qū)ο蟮能浖こ獭焙汀败浖こ虒嶒灐睘橹骶€闡述軟件工程原理和方法。本書第2篇還介紹了軟件體系結構、設計模式、軟件工程新技術等內(nèi)容,體現(xiàn)了軟件工程的最新理論和技術。本書的主要特色是強調(diào)以面向過程或面向?qū)ο蟮乃枷胫笇к浖_發(fā)過程,并配以實例分析和說明,便于教學和應用。本書適合作為高等院校計算機、軟件工程專業(yè)或信息類相關專業(yè)本科生或研究生軟件工程課程的教材,也可作為軟件開發(fā)技術人員的參考書。

作者簡介

暫缺《軟件工程》作者簡介

圖書目錄

目 錄
第1篇 面向過程的軟件工程
第1章 概述 2
1.1 軟件和軟件危機 2
1.1.1 軟件的定義、特點及分類 2
1.1.2 軟件危機的定義及表現(xiàn)形式 3
1.1.3 軟件危機的產(chǎn)生原因及解決途徑 4
1.2 軟件工程 5
1.2.1 軟件工程的定義及目標 5
1.2.2 軟件工程的研究內(nèi)容和基本原理 6
1.2.3 軟件工程的發(fā)展史 7
1.3 軟件過程和軟件的生存周期 8
1.3.1 軟件過程 8
1.3.2 軟件生存周期 8
1.4 軟件開發(fā)模型 10
1.4.1 瀑布模型 10
1.4.2 快速原型模型 11
1.4.3 增量模型 12
1.4.4 螺旋模型 13
1.4.5 噴泉模型 14
1.4.6 基于構件的開發(fā)模型 14
1.4.7 統(tǒng)一過程(RUP)模型 15
1.4.8 基于形式化的開發(fā)模型 15
1.5 傳統(tǒng)的軟件工程和面向?qū)ο蟮能浖こ獭?5
1.5.1 傳統(tǒng)軟件工程方法 15
1.5.2 面向?qū)ο筌浖こ谭椒ā?5
1.5.3 傳統(tǒng)軟件工程和面向?qū)ο筌浖こ痰姆治龇椒▽Ρ取?6
本章小結 16
習題1 16
第2章 可行性研究 17
2.1 可行性研究的目的和任務 17
2.2 可行性研究的步驟 18
2.3 系統(tǒng)流程圖 19
2.3.1 系統(tǒng)流程圖的符號 19
2.3.2 系統(tǒng)流程圖示例 20
2.4 成本-效益分析 20
2.4.1 貨幣的時間價值 20
2.4.2 投資回收期 21
2.4.3 純收入 21
2.5 可行性研究報告的主要內(nèi)容 21
本章小結 22
習題2 22
第3章 軟件需求分析 23
3.1 需求分析的任務和步驟 23
3.1.1 需求分析的任務 23
3.1.2 需求分析的步驟 24
3.2 需求獲取的常用方法 25
3.2.1 需求獲取的常用方法 25
3.2.2 快速建立軟件原型模型來獲取需求 26
3.3 需求分析的常用方法 27
3.3.1 功能分解方法 27
3.3.2 結構化分析方法 27
3.3.3 信息建模方法 27
3.3.4 面向?qū)ο蠓椒ā?8
3.4 結構化分析方法 28
3.4.1 自頂向下逐層分解的分析策略 28
3.4.2 結構化分析描述工具 29
3.4.3 數(shù)據(jù)流圖 29
3.4.4 數(shù)據(jù)字典 32
3.4.5 加工邏輯的描述 34
3.5 需求分析圖形工具 36
3.5.1 層次方框圖 36
3.5.2 維納圖 36
3.5.3 IPO圖 37
3.6 SA方法的應用 37
3.7 數(shù)據(jù)庫內(nèi)容的需求分析和描述 42
3.7.1 數(shù)據(jù)庫內(nèi)容的需求分析 42
3.7.2 數(shù)據(jù)庫內(nèi)容的需求分析描述 44
3.8 需求規(guī)格說明書 45
本章小結 46
習題3 46
第4章 軟件總體設計 48
4.1 軟件總體設計的目標和任務 48
4.2 軟件結構設計準則 48
4.2.1 軟件體系結構設計準則 49
4.2.2 軟件模塊設計準則 49
4.3 軟件設計的概念和原理 50
4.3.1 模塊和模塊化 50
4.3.2 抽象 51
4.3.3 信息隱蔽和局部化 51
4.3.4 模塊獨立性及其度量 52
4.4 數(shù)據(jù)庫設計 54
4.4.1 數(shù)據(jù)庫系統(tǒng)的三級模式概念 54
4.4.2 數(shù)據(jù)庫邏輯設計原則 55
4.4.3 關系數(shù)據(jù)庫規(guī)范化 56
4.5 軟件結構設計的圖形工具 58
4.5.1 軟件結構圖 58
4.5.2 層次圖 58
4.5.3 HIPO圖 59
4.6 結構化設計方法 59
4.6.1 數(shù)據(jù)流圖及其類型 59
4.6.2 結構化設計方法的步驟 60
4.6.3 變換型數(shù)據(jù)流圖的分析設計 61
4.6.4 事務型數(shù)據(jù)流圖的分析設計 62
4.6.5 綜合分析設計 64
4.7 總體設計說明書 64
本章小結 65
習題4 66
第5章 軟件詳細設計 67
5.1 詳細設計的目的與任務 67
5.2 結構化程序設計 67
5.3 詳細設計工具 68
5.3.1 程序流程圖 68
5.3.2 盒圖(N-S圖) 69
5.3.3 問題分析圖(PAD圖) 69
5.3.4 過程設計語言(PDL) 70
5.4 人機界面設計 73
5.4.1 人機界面設計問題 73
5.4.2 人機界面設計原則 75
5.4.3 人機界面設計過程 75
5.5 詳細設計說明書 76
本章小結 76
習題5 77
第6章 軟件編碼 78
6.1 程序設計語言的分類 78
6.1.1 基礎語言 78
6.1.2 結構化語言 79
6.1.3 面向?qū)ο笳Z言 80
6.2 程序設計語言的選擇 81
6.3 程序設計風格 82
6.3.1 程序內(nèi)部文檔 82
6.3.2 數(shù)據(jù)說明 83
6.3.3 語句構造 83
6.3.4 輸入/輸出 83
6.3.5 效率 83
本章小結 85
習題6 85
第7章 軟件測試 86
7.1 軟件測試的目標 86
7.2 軟件測試的原則 86
7.3 軟件測試方法及分類 87
7.3.1 靜態(tài)測試與動態(tài)測試 87
7.3.2 黑盒測試與白盒測試 88
7.4 軟件測試用例的設計 89
7.4.1 白盒技術 89
7.4.2 黑盒技術 93
7.5 軟件測試過程 97
7.5.1 單元測試 98
7.5.2 集成測試 99
7.5.3 確認測試 101
7.5.4 系統(tǒng)測試 102
7.5.5 α測試和β測試 103
7.6 調(diào)試 103
7.6.1 調(diào)試的目的和任務 103
7.6.2 常用調(diào)試技術 103
7.7 軟件測試階段終止的條件 104
本章小結 105
習題7 105
第8章 軟件維護 107
8.1 軟件維護概述 107
8.1.1 軟件維護的定義 107
8.1.2 軟件維護的分類 107
8.1.3 軟件維護的特點 109
8.2 軟件維護的過程 109
8.2.1 結構化維護與非結構化維護 109
8.2.2 維護組織 110
8.2.3 維護工作的流程 111
8.2.4 維護工作的組織管理 113
8.3 軟件可維護性 113
8.3.1 軟件可維護性的定義 114
8.3.2 軟件可維護性的度量 115
8.3.3 提高軟件可維護性的方法 115
8.4 軟件維護中存在的問題 117
8.4.1 軟件維護困難的表現(xiàn) 117
8.4.2 軟件維護的副作用 118
8.4.3 軟件維護的代價 118
8.5 再工程和逆向工程 119
8.5.1 再工程與逆向工程的概念 119
8.5.2 為什么要實施軟件再工程 120
8.5.3 軟件再工程技術 121
本章小結 122
習題8 123
第2篇 面向?qū)ο蟮能浖こ?br />第9章 面向?qū)ο蠓椒▽W 125
9.1 面向?qū)ο蠓椒ǜ攀觥?25
9.1.1 面向?qū)ο蠓椒▽W的發(fā)展 125
9.1.2 面向?qū)ο蠓椒▽W的優(yōu)點和不足 126
9.2 面向?qū)ο蟮能浖こ獭?27
9.2.1 面向?qū)ο蠡靖拍睢?28
9.2.2 對象、類及類之間關系的分析 129
9.2.3 典型的面向?qū)ο箝_發(fā)方法 133
9.3 統(tǒng)一建模語言UML 138
9.3.1 UML的發(fā)展 138
9.3.2 UML的定義及主要內(nèi)容 139
9.3.3 UML的特點和用途 141
9.3.4 UML的模型視圖簡介 142
9.3.5 UML常用軟件開發(fā)工具 144
9.4 統(tǒng)一軟件開發(fā)過程RUP概述 148
9.4.1 RUP的歷史 149
9.4.2 RUP的特色 149
9.4.3 RUP軟件開發(fā)的生存周期 150
9.4.4 RUP過程的建?!?52
本章小結 153
習題9 153
第10章 面向?qū)ο蟮姆治觥?55
10.1 面向?qū)ο蟮姆治鲞^程 155
10.1.1 用例模型 156
10.1.2 對象模型 156
10.1.3 動態(tài)模型 156
10.1.4 物理(實現(xiàn))模型 157
10.1.5 4種模型之間的關系 157
10.2 建立用例模型 158
10.2.1 需求分析與用例建模 158
10.2.2 確定系統(tǒng)范圍和系統(tǒng)邊界 158
10.2.3 確定參與者 158
10.2.4 確定用例 159
10.2.5 確定用例之間的關系 161
10.3 建立對象模型 162
10.3.1 確定類和對象 163
10.3.2 確定關聯(lián) 163
10.3.3 確定屬性 164
10.3.4 建立對象類圖 164
10.3.5 劃分主題 165
10.3.6 優(yōu)化對象模型 165
10.4 建立動態(tài)行為模型 166
10.4.1 建立順序圖 166
10.4.2 建立通信圖 167
10.4.3 建立狀態(tài)圖 168
10.4.4 建立活動圖 171
10.5 建立物理實現(xiàn)模型 175
10.5.1 建立構件圖 175
10.5.2 建立部署圖 178
10.6 面向?qū)ο筌浖_發(fā)過程的案例分析 181
10.6.1 系統(tǒng)需求 181
10.6.2 系統(tǒng)用例模型 182
10.6.3 系統(tǒng)對象模型 182
10.6.4 系統(tǒng)動態(tài)行為模型 183
10.6.5 系統(tǒng)物理實現(xiàn)模型 185
本章小結 186
習題10 186
第11章 面向?qū)ο蟮脑O計與實現(xiàn) 188
11.1 面向?qū)ο蟮脑O計準則和啟發(fā)式規(guī)則 188
11.1.1 面向?qū)ο笤O計準則 188
11.1.2 啟發(fā)式規(guī)則 189
11.2 系統(tǒng)設計 190
11.2.1 問題域子系統(tǒng)設計 191
11.2.2 人機交互子系統(tǒng)設計 193
11.2.3 任務管理子系統(tǒng)設計 194
11.2.4 數(shù)據(jù)管理子系統(tǒng)設計 195
11.3 服務、關聯(lián)與聚合關系設計 197
11.3.1 服務設計 197
11.3.2 關聯(lián)設計 198
11.3.3 聚合關系設計 202
11.4 面向?qū)ο笤O計優(yōu)化 203
11.5 面向?qū)ο笙到y(tǒng)的實現(xiàn) 205
11.5.1 面向?qū)ο蟪绦蛟O計語言的選擇 205
11.5.2 面向?qū)ο蟪绦蛟O計風格 205
本章小結 206
習題11 206
第12章 軟件開發(fā)工具StarUML及其應用 208
12.1 軟件開發(fā)工具StarUML概述 209
12.1.1 StarUML的安裝及使用 209
12.1.2 StarUML的主要功能 209
12.2 StarUML環(huán)境下的UML圖形建模 211
12.2.1 StarUML的用例圖、類圖和包圖 213
12.2.2 StarUML的交互圖和狀態(tài)機圖 217
12.2.3 StarUML的構件圖與部署圖 222
12.2.4 StarUML的正向工程和逆向工程 223
12.3 一個簡易教學管理系統(tǒng)的分析和設計 225
12.3.1 系統(tǒng)需求描述及分析 226
12.3.2 系統(tǒng)問題領域分析 226
12.3.3 靜態(tài)結構模型的建立 230
12.3.4 動態(tài)行為模型的建立 232
12.3.5 系統(tǒng)物理模型的建立 236
12.3.6 代碼框架自動生成的過程 237
本章小結 238
習題12 238
第13章 軟件體系結構 240
13.1 軟件體系結構概述 240
13.2 經(jīng)典的軟件體系結構風格 241
13.2.1 管道-過濾器(流程處理)體系結構 241
13.2.2 分層體系結構 242
13.2.3 客戶機/服務器體系結構 243
13.2.4 瀏覽器/服務器體系結構(B/S) 245
13.3 現(xiàn)代的軟件體系結構風格 246
13.3.1 公共對象請求代理體系結構 246
13.3.2 基于層次消息總線的體系結構風格 248
13.3.3 異構結構風格 248
本章小結 251
習題13 251
第14章 設計模式 252
14.1 設計模式概述 252
14.1.1 設計模式的出現(xiàn)和發(fā)展 252
14.1.2 設計模式和軟件體系結構的關系 253
14.1.3 設計模式的優(yōu)點和分類 253
14.2 GRASP設計模式及其應用 254
14.2.1 GRASP設計模式概念及其分類 254
14.2.2 幾種典型的GRASP設計模式應用簡介 256
14.3 GoF設計模式及其應用 258
14.3.1 GoF設計模式的組成及其分類 260
14.3.2 創(chuàng)建型GoF設計模式應用實例 261
14.3.3 結構型GoF設計模式應用實例 265
14.3.4 行為型GoF設計模式應用實例 268
本章小結 269
習題14 270
第15章 軟件工程新技術 271
15.1 軟件復用技術 271
15.1.1 軟件復用概念及分類 271
15.1.2 軟件復用的關鍵技術和復用粒度 272
15.2 基于構件的軟件工程技術 272
15.2.1 中間件技術 273
15.2.2 構件與構件化 275
15.2.3 構件模型及描述語言 276
15.2.4 構件的檢索與組裝 278
15.2.5 基于構件的軟件工程方法 281
15.2.6 SOA與SaaS 283
15.3 軟件過程與標準化 285
15.3.1 軟件過程及其改進 285
15.3.2 ISO 9000標準 286
15.3.3 軟件能力成熟度模型(CMM) 287
15.3.4 PSP、TSP和CMMI 289
15.4 敏捷軟件開發(fā)過程 291
15.4.1 敏捷及敏捷過程相關概念 292
15.4.2 典型的敏捷過程模型 294
15.5 Web軟件工程 298
15.5.1 Web軟件工程概述 298
15.5.2 Web軟件的需求分析 300
15.5.3 Web軟件的設計 302
15.5.4 Web軟件的測試 305
15.6 軟件產(chǎn)品線技術 306
15.6.1 軟件產(chǎn)品線基本概念 307
15.6.2 軟件產(chǎn)品線方法 309
15.6.3 北大青鳥工程 310
本章小結 311
習題15 312
第3篇 軟件工程實驗
第16章 軟件工程實驗 314
16.1 面向過程的軟件工程實驗 315
實驗1 圖書管理系統(tǒng)的可行性分析 316
實驗2 圖書管理系統(tǒng)的項目開發(fā)計劃 316
實驗3 圖書管理系統(tǒng)的需求分析 317
實驗4 圖書管理系統(tǒng)的總體設計 317
實驗5 圖書管理系統(tǒng)的詳細設計及編碼實現(xiàn) 318
實驗6 圖書管理系統(tǒng)的測試 319
實驗7 圖書管理系統(tǒng)用戶手冊的撰寫 319
實驗8 圖書管理系統(tǒng)項目開發(fā)總結報告的撰寫 320
16.2 面向?qū)ο蟮能浖こ虒嶒灐?20
實驗9 瀏覽器系統(tǒng)的可行性分析 320
實驗10 瀏覽器系統(tǒng)的項目開發(fā)計劃 321
實驗11 瀏覽器系統(tǒng)的需求分析 322
實驗12 瀏覽器系統(tǒng)的體系結構設計 327
實驗13 采用面向?qū)ο蠓椒ㄟM行瀏覽器系統(tǒng)的詳細設計 329
實驗14 利用StarUML正向工程功能完成代碼框架的自動生成實驗 331
實驗15 利用StarUML逆向工程功能完成修改設計的實驗 332
實驗16 瀏覽器系統(tǒng)的測試 332
實驗17 瀏覽器系統(tǒng)用戶手冊的撰寫 334
實驗18 瀏覽器系統(tǒng)項目開發(fā)總結報告的撰寫 334
附錄A UML圖總結 335
A.1 活動圖 335
A.2 類圖 336
A.3 通信圖 336
A.4 構件圖 337
A.5 組合結構圖 337
A.6 部署圖 337
A.7 對象圖 338
A.8 包圖 338
A.9 參數(shù)化通信圖 338
A.10 順序圖 338
A.11 狀態(tài)圖 338
A.12 計時圖 339
A.13 用例圖 339
附錄B UML中定義的常用版型(stereotype)、約束(constraint)和標記(tag) 341
附錄C GOF給出的軟件設計模式 344
C.1 創(chuàng)建型模式(Creational) 344
C.2 結構型(Structural)模式 346
C.3 行為(Behavioral)模式 349
參考文獻 354

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號