軟體工程的發展歷史概論

2021-08-22 05:22:32 字數 2483 閱讀 5391

1.世界上第乙個計算機程式設計師

第乙個寫軟體的人是ada(augusta ada lovelace),在2023年代她嘗試為 babbage(charles babbage)的機械式計算機寫軟體。儘管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。她的父親就是那個狂熱的,不趨炎附勢的激進詩人和冒險家拜倫。她本身也是乙個光彩照人的人物—數學尖子和某種程度上的賭徒。她最重要的貢獻來自於與發明家charles babbage的合作,從而設計出世界上首批大型計算機—difference engine和analytical engine。她甚至認為如果有正確的指令,babbage的機器可以用來作曲,這是乙個多麼瘋狂的想法,因為當時大多數人只把它看成是乙個機械化算盤,而她卻有渲染力和感召力來傳播她的思想。

2.現代計算機軟體的出現

20世紀50年代,軟體伴隨著第一台電子計算機的問世誕生了。以寫軟體為職業的人也開始出現,他們多是經過訓練的數學家和電子工程師。2023年代美國大學裡開始出現授予計算機專業的學位,教人們寫軟體。

在計算機系統發展的初期,硬體通常用來執行乙個單一的程式,而這個程式又是為乙個特定的目的而編制的。早期當通用硬體成為平常事情的時候,軟體的通用性卻是很有限的。大多數軟體是由使用該軟體的個人或機構研製的,軟體往往帶有強烈的個人色彩。早期的軟體開發也沒有什麼系統的方法可以遵循,軟體設計是在某個人的頭腦中完成的乙個隱藏的過程。而且,除了源**往往沒有軟體說明書等文件。

3.軟體危機

從60年代中期到70年代中期是計算機系統發展的第二個時期,在這一時期軟體開始作為一種產品被廣泛使用,出現了「軟體作坊」專職應別人的需求寫軟體。這一軟體開發的方法基本上仍然沿用早期的個體化軟體開發方式,但軟體的數量急劇膨脹,軟體需求日趨複雜,維護的難度越來越大,開發成本令人吃驚地高,而失敗的軟體開發專案卻屢見不鮮。「軟體危機」就這樣開始了!

「軟體危機」使得人們開始對軟體及其特性進行更深一步的研究,人們改變了早期對軟體的不正確看法。早期那些被認為是優秀的程式常常很難被別人看懂,通篇充滿了程式技巧。現在人們普遍認為優秀的程式除了功能正確,效能優良之外,還應該容易看懂、容易使用、容易修改和擴充。

2023年北大西洋公約組織的計算機科學家在聯邦德國召開的國際學術會議上第一次提出了「軟體危機」(software crisis)這個名詞。 概括來說,軟體危機包含兩方面問題:一、如何開發軟體,以滿足不斷增長,日趨複雜的需求;二、如何維護數量不斷膨脹的軟體產品。

4.軟體工程的提出

2023年秋季,nato(北約)的科技委員會召集了近50名一流的程式設計人員、計算機科學家和工業界巨頭,討論和制定擺脫「軟體危機」的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念。

軟體工程是一門研究如何用系統化、規範化、數量化等工程原則和方法去進行軟體的開發和維護的學科。軟體工程包括兩方面內容:軟體開發技術和軟體專案管理。軟體開發技術包括軟體開發方法學、軟體工具和軟體工程環境。軟體專案管理包括軟體度量、專案估算、進度控制、人員組織、配置管理、專案計畫等。

5.傳統軟體工程

為迎接軟體危機的挑戰,人們進行了不懈的努力。這些努力大致上是沿著兩個方向同時進行的。

分析 → 設計 → 編碼 → 測試 → 維護

後來,又有人針對該模型的不足,提出了快速原型法、螺旋模型、噴泉模型等對「瀑布式」生命週期模型進行補充。現在,它們在軟體開發的實踐中被廣泛採用。

這方面的努力,還使人們認識到了文件的標準以及開發者之間、開發者與使用者之間的交流方式的重要性。一些重要文件格式的標準被確定下來,包括變數、符號的命名規則以及原**的規範式。

軟體工程發展的第二個方向,側重與對軟體開發過程中分析、設計的方法的研究。這方面的重要成果就是在70年代風靡一時的結構化開發方法,即po(面向過程的開發或結構化方法)以及結構化的分析、設計和相應的測試方法。

軟體工程的目標是研製開發與生產出具有良好的軟體質量和費用合算的產品。費用合算是指軟體開發執行的整個開銷能滿足使用者要求的程度,軟體質量是指該軟體能滿足明確的和隱含的需求能力有關特徵和特性的總和。軟體質量可用六個特性來作評價,即功能性、可靠性、易使用性、效率、維護性、易移植性。

6.現代軟體工程

軟體不是純物化的東西,其中包含著人的因素,於是就有很多變動的東西,不可能像理想的物質生產過程,基於物理學等的原理來做。早期的軟體開發僅考慮人的因素,傳統的軟體工程強調物性的規律,現代軟體工程最根本的就是人跟物的關係,就是人和機器(工具、自動化)在不同層次的不斷迴圈發展的關係。

物件導向的分析、設計方法(ooa和ood)的出現使傳統的開發方法發生了翻天覆地的變化。隨之而來的是物件導向建模語言(以uml為代表)、軟體復用、基於元件的軟體開發等新的方法和領域。

與之相應的是從企業管理的角度提出的軟體過程管理。即關注於軟體生存週期中所實施的一系列活動並通過過程度量、過程評價和過程改進等涉及對所建立的軟體過程及其例項進行不斷優化的活動使得軟體過程迴圈往復、螺旋上公升式地發展。其中最著名的軟體過程成熟度模型是美國卡內基梅隆大學軟體工程研究所(sei)建立的cmm(capability maturity model),即能力成熟度模型。此模型在建立和發展之初,主要目的是為大型軟體專案的招投標活動提供一種全面而客觀的評審依據,而發展到後來,又同時被應用於許多軟體機構內部的過程改進活動中。

軟體工程的發展歷史概論

1.世界上第乙個計算機程式設計師 第乙個寫軟體的人是ada augusta ada lovelace 在1860年代她嘗試為 babbage charles babbage 的機械式計算機寫軟體。儘管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。她的父親就是那個狂熱的,不趨炎附勢的激進詩...

123hui推薦 軟體工程的發展歷史概論

1.世界上第乙個計算機程式設計師 第乙個寫軟體的人是 ada augusta ada lovelace 在1860 年代她嘗試為 babbage charles babbage 的機械式計算機寫軟體。儘管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。她的父親就是那個狂熱的,不趨炎附勢的激...

軟體工程概論

什麼是軟體 軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式,資料及相關文件的完整集合。程式是按事先設計的功能和效能要求執行的指令序列。資料是使程式能正常操作資訊的資料結構。文件是與程式開發,維護和使用有關的 材料。軟體的特點 1軟體是一種邏輯實體,具有抽象性 與硬體相比較 2沒有製造過程 ...