軟件工程概論
-
【作 者】倪天林 王偉娜
【I S B N 】978-7-5170-2105-6
【責任編輯】陳潔
【適用讀者群】高職高專
【出版時間】2014-09-22
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數(shù)】368
【千字數(shù)】507
【印 張】23
【定 價】¥45
【叢 書】高職高專院校“十二五”精品示范系列教材(軟件技術專業(yè)群)
【備注信息】
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關圖書
軟件工程是軟件工程(或軟件技術)專業(yè)的一門核心課程,也是計算機科學與技術、信息管理等相關專業(yè)的主干課程,同時也是軟件設計人員、程序開發(fā)人員、軟件測試人員和軟件項目管理人員等應具備的專門知識。
本書全面系統(tǒng)地講授了軟件工程的理論、方法和技術,書中運用大量的軟件開發(fā)實例,采用圖文并茂的形式來組織、理解知識內(nèi)容。每章給出多種形式的習題練習,以鞏固所學知識,書中安排有大量實訓,以指導學生進行軟件開發(fā)練習。全書共13章,內(nèi)容包括軟件工程概述、可行性研究、需求分析、概要設計、詳細設計、程序編碼、面向對象的分析與設計、統(tǒng)一建模語言UML、統(tǒng)一軟件開發(fā)過程RUP、軟件測試、軟件維護、軟件項目管理及軟件復用技術。
本書可作為高等院校軟件工程課程的教材或教學參考書,也可供有一定實際經(jīng)驗的軟件工作人員和需要開發(fā)應用軟件的廣大計算機用戶閱讀參考。
平臺課+ 模塊課 搭建專業(yè)群課程
實例驅動+ 項目同步 優(yōu)化內(nèi)容 新穎實用
教材+ 案例+ 實戰(zhàn)素材 立體化資源相結合
前 言
軟件工程是研究軟件開發(fā)技術和軟件項目管理的一門工程學科,從工程化的角度來指導軟件開發(fā)、測試和項目管理等活動。軟件工程研究的范圍非常廣泛,包括技術方法、工具和管理等許多方面,軟件工程又是一門迅速發(fā)展的新興學科,新的技術方法和工具不斷涌現(xiàn)。本書是軟件工程的入門教材,著重從實用角度講述軟件工程的基本原理、概念和方法,同時也力求做到知識的全面性和系統(tǒng)性。本書既適用于軟件工程教學,又能對實際的軟件開發(fā)工作提供指導與幫助。
軟件工程是軟件工程(或軟件技術)專業(yè)的一門核心課程,也是計算機科學與技術、信息管理等相關專業(yè)的主干課程,同時也是軟件設計人員、程序開發(fā)人員、軟件測試人員和軟件項目管理人員等應具備的專門知識。
高等職業(yè)教育是以就業(yè)為導向的職業(yè)能力教育,是培養(yǎng)數(shù)以萬計高技能人才的主力軍。高技能人才必須具有較強的技術應用能力,這就要求高職院校要加大對學生實際操作能力的培養(yǎng)。本書旨在借鑒國內(nèi)外優(yōu)秀教材的基礎上,以多年的教學實踐為基礎,采用工學結合的方式,全面系統(tǒng)地組織教學內(nèi)容,既注重知識的系統(tǒng)性和完整性,又突出技術能力的實踐性。全書全面系統(tǒng)地講授了軟件工程的理論、方法和技術,書中運用大量的軟件開發(fā)實例,采用圖文并茂的形式來組織、理解知識內(nèi)容。每章給出多種形式的習題練習,以鞏固所學知識,書中安排有大量實訓,以指導學生進行軟件開發(fā)練習。
全書共13章,內(nèi)容包括軟件工程概述、可行性研究、需求分析、概要設計、詳細設計、程序編碼、面向對象的分析與設計、統(tǒng)一建模語言UML、統(tǒng)一軟件開發(fā)過程RUP、軟件測試、軟件維護、軟件項目管理及軟件復用技術。
本書可作為高等院校軟件工程課程的教材或教學參考書,也可供有一定實際經(jīng)驗的軟件工作人員和需要開發(fā)應用軟件的廣大計算機用戶閱讀參考。
本書由倪天林、王偉娜任主編,負責設計編寫大綱、修改定稿。各章的分工是:第1章、第9章由倪天林編寫,第2章、第3章由王偉娜、張曉紅編寫,第4章、第5章由羅東芳編寫,第6章、第7章由郭峰、孫惠娟編寫,第8章、第13章由祁慧敏編寫,第10章由倪天林、董潔編寫,第11章、12章由王偉娜、張恩賓編寫。
在編寫過程中得到了中國水利水電出版社向輝同志、祝智敏同志的指導與支持,同時得到了責任編輯的認真審閱。此外,本教材還參考和借鑒了許多專家學者的研究成果,在此一并表示謝意。
由于編者水平所限,不足之處在所難免,敬請讀者批評指正,以便在以后修訂時加以改進和更正。
編者
2014年3月
1.1 軟件的概念和特點 1
1.1.1 計算機系統(tǒng)的構成及實現(xiàn) 1
1.1.2 軟件的概念 1
1.1.3 軟件的特點 2
1.1.4 計算機軟件的分類 2
1.2 軟件的發(fā)展和軟件危機 3
1.2.1 計算機軟件的發(fā)展過程 3
1.2.2 軟件危機 3
1.3 軟件工程及其原理 5
1.3.1 軟件工程的概念 5
1.3.2 軟件工程的要素 5
1.3.3 軟件工程的目標 6
1.3.4 軟件工程的原則 6
1.3.5 軟件工程的基本原理 7
1.3.6 軟件開發(fā)方法 8
1.4 軟件生存周期及其模型 9
1.4.1 軟件定義時期 9
1.4.2 軟件開發(fā)時期 10
1.4.3 軟件運行與維護時期 10
1.4.4 軟件生存周期模型 11
習題一 15
第2章 可行性研究 17
2.1 問題定義 17
2.1.1 問題定義的內(nèi)容 17
2.1.2 問題定義的步驟 17
2.1.3 問題定義報告 18
2.2 可行性研究的任務 18
2.2.1 技術可行性 18
2.2.2 經(jīng)濟可行性 19
2.2.3 操作可行性 19
2.2.4 法律可行性 19
2.3 可行性研究的步驟 19
2.3.1 確定項目規(guī)模和目標 19
2.3.2 研究正在運行的系統(tǒng) 20
2.3.3 建立目標系統(tǒng)的高層邏輯模型 20
2.3.4 導出和評價各種方案 20
2.3.5 推薦可行的方案 20
2.3.6 編寫可行性研究報告 20
2.4 系統(tǒng)流程圖 21
2.4.1 系統(tǒng)流程圖的作用 21
2.4.2 系統(tǒng)流程圖的符號 21
2.5 成本—效益分析 22
2.5.1 成本估計 22
2.5.2 兩種成本估算技術 23
2.5.3 度量效益的方法 24
2.6 可行性研究報告 24
2.7 項目開發(fā)計劃 25
實訓 25
習題二 26
第3章 需求分析 28
3.1 需求分析任務 28
3.1.1 需求分析的意義 28
3.1.2 需求分析的步驟 29
3.1.3 需求分析的具體任務 31
3.2 需求分析的基本原則 31
3.3 需求分析過程 32
3.3.1 需求獲取 32
3.3.2 需求建模 33
3.3.3 編寫需求分析文檔 34
3.3.4 需求評審 34
3.4 需求獲取方法 35
3.4.1 需求需要獲取的內(nèi)容 35
3.4.2 需求獲取的方法 36
3.4.3 需求調研的步驟 37
3.5 需求分析模型 39
3.5.1 實體關系圖 39
3.5.2 數(shù)據(jù)流圖 41
3.5.3 狀態(tài)轉換圖 46
3.6 數(shù)據(jù)字典 47
3.6.1 數(shù)據(jù)字典的概念和組成 47
3.6.2 數(shù)據(jù)字典各部分的描述 48
3.6.3 詞條描述 49
3.6.4 數(shù)據(jù)字典中的符號 51
3.7 需求規(guī)格說明書 52
3.7.1 引言 53
3.7.2 任務概述 53
3.7.3 需求規(guī)定 53
3.7.4 運行環(huán)境規(guī)定 54
實訓 54
習題三 56
第4章 概要設計 60
4.1 軟件設計過程 60
4.1.1 軟件設計過程 60
4.1.2 目標系統(tǒng)的運行環(huán)境 62
4.2 概要設計的目標和任務 62
4.2.1 概要設計的目標 62
4.2.2 概要設計的任務 62
4.3 概要設計原則 63
4.3.1 模塊化 63
4.3.2 抽象 65
4.3.3 自頂向下,逐步細化 65
4.3.4 信息隱蔽 66
4.3.5 模塊獨立性 66
4.4 體系結構設計工具 70
4.4.1 結構圖 70
4.4.2 HIPO圖 72
4.5 概要設計的啟發(fā)式規(guī)則 74
4.5.1 提高模塊獨立性 74
4.5.2 模塊大小要適中 74
4.5.3 模塊應具有高扇入和適當?shù)纳瘸?74
4.5.4 軟件結構中的深度和寬度不宜過大 75
4.5.5 模塊的作用域應處于控制域之內(nèi) 75
4.5.6 盡量降低模塊的接口復雜度 77
4.5.7 設計單入口、單出口的模塊 77
4.5.8 模塊功能應該可以預測 77
4.6 面向數(shù)據(jù)流的設計方法 77
4.6.1 SD方法實施的步驟 78
4.6.2 變換分析 79
4.6.3 事務分析 87
4.6.4 軟件模塊結構的改進 88
4.6.5 設計后的處理 90
4.7 概要設計說明書 90
實訓 91
習題四 93
第5章 詳細設計 96
5.1 詳細設計的任務與原則 96
5.1.1 詳細設計的任務 96
5.1.2 詳細設計的原則 97
5.2 結構化程序設計 97
5.2.1 結構化程序設計的概念 97
5.2.2 結構化和非結構化程序設計方法
的比較 97
5.2.3 結構化程序設計的原則 98
5.2.4 結構化程序設計的優(yōu)點 99
5.3 過程設計工具 99
5.3.1 程序流程圖 99
5.3.2 盒圖(N-S圖) 102
5.3.3 PAD圖 102
5.3.4 判定表 103
5.3.5 判定樹 104
5.3.6 PDL語言 104
5.4 用戶界面設計 106
5.4.1 用戶界面設計的“黃金規(guī)則” 106
5.4.2 用戶界面設計過程 106
5.4.3 用戶界面的主要形式 107
5.4.4 界面設計應考慮的因素 109
5.4.5 用戶界面設計分析 109
5.4.6 用戶界面的質量要求 111
5.5 數(shù)據(jù)庫設計 111
5.5.1 數(shù)據(jù)需求分析 112
5.5.2 概念結構設計 112
5.5.3 邏輯結構設計 112
5.5.4 物理結構設計 113
5.5.5 數(shù)據(jù)庫的實施 113
5.6 接口設計 113
5.6.1 軟件接口設計的依據(jù) 113
5.6.2 軟件接口的類型 113
5.6.3 應用程序編程接口 114
5.7 詳細設計說明書 114
實訓 116
習題五 118
第6章 程序編碼 120
6.1 程序編碼的目的和任務 120
6.1.1 程序編碼的目的 120
6.1.2 程序編碼的任務 121
6.2 程序設計語言 121
6.2.1 程序設計語言的分類 121
6.2.2 程序設計語言的選擇 122
6.3 編碼風格 123
6.3.1 源程序文檔化 123
6.3.2 數(shù)據(jù)說明 124
6.3.3 語句結構 125
6.3.4 輸入/輸出方式 126
6.4 程序效率 127
6.4.1 程序效率的準則 127
6.4.2 算法對效率的影響 127
6.4.3 存儲效率 127
6.4.4 輸入/輸出效率 128
6.5 冗余編程及容錯技術 128
6.5.1 冗余編程 128
6.5.2 軟件容錯技術 129
6.6 程序復雜性的度量 132
6.6.1 代碼行度量法 132
6.6.2 McCabe度量法 133
實訓 134
習題六 135
第7章 面向對象的分析與設計 137
7.1 面向對象概述 137
7.1.1 面向對象方法 137
7.1.2 面向對象的基本概念 139
7.1.3 面向對象的特性 145
7.2 面向對象分析與對象模型化技術 146
7.2.1 面向對象的分析過程 146
7.2.2 面向對象的開發(fā)方法 148
7.2.3 對象模型化技術 149
7.2.4 Coad&Yourdon面向對象分析 153
7.3 面向對象設計 158
7.3.1 面向對象設計準則 158
7.3.2 面向對象設計的啟發(fā)式規(guī)則 160
7.3.3 Coad&Yourdon 設計方法 161
7.4 面向對象編程 164
7.4.1 面向對象語言的優(yōu)點 164
7.4.2 面向對象語言的技術特點 165
7.4.3 選擇面向對象語言的現(xiàn)實因素 167
7.4.4 程序設計風格 168
案例:自動取款機(ATM)系統(tǒng)的分析
與設計 169
習題七 178
第8章 統(tǒng)一建模語言UML 180
8.1 UML概述 180
8.1.1 UML的產(chǎn)生和發(fā)展 180
8.1.2 UML的組成 181
8.1.3 UML視圖 182
8.1.4 UML的主要特點 184
8.1.5 UML的應用 185
8.2 通用模型元素 186
8.2.1 模型元素 186
8.2.2 約束 187
8.2.3 依賴關系 187
8.2.4 細化 188
8.2.5 注釋 188
8.3 靜態(tài)建模機制 189
8.3.1 用例圖 189
8.3.2 類圖和對象圖 193
8.3.3 包圖 200
8.3.4 構件圖 201
8.3.5 配置圖 202
8.4 動態(tài)建模機制 203
8.4.1 消息 203
8.4.2 順序圖 204
8.4.3 協(xié)作圖 205
8.4.4 狀態(tài)圖 207
8.4.5 活動圖 210
案例:醫(yī)院電話掛號系統(tǒng) 213
實訓 217
習題八 221
第9章 統(tǒng)一軟件開發(fā)過程RUP 223
9.1 RUP概述 223
9.1.1 RUP的意義 223
9.1.2 RUP的特點 224
9.2 RUP的二維開發(fā)模型 227
9.3 RUP開發(fā)階段及里程碑 228
9.3.1 初始階段 229
9.3.2 細化階段 229
9.3.3 構造階段 230
9.3.4 交付階段 231
9.4 RUP的四個要素 232
9.4.1 人員至關重要 233
9.4.2 項目創(chuàng)造產(chǎn)品 233
9.4.3 產(chǎn)品不僅僅是代碼 234
9.4.4 過程指導項目 234
9.4.5 工具對于過程不可或缺 235
9.5 RUP制品 235
9.5.1 模型 235
9.5.2 其他制品 236
9.6 RUP的核心工作流 236
9.6.1 業(yè)務建模 237
9.6.2 需求 238
9.6.3 分析 240
9.6.4 設計 241
9.6.5 實現(xiàn) 244
9.6.6 測試 246
9.6.7 部署 248
9.6.8 配置和變更管理 249
9.6.9 項目管理 249
9.6.10 環(huán)境 249
9.7 RUP裁剪 251
9.8 RUP的迭代開發(fā)模式 251
習題九 253
第10章 軟件測試 255
10.1 軟件測試基礎 255
10.1.1 軟件測試的意義 255
10.1.2 軟件測試的目標 256
10.1.3 軟件測試的原則 256
10.1.4 軟件測試的信息流 257
10.1.5 軟件測試的對象 258
10.1.6 軟件測試與軟件開發(fā)階段的關系 258
10.1.7 軟件測試有關概念 259
10.2 軟件測試方法 260
10.2.1 靜態(tài)測試和動態(tài)測試 260
10.2.2 白盒測試和黑盒測試 260
10.2.3 測試用例的設計 262
10.3 軟件測試策略 281
10.4 軟件測試過程 281
10.4.1 單元測試 282
10.4.2 集成測試 283
10.4.3 確認測試 285
10.4.4 系統(tǒng)測試 287
10.4.5 調試 288
10.5 面向對象的測試 290
10.5.1 面向對象測試模型 291
10.5.2 面向對象分析的測試 291
10.5.3 面向對象設計的測試 293
10.5.4 面向對象編程的測試 294
10.5.5 面向對象的單元測試 294
10.5.6 面向對象的集成測試 295
10.5.7 面向對象的系統(tǒng)測試 295
10.6 測試計劃和分析報告 295
10.6.1 軟件測試計劃 296
10.6.2 測試分析報告 298
實訓 300
習題十 302
第11章 軟件維護 305
11.1 軟件維護概述 305
11.1.1 軟件維護的定義 305
11.1.2 軟件維護的類型 306
11.1.3 影響軟件維護工作量的因素 307
11.1.4 造成軟件維護困難的因素 308
11.1.5 結構化維護與非結構化維護 308
11.2 軟件維護策略 309
11.2.1 改正性維護 309
11.2.2 適應性維護 309
11.2.3 完善性維護 310
11.3 軟件維護成本 310
11.4 軟件維護的實施 310
11.4.1 軟件維護機構 310
11.4.2 軟件維護報告 311
11.4.3 軟件維護工作流程 312
11.4.4 軟件維護步驟 312
11.4.5 編寫維護檔案記錄 313
11.4.6 維護評價 314
11.5 軟件的可維護性 314
11.5.1 影響軟件可維護性的因素 314
11.5.2 軟件可維護性的度量 315
11.5.3 提高軟件可維護性的方法 318
11.6 軟件維護的副作用 321
11.6.1 軟件維護副作用的類型 321
11.6.2 控制軟件維護副作用的策略 322
習題十一 322
第12章 軟件項目管理 324
12.1 軟件項目管理概述 324
12.1.1 軟件項目管理的意義 324
12.1.2 軟件項目的特點 325
12.1.3 軟件項目管理的職能 325
12.2 軟件項目計劃 325
12.2.1 軟件項目計劃的目標和風險分析 325
12.2.2 軟件項目計劃的類型 325
12.2.3 項目實施計劃中任務的劃分 326
12.2.4 項目的進度安排 326
12.3 軟件項目組織 328
12.3.1 組織原則 329
12.3.2 組織結構的模式 329
12.3.3 程序設計小組的組織形式 330
12.4 軟件項目的人員配備 331
12.4.1 項目開發(fā)各階段所需人員 332
12.4.2 配備人員的原則 332
12.4.3 對項目經(jīng)理的要求 333
12.4.4 評價軟件開發(fā)人員的標準 333
12.5 軟件配置管理 333
12.5.1 軟件配置管理的概念 333
12.5.2 軟件配置管理的基本目標 334
12.5.3 基線 334
12.5.4 軟件配置項 334
12.5.5 版本控制 335
12.5.6 變更控制 336
12.5.7 軟件配置管理應注意的問題 337
12.6 軟件質量管理 337
12.6.1 軟件質量的含義 337
12.6.2 影響軟件質量的因素 337
12.6.3 軟件質量保證措施 339
12.7 軟件能力成熟度模型 340
12.7.1 軟件過程的度量 340
12.7.2 關鍵過程域 340
實訓 342
習題十二 344
第13章 軟件復用技術 346
13.1 軟件復用概述 346
13.1.1 軟件復用的意義 346
13.1.2 軟件復用的層次 347
13.1.3 軟件成分的重用級別 348
13.2 可復用的軟件成分 348
13.3 軟件復用過程 349
13.4 軟件復用環(huán)境 350
13.5 面向對象的復用技術 351
13.5.1 類構件的復用 351
13.5.2 類庫 352
13.5.3 產(chǎn)生所需類的次序 353
13.5.4 既存類的復用方法 353
習題十三 354
參考文獻 356
- 輸水管線工程風險管理 [張勇 黨亥生 著]
- 民用航空飛機標準線路施工 [主編 王志敏 陳明]
- 不息的水脈—大運河講談錄 [趙珩 著]
- 實用運籌學 [主編 邢育紅 于晉臣]
- 三峽梯級電站水資源決策支持系統(tǒng)研究與開發(fā) [姚華明 潘紅忠 湯正]
- 海南黎族民俗文化鑒賞 [龐國華 著]
- 石墨烯在太赫茲及中紅外頻段電磁器件設計中的應用 [李艷秀 莊華偉 著]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 辦公自動化高級應用 [陳萍 朱曉玉]
- 信息處理技術員考試32小時通關 [薛大龍]
- 電子產(chǎn)品設計案例教程(微課版)—基于嘉立創(chuàng)EDA(專業(yè)版) [王靜 莫志宏 陳學昌 丁紅]
- C程序設計實踐教程 [劉衛(wèi)國]
- C程序設計(慕課版) [劉衛(wèi)國]
- Web技術開發(fā)教程(基于.NET開源MVC框架) [王合闖 韓紅玲 王青正 陳海蕊]
- 商務英語翻譯教程(筆譯)(第四版) [主編 王軍平]
- 智慧零售技術與應用 [洪旭 著]
- 建設工程法規(guī)實務 [主編 余瀅]
- 商務秘書理論與實務(第三版) [主編 張同欽]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數(shù)學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 信息系統(tǒng)項目管理師章節(jié)習題與考點特訓(第二版) [主編 薛大龍]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網(wǎng)絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- HCIA-Datacom認證題庫分類精講 [主 編 韓立剛]
- SwiftUI完全開發(fā) [李智威 著]
- 網(wǎng)絡規(guī)劃設計師備考一本通 [夏杰 編著]