當前位置:文思屋>學習教育>畢業論文>

軟體工程的歷史與發展趨勢

文思屋 人氣:1.01W

論文摘要:軟體是一種特殊的產品,隨著其規模和複雜性的提高、使用範圍的擴大,需要從技術和管理兩方面對軟體的開發過程進行控制。從軟體工程這門學科和技術出現的背景出發,回顧了軟體工程在近40年來理論、方法和實踐中的成果。最後結合Internet技術和平臺的挑戰,初步討論了軟體工程需要面對的新挑戰。

軟體工程的歷史與發展趨勢

論文關鍵詞:軟體危機;構件;體系結構;軟體專案管理;中介軟體

1軟體工程的出現

1.1軟體危機
  20世紀中期,計算機剛被從軍用領域轉向民用領域使用,那時編寫程式的工作被視同為藝術家的創作。當時的計算機硬體非常昂貴,程式設計人員追求的是如何在有限的處理器能力和儲存器空間約束下,編寫出執行速度快、體積小的程式。程式中充滿了各種各樣讓人迷惑的技巧。這時的軟體生產非常依賴於開發人員的聰明才智。
到了20世紀60年代,計算機的應用範圍得到較大擴充套件,對軟體系統的需求和軟體自身的複雜度急劇上升,傳統的開發方法無法適應使用者在質量、效率等方面對軟體的需求。這就是所謂的“軟體危機”。
  為解決這個問題,1968年NATO會議上首次提出“軟體工程”(SotfwraeEngineeirng)的概念,提出把軟體開發從“藝術”和“個體行為”向“工程”和“群體協同工作”轉化。其基本思想是應用電腦科學理論和技術以及工程管理原則和方法,按照預算和進度,實現滿使用者要求的軟體產品的定義、開發、釋出和維護的工程。從此也誕生了一門新的學科——軟體工程。
  迄今為之,為了達到最初設定的目標,軟體工程界已經提出了一系列的理論、方法、語言和工具,解決了軟體開發過程中的若干問題。但是,由於軟體固有的複雜性、易變性和不可見性,軟體開發週期長、代價高和質量低的問題依然存在。IEEE在2002年發表的報告指出,即使是IT產業最發達的美國,在2001年美國本土公司開發的軟體產品中平均每1000行程式碼中有0.37個錯誤,對於美國之外的其他國家,這個比例更高。

1.2軟體與其他產品的差異
  軟體是一種特殊的產品,人們通常看到的`是它的載體,而真正具有意義的是載體上的計算機或資訊。
  軟體既不同於通常的精神產品,也不同於常見的物質產品。作家的作品是一種精神產品,它沒有使用價值卻可以供人閱讀欣賞。若把軟體也看成是一種作品,卻發現其價值在於供人們使用,無人喜歡讀它的原始碼。論文下載
  軟體也與傳統的工業產品不同。工業產品在設計好之後,主要的成本是原材料成本、生產過程的開銷等,但生產任何軟體的主要成本是設計、實現軟體時的成本,以及軟體投入使用後的維護成本,在生產線上製造軟體的成本非常低。使用者購買某種商品後,就擁有了該商品的所有權和使用權。可是使用者買來的軟體卻只擁有它的有限“使用權”。工業產品會隨著使用而磨損、報廢,但軟體在使用過程不會有任何磨損,在相同的硬體條件下使用者1年前使用的軟體和5年後使用該軟體無任何差別。傳統的工業產品在車間裡生產,生產過程可見、可觸控,也容易衡量生產過程中的消耗和進展。可是軟體的開發過程在人的大腦裡,很難度量其進度。
  所謂的“軟體工程”就是要這種過程“視覺化”、“定量化”,把看不見的思維活動變成看得見的“文件”或者其他看得見的東西。

2軟體工程方法和技術

30多年來,軟體工程的研究和實踐取得了長足的進展,儘管目前離徹底解決“軟體危機”還有相當的差距(對是否能徹底解決目前也存在爭議),但軟體工程的方法對軟體產業的發展還是起到了很大的推動作用。從20世紀60年代以來,陸續出現了結構化程式設計技術、計算機輔助軟體工程(CASE)、物件導向語言和方法、軟體過程及軟體過程改善研究等一系列成果,並應用到實踐中。目前軟體工程中主要使用的方法和技術可以分成技術和管理兩類。

2.1技術的角度
  主要包括:軟體開發範型、軟體設計方法。軟體開發範型關注軟體工程的方向,即如何才是正確的編寫滿足需求的軟體;軟體設計方法關注軟體工程的“途徑”,即研究怎樣完成從高層概念模型到低層概念模型的對映。
  軟體工程理論在實踐中應用時重點放在軟體複用上。參考目前成熟的工業產品的開發模式,軟體複用可以在軟體開發中避免重複勞動,它以已有的成果為基礎,充分利用過去開發應用系統中積累的知識和經驗,將開發的重點集中於新應用的特有構成成分上。通過使用軟體複用技術,開發應用系統時可以充分利用已有的開發成果,消除軟體生命週期中的許多重複勞動,提高軟體開發的效率。同時,複用高質量的已有成果,可以避免重新開發時引入的錯誤,從而提高軟體質量。