計算機科學(xué)與技術(shù)學(xué)科研究生系列教材:高級軟件工程(中文版)
定 價:39 元
叢書名:計算機科學(xué)與技術(shù)學(xué)科前沿叢書
- 作者:方木云 ,劉輝 著
- 出版時間:2011/6/1
- ISBN:9787302257202
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.5
- 頁碼:391
- 紙張:膠版紙
- 版次:1
- 開本:16開
《計算機科學(xué)與技術(shù)學(xué)科研究生系列教材:高級軟件工程(中文版)》介紹:20世紀(jì)90年代中期以后軟件工程領(lǐng)域新的理論和技術(shù),圍繞如何提高軟件的生產(chǎn)效率和質(zhì)量來選取和組織材料。前11章為理論部分,內(nèi)容包括軟件體系結(jié)構(gòu)、中間件技術(shù)、在線演化技術(shù)、網(wǎng)構(gòu)軟件、仿生學(xué)、面向Agent的軟件工程、面向服務(wù)架構(gòu)技術(shù)、柔性工作流、統(tǒng)一建模語言、云計算;后6章為實驗部分,內(nèi)容包括用VB實現(xiàn)的UDP通信、WindowsAPI函數(shù)、端口的禁用、用VB寫DLL文件、用VB寫OCX控件以及COM、COM+和DCOM。
《計算機科學(xué)與技術(shù)學(xué)科研究生系列教材:高級軟件工程(中文版)》可作為高校研究生的教材,也可以作為教師和廣大高級編程人員的參考書。
隨著軟件工程技術(shù)的發(fā)展,軟件的形態(tài)、規(guī)模、方法、架構(gòu)、工具和環(huán)境等都在變化。由于Internet的普及,人們了解和掌握國內(nèi)外新技術(shù)越來越容易。可是作為學(xué)生,系統(tǒng)地獲取知識的軟件工程教材并沒有跟上軟件工程技術(shù)發(fā)展的步伐,導(dǎo)致培養(yǎng)出來的學(xué)生不能很快地適應(yīng)社會的需要。
國內(nèi)本科生的軟件工程教材仍然以瀑布型模型的生命周期為主線來組織,大部分教材的內(nèi)容只跟進到20世紀(jì)90年代的面向?qū)ο箝_發(fā)方法,新的內(nèi)容如軟件體系結(jié)構(gòu)、中間件、SOA、網(wǎng)構(gòu)軟件、面向Agent的軟件工程和云計算等都沒有涉及,使得軟件工程的教學(xué)內(nèi)容與當(dāng)今主流技術(shù)之間的脫節(jié)越來越大。
國內(nèi)研究生的軟件工程教材幾乎是一片空白,不少高校沿用本科階段的教材,或是各自做些零散的PPT講稿,這種現(xiàn)狀可能與我國研究生教育相對寬松的要求有關(guān)。隨著高校研究生數(shù)量的不斷增多,教學(xué)質(zhì)量要求越來越高,教材用量在不斷增長,我們深感有必要整理一本合適的教材,以便把最新的成果較為系統(tǒng)地傳授給學(xué)生。編寫本書的目的之一是拋磚引玉,希望以后有更多優(yōu)秀的軟件工程教材涌現(xiàn)出來。
軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的工程學(xué)科,研究如何提高軟件生產(chǎn)效率和質(zhì)量是該學(xué)科的核心問題。開發(fā)和維護或者說構(gòu)造和演化是軟件工程活動的兩個重要環(huán)節(jié)。要提高生產(chǎn)效率必須減少開發(fā)和維護的工作量,縮短開發(fā)和維護的時間。要提高軟件的質(zhì)量必須構(gòu)造良好的體系結(jié)構(gòu)和復(fù)用以往成熟的部分。
軟件復(fù)用一直是軟件工程界所追求的夢想,復(fù)用技術(shù)是提高軟件生產(chǎn)效率和質(zhì)量的重要途徑之一。
軟件體系結(jié)構(gòu)可幫助解決軟件復(fù)用所遇到的障礙,對系統(tǒng)部件約束最小的地方復(fù)用性最大,而作為系統(tǒng)早期設(shè)計的體系結(jié)構(gòu)對部件的約束最小,因此,基于軟件體系結(jié)構(gòu)的復(fù)用為軟件復(fù)用開拓了一條新的道路,使軟件復(fù)用從代碼復(fù)用發(fā)展到設(shè)計復(fù)用和過程復(fù)用,實現(xiàn)多層次的軟件復(fù)用。軟件體系結(jié)構(gòu)研究的最大貢獻在于對軟件生產(chǎn)率的提高和維護的簡化。
在中間件產(chǎn)生以前,應(yīng)用軟件直接利用操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)庫等開發(fā),這些都是計算機最底層的東西,越底層越復(fù)雜,開發(fā)者不得不面臨許多很棘手的問題,如操作系統(tǒng)的多樣性、網(wǎng)絡(luò)環(huán)境的復(fù)雜多變性、網(wǎng)絡(luò)程序設(shè)計的繁雜性、數(shù)據(jù)分散處理的不一致性以及程序的性能、效率和安全等問題。這些與用戶的業(yè)務(wù)沒有直接關(guān)系,但又必須解決,耗費了開發(fā)者大量寶貴的時間和精力。能不能將應(yīng)用軟件所要面臨的共性問題進行提煉和抽象,在操作系統(tǒng)之上再形成一個可復(fù)用的部分,供成千上萬的應(yīng)用軟件重復(fù)使用?這就是中間件技術(shù)。中間件技術(shù)使軟件復(fù)用了網(wǎng)絡(luò)和系統(tǒng)軟件之上、應(yīng)用系統(tǒng)之下的廣袤疆域,為應(yīng)用軟件提供了應(yīng)用支撐平臺。
概括來說,面向?qū)ο蠹夹g(shù)通過類的封裝,在同種編程語言中實現(xiàn)了代碼級別的復(fù)用;構(gòu)件技術(shù)在二進制級別共享,使復(fù)用跨越了編程語言的限制;SOA利用Web Service等技術(shù),使復(fù)用跨越了操作系統(tǒng)平臺的限制;軟件體系結(jié)構(gòu)使復(fù)用擴展到軟件生命周期的各個階段;中間件技術(shù)使應(yīng)用軟件的開發(fā)者復(fù)用了底層的大量技術(shù)?梢娷浖䦶(fù)用的粒度和范圍在不斷擴大。
前言高級軟件工程軟件自動化是軟件工程界所追求的又一個夢想,CASE技術(shù)是為實現(xiàn)軟件自動化作支撐的工具。CASE作為計算機軟件工程的一種技術(shù)和環(huán)境,其目的是通過統(tǒng)一的數(shù)據(jù)操縱手段和方法,從多個角度和多個階段輔助軟件開發(fā)人員。CASE是集成化的軟件開發(fā)環(huán)境,覆蓋軟件生命周期的各個階段。一般來講,CASE工具包括需求分析工具、軟件設(shè)計工具、軟件測試工具、軟件文檔編制與生成工具、逆向工程工具等。CASE技術(shù)也是提高軟件生產(chǎn)效率和質(zhì)量的重要途徑之一。
智能化是軟件自動化的重要提升,軟件具有自適應(yīng)的能力,必然會減少維護的工作量。Agent系統(tǒng)和多Agent系統(tǒng)已經(jīng)成為一種應(yīng)對各種復(fù)雜IT情景的強大技術(shù)。Agent是自治的應(yīng)用組件,反映了現(xiàn)代分布式系統(tǒng)內(nèi)在的分散性,并且可視為系統(tǒng)被不同的利益相關(guān)者所擁有,在模塊化和封裝概念上進行了自然延伸;Agent運行和交互所采取的靈活方式適應(yīng)于現(xiàn)代軟件在動態(tài)和不可預(yù)知的情況下運行;Agent的概念為人工智能的成果提供了一個統(tǒng)一的觀點,通過使用Agent和多Agent作為存放智能行為的、可靠的和易管理的知識庫,從而利用人工智能的成果解決現(xiàn)實世界中的問題。網(wǎng)構(gòu)軟件具有自主性、協(xié)同性、反應(yīng)性、演化性和多態(tài)性等特征,是基于開放的Internet計算平臺而提出的一種新的軟件形態(tài)。Agent技術(shù)和網(wǎng)構(gòu)軟件都是從仿生學(xué)的角度來研究軟件開發(fā)技術(shù),也是提高軟件生產(chǎn)效率和質(zhì)量的重要途徑之一。
零維護是軟件工程界所追求的另一個夢想,維護是軟件生命周期中最耗時的一個階段,如何降低維護成本一直是一個重要課題。在線演化技術(shù)在許多重要的應(yīng)用領(lǐng)域中(如醫(yī)療、金融、電力、電信、銀行及空中交通管制等)對于系統(tǒng)的持續(xù)可用性是一個關(guān)鍵性的要求,運行時刻的系統(tǒng)演化可減少因關(guān)機和重啟帶來的損失和風(fēng)險。柔性工作流是工作流技術(shù)研究領(lǐng)域中的一個重點,“柔性”概念是針對系統(tǒng)在模型定義和執(zhí)行中所表現(xiàn)出來的僵化和死板而提出的。簡單來說,系統(tǒng)的柔性就是指系統(tǒng)適應(yīng)新情況、新環(huán)境、新任務(wù)的能力;具體來說,是指系統(tǒng)在其所處的環(huán)境、條件或者過程狀態(tài)發(fā)生改變時,是否能夠快速響應(yīng)和跟隨變化的能力。因此,在線演化技術(shù)和柔性工作流技術(shù)是減少維護的兩個重要途徑。
云計算是現(xiàn)代軟件工程思想和技術(shù)大規(guī)模應(yīng)用的結(jié)果。云計算通過虛擬化技術(shù)將資源進行整合而形成龐大的計算與存儲網(wǎng)絡(luò),用戶只需要一臺接入網(wǎng)絡(luò)的終端就能夠以相對低廉的價格獲得所需的資源和服務(wù)而無須考慮其來源。云計算實現(xiàn)了資源和計算能力的分布式共享,能夠很好地應(yīng)對當(dāng)前互聯(lián)網(wǎng)數(shù)據(jù)量高速增長的勢頭。
構(gòu)件技術(shù)是受大工業(yè)生產(chǎn)的啟發(fā)而產(chǎn)生的,是軟件技術(shù)跨世紀(jì)的一個發(fā)展趨勢,其目的是徹底改變軟件生產(chǎn)方式,從根本上提高軟件生產(chǎn)的效率和質(zhì)量,提高開發(fā)大型軟件系統(tǒng)尤其是商用系統(tǒng)的成功率。構(gòu)件是現(xiàn)代軟件工程的基礎(chǔ)概念,是構(gòu)造軟件的“細(xì)胞”,本書第1~11章的所有理論和技術(shù)都是以構(gòu)件為基礎(chǔ),第12~17章的6個實驗中有4個是關(guān)于構(gòu)件技術(shù),有兩個雖然是關(guān)于網(wǎng)絡(luò)通信的編程,但仍然是以構(gòu)件技術(shù)為支撐的。
本書出版的另一個目的是將軟件工程的新技術(shù)成果以教材內(nèi)容的形式傳授給高校研究生,為他們今后的學(xué)習(xí)和工作奠定扎實的基礎(chǔ),因此撰寫過程中直接或間接地引用了許多專家和學(xué)者的文獻,作者向他們深表謝意。
在本書的撰寫過程中,杭婷婷參與了第1、3、5、6、12、13章的編寫,吳愛清參與了第2、3、11、14、15章的編寫,侯海金參與了第2、7、15、16、17章的編寫,謝啟宇參與了第12、14、16、17章的編寫,李申莉編寫了第4章,秦飛編寫了第8章,劉明編寫了第9章,黃明星編寫了第10章,蘇昌亞、姚佳岷等同學(xué)協(xié)助了書稿的整理,劉輝參編了第11章和審核了部分章節(jié),方木云組織編寫和審核了全書。中國科學(xué)技術(shù)大學(xué)的趙保華和屈玉貴兩位教授對本書提出了許多寶貴的建議,在此表示感謝。
在本書的編寫過程中,內(nèi)容反復(fù)斟酌,力求完美。但是限于作者的水平,書中必有許多不完善的地方,懇請讀者批評指正。
作 者2011年5月
理論篇
第1章 軟件工程新技術(shù)
1.1 新的構(gòu)建技術(shù)
1.2 新的軟件形態(tài)
1.3 新的開發(fā)工具
1.4 大規(guī)模的應(yīng)用
第2章 軟件體系結(jié)構(gòu)
2.1 軟件體系結(jié)構(gòu)的形成
2.1.1 無體系結(jié)構(gòu)階段
2.1.2 萌芽階段
2.1.3 初級階段
2.1.4 高級階段
2.2 軟件體系結(jié)構(gòu)的概念
2.3 軟件體系結(jié)構(gòu)的要素
2.3.1 構(gòu)件
2.3.2 連接件
2.3.3 約束
2.4 軟件體系結(jié)構(gòu)的作用
2.5 軟件體系結(jié)構(gòu)描述語言
2.5.1 ACME
2.5.2 Wright
2.5.3 C2
2.5.4 UniCon
2.5.5 其他比較有影響的ADL
2.5.6 ADL分類與比較框架
2.5.7 ADL之間的比較
2.6 軟件體系結(jié)構(gòu)描述方法
2.7 軟件體系結(jié)構(gòu)風(fēng)格
2.7.1 軟件體系結(jié)構(gòu)風(fēng)格的概念
2.7.2 軟件體系結(jié)構(gòu)風(fēng)格的研究內(nèi)容
2.7.3 幾種常見的軟件體系結(jié)構(gòu)風(fēng)格
2.7.4 新的軟件體系結(jié)構(gòu)風(fēng)格的提出
2.7.5 討論軟件體系結(jié)構(gòu)風(fēng)格時常見的問題
2.8 軟件體系結(jié)構(gòu)評估
2.8.1 軟件體系結(jié)構(gòu)評估的目的
2.8.2 軟件體系結(jié)構(gòu)評估的方法與工具
2.8.3 軟件體系結(jié)構(gòu)評估存在的問題
2.9 基于體系結(jié)構(gòu)的軟件開發(fā)過程
2.10 Windows體系結(jié)構(gòu)介紹
2.10.1 Windows系統(tǒng)的發(fā)展歷史
2.10.2 Windows系統(tǒng)的描述語言
2.10.3 Windows NT體系結(jié)構(gòu)簡介
思考題
第3章 中間件技術(shù)
3.1 中間件技術(shù)的形成
3.2 中間件的基本概念
3.2.1 中間件的定義
3.2.2 中間件的分類
3.2.3 中間件的新類型
3.2.4 中間件的作用
3.2.5 中間件面臨的問題
3.3 典型中間件
3.3.1 消息中間件
3.3.2 交易中間件
3.3.3 對象中間件
3.3.4 應(yīng)用服務(wù)器
3.3.5 安全中間件
3.4 基于中間件的應(yīng)用開發(fā)
3.4.1 中間件基礎(chǔ)技術(shù)
3.4.2 基于中間件的軟件開發(fā)過程
3.5 中間件的現(xiàn)狀
3.6 中間件的發(fā)展趨勢
思考題
……
實驗篇
參考文獻