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