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

軟件工程

軟件工程

定 價:¥29.50

作 者: 張海藩 編著
出版社: 清華大學出版社
叢編項:
標 簽: 軟件工程/開發(fā)項目管理

購買這本書可以去


ISBN: 9787302198123 出版時間: 2009-07-01 包裝: 平裝
開本: 16開 頁數: 334 字數:  

內容簡介

  為了滿足“軟件工程”課程學時較少的高等學校對一本適用教材的迫切需求,作者對先后榮獲了全國普通高等學校工科電子類專業(yè)優(yōu)秀教材一等獎和全國優(yōu)秀暢銷書獎,并被評為北京高等教育精品教材的《軟件工程導論》作了精心改編,保留了原書中較重要、較新穎的內容,刪除或簡化了一些較陳舊或較次要的內容,寫出了《軟件工程》。本書全面系統(tǒng)地講述了軟件工程的概念、原理和典型的方法學,并介紹了軟件項目的管理技術。本書正文共13章,第1章是概述,第2章至第8章順序講述軟件生命周期各階段的任務、過程、結構化方法和工具,第9章至第12章分別講述面向對象方法學引論、面向對象分析、面向對象設計和面向對象實現,第13章介紹軟件項目管理。正文后面有兩個附錄,分別講述了用面向對象方法和結構化方法開發(fā)兩個軟件的過程,對讀者深入理解軟件工程學很有幫助,也是上機實習的好材料。本書可作為高等院?!败浖こ獭闭n程的教材或教學參考書,也可供有一定實際經驗的軟件工作人員和需要開發(fā)應用軟件的廣大計算機用戶閱讀參考。

作者簡介

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

圖書目錄

第1章 軟件工程學概述1
1.1 軟件危機1
1.1.1 軟件危機的介紹1
1.1.2 產生軟件危機的原因2
1.1.3 消除軟件危機的途徑4
1.2 軟件工程4
1.2.1 軟件工程的介紹4
1.2.2 軟件工程的基本原理5
1.2.3 軟件工程方法學5
1.3 軟件生命周期8
1.4 軟件過程11
1.4.1 瀑布模型11
1.4.2 快速原型模型13
1.4.3 增量模型15
1.4.4 螺旋模型16
1.4.5 噴泉模型18
1.4.6 Rational統(tǒng)一過程19
1.4.7 敏捷過程與極限編程22
1.4.8 微軟過程26
1.5 小結28
習題129
第2章 可行性研究31
2.1 可行性研究的任務31
2.2 可行性研究過程32
2.3 數據流圖34
2.3.1 符號34  2.3.2 例子35
2.3.3 命名38
2.3.4 用途39
2.4 數據字典40
2.4.1 數據字典的內容40
2.4.2 定義數據的方法41
2.4.3 數據字典的用途42
2.4.4 數據字典的實現42
2.5 成本/效益分析43
2.5.1 成本估計43
2.5.2 成本/效益分析的方法44
2.6 小結46
習題247
軟件工程目 錄 第3章 需求分析49
3.1 需求分析的任務50
3.1.1 確定對系統(tǒng)的綜合要求50
3.1.2 分析系統(tǒng)的數據要求51
3.1.3 導出系統(tǒng)的邏輯模型52
3.1.4 修正系統(tǒng)開發(fā)計劃52
3.2 與用戶溝通獲取需求的方法52
3.2.1 訪談52
3.2.2 面向數據流自頂向下求精53
3.2.3 簡易的應用規(guī)格說明技術54
3.2.4 快速建立軟件原型55
3.3 分析建模與規(guī)格說明56
3.3.1 分析建模56
3.3.2 軟件需求規(guī)格說明56
3.4 實體-聯系圖56
3.4.1 數據對象57
3.4.2 屬性57
3.4.3 聯系57
3.4.4 實體-聯系圖的符號58
3.5 數據規(guī)范化58
3.6 狀態(tài)轉換圖59
3.6.1 狀態(tài)59
3.6.2 事件59
3.6.3 符號60
3.6.4 例子60
3.7 其他圖形工具61
3.7.1 層次方框圖62
3.7.2 Warnier圖62
3.7.3 IPO圖63
3.8 驗證軟件需求64
3.8.1 從哪些方面驗證軟件需求的正確性64
3.8.2 驗證軟件需求的方法64
3.8.3 用于需求分析的軟件工具65
3.9 小結66
習題367
第4章 形式化說明技術69
4.1 概述69
4.1.1 非形式化方法的缺點69
4.1.2 形式化方法的優(yōu)點70
4.1.3 應用形式化方法的準則70
4.2 有窮狀態(tài)機71
4.2.1 概念71
4.2.2 例子73
4.2.3 評價76
4.3 Petri網76
4.3.1 概念76
4.3.2 例子78
4.4 Z語言79
4.4.1 簡介79
4.4.2 評價82
4.5 小結82
習題483
第5章 總體設計85
5.1 設計過程85
5.2 設計原理87
5.2.1 模塊化87
5.2.2 抽象89
5.2.3 逐步求精89
5.2.4 信息隱藏和局部化90
5.2.5 模塊獨立91
5.3 啟發(fā)規(guī)則93
5.4 描繪軟件結構的圖形工具95
5.4.1 層次圖和HIPO圖95
5.4.2 結構圖96
5.5 小結97
習題598
第6章 詳細設計101
6.1 結構程序設計101
6.2 人機界面設計103
6.2.1 設計問題103
6.2.2 設計過程105
6.2.3 人機界面設計指南106
6.3 過程設計的工具108
6.3.1 程序流程圖108
6.3.2 盒圖108
6.3.3 PAD圖109
6.3.4 判定表110
6.3.5 判定樹111
6.3.6 過程設計語言112
6.4 程序復雜程度的定量度量113
6.4.1 McCabe方法113
6.4.2 Halstead方法116
6.5 小結116
習題6117
第7章 實現121
7.1 編碼122
7.1.1 選擇程序設計語言122
7.1.2 編碼風格122
7.2 軟件測試基礎123
7.2.1 軟件測試的目標123
7.2.2 軟件測試準則124
7.2.3 測試方法124
7.2.4 測試步驟125
7.2.5 測試階段的信息流126
7.3 單元測試126
7.3.1 測試重點127
7.3.2 代碼審查128
7.3.3 計算機測試128
7.4 集成測試130
7.4.1 自頂向下集成130
7.4.2 自底向上集成132
7.4.3 不同集成測試策略的比較132
7.4.4 回歸測試133
7.5 確認測試133
7.5.1 確認測試的范圍134
7.5.2 軟件配置復查134
7.5.3 Alpha和Beta測試134
7.6 白盒測試技術135
7.6.1 邏輯覆蓋135
7.6.2 控制結構測試138
7.7 黑盒測試技術144
7.7.1 等價劃分145
7.7.2 邊界值分析148
7.7.3 錯誤推測148
7.8 調試149
7.8.1 調試過程149
7.8.2 調試途徑151
7.9 軟件可靠性152
7.9.1 基本概念152
7.9.2 估算平均無故障時間的方法153
7.10 小結155
習題7156
第8章 維護161
8.1 軟件維護的定義161
8.2 軟件維護的特點162
8.2.1 結構化維護與非結構化維護差別巨大162
8.2.2 維護的代價高昂162
8.2.3 維護的問題很多163
8.3 軟件維護過程164
8.4 軟件的可維護性166
8.4.1 決定軟件可維護性的因素166
8.4.2 文檔167
8.4.3 可維護性復審168
8.5 預防性維護169
8.6 軟件再工程過程170
8.7 小結172
習題8173
第9章 面向對象方法學引論175
9.1 面向對象方法學概述175
9.1.1 面向對象方法學的要點175
9.1.2 面向對象方法學的優(yōu)點177
9.2 面向對象的概念181
9.2.1 對象181
9.2.2 其他概念183
9.3 面向對象建模187
9.4 對象模型188
9.4.1 類圖的基本符號189
9.4.2 表示關系的符號190
9.5 動態(tài)模型195
9.6 功能模型196
9.6.1 用例圖196
9.6.2 用例建模199
9.7 3種模型之間的關系200
9.8 小結201
習題9201
第10章 面向對象分析203
10.1 面向對象分析的基本過程203
10.1.1 概述203
10.1.2 3個子模型與5個層次204
10.2 需求陳述205
10.2.1 書寫要點205
10.2.2 例子206
10.3 建立對象模型207
10.3.1 確定類與對象208
10.3.2 確定關聯210
10.3.3 劃分主題213
10.3.4 確定屬性213
10.3.5 識別繼承關系216
10.3.6 反復修改216
10.4 建立動態(tài)模型219
10.4.1 編寫腳本219
10.4.2 設想用戶界面220
10.4.3 畫事件跟蹤圖221
10.4.4 畫狀態(tài)圖222
10.4.5 審查動態(tài)模型223
10.5 建立功能模型225
10.5.1 畫出基本系統(tǒng)模型圖225
10.5.2 畫出功能級數據流圖226
10.5.3 描述處理框功能226
10.6 定義服務227
10.7 小結228
習題10228
第11章 面向對象設計231
11.1 面向對象設計的準則231
11.2 啟發(fā)規(guī)則233
11.3 軟件重用235
11.3.1 概述235
11.3.2 類構件237
11.3.3 軟件重用的效益238
11.4 系統(tǒng)分解239
11.5 設計問題域子系統(tǒng)242
11.6 設計人機交互子系統(tǒng)245
11.7 設計任務管理子系統(tǒng)247
11.8 設計數據管理子系統(tǒng)249
11.8.1 數據存儲管理模式選擇249
11.8.2 數據管理子系統(tǒng)設計250
11.8.3 例子252
11.9 設計類中的服務252
11.9.1 確定類中應有的服務252
11.9.2 設計實現服務的方法253
11.10 設計關聯254
11.11 設計優(yōu)化255
11.11.1 確定優(yōu)先級255
11.11.2 提高效率的幾項技術256
11.11.3 調整繼承關系257
11.12 小結259
習題11260
第12章 面向對象實現261
12.1 程序設計語言261
12.1.1 面向對象語言的優(yōu)點261
12.1.2 面向對象語言的技術特點262
12.1.3 選擇面向對象語言266
12.2 程序設計風格266
12.2.1 提高可重用性267
12.2.2 提高可擴充性269
12.2.3 提高健壯性269
12.3 測試策略270
12.3.1 面向對象的單元測試270
12.3.2 面向對象的集成測試271
12.3.3 面向對象的確認測試271
12.4 設計測試用例271
12.4.1 測試類的方法272
12.4.2 集成測試方法273
12.5 小結275
習題12276
第13章 軟件項目管理277
13.1 估算軟件規(guī)模277
13.1.1 代碼行技術277
13.1.2 功能點技術278
13.2 工作量估算280
13.2.1 靜態(tài)單變量模型280
13.2.2 動態(tài)多變量模型280
13.2.3 COCOMO2模型281
13.3 進度計劃284
13.3.1 估算開發(fā)時間284
13.3.2 Gantt圖286
13.3.3 工程網絡287
13.3.4 估算工程進度288
13.3.5 關鍵路徑290
13.3.6 機動時間290
13.4 人員組織292
13.4.1 民主制程序員組292
13.4.2 主程序員組293
13.4.3 現代程序員組294
13.5 質量保證296
13.5.1 軟件質量296
13.5.2 軟件質量保證措施298
13.6 軟件配置管理300
13.6.1 軟件配置301
13.6.2 軟件配置管理過程301
13.7 能力成熟度模型303
13.8 小結306
習題13307
附錄A C++類庫管理系統(tǒng)的分析與設計309
A.1 面向對象分析309
A.1.1 需求309
A.1.2 建立對象模型310
A.2 面向對象設計311
A.2.1 設計類庫結構311
A.2.2 設計問題域子系統(tǒng)312
A.2.3 設計人機交互子系統(tǒng)313
A.2.4 設計其他類316
附錄B 一個漢字行編輯程序的設計317
B.1 設計規(guī)格說明317
B.1.1 外部編輯命令317
B.1.2 編輯命令318
B.1.3 輸出信息319
B.2 概要設計320
B.2.1 正文文件320
B.2.2 兩個工作模式321
B.2.3 數據元素322
B.2.4 過程323
B.3 概要設計結果323
B.4 詳細設計326
B.4.1 數據元素326
B.4.2 控制數據元素328
B.4.3 編輯過程328
B.4.4 輸入模式的過程329
B.4.5 編輯模式的過程330
B.4.6 編輯程序的詳細結構333
參考文獻335
第1章 軟件工程學概述1
1.1 軟件危機1
1.1.1 軟件危機的介紹1
1.1.2 產生軟件危機的原因3
1.1.3 消除軟件危機的途徑4
1.2 軟件工程5
1.2.1 軟件工程的介紹5
1.2.2 軟件工程的基本原理7
1.2.3 軟件工程方法學9
1.3 軟件生命周期11
1.4 軟件過程14
1.4.1 瀑布模型15
1.4.2 快速原型模型16
1.4.3 增量模型17
1.4.4 螺旋模型19
1.4.5 噴泉模型21
1.4.6 Rational統(tǒng)一過程22
1.4.7 敏捷過程與極限編程25
1.4.8 微軟過程29
1.5 小結31
習題132
第2章 可行性研究35
2.1 可行性研究的任務35
2.2 可行性研究過程36
2.3 系統(tǒng)流程圖38  2.3.1 符號38
2.3.2 例子38
2.3.3 分層40
2.4 數據流圖40
軟件工程目 錄 2.4.1 符號40
2.4.2 例子42
2.4.3 命名44
2.4.4 用途45
2.5 數據字典47
2.5.1 數據字典的內容47
2.5.2 定義數據的方法47
2.5.3 數據字典的用途48
2.5.4 數據字典的實現49
2.6 成本/效益分析49
2.6.1 成本估計50
2.6.2 成本/效益分析的方法51
2.7 小結53
習題253
第3章 需求分析55
3.1 需求分析的任務56
3.1.1 確定對系統(tǒng)的綜合要求56
3.1.2 分析系統(tǒng)的數據要求57
3.1.3 導出系統(tǒng)的邏輯模型58
3.1.4 修正系統(tǒng)開發(fā)計劃58
3.2 與用戶溝通獲取需求的方法58
3.2.1 訪談58
3.2.2 面向數據流自頂向下求精59
3.2.3 簡易的應用規(guī)格說明技術59
3.2.4 快速建立軟件原型61
3.3 分析建模與規(guī)格說明62
3.3.1 分析建模62
3.3.2 軟件需求規(guī)格說明62
3.4 實體-聯系圖62
3.4.1 數據對象63
3.4.2 屬性63
3.4.3 聯系63
3.4.4 實體-聯系圖的符號64
3.5 數據規(guī)范化64
3.6 狀態(tài)轉換圖65
3.6.1 狀態(tài)65
3.6.2 事件65
3.6.3 符號66
3.6.4 例子66
3.7 其他圖形工具67
3.7.1 層次方框圖68
3.7.2 Warnier圖68
3.7.3 IPO圖69
3.8 驗證軟件需求70
3.8.1 從哪些方面驗證軟件需求的正確性70
3.8.2 驗證軟件需求的方法70
3.8.3 用于需求分析的軟件工具71
3.9 小結72
習題373
第4章 形式化說明技術75
4.1 概述75
4.1.1 非形式化方法的缺點75
4.1.2 形式化方法的優(yōu)點76
4.1.3 應用形式化方法的準則76
4.2 有窮狀態(tài)機77
4.2.1 概念77
4.2.2 例子79
4.2.3 評價82
4.3 Petri網82
4.3.1 概念82
4.3.2 例子84
4.4 Z語言85
4.4.1 簡介85
4.4.2 評價88
4.5 小結88
習題489
第5章 總體設計91
5.1 設計過程91
5.2 設計原理94
5.2.1 模塊化94
5.2.2 抽象95
5.2.3 逐步求精95
5.2.4 信息隱藏和局部化96
5.2.5 模塊獨立97
5.3 啟發(fā)規(guī)則99
5.4 描繪軟件結構的圖形工具102
5.4.1 層次圖和HIPO圖102
5.4.2 結構圖103
5.5 面向數據流的設計方法104
5.5.1 概念104
5.5.2 變換分析105
5.5.3 事務分析111
5.5.4 設計優(yōu)化112
5.6 小結113
習題5114
第6章 詳細設計117
6.1 結構程序設計117
6.2 人機界面設計119
6.2.1 設計問題119
6.2.2 設計過程121
6.2.3 人機界面設計指南122
6.3 過程設計的工具124
6.3.1 程序流程圖124
6.3.2 盒圖125
6.3.3 PAD圖126
6.3.4 判定表127
6.3.5 判定樹128
6.3.6 過程設計語言128
6.4 面向數據結構的設計方法129
6.4.1 Jackson圖130
6.4.2 改進的Jackson圖131
6.4.3 Jackson方法132
6.5 程序復雜程度的定量度量136
6.5.1 McCabe方法137
6.5.2 Halstead方法139
6.6 小結140
習題6140
第7章 實現145
7.1 編碼146
7.1.1 選擇程序設計語言146
7.1.2 編碼風格147
7.2 軟件測試基礎149
7.2.1 軟件測試的目標150
7.2.2 軟件測試準則150
7.2.3 測試方法151
7.2.4 測試步驟151
7.2.5 測試階段的信息流152
7.3 單元測試153
7.3.1 測試重點153
7.3.2 代碼審查154
7.3.3 計算機測試155
7.4 集成測試156
7.4.1 自頂向下集成157
7.4.2 自底向上集成158
7.4.3 不同集成測試策略的比較159
7.4.4 回歸測試160
7.5 確認測試160
7.5.1 確認測試的范圍160
7.5.2 軟件配置復查161
7.5.3 Alpha和Beta測試161
7.6 白盒測試技術162
7.6.1 邏輯覆蓋162
7.6.2 控制結構測試165
7.7 黑盒測試技術171
7.7.1 等價劃分172
7.7.2 邊界值分析175
7.7.3 錯誤推測175
7.8 調試176
7.8.1 調試過程176
7.8.2 調試途徑178
7.9 軟件可靠性179
7.9.1 基本概念179
7.9.2 估算平均無故障時間的方法180
7.10 小結182
習題7183
第8章 維護189
8.1 軟件維護的定義189
8.2 軟件維護的特點190
8.2.1 結構化維護與非結構化維護差別巨大190
8.2.2 維護的代價高昂190
8.2.3 維護的問題很多191
8.3 軟件維護過程192
8.4 軟件的可維護性194
8.4.1 決定軟件可維護性的因素194
8.4.2 文檔195
8.4.3 可維護性復審196
8.5 預防性維護197
8.6 軟件再工程過程198
8.7 小結200
習題8201
第9章 面向對象方法學引論203
9.1 面向對象方法學概述203
9.1.1 面向對象方法學的要點203
9.1.2 面向對象方法學的優(yōu)點205
9.2 面向對象的概念209
9.2.1 對象209
9.2.2 其他概念211
9.3 面向對象建模215
9.4 對象模型216
9.4.1 類圖的基本符號217
9.4.2 表示關系的符號218
9.5 動態(tài)模型223
9.6 功能模型224
9.6.1 用例圖224
9.6.2 用例建模227
9.7 3種模型之間的關系228
9.8 小結229
習題9229
第10章 面向對象分析231
10.1 面向對象分析的基本過程231
10.1.1 概述231
10.1.2 3個子模型與5個層次232
10.2 需求陳述233
10.2.1 書寫要點233
10.2.2 例子234
10.3 建立對象模型235
10.3.1 確定類與對象236
10.3.2 確定關聯238
10.3.3 劃分主題241
10.3.4 確定屬性241
10.3.5 識別繼承關系244
10.3.6 反復修改244
10.4 建立動態(tài)模型247
10.4.1 編寫腳本247
10.4.2 設想用戶界面248
10.4.3 畫事件跟蹤圖249
10.4.4 畫狀態(tài)圖250
10.4.5 審查動態(tài)模型251
10.5 建立功能模型253
10.5.1 畫出基本系統(tǒng)模型圖253
10.5.2 畫出功能級數據流圖254
10.5.3 描述處理框功能254
10.6 定義服務255
10.7 小結256
習題10256
第11章 面向對象設計259
11.1 面向對象設計的準則259
11.2 啟發(fā)規(guī)則261
11.3 軟件重用263
11.3.1 概述263
11.3.2 類構件265
11.3.3 軟件重用的效益266
11.4 系統(tǒng)分解267
11.5 設計問題域子系統(tǒng)270
11.6 設計人機交互子系統(tǒng)273
11.7 設計任務管理子系統(tǒng)275
11.8 設計數據管理子系統(tǒng)277
11.8.1 選擇數據存儲管理模式277
11.8.2 設計數據管理子系統(tǒng)278
11.8.3 例子280
11.9 設計類中的服務280
11.9.1 確定類中應有的服務280
11.9.2 設計實現服務的方法281
11.10 設計關聯282
11.11 設計優(yōu)化283
11.11.1 確定優(yōu)先級283
11.11.2 提高效率的幾項技術284
11.11.3 調整繼承關系285
11.12 小結287
習題11288
第12章 面向對象實現289
12.1 程序設計語言289
12.1.1 面向對象語言的優(yōu)點289
12.1.2 面向對象語言的技術特點290
12.1.3 選擇面向對象語言294
12.2 程序設計風格294
12.2.1 提高可重用性295
12.2.2 提高可擴充性297
12.2.3 提高健壯性297
12.3 測試策略298
12.3.1 面向對象的單元測試298
12.3.2 面向對象的集成測試299
12.3.3 面向對象的確認測試299
12.4 設計測試用例299
12.4.1 測試類的方法300
12.4.2 集成測試方法301
12.5 小結303
習題12304
第13章 軟件項目管理305
13.1 估算軟件規(guī)模305
13.1.1 代碼行技術305
13.1.2 功能點技術306
13.2 工作量估算308
13.2.1 靜態(tài)單變量模型308
13.2.2 動態(tài)多變量模型308
13.2.3 COCOMO2模型309
13.3 進度計劃312
13.3.1 估算開發(fā)時間312
13.3.2 Gantt圖314
13.3.3 工程網絡315
13.3.4 估算工程進度316
13.3.5 關鍵路徑318
13.3.6 機動時間318
13.4 人員組織320
13.4.1 民主制程序員組320
13.4.2 主程序員組321
13.4.3 現代程序員組322
13.5 質量保證324
13.5.1 軟件質量324
13.5.2 軟件質量保證措施326
13.6 軟件配置管理328
13.6.1 軟件配置329
13.6.2 軟件配置管理過程329
13.7 能力成熟度模型331
13.8 小結334
習題13335
附錄A C++類庫管理系統(tǒng)的分析與設計337
A.1 面向對象分析337
A.1.1 需求337
A.1.2 建立對象模型338
A.2 面向對象設計339
A.2.1 設計類庫結構339
A.2.2 設計問題域子系統(tǒng)340
A.2.3 設計人機交互子系統(tǒng)341
A.2.4 設計其他類344
附錄B 一個漢字行編輯程序的設計347
B.1 設計規(guī)格說明347
B.1.1 外部編輯命令347
B.1.2 編輯命令348
B.1.3 輸出信息349
B.2 概要設計350
B.2.1 正文文件350
B.2.2 兩個工作模式351
B.2.3 數據元素352
B.2.4 過程353
B.3 概要設計結果353
B.4 詳細設計356
B.4.1 數據元素356
B.4.2 控制數據元素357
B.4.3 編輯過程357
B.4.4 輸入模式的過程359
B.4.5 編輯模式的過程360
B.5 詳細設計結果364
B.5.1 編輯程序的詳細結構364
B.5.2 類PASCAL偽碼365
B.5.3 實現編輯程序的算法367
參考文獻395

本目錄推薦

掃描二維碼
Copyright ? 讀書網 afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號