什么是軟件危機(jī)怎么解決這個(gè)危機(jī)
什么是軟件危機(jī)怎么解決這個(gè)危機(jī)
軟件危機(jī)是指落后的軟件生產(chǎn)方式無法滿足迅速增長的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開發(fā)與維護(hù)過程中出現(xiàn)一系列嚴(yán)重問題的現(xiàn)象。那么你對(duì)軟件危機(jī)了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是軟件危機(jī)的內(nèi)容,希望大家喜歡!
軟件危機(jī)的介紹
軟件危機(jī)(software crisis),20 世紀(jì)60年代以前,計(jì)算機(jī)剛剛投入實(shí)際使用,軟件設(shè)計(jì)往往只是為了一個(gè)特定的應(yīng)用而在指定的計(jì)算機(jī)上設(shè)計(jì)和編制,采用密切依賴于計(jì)算機(jī)的機(jī)器代碼或匯編語言,軟件的規(guī)模比較小,文檔資料通常也不存在,很少使用系統(tǒng)化的開發(fā)方法,設(shè)計(jì)軟件往往等同于編制程序,基本上是個(gè)人設(shè)計(jì)、個(gè)人使用、個(gè)人操作、自給自足的私人化的軟件生產(chǎn)方式。
60年代中期,大容量、高速度計(jì)算機(jī)的出現(xiàn),使計(jì)算機(jī)的應(yīng)用范圍迅速擴(kuò)大,軟件開發(fā)急劇增長。高級(jí)語言開始出現(xiàn);操作系統(tǒng)的發(fā)展引起了計(jì)算機(jī)應(yīng)用方式的變化;大量數(shù)據(jù)處理導(dǎo)致第一代數(shù)據(jù)庫管理系統(tǒng)的誕生。軟件系統(tǒng)的規(guī)模越來越大,復(fù)雜程度越來越高,軟件可靠性問題也越來越突出。原來的個(gè)人設(shè)計(jì)、個(gè)人使用的方式不再能滿足要求,迫切需要改變軟件生產(chǎn)方式,提高軟件生產(chǎn)率,軟件危機(jī)開始爆發(fā) 。
1968年,北大西洋公約組織(NATO)在聯(lián)邦德國的國際學(xué)術(shù)會(huì)議創(chuàng)造軟件危機(jī)(Software crisis)一詞。而1960年代中期開始爆發(fā)眾所周知的軟件危機(jī),為了解決問題,在1968、1969年連續(xù)召開兩次著名的NATO會(huì)議,并同時(shí)提出軟件工程的概念。
軟件危機(jī)的解決途徑
軟件工程誕生于60年代末期,它作為一個(gè)新興的工程學(xué)科,主要研究軟件生產(chǎn)的客觀規(guī)律性,建立與系統(tǒng)化軟件生產(chǎn)有關(guān)的概念、原則、方法、技術(shù)和工具,指導(dǎo)和支持軟件系統(tǒng)的生產(chǎn)活動(dòng),以期達(dá)到降低軟件生產(chǎn)成本 、改進(jìn)軟件產(chǎn)品質(zhì)量、提高軟件生產(chǎn)率水平的目標(biāo)。軟件工程學(xué)從硬件工程和其他人類工程中吸收了許多成功的經(jīng)驗(yàn),明確提出了軟件生命周期的模型,發(fā)展了許多軟件開發(fā)與維護(hù)階段適用的技術(shù)和方法,并應(yīng)用于軟件工程實(shí)踐,取得良好的效果。
在軟件開發(fā)過程中人們開始研制和使用軟件工具,用以輔助進(jìn)行軟件項(xiàng)目管理與技術(shù)生產(chǎn),人們還將軟件生命周期各階段使用的軟件工具有機(jī)地集合成為一個(gè)整體,形成能夠連續(xù)支持軟件開發(fā)與維護(hù)全過程的集成化軟件支援環(huán)境,以期從管理和技術(shù)兩方面解決軟件危機(jī)問題。
此外,人工智能與軟件工程的結(jié)合成為80年代末期活躍的研究領(lǐng)域?;诔绦蜃儞Q、自動(dòng)生成和可重用軟件等軟件新技術(shù)研究也已取得一定的進(jìn)展,把程序設(shè)計(jì)自動(dòng)化的進(jìn)程向前推進(jìn)一步。在軟件工程理論的指導(dǎo)下,發(fā)達(dá)國家已經(jīng)建立起較為完備的軟件工業(yè)化生產(chǎn)體系,形成了強(qiáng)大的軟件生產(chǎn)能力 。軟件標(biāo)準(zhǔn)化與可重用性得到了工業(yè)界的高度重視,在避免重用勞動(dòng),緩解軟件危機(jī)方面起到了重要作用。
軟件危機(jī)的主要表現(xiàn)
軟件開發(fā)進(jìn)度難以預(yù)測(cè)
拖延工期幾個(gè)月甚至幾年的現(xiàn)象并不罕見,這種現(xiàn)象降低了軟件開發(fā)組織的信譽(yù)。
軟件開發(fā)成本難以控制
投資一再追加,令人難于置信。往往是實(shí)際成本比預(yù)算成本高出一個(gè)數(shù)量級(jí)。
而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計(jì)又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會(huì)引起用戶的不滿。
用戶對(duì)產(chǎn)品功能難以滿足
開發(fā)人員和用戶之間很難溝通、矛盾很難統(tǒng)一。往往是軟件開發(fā)人員不能真正了解用戶的需求,而用戶又不了解計(jì)算機(jī)求解問題的模式和能力,雙方無法用共同熟悉的語言進(jìn)行交流和描述。
在雙方互不充分了解的情況下,就倉促上陣設(shè)計(jì)系統(tǒng)、匆忙著手編寫程序,這種"閉門造車"的開發(fā)方式必然導(dǎo)致最終的產(chǎn)品不符合用戶的實(shí)際需要。
軟件產(chǎn)品質(zhì)量無法保證
系統(tǒng)中的錯(cuò)誤難以消除。軟件是邏輯產(chǎn)品,質(zhì)量問題很難以統(tǒng)一的標(biāo)準(zhǔn)度量,因而造成質(zhì)量控制困難。
軟件產(chǎn)品并不是沒有錯(cuò)誤,而是盲目檢測(cè)很難發(fā)現(xiàn)錯(cuò)誤,而隱藏下來的錯(cuò)誤往往是造成重大事故的隱患。
軟件產(chǎn)品難以維護(hù)
軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯思維活動(dòng),他人難以替代。除非是開發(fā)者本人,否則很難及時(shí)檢測(cè)、排除系統(tǒng)故障。
為使系統(tǒng)適應(yīng)新的硬件環(huán)境,或根據(jù)用戶的需要在原系統(tǒng)中增加一些新的功能,又有可能增加系統(tǒng)中的錯(cuò)誤。
軟件缺少適當(dāng)?shù)奈臋n資料
文檔資料是軟件必不可少的重要組成部分。實(shí)際上,軟件的文檔資料是開發(fā)組織和用戶的之間權(quán)利和義務(wù)的合同書,是系統(tǒng)管理者、總體設(shè)計(jì)者向開發(fā)人員下達(dá)的任務(wù)書,是系統(tǒng)維護(hù)人員的技術(shù)指導(dǎo)手冊(cè),是用戶的操作說明書。
缺乏必要的文檔資料或者文檔資料不合格,將給軟件開發(fā)和維護(hù)帶來許多嚴(yán)重的困難和問題。
軟件危機(jī)的原因分析
用戶需求不明確
在軟件開發(fā)過程中,用戶需求不明確問題主要體現(xiàn)在四個(gè)方面:
在軟件開發(fā)出來之前,用戶自己也不清楚軟件開發(fā)的具體需求;
用戶對(duì)軟件開發(fā)需求的描述不精確,可能有遺漏、有二義性、甚至有錯(cuò)誤;
在軟件開發(fā)過程中,用戶還提出修改軟件開發(fā)功能、界面、支撐環(huán)境等方面的要求;
軟件開發(fā)人員對(duì)用戶需求的理解與用戶本來愿望有差異。
缺乏正確的理論指導(dǎo)
缺乏有力的方法學(xué)和工具方面的支持。由于軟件開發(fā)不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復(fù)雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設(shè)計(jì)人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件開發(fā)產(chǎn)品的個(gè)性化,也是發(fā)生軟件開發(fā)危機(jī)的一個(gè)重要原因。
軟件開發(fā)規(guī)模越來越大
隨著軟件開發(fā)應(yīng)用范圍的增廣,軟件開發(fā)規(guī)模愈來愈大。大型軟件開發(fā)項(xiàng)目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開發(fā)大型軟件開發(fā)系統(tǒng)的經(jīng)驗(yàn),而多數(shù)軟件開發(fā)人員又缺乏管理方面的經(jīng)驗(yàn)。各類人員的信息交流不及時(shí)、不準(zhǔn)確、有時(shí)還會(huì)產(chǎn)生誤解。軟件開發(fā)項(xiàng)目開發(fā)人員不能有效地、獨(dú)立自主地處理大型軟件開發(fā)的全部關(guān)系和各個(gè)分支,因此容易產(chǎn)生疏漏和錯(cuò)誤。
軟件開發(fā)復(fù)雜度越來越高
軟件開發(fā)不僅僅是在規(guī)模上快速地發(fā)展擴(kuò)大,而且其復(fù)雜性也急劇地增加。軟件開發(fā)產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力處理“復(fù)雜問題”。所謂“復(fù)雜問題”的概念是相對(duì)的,一旦人們采用先進(jìn)的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復(fù)雜的問題又?jǐn)[在人們的面前。
猜你感興趣: