本書是作者在多年從事軟件工程、軟件設(shè)計模式課程教學(xué)實踐基礎(chǔ)上編寫的。全書共分為8章,通過大量的實例,介紹了實用軟件工程學(xué)的原理及設(shè)計模式的相關(guān)知識,根據(jù)軟件開發(fā)工程化思想,系統(tǒng)地講授了軟件工程學(xué)、軟件設(shè)計過程、23種先進的設(shè)計模式、軟件測試方法、軟件項目管理、應(yīng)用技術(shù)和實用工具等相關(guān)知識。全書采用社會所需實際案例為基線,以案例、項目式教學(xué)思路貫穿始終,根據(jù)需要安排了多個任務(wù)和子任務(wù),讀者可以通過實踐掌握課程所學(xué)內(nèi)容。書后配有適量的思考題和練習(xí)題,使讀者能夠在學(xué)習(xí)過程中提高操作能力和實際應(yīng)用能力。
本書可作為高等院校學(xué)生學(xué)習(xí)軟件工程、軟件設(shè)計模式、軟件體系結(jié)構(gòu)設(shè)計等課程的教材,也可以作為讀者自學(xué)的參考書。
軟件工程是軟件開發(fā)組織根據(jù)所要開發(fā)的軟件特點及項目自身的特點,選擇適合的軟件設(shè)計模式,把各種軟件工程學(xué)原理的特性和軟件設(shè)計模式有機地結(jié)合起來,充分利用它們的優(yōu)點,回避缺陷,有效地提高軟件質(zhì)量的過程。
本書是軟件開發(fā)方法體系的完整體現(xiàn),有別于傳統(tǒng)軟件工程學(xué),增加了許多實際軟件開發(fā)過程中需要的實用方法技術(shù),填補了傳統(tǒng)軟件工程的設(shè)計薄弱環(huán)節(jié)。
前 言
21世紀(jì)是信息社會,信息技術(shù)已經(jīng)滲透到社會的各行各業(yè)。隨著計算機應(yīng)用技術(shù)的不斷發(fā)展,軟件工程學(xué)也滲入軟件研發(fā)的各個環(huán)節(jié)中。實用軟件工程是一門將理論和知識應(yīng)用于實踐的工程,它借鑒了傳統(tǒng)工程的原則和方法,講解了常用的23種設(shè)計模式,以求高效地開發(fā)高質(zhì)量軟件。近年來,大多數(shù)高等院校,無論是理工科還是文科專業(yè)都將軟件工程作為計算機應(yīng)用技術(shù)類課程的必修課或選修課。
軟件工程是軟件開發(fā)組織根據(jù)所要開發(fā)的軟件特點及項目自身的特點,選擇適合的軟件設(shè)計模式,把各種軟件工程學(xué)原理的特性和軟件設(shè)計模式有機地結(jié)合起來,充分利用它們的優(yōu)點,回避缺陷,有效地提高軟件質(zhì)量的過程。
本書是軟件開發(fā)方法體系的完整體現(xiàn),有別于傳統(tǒng)軟件工程學(xué),增加了許多實際軟件開發(fā)過程中需要的實用方法技術(shù),填補了傳統(tǒng)軟件工程的設(shè)計薄弱環(huán)節(jié)。
全書共分為8章,各章的主要內(nèi)容安排如下。
第1章主要介紹軟件工程學(xué)的基本概念、理論和基礎(chǔ)知識。
第2章主要介紹軟件設(shè)計過程基本原理、軟件設(shè)計建模工具UML,以及軟件設(shè)計環(huán)境Visio、PowerDesigner、Violet等。
第3章主要介紹23種先進的設(shè)計模式,體現(xiàn)23種設(shè)計模式在軟件開發(fā)過程中的重要設(shè)計地位和作用。
第4章主要介紹在面向?qū)ο蟪绦蛟O(shè)計語言Java中實現(xiàn)23種設(shè)計模式的方法和實踐。
第5章主要介紹面向?qū)ο蠹夹g(shù)。面向?qū)ο蠹夹g(shù)是一種以對象為基礎(chǔ),以事件或消息驅(qū)動對象執(zhí)行相應(yīng)的消息處理函數(shù)的程序設(shè)計技術(shù)。
第6章主要介紹各種行之有效的軟件測試方法和技術(shù)。
第7章主要介紹23種設(shè)計模式在實際應(yīng)用中的原則和分類。
第8章主要介紹軟件工程控制活動中的質(zhì)量保證、配置管理和項目管理的基本知識。
本書以學(xué)習(xí)、應(yīng)用為目的,以案例貫穿始終,系統(tǒng)地講授了軟件工程學(xué)和軟件設(shè)計模式,各章均以項目分配任務(wù)形式編排,有助于提高學(xué)生的實操和實際應(yīng)用能力。
本書由白文榮主編,在本書策劃和編寫的過程中,得到了清華大學(xué)出版社的大力支持,在此表示衷心的感謝。
由于作者水平有限,書中難免存在錯誤和不足之處,敬請廣大讀者批評指正。
為了方便教師教學(xué)和學(xué)生自主學(xué)習(xí),本書配有電子教案、案例源代碼、安裝軟件等,若有需要,可從清華大學(xué)出版社網(wǎng)站下載。
編 者
項目1 軟件工程概述.... 1
任務(wù)1 問題的提出... 3
任務(wù)要求... 3
知識儲備... 3
任務(wù)實施... 7
任務(wù)2 軟件工程概述... 8
任務(wù)要求... 8
知識儲備... 8
任務(wù)實施... 10
任務(wù)3 面向?qū)ο蟮膸讉基本原則... 11
任務(wù)要求... 11
知識儲備... 11
任務(wù)實施... 13
任務(wù)4 軟件項目的生命周期... 13
任務(wù)要求... 13
知識儲備... 14
任務(wù)實施... 15
任務(wù)5 軟件項目的開發(fā)模型... 15
任務(wù)要求... 15
知識儲備... 15
任務(wù)實施... 24
任務(wù)6 軟件工程學(xué)的基本原則... 24
任務(wù)要求... 24
知識儲備... 24
任務(wù)實施... 25
上機實訓(xùn):機票預(yù)訂系統(tǒng)... 26
項目小結(jié)... 27
習(xí)題... 27
項目2 軟件設(shè)計過程.... 29
任務(wù)1 洞悉軟件設(shè)計過程... 30
任務(wù)要求... 30
知識儲備... 30
任務(wù)實施... 31
任務(wù)2
面向?qū)ο筌浖O(shè)計工具UML. 32
任務(wù)要求... 32
知識儲備... 32
任務(wù)實施... 39
任務(wù)3
軟件設(shè)計過程管理... 54
任務(wù)要求... 54
知識儲備... 54
任務(wù)實施... 55
上機實訓(xùn):商品銷售系統(tǒng)... 60
項目小結(jié)... 61
習(xí)題... 61
項目3 軟件設(shè)計模式.... 63
任務(wù)1
創(chuàng)建型模式... 64
任務(wù)要求... 64
知識儲備... 64
任務(wù)實施... 65
任務(wù)2
結(jié)構(gòu)型模式... 92
任務(wù)要求... 92
知識儲備... 92
任務(wù)實施... 92
任務(wù)3
行為型模式... 135
任務(wù)要求... 135
知識儲備... 135
任務(wù)實施... 136
上機實訓(xùn):小動物模式的應(yīng)用... 212
項目小結(jié)... 213
習(xí)題... 213
項目4 設(shè)計模式案例.... 217
任務(wù)1
命令模式... 218
任務(wù)要求... 218
知識儲備... 218
任務(wù)實施... 219
任務(wù)2
觀察者模式... 220
任務(wù)要求... 220
知識儲備... 220
任務(wù)實施... 221
任務(wù)3
裝飾模式... 224
任務(wù)要求... 224
知識儲備... 224
任務(wù)實施... 224
任務(wù)4
策略模式... 226
任務(wù)要求... 226
知識儲備... 226
任務(wù)實施... 226
任務(wù)5
適配器模式... 229
任務(wù)要求... 229
知識儲備... 229
任務(wù)實施... 229
任務(wù)6
責(zé)任鏈模式... 231
任務(wù)要求... 231
知識儲備... 231
任務(wù)實施... 232
任務(wù)7
外觀模式... 234
任務(wù)要求... 234
知識儲備... 234
任務(wù)實施... 234
任務(wù)8
迭代器模式... 236
任務(wù)要求... 236
知識儲備... 236
任務(wù)實施... 237
任務(wù)9
中介者模式... 238
任務(wù)要求... 238
知識儲備... 238
任務(wù)實施... 239
任務(wù)10
工廠方法模式... 241
任務(wù)要求... 241
知識儲備... 242
任務(wù)實施... 242
任務(wù)11
抽象工廠模式... 244
任務(wù)要求... 244
知識儲備... 244
任務(wù)實施... 245
任務(wù)12
生成器模式... 248
任務(wù)要求... 248
知識儲備... 248
任務(wù)實施... 249
任務(wù)13
原型模式... 251
任務(wù)要求... 251
知識儲備... 252
任務(wù)實施... 252
任務(wù)14
單件模式... 254
任務(wù)要求... 254
知識儲備... 254
任務(wù)實施... 254
任務(wù)15
組合模式... 255
任務(wù)要求... 255
知識儲備... 256
任務(wù)實施... 256
任務(wù)16
橋接模式... 259
任務(wù)要求... 259
知識儲備... 259
任務(wù)實施... 260
任務(wù)17
狀態(tài)模式... 261
任務(wù)要求... 261
知識儲備... 261
任務(wù)實施... 262
任務(wù)18
模板方法模式... 264
任務(wù)要求... 264
知識儲備... 264
任務(wù)實施... 264
任務(wù)19
代理模式... 266
任務(wù)要求... 266
知識儲備... 266
任務(wù)實施... 267
任務(wù)20
享元模式... 268
任務(wù)要求... 268
知識儲備... 268
任務(wù)實施... 269
任務(wù)21
訪問者模式... 271
任務(wù)要求... 271
知識儲備... 271
任務(wù)實施... 272
任務(wù)22
備忘錄模式... 274
任務(wù)要求... 274
知識儲備... 274
任務(wù)實施... 275
任務(wù)23
解釋器模式... 278
任務(wù)要求... 278
知識儲備... 278
任務(wù)實施... 278
上機實訓(xùn):工廠方法模式的應(yīng)用... 283
項目小結(jié)... 283
習(xí)題... 283
項目5 面向?qū)ο蠹夹g(shù)概述.... 287
任務(wù)1
傳統(tǒng)方法學(xué)... 288
任務(wù)要求... 288
知識儲備... 288
任務(wù)實施... 289
任務(wù)2 面向?qū)ο蠓椒▽W(xué)... 296
任務(wù)要求... 296
知識儲備... 296
任務(wù)實施... 301
任務(wù)3 面向?qū)ο蟪绦蛟O(shè)計語言... 301
任務(wù)要求... 301
知識儲備... 301
任務(wù)實施... 302
上機實訓(xùn):學(xué)校運動會模型... 307
項目小結(jié)... 308
習(xí)題... 309
項目6 軟件測試方法.... 311
任務(wù)1 軟件測試概述... 312
任務(wù)要求... 312
知識儲備... 312
任務(wù)實施... 314
任務(wù)2 軟件測試方法... 316
任務(wù)要求... 316
知識儲備... 317
任務(wù)實施... 320
任務(wù)3 軟件測試管理... 331
任務(wù)要求... 331
知識儲備... 331
任務(wù)實施... 331
任務(wù)4 測試工具簡介... 338
任務(wù)要求... 338
知識儲備... 338
任務(wù)實施... 338
上機實訓(xùn):軟件測試方法... 345
項目小結(jié)... 346
習(xí)題... 347
項目7 設(shè)計模式的原則和分類.... 349
任務(wù)1 設(shè)計模式的原則... 350
任務(wù)要求... 350
知識儲備... 350
任務(wù)實施... 351
任務(wù)2 設(shè)計模式的分類... 351
任務(wù)要求... 351
知識儲備... 351
任務(wù)實施... 353
上機實訓(xùn):觀察者模式... 355
項目小結(jié)... 356
習(xí)題... 356
項目8 軟件項目管理.... 357
任務(wù)1
軟件項目管理導(dǎo)論... 358
任務(wù)要求... 358
知識儲備... 358
任務(wù)實施... 361
任務(wù)2 項目管理流程及方法... 362
任務(wù)要求... 362
知識儲備... 363
任務(wù)實施... 370
上機實訓(xùn):項目管理工具Project 2010的
應(yīng)用... 376
項目小結(jié)... 380
習(xí)題... 380
參考文獻.... 385