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