圍繞一個實際軟件項目案例,基于軟件開發(fā)生命周期全過程闡述軟件分析、設(shè)計、實現(xiàn)測試及維護的最新實用技術(shù)
更多科學(xué)出版社服務(wù),請掃碼獲取。
1997-2001 中南大學(xué) 計算機科學(xué)與技術(shù) 學(xué)士
2001-2004 中南大學(xué) 模式識別與智能系統(tǒng) 碩士
2008-2013 中南大學(xué) 計算機科學(xué)與技術(shù) 博士
2004-至今 河南大學(xué) 計算機學(xué)院 教師
目錄
第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 軟件工程的目標(biāo)和原則8
1.3.4 軟件工程的基本原理9
1.4 軟件開發(fā)方法10
1.4.1 結(jié)構(gòu)化方法10
1.4.2 面向數(shù)據(jù)結(jié)構(gòu)方法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 小結(jié)15
習(xí)題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 小結(jié)27
習(xí)題227
第3章 軟件定義28
3.1 問題定義28
3.2 可行性研究28
3.2.1 可行性研究的任務(wù)29
3.2.2 可行性研究的步驟32
3.3 制訂軟件計劃34
3.3.1 確定軟件計劃34
3.3.2 復(fù)審軟件計劃36
3.4 小結(jié)37
習(xí)題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 需求獲取技術(shù)43
4.3.2 需求獲取中的注意事項44
4.3.3 需求分析與建模44
4.3.4 編寫需求規(guī)格說明書45
4.3.5 評審需求規(guī)格說明書45
習(xí)題447
第5章 結(jié)構(gòu)化分析方法48
5.1 結(jié)構(gòu)法分析方法概述48
5.2 數(shù)據(jù)流圖49
5.2.1 數(shù)據(jù)流圖的結(jié)構(gòu)49
5.2.2 數(shù)據(jù)流與加工之間的關(guān)系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 結(jié)構(gòu)化語言54
5.4.2 判定表55
5.4.3 判定樹56
5.5 案例分析:商店供銷管理系統(tǒng)需求分析56
5.5.1 需求描述57
5.5.2 需求分析57
5.6 小結(jié)61
習(xí)題561
第6章 面向?qū)ο蠓椒ɑA(chǔ)63
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的主要構(gòu)成69
6.4 小結(jié)78
習(xí)題678
第7章 面向?qū)ο蠓治?9
7.1 面向?qū)ο蠓治鲞^程79
7.2 系統(tǒng)用例模型79
7.2.1 建立系統(tǒng)用例模型的過程79
7.2.2 案例:基于UML的客戶服務(wù)記賬系統(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 消息與責(zé)任93
7.4.2 登錄用例的順序圖93
7.4.3 其他用例的順序圖95
7.5 描述類97
7.6 小結(jié)99
習(xí)題799
第8章 軟件設(shè)計基礎(chǔ)100
8.1 軟件設(shè)計的目標(biāo)和任務(wù)100
8.1.1 軟件設(shè)計的目標(biāo)100
8.1.2 軟件設(shè)計的任務(wù)100
8.2 軟件設(shè)計的概念與原則101
8.2.1 模塊化與模塊獨立性101
8.2.2 抽象與逐步求精106
8.2.3 信息隱藏107
8.2.4 模塊設(shè)計的一般準(zhǔn)則107
8.3 軟件體系結(jié)構(gòu)風(fēng)格108
8.3.1 管道-過濾器體系結(jié)構(gòu)108
8.3.2 事件驅(qū)動體系結(jié)構(gòu)109
8.3.3 分層體系結(jié)構(gòu)109
8.3.4 數(shù)據(jù)共享體系結(jié)構(gòu)110
8.3.5 MVC體系結(jié)構(gòu)110
8.3.6 三層C/S體系結(jié)構(gòu)111
8.4 用戶界面設(shè)計112
8.4.1 用戶界面設(shè)計原則112
8.4.2 用戶界面設(shè)計過程113
8.5 設(shè)計復(fù)審117
8.6 小結(jié)118
習(xí)題8118
第9章 結(jié)構(gòu)化設(shè)計方法119
9.1 概要設(shè)計119
9.1.1 基本概念119
9.1.2 變換分析121
9.1.3 事務(wù)分析124
9.1.4 變換-事務(wù)混合型分析125
9.1.5 啟發(fā)式規(guī)則126
9.1.6 設(shè)計優(yōu)化129
9.2 詳細(xì)設(shè)計129
9.2.1 程序流程圖129
9.2.2 盒圖130
9.2.3 問題分析圖131
9.2.4 過程設(shè)計語言131
9.2.5 HIPO圖132
9.3 案例:商店供銷管理系統(tǒng)的設(shè)計132
9.3.1 模塊結(jié)構(gòu)設(shè)計133
9.3.2 系統(tǒng)IPO圖135
9.4 其他設(shè)計工作136
9.5 小結(jié)136
習(xí)題9137
第10章 面向?qū)ο蟮脑O(shè)計139
10.1 OOD概述139
10.2 面向?qū)ο笤O(shè)計原則139
10.2.1 單一職責(zé)原則140
10.2.2 開放-封閉原則140
10.2.3 里氏替換原則141
10.2.4 接口隔離原則142
10.2.5 依賴倒置原則142
10.2.6 迪米特法則143
10.2.7 合成聚合復(fù)用原則144
10.3 系統(tǒng)體系結(jié)構(gòu)設(shè)計145
10.3.1 軟件系統(tǒng)體系結(jié)構(gòu)設(shè)計145
10.3.2 硬件系統(tǒng)體系結(jié)構(gòu)設(shè)計146
10.4 系統(tǒng)設(shè)計147
10.4.1 識別設(shè)計元素147
10.4.2 數(shù)據(jù)存儲策略148
10.5 詳細(xì)設(shè)計152
10.5.1 方法和屬性建模153
10.5.2 狀態(tài)建模154
10.5.3 詳細(xì)類圖154
10.6 設(shè)計優(yōu)化155
10.6.1 確定優(yōu)先級155
10.6.2 提高效率的技術(shù)155
10.6.3 調(diào)整繼承關(guān)系157
10.7 設(shè)計模式158
10.7.1 設(shè)計模式的作用和研究意義159
10.7.2 經(jīng)典設(shè)計模式159
10.7.3 設(shè)計模式的使用策略165
10.8 小結(jié)166
習(xí)題10167
第11章 軟件實現(xiàn)168
11.1 軟件實現(xiàn)的目標(biāo)和任務(wù)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 目錄結(jié)構(gòu)規(guī)范173
11.3 程序效率173
11.3.1 運行速度的提高174
11.3.2 存儲空間的優(yōu)化174
11.3.3 輸入輸出效率的提高174
11.4 軟件代碼審查175
11.5 小結(jié)177
習(xí)題11177
第12章 軟件測試178
12.1 軟件測試基礎(chǔ)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 軟件測試技術(shù)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 軟件測試技術(shù)的選擇策略198
12.4 軟件測試策略199
12.4.1 單元測試200
12.4.2 集成測試202
12.4.3 系統(tǒng)測試205
12.4.4 確認(rèn)測試207
12.5 軟件自動化測試208
12.5.1 自動化測試的概念及優(yōu)缺點208
12.5.2 自動化測試工具209
12.6 小結(jié)210
習(xí)題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 結(jié)構(gòu)化維護和非結(jié)構(gòu)化維護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
習(xí)題13225
13.5 小結(jié)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)絡(luò)233
14.4.3 項目活動工期估算的方法236
14.4.4 關(guān)鍵路徑法238
14.5 軟件配置管理239
14.5.1 軟件配置239
14.5.2 軟件配置管理過程240
14.6 小結(jié)242
習(xí)題14243
參考文獻244