圍繞一個實際軟件項目案例,基于軟件開發(fā)生命周期全過程闡述軟件分析、設計、實現(xiàn)測試及維護的最新實用技術
更多科學出版社服務,請掃碼獲取。
1997-2001 中南大學 計算機科學與技術 學士
2001-2004 中南大學 模式識別與智能系統(tǒng) 碩士
2008-2013 中南大學 計算機科學與技術 博士
2004-至今 河南大學 計算機學院 教師
目錄
第1章 軟件工程概述1
1.1 軟件概述1
1.1.1 軟件的定義1
1.1.2 軟件的特點1
1.1.3 軟件的分類2
1.2 軟件危機4
1.2.1 軟件危機的定義4
1.2.2 產(chǎn)生原因及解決途徑5
1.3 軟件工程6
1.3.1 軟件工程的定義6
1.3.2 軟件工程的研究內(nèi)容7
1.3.3 軟件工程的目標和原則8
1.3.4 軟件工程的基本原理9
1.4 軟件開發(fā)方法10
1.4.1 結構化方法10
1.4.2 面向數(shù)據(jù)結構方法10
1.4.3 面向?qū)ο蠓椒?1
1.5 CASE工具11
1.6 軟件工程師職業(yè)素養(yǎng)和道德規(guī)范13
1.6.1 軟件工程師職業(yè)素養(yǎng)13
1.6.2 軟件工程師道德規(guī)范14
1.7 小結15
習題115
第2章 軟件生命周期和過程模型16
2.1 軟件生命周期16
2.1.1 軟件定義16
2.1.2 軟件開發(fā)17
2.1.3 軟件運行維護18
2.2 軟件過程模型18
2.2.1 瀑布模型18
2.2.2 原型模型20
2.2.3 螺旋模型21
2.2.4 增量模型22
2.2.5 噴泉模型23
2.2.6 統(tǒng)一軟件開發(fā)過程模型24
2.2.7 敏捷過程模型25
2.3 小結27
習題227
第3章 軟件定義28
3.1 問題定義28
3.2 可行性研究28
3.2.1 可行性研究的任務29
3.2.2 可行性研究的步驟32
3.3 制訂軟件計劃34
3.3.1 確定軟件計劃34
3.3.2 復審軟件計劃36
3.4 小結37
習題337
第4章 需求工程38
4.1 需求的概念與內(nèi)容38
4.1.1 需求的問題38
4.1.2 需求的定義和分類39
4.1.3 需求的層次40
4.2 需求工程概述42
4.2.1 需求工程的概念42
4.2.2 需求工程的方法42
4.3 需求開發(fā)43
4.3.1 需求獲取技術43
4.3.2 需求獲取中的注意事項44
4.3.3 需求分析與建模44
4.3.4 編寫需求規(guī)格說明書45
4.3.5 評審需求規(guī)格說明書45
習題447
第5章 結構化分析方法48
5.1 結構法分析方法概述48
5.2 數(shù)據(jù)流圖49
5.2.1 數(shù)據(jù)流圖的結構49
5.2.2 數(shù)據(jù)流與加工之間的關系51
5.2.3 數(shù)據(jù)流圖的分層51
5.2.4 數(shù)據(jù)流圖的繪制51
5.3 數(shù)據(jù)字典52
5.3.1 數(shù)據(jù)字典的作用和內(nèi)容52
5.3.2 數(shù)據(jù)字典編寫的基本要求52
5.3.3 數(shù)據(jù)字典的定義符號和編寫格式53
5.4 加工邏輯說明54
5.4.1 結構化語言54
5.4.2 判定表55
5.4.3 判定樹56
5.5 案例分析:商店供銷管理系統(tǒng)需求分析56
5.5.1 需求描述57
5.5.2 需求分析57
5.6 小結61
習題561
第6章 面向?qū)ο蠓椒ɑA63
6.1 面向?qū)ο蠡靖拍?3
6.2 面向?qū)ο蠓椒ǜ攀?3
6.2.1 面向?qū)ο蠓椒ㄌ攸c64
6.2.2 面向?qū)ο蟮能浖_發(fā)過程64
6.2.3 典型的面向?qū)ο蠓椒?5
6.2.4 面向?qū)ο蠓椒ǖ哪P?7
6.3 統(tǒng)一建模語言68
6.3.1 UML概述68
6.3.2 UML的主要構成69
6.4 小結78
習題678
第7章 面向?qū)ο蠓治?9
7.1 面向?qū)ο蠓治鲞^程79
7.2 系統(tǒng)用例模型79
7.2.1 建立系統(tǒng)用例模型的過程79
7.2.2 案例:基于UML的客戶服務記賬系統(tǒng)用例模型過程81
7.3 系統(tǒng)對象模型85
7.3.1 分析類的概念85
7.3.2 識別分析類86
7.3.3 識別實體類87
7.3.4 識別邊界類90
7.3.5 識別控制類91
7.3.6 交互原則92
7.4 描述行為93
7.4.1 消息與責任93
7.4.2 登錄用例的順序圖93
7.4.3 其他用例的順序圖95
7.5 描述類97
7.6 小結99
習題799
第8章 軟件設計基礎100
8.1 軟件設計的目標和任務100
8.1.1 軟件設計的目標100
8.1.2 軟件設計的任務100
8.2 軟件設計的概念與原則101
8.2.1 模塊化與模塊獨立性101
8.2.2 抽象與逐步求精106
8.2.3 信息隱藏107
8.2.4 模塊設計的一般準則107
8.3 軟件體系結構風格108
8.3.1 管道-過濾器體系結構108
8.3.2 事件驅(qū)動體系結構109
8.3.3 分層體系結構109
8.3.4 數(shù)據(jù)共享體系結構110
8.3.5 MVC體系結構110
8.3.6 三層C/S體系結構111
8.4 用戶界面設計112
8.4.1 用戶界面設計原則112
8.4.2 用戶界面設計過程113
8.5 設計復審117
8.6 小結118
習題8118
第9章 結構化設計方法119
9.1 概要設計119
9.1.1 基本概念119
9.1.2 變換分析121
9.1.3 事務分析124
9.1.4 變換-事務混合型分析125
9.1.5 啟發(fā)式規(guī)則126
9.1.6 設計優(yōu)化129
9.2 詳細設計129
9.2.1 程序流程圖129
9.2.2 盒圖130
9.2.3 問題分析圖131
9.2.4 過程設計語言131
9.2.5 HIPO圖132
9.3 案例:商店供銷管理系統(tǒng)的設計132
9.3.1 模塊結構設計133
9.3.2 系統(tǒng)IPO圖135
9.4 其他設計工作136
9.5 小結136
習題9137
第10章 面向?qū)ο蟮脑O計139
10.1 OOD概述139
10.2 面向?qū)ο笤O計原則139
10.2.1 單一職責原則140
10.2.2 開放-封閉原則140
10.2.3 里氏替換原則141
10.2.4 接口隔離原則142
10.2.5 依賴倒置原則142
10.2.6 迪米特法則143
10.2.7 合成聚合復用原則144
10.3 系統(tǒng)體系結構設計145
10.3.1 軟件系統(tǒng)體系結構設計145
10.3.2 硬件系統(tǒng)體系結構設計146
10.4 系統(tǒng)設計147
10.4.1 識別設計元素147
10.4.2 數(shù)據(jù)存儲策略148
10.5 詳細設計152
10.5.1 方法和屬性建模153
10.5.2 狀態(tài)建模154
10.5.3 詳細類圖154
10.6 設計優(yōu)化155
10.6.1 確定優(yōu)先級155
10.6.2 提高效率的技術155
10.6.3 調(diào)整繼承關系157
10.7 設計模式158
10.7.1 設計模式的作用和研究意義159
10.7.2 經(jīng)典設計模式159
10.7.3 設計模式的使用策略165
10.8 小結166
習題10167
第11章 軟件實現(xiàn)168
11.1 軟件實現(xiàn)的目標和任務168
11.2 軟件程序編碼規(guī)范168
11.2.1 頭文件規(guī)范168
11.2.2 注釋規(guī)范169
11.2.3 命名規(guī)范171
11.2.4 排版規(guī)范172
11.2.5 目錄結構規(guī)范173
11.3 程序效率173
11.3.1 運行速度的提高174
11.3.2 存儲空間的優(yōu)化174
11.3.3 輸入輸出效率的提高174
11.4 軟件代碼審查175
11.5 小結177
習題11177
第12章 軟件測試178
12.1 軟件測試基礎178
12.1.1 失敗的軟件案例178
12.1.2 軟件缺陷概念179
12.1.3 軟件測試概念180
12.1.4 軟件測試原則181
12.2 軟件測試過程模型182
12.2.1 V模型182
12.2.2 W模型183
12.2.3 H模型183
12.2.4 X模型184
12.3 軟件測試技術184
12.3.1 靜態(tài)黑盒測試185
12.3.2 動態(tài)黑盒測試187
12.3.3 靜態(tài)白盒測試190
12.3.4 動態(tài)白盒測試192
12.3.5 軟件測試技術的選擇策略198
12.4 軟件測試策略199
12.4.1 單元測試200
12.4.2 集成測試202
12.4.3 系統(tǒng)測試205
12.4.4 確認測試207
12.5 軟件自動化測試208
12.5.1 自動化測試的概念及優(yōu)缺點208
12.5.2 自動化測試工具209
12.6 小結210
習題12211
第13章 軟件維護213
13.1 軟件維護概述213
13.1.1 軟件維護的產(chǎn)生及其目的213
13.1.2 軟件維護的分類214
13.1.3 軟件維護的成本214
13.2 軟件維護的特征215
13.2.1 結構化維護和非結構化維護215
13.2.2 軟件維護可能存在的問題216
13.2.3 影響軟件維護工作量的因素217
13.3 軟件維護實施218
13.3.1 軟件維護組織218
13.3.2 軟件維護申請219
13.3.3 軟件維護過程220
13.3.4 軟件維護記錄221
13.3.5 軟件維護評價221
13.4 逆向工程和再工程222
13.4.1 逆向工程222
13.4.2 再工程223
習題13225
13.5 小結224
第14章 軟件項目管理226
14.1 軟件項目管理概述226
14.2 人員的組織與管理226
14.2.1 軟件項目組227
14.2.2 人員的配置和管理228
14.3 成本的估計與控制230
14.3.1 軟件開發(fā)項目成本估算方法230
14.3.2 專家判斷法231
14.3.3 成本估算模型231
14.4 進度計劃233
14.4.1 甘特圖法233
14.4.2 工程網(wǎng)絡233
14.4.3 項目活動工期估算的方法236
14.4.4 關鍵路徑法238
14.5 軟件配置管理239
14.5.1 軟件配置239
14.5.2 軟件配置管理過程240
14.6 小結242
習題14243
參考文獻244