• <u id="saeeq"><wbr id="saeeq"></wbr></u>
  • <s id="saeeq"><div id="saeeq"></div></s>
  • <u id="saeeq"></u>
  • <u id="saeeq"><noscript id="saeeq"></noscript></u>
  • <s id="saeeq"></s>
  • 軟件技術發展歷程

    文章來源:  |  發布時間:2009-09-02  |  【打印】 【關閉

      

    計算機軟件的發展受到應用和硬件的推動與制約,反之,軟件的發展也推動了應用和硬件的發展。軟件技術發展歷程大致可分為三個不同時期:

    第一是軟件技術發展早期(20世紀5060年代);第二是結構化程序和對象技術發展時期(7080年代);第三是從90年代到現在,軟件工程技術發展新時期。

    1、軟件技術發展早期

    在計算機發展早期,應用領域較窄,主要是科學與工程計算,處理對象是數值數據。1956年在J.Backus領導下為IBM機器研制出第一個實用高級語言Fortran及其翻譯程序。此后,相繼又有多種高級語言問世,從而使設計和編制程序的功效大為提高。這個時期計算機軟件的巨大成就之一,就是在當時的水平上成功地解決了兩個問題:一方面從FortranAlgol60開始設計出了具有高級數據結構和控制結構的高級程序語言,另一方面又發明了將高級語言程序翻譯成機器語言程序的自動轉換技術,即編譯技術。然而,隨著計算機應用領域的逐步擴大,除了科學計算繼續發展以外,出現了大量的數據處理和非數值計算問題。為了充分利用系統資源,出現了操作系統;為了適應大量數據處理問題的需要,開始出現數據庫及其管理系統。軟件規模與復雜性迅速增大。當程序復雜性增加到一定程度以后,軟件研制周期難以控制,正確性難以保證,可靠性問題相當突出。為此,人們提出用結構化程序設計和軟件工程方法來克服這一危機。軟件技術發展進入一個新的階段。

    2、結構化程序和對象技術發展時期

    70年代初開始,大型軟件系統的出現給軟件開發帶來了新問題。大型軟件系統的研制需要花費大量的資金和人力,可是研制出來的產品卻是可靠性差、錯誤多、維護和修改也很困難。一個大型操作系統有時需要幾千人年的工作量,而所獲得的系統又常常會隱藏著幾百甚至幾千個錯誤。程序可靠性很難保證,程序設計工具的嚴重缺乏也使軟件開發陷入困境。

    結構程序設計的討論導致產生了由PascalAda這一系列的結構化語言。這些語言具有較為清晰的控制結構,與原來常見的高級程序語言相比有一定的改進,但在數據類型抽象方面仍顯不足。面向對象技術的興起是這一時期軟件技術發展的主要標志。“面向對象”這一名詞在80年代初由Smalltalk語言的設計者開始提出,而后逐漸流行起來。

    面向對象的程序結構將數據及其上作用的操作一起封裝,組成抽象數據或者叫做對象。具有相同結構屬性和操作的一組對象構成對象類。對象系統就是由一組相關的對象類組成,能夠以更加自然的方式模擬外部世界現實系統的結構和行為。對象的兩大基本特征是信息封裝和繼承。通過信息封裝,在對象數據的外圍好像構筑了一堵“圍墻”,外部只能通過圍墻的“窗口”去觀察和操作圍墻內的數據,這就保證了在復雜的環境條件下對象數據操作的安全性和一致性。通過對象繼承可實現對象類代碼的可重用性和可擴充性。可重用性使能處理父、子類之間具有相似結構的對象共同部分,避免代碼一遍又一遍的重復。可擴充性使能處理對象類在不同情況下的多樣性,在原有代碼的基礎上進行擴充和具體化,以求適應不同的需要。

    傳統的面向過程的軟件系統以過程為中心。過程是一種系統功能的實現,而面向對象的軟件系統是以數據為中心。與系統功能相比,數據結構是軟件系統中相對穩定的部分。對象類及其屬性和服務的定義在時間上保持相對穩定,還能提供一定的擴充能力,這是十分重要的事情,這樣就可大為節省軟件生命周期內系統開發和維護的開銷。就像建筑物的地基對于建筑物的壽命十分重要一樣,信息系統以數據對象為基礎構筑,其系統穩定性就會十分牢固。到20世紀80年代中期以后,軟件的蓬勃發展更來源于當時兩大技術進步的推動力:一是微機工作站的普及應用,另一是高速網絡的出現。其導致的直接結果是:一個大規模的應用軟件,可以由分布在網絡上不同站點機的軟件協同工作去完成。由于軟件本身的特殊性和多樣性,在大規模軟件開發時,人們幾乎總是面臨困難處境。軟件工程面臨許多新問題和新挑戰,而進入一個新的發展時期。

    3、軟件工程技術發展新時期

    自從軟件工程名詞誕生,歷經三十余年的研究和開發,人們深刻認識到,軟件開發必須按照工程化的原理和方法來組織和實施。軟件工程技術在軟件開發方法和軟件開發工具方面,在軟件工程發展的早期,特別是20世紀7080年代軟件蓬勃發展時期,已經取得了非常重要的進步。軟件工程作為一個學科方向,愈來愈受到人們的重視。但是,隨著大規模網絡應用軟件的出現所帶來的新問題,使得軟件工程中,在如何協調合理預算、控制開發進度和保證軟件質量等方面,軟件人員面臨更加困難的境地。

    進入20世紀90年代,InternetWWW技術的蓬勃發展使軟件工程進入一個新的技術發展時期。以軟件組件復用為代表,基于組件的軟件工程技術正在使軟件開發方式發生巨大改變。早年軟件危機中提出的嚴重問題,有望從此開始找到切實可行的解決途徑。在這個時期軟件工程技術發展代表性標志在三個方面,即:

    基于組件的軟件工程和開發方法成為主流。組件是自包含的,具有相對獨立的功能特性和具體實現,并為應用提供預定義好的服務接口。組件化軟件工程是通過使用可復用組件來開發、運行和維護軟件系統的方法、技術和過程。

    軟件過程管理進入軟件工程的核心進程和操作規范。軟件工程管理應以軟件過程管理為中心去實施,貫穿于軟件開發過程的始終。在軟件過程管理得到保證的前提下,軟件開發進度和產品質量也就隨之得到保證。

    網絡應用軟件規模愈來愈大,復雜性愈來愈高,使得軟件體系結構從兩層向三層或者多層結構轉移,使應用的基礎架構和業務邏輯相分離。應用的基礎架構由提供各種中間件系統服務組合而成的軟件平臺來支持,軟件平臺化成為軟件工程技術發展的新趨勢。軟件平臺為各種應用軟件提供一體化的開放平臺,既可保證應用軟件所要求基礎系統架構的可靠性、可伸縮性和安全性的要求;又可使應用軟件開發人員和用戶只要集中關注應用軟件的具體業務邏輯實現,而不必關注其底層的技術細節。當應用需求發生變化時,只要變更軟件平臺之上的業務邏輯和相應的組件實施就行了。

    以上這些標志象征軟件工程技術已經發展上升到一個新階段。這個階段尚遠未結束。軟件技術發展日新月異,Internet的進步促使計算機技術和通信技術相結合,更使軟件技術發展呈五彩繽紛局面。軟件工程技術的發展也永無止境。

    (本文摘自《現代軟件技術》)

  • <u id="saeeq"><wbr id="saeeq"></wbr></u>
  • <s id="saeeq"><div id="saeeq"></div></s>
  • <u id="saeeq"></u>
  • <u id="saeeq"><noscript id="saeeq"></noscript></u>
  • <s id="saeeq"></s>
  • 久久久综合香蕉尹人综合网