從結構化范型到面向對象范型的轉變_第1頁
從結構化范型到面向對象范型的轉變_第2頁
從結構化范型到面向對象范型的轉變_第3頁
從結構化范型到面向對象范型的轉變_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

從結構化范型到面向對象范型的轉變

1計算機專業教育對象的特殊性一般來說,風格是觀察和分析問題的方法論。在計算機軟件技術中,軟件范型是指軟件的組織和結構設計技術。它不僅指軟件靜態的組織和結構模型,還指動態軟件開發和結構的模型。軟件和軟件流程是相同問題的兩個方面。為了獲得和理解整個軟件的內容,例如范圍、使用、意義和價值,我們必須同時從這兩個方面來理解它。軟件范型是軟件工程學中十分重要的概念、原則和思維模式.嚴格地說,軟件工程學是一門應用性的工程學科,也可以稱之為計算機科學與工程科學的交叉學科.它的宗旨是應用工程學的方法和技術,研究軟件開發與維護的方法、工具和管理,其目標是提高軟件質量和軟件生產效率.自1968年北大西洋公約組織的一次計算機學術會議上提出“軟件工程”(SoftwareEngineering)概念以后,學術界形成了眾多軟件方法學的分支,比如結構化方法,有限狀態機方法,PETRI方法,形式化方法,面向對象方法等.其中,結構化方法發展最快,在軟件產業界得到廣泛的接受和使用,較早成為占主導地位的軟件構造與開發模式,人們稱之為“結構化范型”.由于結構化方法學把過程和數據分離為相互獨立的實體,如何使表達處理過程的程序和表達處理對象的數據相容便成為極難克服的困難.雖然可以做到一定程度上程序和數據的重用,但是無法從根本上解決軟件生產中的“構件組裝”問題.面向對象的軟件方法學在被產業界冷落的20年中日漸成熟,在結構化范型面臨困境的時候,終于脫穎而出.因較好地解決重用性問題而受到學術界和產業界的青睞,“面向對象范型”正在逐漸地成為主流地位的軟件范型,猶如Windows取代DOS一樣,來勢勇猛、不可阻擋.本文的目的在于描述從結構化范型到面向對象范型的轉變,分析這種轉變產生的影響,提出學校教育和繼續教育中必須對此高度重視,及時地在課程、教材、實習中反映這種轉變,使計算機專業的教育和培訓與學術界和產業界保持盡可能地同步與接軌,培養出在軟件產業界直接可用的“成品”,而不是走上社會后還需半年或一年以上的培訓才能工作的“半成品”.2結構化軟件方法學的基本思想結構化方法(StructureMethod)是程序設計方法學領域和產業界最早使用的方法,也是長期流行的占主導地位的軟件方法.1966年Bohm和Jacopini證明:只用三種基本的控制結構就能實現任何單入口、單出口的程序.這三種基本的控制結構是“順序”、“選擇”和“循環”.將這三種結構用日本日立制作所二村良彥提出的問題分析圖(PAD)表示,分別為圖1(a)、(b)和(c).實際上,用順序結構和循環結構完全可以實現選擇結構,在理論上最基本的控制結構只有兩種.這些研究成果為結構程序技術奠定了理論基礎.人們把支持這3種結構的語言稱為結構化程序設計語言,把基于這種理論的設計稱為結構化程序設計,把與此相關聯的軟件技術稱為結構化軟件技術.當然,嚴格地講程序和軟件并不是完全相同的概念,程序設計方法學和軟件工程學研究的途徑和側重點也有所差異.但是,隨著信息技術和產業的發展,兩門學科研究的內容和方法相互滲透,兩條途徑的界限逐漸模糊化、一體化了.所以本文并不嚴格地區分它們,有時甚至根據習慣,交換使用這些基本一致的術語.一般地說,結構化軟件方法學的基本思想是:(1)把順序、分支、循環3種基本控制結構組成的模塊視為被結構化了的,把結構化的模塊視為一切軟件系統的基本構成單位.(2)按照自頂向下、逐步求精的思路,對現實的復雜系統實行功能分解,把軟件系統逐級地劃分成若干子系統,子系統再分成若干模塊.其中,每個模塊是可以單獨編程的結構化單元,它們功能相對獨立,接口簡明,界面清楚,編碼、測試、使用和維護都比較方便.(3)使用一批簡單的結構化的模塊組合成復雜的軟件系統,完成預定的功能.這樣,結構化方法就能較好地駕馭軟件復雜性,從而成為實用的、易操作的軟件方法,在中小規模軟件開發中應用獲得成功.3面向對象的方法對象是人們主觀認識的客體.客觀世界由各種各樣的對象組成.每個對象都有各自的內部狀態和運動規律.對象之間不是孤立的.對象之間的相互聯系與作用,構成各種各樣的復雜系統.上述認識,用計算機軟件術語來描述,則是:每個對象的靜態結構和特征可用特征值來表達,即是數據;對象的動態特征和運行規律,就是它的操作(或功能),可以用程序過程來表示.任何對象的數據和操作兩者是緊密聯系、不可分割的.比如在芯片上存儲數據之后,就改變了它的結構或狀態.而結構或狀態的改變也必然導致功能的改變.面向對象的方法(ObjectOrientedMethod)把數據和操作通過“封裝”實現綜合,把對象內部的數據和過程對外部隱蔽起來,只向外部提供一個窗口發送和接受消息,實現對象間的通訊與相互操作.結構化方法也研究對象,但它把對象的數據和操作分開.結構化的程序實際上表達處理數據的過程,因此它不面向整個對象,主要是面向其中的信息處理過程,簡言之曰,它是面向過程的.面對象的方法學認為:軟件不能僅是一組處理程序的集合,更不能只是一組數據,而是一組包含數據與該數據上操作的對象的集合;對象之間的聯系與互動不單是調用與返回,而是在它們之間發送與接受消息,通過消息激活機制把對象動態地連接在一起,協同完成復雜的任務,如圖2所示.軟件的集成不再是增量式的擴充與調試,而是構件組裝、“柔性”制造.它將一批具有標準接口的軟件對象(數據與功能的統一)整合成復雜的系統,而不必考慮該對象產生的硬件平臺、軟件環境、程序語言、數據庫機制、不同的網絡協議、以及不同的用戶界面.就像汽車總裝廠不必考慮零部件的生產廠家、所用的生產設備等等,只要求相互間有符合設計的標準接口.這樣就可以形成一種“對象總線”.在總線上流通的不再是數據、程序、地址、控制之類,而是對象組件.這樣對象范型就為生產可重用的軟件構件提供一條有效的途徑,能比結構化范型更好地駕馭軟件的復雜性.對象間通過通訊實現互操作正是新一代客戶/服務器(Client/Server)模式的實質.因為具有數據轉換接口的遠程過程調用(RPC)機制,使得對象間可以相互提供服務,實現互操作.這樣就能支持因特網(Internet)上的分布對象計算.在對象總線上,任何組件(對象)都可以相互作用和通信.與抽象類的單個對象設計不同,框架是協同完成一些工作的對象的設計,為開發人員提供了一個內部結構,它具有豐富的功能和很強的內部對象類之間的聯接.這樣,在總線上,任何對象都可運行,由框架給出一個“有序的社會”(即虛擬社會、信息的社會),使得任何遵循約定和規則的對象都能合法地運行與活動.而這種對象的“社會”是靠傳統的結構化方法與技術建立不起來的.4可視化框架、方法與工具當代軟件工程的發展正面臨著從傳統的結構化范型到面向對象范型的轉變.對象技術作為新范型的核心技術正在得到新的語言、新的系統和新的方法學的支持.它正在發展成為21世紀軟件工程的主流技術.對象技術的影響面不僅是軟件工程學術界和產業界,而且是整個計算機科學界,信息技術(IT)產業界.它甚至影響到人們的思維方式,對哲學等社會科學產生作用.在軟件工程學術界,專家、學者踴躍探索和交流,呈現百家爭鳴的局面.以創立者命名的種種面向對象方法,比如Booch方法,Coad和Yourdon方法,Jocobson方法,Rumbaugh方法,Wirfs-Brock方法等等不斷出現.有的專家,如Hutt,編書列舉并比較16種不同的面向對象的分析與設計方法.另一些專家,比如DTkach,WFang等則試圖建立統一的面向對象的方法,提出可視化技術與面向對象方法的結合,即可視化建模技術(VMT),試圖取各家所長,基于現有面向對象方法中的成熟技術,采用這些方法中的最好的思想、特色、觀點及技術,并把它們融合成一個完整的開發過程.在軟件產業界,Microsoft公司1993年發表軟件對象模型/對象連接和嵌入標準(COM/OLE).國際對象管理集團(OMG)于1995年推出公共對象請求代理系統結構規范(CORBA)2.0.對象范型已成為軟件工業標準化的理論和技術基礎.軟件開發者已經(或正在)拋棄沿用幾十年的傳統結構化范型,實踐新的構件組裝模型,如圖3所示.為了向應用開發者和最終用戶提供所需的對象組件,部分軟件廠商繼續生產可重用的用戶界面、信息管理、系統管理和任務管理等公用設施(CommonFacility).另一些廠商則為不同的專業領域(如金融、保健、制造、零售、電子貿易、交通等)的市場提供接口定義語言(IDL)描述的接口和框架以及標準構件,從而形成“領域工程”(DomainEngineering).軟件從業人員的結構發生新的分化,軟件開發人員一分為三,即軟件構件制作人員,軟件構件采購銷售人員,系統分析及軟件裝配人員.5計算機專業課程內容設計要求面對學術界、產業界、思想界中正在實現的由傳統結構化范型到面向對象范型的轉變,教育界已經開始適應這種轉變.首先,軟件工程比以往更加受到計算機教育專家的重視.比如1999年10月在重慶召開的全國高等院校計算機教育研討會上,美國Illinois大學教授CarlK.Chang的特邀報告題為:通向軟件工程時代的未來計算機教育計劃.這位教授是IEEE和ACM中負責制訂計算機專業教育計劃的委員會副主席.在美國斯坦福大學教學計劃中,以軟件工程為龍頭形成新的系列課程.理論課包括語言、軟件工程、及軟件工程高級課題3個層次;實踐課包括多種語言編程、單獨項目開發及大項目開發3個層次.在我國北京大學等高校把面向對象的方法學作為軟件工程的主流技術講授給學生.但是,國內也有大量的學校,在非計算機專業中完全不上軟件工程課,只講如何編程序,在計算機專業中只開設2個學分的軟件工程課程,不可能也沒有安排實踐活動.有的教師甚至認為;軟件工程講座一下就行了.在2個學分的軟件工程課中,也基本上介紹傳統僵化的軟件瀑布模型,對面向對象方法講得很少,更談不上動手實踐.結果,學生畢業后要用的未認真學,花了時間和精力學的卻派不上用場.教育者應先受教育,為了把軟件技術由傳統的結構化方法轉移到面向對象方法,教師必須首先學習、研究和實踐.在繼續教育、成人教育計劃中,也應當把面向對象范型作為重要的教學內容.6面向技術的發展、實現和教育的新變革在20世紀90年代初期,一位美國教授(J.Bien)訪問中國時,看到書店里充斥著DOS書籍,關于Windows的圖書較少,他指出DOS正在死去,Windows即將占領市場.過了五年的功夫,書市上的Windows取代了昔日DOS書籍的地位.今天,面向對象技術取代結構化軟件技術的地位也是勢不可擋的歷史潮流.無論是研究人員、市場營銷人員、軟件開發人員、教師

溫馨提示

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

評論

0/150

提交評論