本書為普通高等教育“十五”國家級(jí)規(guī)劃教材。由作者結(jié)合多年軟件開發(fā)實(shí)踐和近年講授軟件工程課程的教學(xué)經(jīng)驗(yàn)編寫而成,強(qiáng)調(diào)理論與實(shí)踐的有機(jī)結(jié)合。全書共ll章,第1章概括介紹軟件工程的歷史發(fā)展和基本原理,討論IEEE和ACM最新提出的軟件工程知識(shí)體系和軟件工程職業(yè)道德規(guī)范:第2章討論軟件過程的基本思想和活動(dòng),介紹常見的軟件過程模型和微軟開發(fā)過程的實(shí)際案例;第3章討論軟件工程的管理技術(shù),主要涉及人員管理、溝通管理、項(xiàng)目規(guī)劃和風(fēng)險(xiǎn)管理等內(nèi)容:第4章、第6章至第10章以面向?qū)ο蠹夹g(shù)為核心,全面、深入、系統(tǒng)地介紹軟件開發(fā)各個(gè)階段的任務(wù)、過程、方法和工具:第5章介紹軟件工程中的形式化方法,包括時(shí)序邏輯、Z語言、Petri網(wǎng)等;第ll章介紹軟件進(jìn)化的概念和方法,包括軟件進(jìn)化的特性、軟件維護(hù)活動(dòng)、逆向工程與再工程等內(nèi)容。
全書注重內(nèi)容的新穎性、條理性、系統(tǒng)性和實(shí)用性,始終以大量的開發(fā)實(shí)例貫穿全書,可作為計(jì)算機(jī)專業(yè)有關(guān)高年級(jí)本科生和低年級(jí)研究生學(xué)習(xí)軟件工程課程的教材,也可供軟件從業(yè)人員參考使用。本書配套的電子教案可從高等教育出版社高等理工教學(xué)資源網(wǎng)下載,網(wǎng)址為http://www.hep.st.com.CN。
第1章 概述
1.1 軟件
1.1.1 軟件的特性
1.1.2 軟件的發(fā)展
1.1.3 軟件危機(jī)
1.2 軟件工程
1.2.1 軟件工程的概念
1.2.2 軟件工程的三要素
1.2.3 軟件質(zhì)量的特性
1.2.4 軟件工程方法
1.2.5 計(jì)算機(jī)輔助軟件工程CASE
1.2.6 當(dāng)前面臨的主要挑戰(zhàn)
1.3 軟件工程知識(shí)體系(SWEBOK)
1.3.1 SWEBOK項(xiàng)目介紹
1.3.2 SWEBOK的組成 第1章 概述
1.1 軟件
1.1.1 軟件的特性
1.1.2 軟件的發(fā)展
1.1.3 軟件危機(jī)
1.2 軟件工程
1.2.1 軟件工程的概念
1.2.2 軟件工程的三要素
1.2.3 軟件質(zhì)量的特性
1.2.4 軟件工程方法
1.2.5 計(jì)算機(jī)輔助軟件工程CASE
1.2.6 當(dāng)前面臨的主要挑戰(zhàn)
1.3 軟件工程知識(shí)體系(SWEBOK)
1.3.1 SWEBOK項(xiàng)目介紹
1.3.2 SWEBOK的組成
1.3.3 軟件工程與其他相關(guān)學(xué)科的關(guān)系
1.4軟件工程職業(yè)道德規(guī)范
1.4.1 IEEE/ACM職業(yè)道德準(zhǔn)則
1.4.2 軟件工程人員的職業(yè)道德建設(shè)
習(xí)題
第2章 軟件過程
2.1 軟件過程的概念
2.1.1 任務(wù)思維與過程思維
2.1.2 軟件過程的定義
2.1.3 軟件過程的基本活動(dòng)
2.1.4 軟件過程的制品
2.2 軟件過程模型
2.2.1 瀑布模型
2.2.2 快速原型模型
2.2.3 增量模型
2.2.4 螺旋模型
2.2.5 形式化方法模型
2.2.6 基于組件的開發(fā)模型
2.3 案例:微軟公司的軟件開發(fā)過程
2.3.1 微軟公司的開發(fā)管理原則
2.3.2 微軟公司的軟件過程模型
2.3.3 遞進(jìn)式的軟件開發(fā)策略
習(xí)題
第3章 軟件項(xiàng)目管理
3.1 軟件項(xiàng)目管理概述
3.1.1 軟件項(xiàng)目的特征
3.1.2 軟件項(xiàng)目管理的“4P”
3.1.3 軟件項(xiàng)目管理活動(dòng)
3.2 人員組織與管理
3.2.1 軟件項(xiàng)目組織
3.2.2 案例:微軟公司的軟件開發(fā)組織
3.2.3 軟件團(tuán)隊(duì)的建設(shè)
3.3 項(xiàng)目溝通管理
3.3.1 項(xiàng)目溝通復(fù)雜性
3.3.2 項(xiàng)目溝通方式
3.3.3 項(xiàng)目溝通活動(dòng)
3.4 軟件項(xiàng)目規(guī)劃
3.4.1 軟件規(guī)模估算
3.4.2 軟件成本估算
3.4.3 軟件項(xiàng)目計(jì)劃
3.5 軟件風(fēng)險(xiǎn)管理
3.5.1 風(fēng)險(xiǎn)識(shí)別
3.5.2 風(fēng)險(xiǎn)分析
3.5.3 風(fēng)險(xiǎn)規(guī)劃
3.5.4 風(fēng)險(xiǎn)監(jiān)控
3.6 軟件配置管理
……
第4章 需求工程
第5章 軟件工程中的形式化方法
第6章 面向?qū)ο蠡A(chǔ)
第7章 面向?qū)ο蠓治?br>第8章 面向?qū)ο笤O(shè)計(jì)
第9章 軟件實(shí)現(xiàn)
第10章 軟件測試
第11章 軟件演化
參考文獻(xiàn)
第1章 概述
軟件是人類思維創(chuàng)造的杰作,并成為人類現(xiàn)代生活的催化劑。今天,軟件遍布整個(gè)世界,在生物工程、現(xiàn)代通信、宇宙探索、商務(wù)處理、工業(yè)控制等方面發(fā)揮出巨大的威力,推動(dòng)了商業(yè)、科學(xué)和工程領(lǐng)域的跨越式發(fā)展,對(duì)整個(gè)社會(huì)的經(jīng)濟(jì)和文化產(chǎn)生了深遠(yuǎn)的影響。
在計(jì)算機(jī)誕生的初期,軟件僅僅是計(jì)算機(jī)硬件的附屬品,其作用和成本微乎其微。如今,軟件以各種形式嵌入在越來越多的產(chǎn)品中,不僅成為影響系統(tǒng)功能和性能的關(guān)鍵因素,而且在整個(gè)系統(tǒng)的成本中占據(jù)著越來越大的比重。因此,如何以經(jīng)濟(jì)有效的方法開發(fā)高質(zhì)量的軟件是人們長期以來一直努力研究的主要問題。
軟件工程是為了解決開發(fā)成本效益和軟件質(zhì)量的問題而產(chǎn)生的。從1968年NATO(North Atlantic Treaty Organization,北大西洋公約組織)會(huì)議首次提出“軟件工程”概念至今,雖然人們并沒有徹底解決軟件危機(jī)的問題,然而正是軟件工程的發(fā)展促使軟件取得了如此令人矚目的成就。三十多年以來,人們更好地認(rèn)識(shí)了軟件開發(fā)過程,在軟件的需求、設(shè)計(jì)、實(shí)現(xiàn)、測試和維護(hù)等方面提出了許多有效的方法,新的開發(fā)方法和開發(fā)工具在大型復(fù)雜軟件系統(tǒng)的開發(fā)過程中起到了事半功倍的作用。如果沒有這些復(fù)雜的軟件,人們就不可能探索宇宙空間,也不可能擁有網(wǎng)絡(luò)和現(xiàn)代化的通信技術(shù),更不可能揭開人類基因的奧秘。
當(dāng)前,軟件工程仍然是一個(gè)正在迅速興起的年輕學(xué)科,尚未形成完整的理論知識(shí)體系,需要大量的理論研究和工程實(shí)踐。我們相信,隨著該學(xué)科的日益成熟,軟件工程必將對(duì)未來的軟件開發(fā)產(chǎn)生更大的推動(dòng)力。
1.1 軟件
在軟件的發(fā)展過程中,軟件從個(gè)性化的程序演變?yōu)楣こ袒漠a(chǎn)品,人們對(duì)軟件的看法發(fā)生了根本性的變化!败浖=程序”顯然不能涵蓋軟件的完整內(nèi)容,除了程序之外,軟件還包括與之相關(guān)的文檔和配置數(shù)據(jù),以保證這些程序的正確運(yùn)行。
《IEEE Standard Glossary of Software Engineering Terminology}給出了有關(guān)軟件的如下定義:
……