從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變_第1頁(yè)
從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變_第2頁(yè)
從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變_第3頁(yè)
從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變

1計(jì)算機(jī)專(zhuān)業(yè)教育對(duì)象的特殊性一般來(lái)說(shuō),風(fēng)格是觀察和分析問(wèn)題的方法論。在計(jì)算機(jī)軟件技術(shù)中,軟件范型是指軟件的組織和結(jié)構(gòu)設(shè)計(jì)技術(shù)。它不僅指軟件靜態(tài)的組織和結(jié)構(gòu)模型,還指動(dòng)態(tài)軟件開(kāi)發(fā)和結(jié)構(gòu)的模型。軟件和軟件流程是相同問(wèn)題的兩個(gè)方面。為了獲得和理解整個(gè)軟件的內(nèi)容,例如范圍、使用、意義和價(jià)值,我們必須同時(shí)從這兩個(gè)方面來(lái)理解它。軟件范型是軟件工程學(xué)中十分重要的概念、原則和思維模式.嚴(yán)格地說(shuō),軟件工程學(xué)是一門(mén)應(yīng)用性的工程學(xué)科,也可以稱(chēng)之為計(jì)算機(jī)科學(xué)與工程科學(xué)的交叉學(xué)科.它的宗旨是應(yīng)用工程學(xué)的方法和技術(shù),研究軟件開(kāi)發(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)造與開(kāi)發(fā)模式,人們稱(chēng)之為“結(jié)構(gòu)化范型”.由于結(jié)構(gòu)化方法學(xué)把過(guò)程和數(shù)據(jù)分離為相互獨(dú)立的實(shí)體,如何使表達(dá)處理過(guò)程的程序和表達(dá)處理對(duì)象的數(shù)據(jù)相容便成為極難克服的困難.雖然可以做到一定程度上程序和數(shù)據(jù)的重用,但是無(wú)法從根本上解決軟件生產(chǎn)中的“構(gòu)件組裝”問(wèn)題.面向?qū)ο蟮能浖椒▽W(xué)在被產(chǎn)業(yè)界冷落的20年中日漸成熟,在結(jié)構(gòu)化范型面臨困境的時(shí)候,終于脫穎而出.因較好地解決重用性問(wèn)題而受到學(xué)術(shù)界和產(chǎn)業(yè)界的青睞,“面向?qū)ο蠓缎汀闭谥饾u地成為主流地位的軟件范型,猶如Windows取代DOS一樣,來(lái)勢(shì)勇猛、不可阻擋.本文的目的在于描述從結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變,分析這種轉(zhuǎn)變產(chǎn)生的影響,提出學(xué)校教育和繼續(xù)教育中必須對(duì)此高度重視,及時(shí)地在課程、教材、實(shí)習(xí)中反映這種轉(zhuǎn)變,使計(jì)算機(jī)專(zhuān)業(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è)界最早使用的方法,也是長(zhǎng)期流行的占主導(dǎo)地位的軟件方法.1966年Bohm和Jacopini證明:只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口、單出口的程序.這三種基本的控制結(jié)構(gòu)是“順序”、“選擇”和“循環(huán)”.將這三種結(jié)構(gòu)用日本日立制作所二村良彥提出的問(wèn)題分析圖(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)的語(yǔ)言稱(chēng)為結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,把基于這種理論的設(shè)計(jì)稱(chēng)為結(jié)構(gòu)化程序設(shè)計(jì),把與此相關(guān)聯(lián)的軟件技術(shù)稱(chēng)為結(jié)構(gòu)化軟件技術(shù).當(dāng)然,嚴(yán)格地講程序和軟件并不是完全相同的概念,程序設(shè)計(jì)方法學(xué)和軟件工程學(xué)研究的途徑和側(cè)重點(diǎn)也有所差異.但是,隨著信息技術(shù)和產(chǎn)業(yè)的發(fā)展,兩門(mén)學(xué)科研究的內(nèi)容和方法相互滲透,兩條途徑的界限逐漸模糊化、一體化了.所以本文并不嚴(yán)格地區(qū)分它們,有時(shí)甚至根據(jù)習(xí)慣,交換使用這些基本一致的術(shù)語(yǔ).一般地說(shuō),結(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ú)立,接口簡(jiǎn)明,界面清楚,編碼、測(cè)試、使用和維護(hù)都比較方便.(3)使用一批簡(jiǎn)單的結(jié)構(gòu)化的模塊組合成復(fù)雜的軟件系統(tǒng),完成預(yù)定的功能.這樣,結(jié)構(gòu)化方法就能較好地駕馭軟件復(fù)雜性,從而成為實(shí)用的、易操作的軟件方法,在中小規(guī)模軟件開(kāi)發(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ù)語(yǔ)來(lái)描述,則是:每個(gè)對(duì)象的靜態(tài)結(jié)構(gòu)和特征可用特征值來(lái)表達(dá),即是數(shù)據(jù);對(duì)象的動(dòng)態(tài)特征和運(yùn)行規(guī)律,就是它的操作(或功能),可以用程序過(guò)程來(lái)表示.任何對(duì)象的數(shù)據(jù)和操作兩者是緊密聯(lián)系、不可分割的.比如在芯片上存儲(chǔ)數(shù)據(jù)之后,就改變了它的結(jié)構(gòu)或狀態(tài).而結(jié)構(gòu)或狀態(tài)的改變也必然導(dǎo)致功能的改變.面向?qū)ο蟮姆椒?ObjectOrientedMethod)把數(shù)據(jù)和操作通過(guò)“封裝”實(shí)現(xiàn)綜合,把對(duì)象內(nèi)部的數(shù)據(jù)和過(guò)程對(duì)外部隱蔽起來(lái),只向外部提供一個(gè)窗口發(fā)送和接受消息,實(shí)現(xiàn)對(duì)象間的通訊與相互操作.結(jié)構(gòu)化方法也研究對(duì)象,但它把對(duì)象的數(shù)據(jù)和操作分開(kāi).結(jié)構(gòu)化的程序?qū)嶋H上表達(dá)處理數(shù)據(jù)的過(guò)程,因此它不面向整個(gè)對(duì)象,主要是面向其中的信息處理過(guò)程,簡(jiǎn)言之曰,它是面向過(guò)程的.面對(duì)象的方法學(xué)認(rèn)為:軟件不能僅是一組處理程序的集合,更不能只是一組數(shù)據(jù),而是一組包含數(shù)據(jù)與該數(shù)據(jù)上操作的對(duì)象的集合;對(duì)象之間的聯(lián)系與互動(dòng)不單是調(diào)用與返回,而是在它們之間發(fā)送與接受消息,通過(guò)消息激活機(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)境、程序語(yǔ)言、數(shù)據(jù)庫(kù)機(jī)制、不同的網(wǎng)絡(luò)協(xié)議、以及不同的用戶(hù)界面.就像汽車(chē)總裝廠不必考慮零部件的生產(chǎn)廠家、所用的生產(chǎn)設(shè)備等等,只要求相互間有符合設(shè)計(jì)的標(biāo)準(zhǔn)接口.這樣就可以形成一種“對(duì)象總線”.在總線上流通的不再是數(shù)據(jù)、程序、地址、控制之類(lèi),而是對(duì)象組件.這樣對(duì)象范型就為生產(chǎn)可重用的軟件構(gòu)件提供一條有效的途徑,能比結(jié)構(gòu)化范型更好地駕馭軟件的復(fù)雜性.對(duì)象間通過(guò)通訊實(shí)現(xiàn)互操作正是新一代客戶(hù)/服務(wù)器(Client/Server)模式的實(shí)質(zhì).因?yàn)榫哂袛?shù)據(jù)轉(zhuǎn)換接口的遠(yuǎn)程過(guò)程調(diào)用(RPC)機(jī)制,使得對(duì)象間可以相互提供服務(wù),實(shí)現(xiàn)互操作.這樣就能支持因特網(wǎng)(Internet)上的分布對(duì)象計(jì)算.在對(duì)象總線上,任何組件(對(duì)象)都可以相互作用和通信.與抽象類(lèi)的單個(gè)對(duì)象設(shè)計(jì)不同,框架是協(xié)同完成一些工作的對(duì)象的設(shè)計(jì),為開(kāi)發(fā)人員提供了一個(gè)內(nèi)部結(jié)構(gòu),它具有豐富的功能和很強(qiáng)的內(nèi)部對(duì)象類(lèi)之間的聯(lián)接.這樣,在總線上,任何對(duì)象都可運(yùn)行,由框架給出一個(gè)“有序的社會(huì)”(即虛擬社會(huì)、信息的社會(huì)),使得任何遵循約定和規(guī)則的對(duì)象都能合法地運(yùn)行與活動(dòng).而這種對(duì)象的“社會(huì)”是靠傳統(tǒng)的結(jié)構(gòu)化方法與技術(shù)建立不起來(lái)的.4可視化框架、方法與工具當(dāng)代軟件工程的發(fā)展正面臨著從傳統(tǒng)的結(jié)構(gòu)化范型到面向?qū)ο蠓缎偷霓D(zhuǎn)變.對(duì)象技術(shù)作為新范型的核心技術(shù)正在得到新的語(yǔ)言、新的系統(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ù)界,專(zhuān)家、學(xué)者踴躍探索和交流,呈現(xiàn)百家爭(zhēng)鳴的局面.以創(chuàng)立者命名的種種面向?qū)ο蠓椒?比如Booch方法,Coad和Yourdon方法,Jocobson方法,Rumbaugh方法,Wirfs-Brock方法等等不斷出現(xiàn).有的專(zhuān)家,如Hutt,編書(shū)列舉并比較16種不同的面向?qū)ο蟮姆治雠c設(shè)計(jì)方法.另一些專(zhuān)家,比如DTkach,WFang等則試圖建立統(tǒng)一的面向?qū)ο蟮姆椒?提出可視化技術(shù)與面向?qū)ο蠓椒ǖ慕Y(jié)合,即可視化建模技術(shù)(VMT),試圖取各家所長(zhǎng),基于現(xiàn)有面向?qū)ο蠓椒ㄖ械某墒旒夹g(shù),采用這些方法中的最好的思想、特色、觀點(diǎn)及技術(shù),并把它們?nèi)诤铣梢粋€(gè)完整的開(kāi)發(fā)過(guò)程.在軟件產(chǎn)業(yè)界,Microsoft公司1993年發(fā)表軟件對(duì)象模型/對(duì)象連接和嵌入標(biāo)準(zhǔn)(COM/OLE).國(guó)際對(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ǔ).軟件開(kāi)發(fā)者已經(jīng)(或正在)拋棄沿用幾十年的傳統(tǒng)結(jié)構(gòu)化范型,實(shí)踐新的構(gòu)件組裝模型,如圖3所示.為了向應(yīng)用開(kāi)發(fā)者和最終用戶(hù)提供所需的對(duì)象組件,部分軟件廠商繼續(xù)生產(chǎn)可重用的用戶(hù)界面、信息管理、系統(tǒng)管理和任務(wù)管理等公用設(shè)施(CommonFacility).另一些廠商則為不同的專(zhuān)業(yè)領(lǐng)域(如金融、保健、制造、零售、電子貿(mào)易、交通等)的市場(chǎng)提供接口定義語(yǔ)言(IDL)描述的接口和框架以及標(biāo)準(zhǔn)構(gòu)件,從而形成“領(lǐng)域工程”(DomainEngineering).軟件從業(yè)人員的結(jié)構(gòu)發(fā)生新的分化,軟件開(kāi)發(fā)人員一分為三,即軟件構(gòu)件制作人員,軟件構(gòu)件采購(gòu)銷(xiāo)售人員,系統(tǒng)分析及軟件裝配人員.5計(jì)算機(jī)專(zhuān)業(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)開(kāi)始適應(yīng)這種轉(zhuǎn)變.首先,軟件工程比以往更加受到計(jì)算機(jī)教育專(zhuān)家的重視.比如1999年10月在重慶召開(kāi)的全國(guó)高等院校計(jì)算機(jī)教育研討會(huì)上,美國(guó)Illinois大學(xué)教授CarlK.Chang的特邀報(bào)告題為:通向軟件工程時(shí)代的未來(lái)計(jì)算機(jī)教育計(jì)劃.這位教授是IEEE和ACM中負(fù)責(zé)制訂計(jì)算機(jī)專(zhuān)業(yè)教育計(jì)劃的委員會(huì)副主席.在美國(guó)斯坦福大學(xué)教學(xué)計(jì)劃中,以軟件工程為龍頭形成新的系列課程.理論課包括語(yǔ)言、軟件工程、及軟件工程高級(jí)課題3個(gè)層次;實(shí)踐課包括多種語(yǔ)言編程、單獨(dú)項(xiàng)目開(kāi)發(fā)及大項(xiàng)目開(kāi)發(fā)3個(gè)層次.在我國(guó)北京大學(xué)等高校把面向?qū)ο蟮姆椒▽W(xué)作為軟件工程的主流技術(shù)講授給學(xué)生.但是,國(guó)內(nèi)也有大量的學(xué)校,在非計(jì)算機(jī)專(zhuān)業(yè)中完全不上軟件工程課,只講如何編程序,在計(jì)算機(jī)專(zhuān)業(yè)中只開(kāi)設(shè)2個(gè)學(xué)分的軟件工程課程,不可能也沒(méi)有安排實(shí)踐活動(dòng).有的教師甚至認(rèn)為;軟件工程講座一下就行了.在2個(gè)學(xué)分的軟件工程課中,也基本上介紹傳統(tǒng)僵化的軟件瀑布模型,對(duì)面向?qū)ο蠓椒ㄖv得很少,更談不上動(dòng)手實(shí)踐.結(jié)果,學(xué)生畢業(yè)后要用的未認(rèn)真學(xué),花了時(shí)間和精力學(xué)的卻派不上用場(chǎng).教育者應(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年代初期,一位美國(guó)教授(J.Bien)訪問(wèn)中國(guó)時(shí),看到書(shū)店里充斥著DOS書(shū)籍,關(guān)于Windows的圖書(shū)較少,他指出DOS正在死去,Windows即將占領(lǐng)市場(chǎng).過(guò)了五年的功夫,書(shū)市上的Windows取代了昔日DOS書(shū)籍的地位.今天,面向?qū)ο蠹夹g(shù)取代結(jié)構(gòu)化軟件技術(shù)的地位也是勢(shì)不可擋的歷史潮流.無(wú)論是研究人員、市場(chǎng)營(yíng)銷(xiāo)人員、軟件開(kāi)發(fā)人員、教師

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論