下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變
1計(jì)算機(jī)專業(yè)教育對(duì)象的特殊性一般來說,風(fēng)格是觀察和分析問題的方法論。在計(jì)算機(jī)軟件技術(shù)中,軟件范型是指軟件的組織和結(jié)構(gòu)設(shè)計(jì)技術(shù)。它不僅指軟件靜態(tài)的組織和結(jié)構(gòu)模型,還指動(dòng)態(tài)軟件開發(fā)和結(jié)構(gòu)的模型。軟件和軟件流程是相同問題的兩個(gè)方面。為了獲得和理解整個(gè)軟件的內(nèi)容,例如范圍、使用、意義和價(jià)值,我們必須同時(shí)從這兩個(gè)方面來理解它。軟件范型是軟件工程學(xué)中十分重要的概念、原則和思維模式.嚴(yán)格地說,軟件工程學(xué)是一門應(yīng)用性的工程學(xué)科,也可以稱之為計(jì)算機(jī)科學(xué)與工程科學(xué)的交叉學(xué)科.它的宗旨是應(yīng)用工程學(xué)的方法和技術(shù),研究軟件開發(fā)與維護(hù)的方法、工具和管理,其目標(biāo)是提高軟件質(zhì)量和軟件生產(chǎn)效率.自1968年北大西洋公約組織的一次計(jì)算機(jī)學(xué)術(shù)會(huì)議上提出“軟件工程”(SoftwareEngineering)概念以后,學(xué)術(shù)界形成了眾多軟件方法學(xué)的分支,比如結(jié)構(gòu)化方法,有限狀態(tài)機(jī)方法,PETRI方法,形式化方法,面向?qū)ο蠓椒ǖ?其中,結(jié)構(gòu)化方法發(fā)展最快,在軟件產(chǎn)業(yè)界得到廣泛的接受和使用,較早成為占主導(dǎo)地位的軟件構(gòu)造與開發(fā)模式,人們稱之為“結(jié)構(gòu)化范型”.由于結(jié)構(gòu)化方法學(xué)把過程和數(shù)據(jù)分離為相互獨(dú)立的實(shí)體,如何使表達(dá)處理過程的程序和表達(dá)處理對(duì)象的數(shù)據(jù)相容便成為極難克服的困難.雖然可以做到一定程度上程序和數(shù)據(jù)的重用,但是無法從根本上解決軟件生產(chǎn)中的“構(gòu)件組裝”問題.面向?qū)ο蟮能浖椒▽W(xué)在被產(chǎn)業(yè)界冷落的20年中日漸成熟,在結(jié)構(gòu)化范型面臨困境的時(shí)候,終于脫穎而出.因較好地解決重用性問題而受到學(xué)術(shù)界和產(chǎn)業(yè)界的青睞,“面向?qū)ο蠓缎汀闭谥饾u地成為主流地位的軟件范型,猶如Windows取代DOS一樣,來勢勇猛、不可阻擋.本文的目的在于描述從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變,分析這種轉(zhuǎn)變產(chǎn)生的影響,提出學(xué)校教育和繼續(xù)教育中必須對(duì)此高度重視,及時(shí)地在課程、教材、實(shí)習(xí)中反映這種轉(zhuǎn)變,使計(jì)算機(jī)專業(yè)的教育和培訓(xùn)與學(xué)術(shù)界和產(chǎn)業(yè)界保持盡可能地同步與接軌,培養(yǎng)出在軟件產(chǎn)業(yè)界直接可用的“成品”,而不是走上社會(huì)后還需半年或一年以上的培訓(xùn)才能工作的“半成品”.2結(jié)構(gòu)化軟件方法學(xué)的基本思想結(jié)構(gòu)化方法(StructureMethod)是程序設(shè)計(jì)方法學(xué)領(lǐng)域和產(chǎn)業(yè)界最早使用的方法,也是長期流行的占主導(dǎo)地位的軟件方法.1966年Bohm和Jacopini證明:只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口、單出口的程序.這三種基本的控制結(jié)構(gòu)是“順序”、“選擇”和“循環(huán)”.將這三種結(jié)構(gòu)用日本日立制作所二村良彥提出的問題分析圖(PAD)表示,分別為圖1(a)、(b)和(c).實(shí)際上,用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)完全可以實(shí)現(xiàn)選擇結(jié)構(gòu),在理論上最基本的控制結(jié)構(gòu)只有兩種.這些研究成果為結(jié)構(gòu)程序技術(shù)奠定了理論基礎(chǔ).人們把支持這3種結(jié)構(gòu)的語言稱為結(jié)構(gòu)化程序設(shè)計(jì)語言,把基于這種理論的設(shè)計(jì)稱為結(jié)構(gòu)化程序設(shè)計(jì),把與此相關(guān)聯(lián)的軟件技術(shù)稱為結(jié)構(gòu)化軟件技術(shù).當(dāng)然,嚴(yán)格地講程序和軟件并不是完全相同的概念,程序設(shè)計(jì)方法學(xué)和軟件工程學(xué)研究的途徑和側(cè)重點(diǎn)也有所差異.但是,隨著信息技術(shù)和產(chǎn)業(yè)的發(fā)展,兩門學(xué)科研究的內(nèi)容和方法相互滲透,兩條途徑的界限逐漸模糊化、一體化了.所以本文并不嚴(yán)格地區(qū)分它們,有時(shí)甚至根據(jù)習(xí)慣,交換使用這些基本一致的術(shù)語.一般地說,結(jié)構(gòu)化軟件方法學(xué)的基本思想是:(1)把順序、分支、循環(huán)3種基本控制結(jié)構(gòu)組成的模塊視為被結(jié)構(gòu)化了的,把結(jié)構(gòu)化的模塊視為一切軟件系統(tǒng)的基本構(gòu)成單位.(2)按照自頂向下、逐步求精的思路,對(duì)現(xiàn)實(shí)的復(fù)雜系統(tǒng)實(shí)行功能分解,把軟件系統(tǒng)逐級(jí)地劃分成若干子系統(tǒng),子系統(tǒng)再分成若干模塊.其中,每個(gè)模塊是可以單獨(dú)編程的結(jié)構(gòu)化單元,它們功能相對(duì)獨(dú)立,接口簡明,界面清楚,編碼、測試、使用和維護(hù)都比較方便.(3)使用一批簡單的結(jié)構(gòu)化的模塊組合成復(fù)雜的軟件系統(tǒng),完成預(yù)定的功能.這樣,結(jié)構(gòu)化方法就能較好地駕馭軟件復(fù)雜性,從而成為實(shí)用的、易操作的軟件方法,在中小規(guī)模軟件開發(fā)中應(yīng)用獲得成功.3面向?qū)ο蟮姆椒▽?duì)象是人們主觀認(rèn)識(shí)的客體.客觀世界由各種各樣的對(duì)象組成.每個(gè)對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律.對(duì)象之間不是孤立的.對(duì)象之間的相互聯(lián)系與作用,構(gòu)成各種各樣的復(fù)雜系統(tǒng).上述認(rèn)識(shí),用計(jì)算機(jī)軟件術(shù)語來描述,則是:每個(gè)對(duì)象的靜態(tài)結(jié)構(gòu)和特征可用特征值來表達(dá),即是數(shù)據(jù);對(duì)象的動(dòng)態(tài)特征和運(yùn)行規(guī)律,就是它的操作(或功能),可以用程序過程來表示.任何對(duì)象的數(shù)據(jù)和操作兩者是緊密聯(lián)系、不可分割的.比如在芯片上存儲(chǔ)數(shù)據(jù)之后,就改變了它的結(jié)構(gòu)或狀態(tài).而結(jié)構(gòu)或狀態(tài)的改變也必然導(dǎo)致功能的改變.面向?qū)ο蟮姆椒?ObjectOrientedMethod)把數(shù)據(jù)和操作通過“封裝”實(shí)現(xiàn)綜合,把對(duì)象內(nèi)部的數(shù)據(jù)和過程對(duì)外部隱蔽起來,只向外部提供一個(gè)窗口發(fā)送和接受消息,實(shí)現(xiàn)對(duì)象間的通訊與相互操作.結(jié)構(gòu)化方法也研究對(duì)象,但它把對(duì)象的數(shù)據(jù)和操作分開.結(jié)構(gòu)化的程序?qū)嶋H上表達(dá)處理數(shù)據(jù)的過程,因此它不面向整個(gè)對(duì)象,主要是面向其中的信息處理過程,簡言之曰,它是面向過程的.面對(duì)象的方法學(xué)認(rèn)為:軟件不能僅是一組處理程序的集合,更不能只是一組數(shù)據(jù),而是一組包含數(shù)據(jù)與該數(shù)據(jù)上操作的對(duì)象的集合;對(duì)象之間的聯(lián)系與互動(dòng)不單是調(diào)用與返回,而是在它們之間發(fā)送與接受消息,通過消息激活機(jī)制把對(duì)象動(dòng)態(tài)地連接在一起,協(xié)同完成復(fù)雜的任務(wù),如圖2所示.軟件的集成不再是增量式的擴(kuò)充與調(diào)試,而是構(gòu)件組裝、“柔性”制造.它將一批具有標(biāo)準(zhǔn)接口的軟件對(duì)象(數(shù)據(jù)與功能的統(tǒng)一)整合成復(fù)雜的系統(tǒng),而不必考慮該對(duì)象產(chǎn)生的硬件平臺(tái)、軟件環(huán)境、程序語言、數(shù)據(jù)庫機(jī)制、不同的網(wǎng)絡(luò)協(xié)議、以及不同的用戶界面.就像汽車總裝廠不必考慮零部件的生產(chǎn)廠家、所用的生產(chǎn)設(shè)備等等,只要求相互間有符合設(shè)計(jì)的標(biāo)準(zhǔn)接口.這樣就可以形成一種“對(duì)象總線”.在總線上流通的不再是數(shù)據(jù)、程序、地址、控制之類,而是對(duì)象組件.這樣對(duì)象范型就為生產(chǎn)可重用的軟件構(gòu)件提供一條有效的途徑,能比結(jié)構(gòu)化范型更好地駕馭軟件的復(fù)雜性.對(duì)象間通過通訊實(shí)現(xiàn)互操作正是新一代客戶/服務(wù)器(Client/Server)模式的實(shí)質(zhì).因?yàn)榫哂袛?shù)據(jù)轉(zhuǎn)換接口的遠(yuǎn)程過程調(diào)用(RPC)機(jī)制,使得對(duì)象間可以相互提供服務(wù),實(shí)現(xiàn)互操作.這樣就能支持因特網(wǎng)(Internet)上的分布對(duì)象計(jì)算.在對(duì)象總線上,任何組件(對(duì)象)都可以相互作用和通信.與抽象類的單個(gè)對(duì)象設(shè)計(jì)不同,框架是協(xié)同完成一些工作的對(duì)象的設(shè)計(jì),為開發(fā)人員提供了一個(gè)內(nèi)部結(jié)構(gòu),它具有豐富的功能和很強(qiáng)的內(nèi)部對(duì)象類之間的聯(lián)接.這樣,在總線上,任何對(duì)象都可運(yùn)行,由框架給出一個(gè)“有序的社會(huì)”(即虛擬社會(huì)、信息的社會(huì)),使得任何遵循約定和規(guī)則的對(duì)象都能合法地運(yùn)行與活動(dòng).而這種對(duì)象的“社會(huì)”是靠傳統(tǒng)的結(jié)構(gòu)化方法與技術(shù)建立不起來的.4可視化框架、方法與工具當(dāng)代軟件工程的發(fā)展正面臨著從傳統(tǒng)的結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變.對(duì)象技術(shù)作為新范型的核心技術(shù)正在得到新的語言、新的系統(tǒng)和新的方法學(xué)的支持.它正在發(fā)展成為21世紀(jì)軟件工程的主流技術(shù).對(duì)象技術(shù)的影響面不僅是軟件工程學(xué)術(shù)界和產(chǎn)業(yè)界,而且是整個(gè)計(jì)算機(jī)科學(xué)界,信息技術(shù)(IT)產(chǎn)業(yè)界.它甚至影響到人們的思維方式,對(duì)哲學(xué)等社會(huì)科學(xué)產(chǎn)生作用.在軟件工程學(xué)術(shù)界,專家、學(xué)者踴躍探索和交流,呈現(xiàn)百家爭鳴的局面.以創(chuàng)立者命名的種種面向?qū)ο蠓椒?比如Booch方法,Coad和Yourdon方法,Jocobson方法,Rumbaugh方法,Wirfs-Brock方法等等不斷出現(xiàn).有的專家,如Hutt,編書列舉并比較16種不同的面向?qū)ο蟮姆治雠c設(shè)計(jì)方法.另一些專家,比如DTkach,WFang等則試圖建立統(tǒng)一的面向?qū)ο蟮姆椒?提出可視化技術(shù)與面向?qū)ο蠓椒ǖ慕Y(jié)合,即可視化建模技術(shù)(VMT),試圖取各家所長,基于現(xiàn)有面向?qū)ο蠓椒ㄖ械某墒旒夹g(shù),采用這些方法中的最好的思想、特色、觀點(diǎn)及技術(shù),并把它們?nèi)诤铣梢粋€(gè)完整的開發(fā)過程.在軟件產(chǎn)業(yè)界,Microsoft公司1993年發(fā)表軟件對(duì)象模型/對(duì)象連接和嵌入標(biāo)準(zhǔn)(COM/OLE).國際對(duì)象管理集團(tuán)(OMG)于1995年推出公共對(duì)象請(qǐng)求代理系統(tǒng)結(jié)構(gòu)規(guī)范(CORBA)2.0.對(duì)象范型已成為軟件工業(yè)標(biāo)準(zhǔn)化的理論和技術(shù)基礎(chǔ).軟件開發(fā)者已經(jīng)(或正在)拋棄沿用幾十年的傳統(tǒng)結(jié)構(gòu)化范型,實(shí)踐新的構(gòu)件組裝模型,如圖3所示.為了向應(yīng)用開發(fā)者和最終用戶提供所需的對(duì)象組件,部分軟件廠商繼續(xù)生產(chǎn)可重用的用戶界面、信息管理、系統(tǒng)管理和任務(wù)管理等公用設(shè)施(CommonFacility).另一些廠商則為不同的專業(yè)領(lǐng)域(如金融、保健、制造、零售、電子貿(mào)易、交通等)的市場提供接口定義語言(IDL)描述的接口和框架以及標(biāo)準(zhǔn)構(gòu)件,從而形成“領(lǐng)域工程”(DomainEngineering).軟件從業(yè)人員的結(jié)構(gòu)發(fā)生新的分化,軟件開發(fā)人員一分為三,即軟件構(gòu)件制作人員,軟件構(gòu)件采購銷售人員,系統(tǒng)分析及軟件裝配人員.5計(jì)算機(jī)專業(yè)課程內(nèi)容設(shè)計(jì)要求面對(duì)學(xué)術(shù)界、產(chǎn)業(yè)界、思想界中正在實(shí)現(xiàn)的由傳統(tǒng)結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變,教育界已經(jīng)開始適應(yīng)這種轉(zhuǎn)變.首先,軟件工程比以往更加受到計(jì)算機(jī)教育專家的重視.比如1999年10月在重慶召開的全國高等院校計(jì)算機(jī)教育研討會(huì)上,美國Illinois大學(xué)教授CarlK.Chang的特邀報(bào)告題為:通向軟件工程時(shí)代的未來計(jì)算機(jī)教育計(jì)劃.這位教授是IEEE和ACM中負(fù)責(zé)制訂計(jì)算機(jī)專業(yè)教育計(jì)劃的委員會(huì)副主席.在美國斯坦福大學(xué)教學(xué)計(jì)劃中,以軟件工程為龍頭形成新的系列課程.理論課包括語言、軟件工程、及軟件工程高級(jí)課題3個(gè)層次;實(shí)踐課包括多種語言編程、單獨(dú)項(xiàng)目開發(fā)及大項(xiàng)目開發(fā)3個(gè)層次.在我國北京大學(xué)等高校把面向?qū)ο蟮姆椒▽W(xué)作為軟件工程的主流技術(shù)講授給學(xué)生.但是,國內(nèi)也有大量的學(xué)校,在非計(jì)算機(jī)專業(yè)中完全不上軟件工程課,只講如何編程序,在計(jì)算機(jī)專業(yè)中只開設(shè)2個(gè)學(xué)分的軟件工程課程,不可能也沒有安排實(shí)踐活動(dòng).有的教師甚至認(rèn)為;軟件工程講座一下就行了.在2個(gè)學(xué)分的軟件工程課中,也基本上介紹傳統(tǒng)僵化的軟件瀑布模型,對(duì)面向?qū)ο蠓椒ㄖv得很少,更談不上動(dòng)手實(shí)踐.結(jié)果,學(xué)生畢業(yè)后要用的未認(rèn)真學(xué),花了時(shí)間和精力學(xué)的卻派不上用場.教育者應(yīng)先受教育,為了把軟件技術(shù)由傳統(tǒng)的結(jié)構(gòu)化方法轉(zhuǎn)移到面向?qū)ο蠓椒?教師必須首先學(xué)習(xí)、研究和實(shí)踐.在繼續(xù)教育、成人教育計(jì)劃中,也應(yīng)當(dāng)把面向?qū)ο蠓缎妥鳛橹匾慕虒W(xué)內(nèi)容.6面向技術(shù)的發(fā)展、實(shí)現(xiàn)和教育的新變革在20世紀(jì)90年代初期,一位美國教授(J.Bien)訪問中國時(shí),看到書店里充斥著DOS書籍,關(guān)于Windows的圖書較少,他指出DOS正在死去,Windows即將占領(lǐng)市場.過了五年的功夫,書市上的Windows取代了昔日DOS書籍的地位.今天,面向?qū)ο蠹夹g(shù)取代結(jié)構(gòu)化軟件技術(shù)的地位也是勢不可擋的歷史潮流.無論是研究人員、市場營銷人員、軟件開發(fā)人員、教師
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 融資居間服務(wù)合同范本
- 二零二五年度寧德監(jiān)獄行政區(qū)特色植物養(yǎng)護(hù)采購協(xié)議4篇
- 房地產(chǎn)市場的政策解讀與展望
- 2025年度木工班組職業(yè)技能提升承包合同樣本4篇
- 2025版綜合交通樞紐建設(shè)項(xiàng)目貸款合同范本4篇
- 2025年山西喜運(yùn)環(huán)??萍加邢薰菊衅腹P試參考題庫含答案解析
- 2025年個(gè)人股份代持及轉(zhuǎn)讓專業(yè)服務(wù)合同3篇
- 遼寧省沈陽市渾南區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末語文試卷
- 二零二五年度程控交換機(jī)設(shè)備性能優(yōu)化與升級(jí)合同4篇
- 2025年浙科版選擇性必修3生物下冊月考試卷
- 診所負(fù)責(zé)人免責(zé)合同范本
- 2024患者十大安全目標(biāo)
- 印度與阿拉伯的數(shù)學(xué)
- 會(huì)陰切開傷口裂開的護(hù)理查房
- 《鋼鐵是怎樣煉成的》選擇題100題(含答案)
- 實(shí)驗(yàn)報(bào)告·測定雞蛋殼中碳酸鈣的質(zhì)量分?jǐn)?shù)
- 部編版小學(xué)語文五年級(jí)下冊集體備課教材分析主講
- 電氣設(shè)備建筑安裝施工圖集
- 《工程結(jié)構(gòu)抗震設(shè)計(jì)》課件 第10章-地下建筑抗震設(shè)計(jì)
- 公司法務(wù)部工作細(xì)則(草案)
- 第18課《文言文二則 鐵杵成針》(學(xué)習(xí)任務(wù)單)- 四年級(jí)語文下冊部編版
評(píng)論
0/150
提交評(píng)論