內容簡介
本書正文共13章,第1章是概述,第2~8章順序講述軟體生命周期各階段的任務、過程、結構化方法和工具,第9~12章分別講述面向對象方法學引論、面向對象分析、面向對象設計和面向對象實現,第13章介紹軟體項目管理。附錄講述了用面向對象方法開發軟體的過程,對讀者深入理解軟體工程學很有幫助,也是上機實習的好材料。
目錄
第1章軟體工程學概述1
1.1軟體危機11.1.1軟體危機的介紹11.1.2產生軟體危機的原因31.1.3消除軟體危機的途徑4
1.2軟體工程51.2.1軟體工程的介紹51.2.2軟體工程的基本原理71.2.3軟體工程方法學9
1.3軟體生命周期11
1.4軟體過程141.4.1瀑布模型151.4.2快速原型模型161.4.3增量模型171.4.4螺旋模型191.4.5噴泉模型211.4.6Rational統一過程221.4.7敏捷過程與極限編程251.4.8微軟過程29
1.5小結31
習題132第2章可行性研究35
2.1可行性研究的任務35
2.2可行性研究過程36
2.3系統流程圖382.3.1符號382.3.2例子382.3.3分層40
2.4數據流圖40[][]軟體工程導論(第6版)[][]目錄[][]2.4.1符號402.4.2例子422.4.3命名442.4.4用途45
2.5數據字典472.5.1數據字典的內容472.5.2定義數據的方法472.5.3數據字典的用途482.5.4數據字典的實現49
2.6成本/效益分析492.6.1成本估計502.6.2成本/效益分析的方法51
2.7小結53
習題253第3章需求分析55
3.1需求分析的任務563.1.1確定對系統的綜合要求563.1.2分析系統的數據要求573.1.3導出系統的邏輯模型583.1.4修正系統開發計畫58
3.2與用戶溝通獲取需求的方法583.2.1訪談583.2.2面向數據流自頂向下求精593.2.3簡易的套用規格說明技術593.2.4快速建立軟體原型61
3.3分析建模與規格說明62
3.3.1分析建模62
3.3.2軟體需求規格說明62
3.4實體聯繫圖62
3.4.1數據對象63
3.4.2屬性63
3.4.3聯繫63
3.4.4實體聯繫圖的符號64
3.5數據規範化64
3.6狀態轉換圖65
3.6.1狀態653.6.2事件65
3.6.3符號66
3.6.4例子66
3.7其他圖形工具67
3.7.1層次方框圖68
3.7.2Warnier圖68
3.7.3IPO圖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形式化方法的優點76
4.1.3套用形式化方法的準則76
4.2有窮狀態機77
4.2.1概念77
4.2.2例子794.2.3評價82
4.3Petri網824.3.1概念82
4.3.2例子84
4.4Z語言854.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抽象955.2.3逐步求精95
5.2.4信息隱藏和局部化96
5.2.5模組獨立97
5.3啟發規則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設計最佳化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.3PAD圖126
6.3.4判定表127
6.3.5判定樹128
6.3.6過程設計語言128
6.4面向數據結構的設計方法129
6.4.1Jackson圖130
6.4.2改進的Jackson圖131
6.4.3Jackson方法132
6.5程式複雜程度的定量度量136
6.5.1McCabe方法137
6.5.2Halstead方法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.3Alpha和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維護的代價高昂1908.2.3維護的問題很多191
8.3軟體維護過程192
8.4軟體的可維護性194
8.4.1決定軟體可維護性的因素194
8.4.2文檔1958.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面向對象方法學的優點205
9.2面向對象的概念2099.2.1對象209
9.2.2其他概念211
9.3面向對象建模215
9.4對象模型216
9.4.1類圖的基本符號217
9.4.2表示關係的符號218
9.5動態模型223
9.6功能模型224
9.6.1用例圖224
9.6.2用例建模227
9.73種模型之間的關係228
9.8小結229
習題9229第10章面向對象分析231
10.1面向對象分析的基本過程231
10.1.1概述231
10.1.23個子模型與5個層次232
10.2需求陳述23310.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建立動態模型247
10.4.1編寫腳本247
10.4.2構想用戶界面248
10.4.3畫事件跟蹤圖249
10.4.4畫狀態圖250
10.4.5審查動態模型251
10.5建立功能模型253
10.5.1畫出基本系統模型圖253
10.5.2畫出功能級數據流圖254
10.5.3描述處理框功能254
10.6定義服務255
10.7小結256
習題10256第11章面向對象設計259
11.1面向對象設計的準則259
11.2啟發規則261
11.3軟體重用263
11.3.1概述263
11.3.2類構件265
11.3.3軟體重用的效益266
11.4系統分解267
11.5設計問題域子系統270
11.6設計人機互動子系統273
11.7設計任務管理子系統275
11.8設計數據管理子系統277
11.8.1選擇數據存儲管理模式277
11.8.2設計數據管理子系統278
11.8.3例子280
11.9設計類中的服務280
11.9.1確定類中應有的服務280
11.9.2設計實現服務的方法281
11.10設計關聯282
11.11設計最佳化283
11.11.1確定優先權283
11.11.2提高效率的幾項技術284
11.11.3調整繼承關係285
11.12小結287
習題11288
第12章面向對象實現289
12.1程式設計語言289
12.1.1面向對象語言的優點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估算軟體規模305
13.1.1代碼行技術305
13.1.2功能點技術306
13.2工作量估算308
13.2.1靜態單變數模型308
13.2.2動態多變數模型308
13.2.3COCOMO2模型309
13.3進度計畫312
13.3.1估算開發時間312
13.3.2Gantt圖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
附錄AC++類庫管理系統的分析與設計337
A.1面向對象分析337
A.1.1需求337
A.1.2建立對象模型338
A.2面向對象設計339
A.2.1設計類庫結構339
A.2.2設計問題域子系統340
A.2.3設計人機互動子系統341
A.2.4設計其他類344
參考文獻347