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

2021-03-31 14:12:02 字數 3162 閱讀 4781

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

第乙個寫軟體的人是

ada(

augusta ada lovelace),

在1860

年代她嘗試為

babbage

(charles babbage

)的機械式計算機寫軟體。儘管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。她的父親就是那個狂熱的,不趨炎附勢的激進詩人和冒險家拜倫。她本身也是乙個光彩照人的人物

—數學尖子和某種程度上的賭徒。她最重要的貢獻來自於與發明家

charles babbage

的合作,從而設計出世界上首批大型計算機

—difference engine

和analytical engine

。她甚至認為如果有正確的指令,

babbage

的機器可以用來作曲,這是乙個多麼瘋狂的想法,因為當時大多數人只把它看成是乙個機械化算盤,而她卻有渲染力和感召力來傳播她的思想。

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

20世紀

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

1960

年代美國大學裡開始出現授予計算機專業的學位,教人們寫軟體。

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

3.軟體危機

從60

年代中期到

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

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

1968

年北大西洋公約組織的計算機科學家在聯邦德國召開的國際學術會議上第一次提出了「軟體危機」

(software crisis)

這個名詞。

概括來說,軟體危機包含兩方面問題:一、如何開發軟體,以滿足不斷增長,日趨複雜的需求;二、如何維護數量不斷膨脹的軟體產品。

4.軟體工程的提出

1968

年秋季,

nato

(北約)的科技委員會召集了近

50名一流的程式設計人員、計算機科學家和工業界巨頭,討論和制定擺脫「軟體危機」的對策。在那次會議上第一次提出了軟體工程(

software engineering

)這個概念。

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

5.傳統軟體工程

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

一是從管理的角度,希望實現軟體開發過程的工程化。這方面最為著名的成果就是提出了大家都很熟悉的「瀑布式」生命週期模型。它是在

60年代末「軟體危機」後出現的第乙個生命週期模型。如下所示:分析→

設計→編碼→

測試→

維護後來,又有人針對該模型的不足,提出了快速原型法、螺旋模型、噴泉模型等

對「瀑布式」生命週期模型進行補充。現在,它們在軟體開發的實踐中被廣泛採用。

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

軟體工程發展的第二個方向,側重與對軟體開發過程中分析、設計的方法的研究。這方面的重要成果就是在

70年代風靡一時的結構化開發方法,即

po(面向過程的開發或結構化方法)以及結構化的分析、設計和相應的測試方法。

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

6.現代軟體工程

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

物件導向的分析、設計方法(

ooa和

ood)的出現使傳統的開發方法發生了翻天覆地的變化。隨之而來的是物件導向建模語言(以

uml為代表)、軟體復用、基於元件的軟體開發等新的方法和領域。

與之相應的是從企業管理的角度提出的軟體過程管理。即關注於軟體生存週期中所實施的一系列活動並通過過程度量、過程評價和過程改進等涉及對所建立的軟體過程及其例項進行不斷優化的活動使得軟體過程迴圈往復、螺旋上公升式地發展。其中最著名的軟體過程成熟度模型是美國卡內基梅隆大學軟體工程研究所(

sei)建立的

cmm(

capability maturity model

),即能力成熟度模型。此模型在建立和發展之初,主要目的是為大型軟體專案的招投標活動提供一種全面而客觀的評審依據,而發展到後來,又同時被應用於許多軟體機構內部的過程改進活動中。

作者簡介

網名:天地一沙鷗

復旦大學軟體工程實驗室

研究方向:軟體體系結構、基於構件的軟體開發、配置管理、再工程

軟體工程的發展

萬物的生存都有乙個共同的規律,那就是發展,但是在發展的時候總是會發生一些變化,舊的被新的取代,物競天擇,適者生存。無非都是乙個從開始 廢棄的過程,指它被新事物代替,逐漸滿足不了人們的需求,從而進行變革。1.發展背景 軟體危機的出現 2.發展階段 1 程式設計階段 50至60年代 機器,彙編 2 程式...

軟體工程的發展歷史概論

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

軟體工程的發展歷史概論

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