軟件、軟件危機(jī)、軟件工程方案_第1頁
軟件、軟件危機(jī)、軟件工程方案_第2頁
軟件、軟件危機(jī)、軟件工程方案_第3頁
軟件、軟件危機(jī)、軟件工程方案_第4頁
軟件、軟件危機(jī)、軟件工程方案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件、軟件危機(jī)、軟件工程方案

1、軟件及其特性

第一個(gè)寫軟件的人是Ada(AugustaAdaLovelace),在1860年代他嘗試為Babbage(CharlesBabbage)的機(jī)械式計(jì)算機(jī)寫軟件。盡管他們的努力失敗了,但他們的名字永遠(yuǎn)載入了計(jì)算機(jī)發(fā)展的史冊(cè)。在1950年代,軟件伴隨著第一臺(tái)電子計(jì)算機(jī)的問世誕生了。以寫軟件為職業(yè)的人也開始出現(xiàn),他們多是經(jīng)過訓(xùn)練的數(shù)學(xué)家和電子工程師。1960年代美國大學(xué)里開始出現(xiàn)授予計(jì)算機(jī)專業(yè)的學(xué)位,教人們寫軟件。本世紀(jì)中葉軟件產(chǎn)業(yè)從零開始起步,在短短的50年的時(shí)間里迅速發(fā)展成為推動(dòng)人類社會(huì)發(fā)展的龍頭產(chǎn)業(yè),并造就了一批百萬、億萬富翁。隨著信息產(chǎn)業(yè)的發(fā)展,軟件對(duì)人類社會(huì)性越來越重要。那么,如何給軟件定義哪?軟件是什么?首先要說明的是,軟件對(duì)于人類而言是一個(gè)全新的東西,其發(fā)展歷史不過四、五十年。人們對(duì)軟件的認(rèn)識(shí)經(jīng)歷了一個(gè)由淺到深的過程。在計(jì)算機(jī)系統(tǒng)發(fā)展的初期,硬件通常用來執(zhí)行一個(gè)單一的程序,而這個(gè)程序又是為一個(gè)特定的目的而編制的。早期當(dāng)通用硬件成為平常事情的時(shí)候,軟件的通用性卻是很有限的。大多數(shù)軟件是由使用該軟件的個(gè)人或機(jī)構(gòu)研制的,軟件往往帶有強(qiáng)烈的個(gè)人色彩。早期的軟件開發(fā)也沒有什么系統(tǒng)的方法可以遵循,軟件設(shè)計(jì)是在某個(gè)人的頭腦中完成的一個(gè)隱藏的過程。而且,除了源代碼往往沒有軟件說明書等文檔。從60年代中期到70年代中期是計(jì)算機(jī)系統(tǒng)發(fā)展的第二個(gè)時(shí)期,在這一時(shí)期軟件開始作為一種產(chǎn)品被廣泛使用,出現(xiàn)了“軟件作坊”專職應(yīng)別人的需求寫軟件。這一軟件開發(fā)的方法基本上仍然沿用早期的個(gè)體化軟件開發(fā)方式,但軟件的數(shù)量急劇膨脹,軟件需求日趨復(fù)雜,維護(hù)的難度越來越大,開發(fā)成本令人吃驚地高,而失敗的軟件開發(fā)項(xiàng)目卻屢見不鮮。“軟件危機(jī)”就這樣開始了!“軟件危機(jī)”使得人們開始對(duì)軟件及其特性進(jìn)行更深一步的研究,人們改變了早期對(duì)軟件的不正確看法。早期那些被認(rèn)為是優(yōu)秀的程序常常很難被別人看懂,通篇充滿了程序技巧?,F(xiàn)在人們普遍認(rèn)為優(yōu)秀的程序除了功能正確,性能優(yōu)良之外,還應(yīng)該容易看懂、容易使用、容易修改和擴(kuò)充。現(xiàn)在,被普遍接受的軟件的定義是:軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關(guān)數(shù)據(jù)(data)及其說明文檔(bbbbbbbb)。其中程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文資料。軟件同傳統(tǒng)的工業(yè)產(chǎn)品相比,有其獨(dú)特的特性:1)軟件是一種邏輯實(shí)體,具有抽象性。這個(gè)特點(diǎn)使它與其它工程對(duì)象有著明顯的差異。人們可以把它記錄在紙上、內(nèi)存、和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通過觀察、分析、思考、判斷,才能了解它的功能、性能等特性。2)軟件沒有明顯的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。所以對(duì)軟件的質(zhì)量控制,必須著重在軟件開發(fā)方面下工夫。3)軟件在使用過程中,沒有磨損、老化的問題。軟件在生存周期后期不會(huì)因?yàn)槟p而老化,但會(huì)為了適應(yīng)硬件、環(huán)境以及需求的變化而進(jìn)行修改,而這些修改有不可避免的引入錯(cuò)誤,導(dǎo)致軟件失效率升高,從而似的軟件退化。當(dāng)修改的成本變得難以接受時(shí),軟件就被拋棄。4)軟件對(duì)硬件和環(huán)境有著不同程度的依賴性。這導(dǎo)致了軟件移植的問題。5)軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。6)軟件是復(fù)雜的,而且以后會(huì)更加復(fù)雜。軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品。軟件涉及人類社會(huì)的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其它領(lǐng)域的專門知識(shí),這對(duì)軟件工程師提出了很高的要求。7)軟件的成本相當(dāng)昂貴。軟件開發(fā)需要投入大量、高強(qiáng)度的腦力勞動(dòng),成本非常高,風(fēng)險(xiǎn)也大?,F(xiàn)在軟件的開銷已大大超過了硬件的開銷。[NextPage]8)軟件工作牽涉到很多社會(huì)因素。許多軟件的開發(fā)和運(yùn)行涉及機(jī)構(gòu)、體制和管理方式等問題,還會(huì)設(shè)計(jì)到人們的觀念和心理。這些人的因素,常常成為軟件開發(fā)的困難所在,直接影響到項(xiàng)目的成敗。2、軟件危機(jī)及其原因

軟件危機(jī)指的是在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國召開的國際學(xué)術(shù)會(huì)議上第一次提出了“軟件危機(jī)”(softwarecrisis)這個(gè)名詞。概括來說,軟件危機(jī)包含兩方面問題:一、如何開發(fā)軟件,以滿足不斷增長(zhǎng),日趨復(fù)雜的需求;二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。具體地說,軟件危機(jī)主要有以下表現(xiàn):(1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確。開發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)定計(jì)劃一再拖延的現(xiàn)象并不罕見。(2)用戶對(duì)“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。(3)軟件產(chǎn)品的質(zhì)量往往靠不住。Bug一大堆,Patch一個(gè)接一個(gè)。(4)軟件的可維護(hù)程度非常之低。(5)軟件通常沒有適當(dāng)?shù)奈臋n資料。(6)軟件的成本不斷提高。(7)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長(zhǎng)。軟件危機(jī)的原因,一方面是與軟件本身的特點(diǎn)有關(guān);另一方面是由軟件開發(fā)和維護(hù)的方法不正確有關(guān)。軟件的特點(diǎn)前面已經(jīng)有一個(gè)簡(jiǎn)單介紹。軟件開發(fā)和維護(hù)的不正確方法主要表現(xiàn)為忽視軟件開發(fā)前期的需求分析;開發(fā)過程沒有統(tǒng)一的、規(guī)范的方法論的指導(dǎo),文檔資料不齊全,忽視人與人的交流;忽視測(cè)試階段的工作,提交用戶的軟件質(zhì)量差;輕視軟件的維護(hù)。這些大多數(shù)都是軟件開發(fā)過程管理上的原因。3、軟件工程

1968年秋季,NATO(北約)的科技委員會(huì)召集了近50名一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對(duì)策。在那次會(huì)議上第一次提出了軟件工程(softwareengineering)這個(gè)概念。到今年(1998),軟件工程整整走過了30年的歷程。在這30年的發(fā)展中,人們針對(duì)軟件危機(jī)的表現(xiàn)和原因,經(jīng)過不斷的實(shí)踐和總結(jié),越來越認(rèn)識(shí)到:按照工程化的原則和方法組織軟件開發(fā)工作,是擺脫軟件危機(jī)的一個(gè)主要出路。今天,盡管“軟件危機(jī)”并未被徹底解決,但軟件工程30年的發(fā)展仍可以說是碩果累累。下面我們給出一個(gè)軟件工程的定義,然后簡(jiǎn)單討論一下軟件工程所包括的內(nèi)容:軟件工程是一門研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法去進(jìn)行軟件的開發(fā)和維護(hù)的學(xué)科。軟件工程包括兩方面內(nèi)容:軟件開發(fā)技術(shù)和軟件項(xiàng)目管理。軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué)、軟件工具和軟件工程環(huán)境。軟件項(xiàng)目管理包括軟件度量、項(xiàng)目估算、進(jìn)度控制、人員組織、配置管理、項(xiàng)目計(jì)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論