- 軟件工程理論與實(shí)踐(第2版)
- 呂云翔等編著
- 1985字
- 2023-06-28 15:52:02
1.2 軟件危機(jī)
本節(jié)講述軟件危機(jī)的表現(xiàn)與原因,以及軟件危機(jī)的啟示。
1.2.1 軟件危機(jī)的表現(xiàn)與原因
軟件危機(jī)是指人們?cè)陂_發(fā)軟件和維護(hù)軟件過程中所遇到的一系列的問題。在20世紀(jì)60年代中期,隨著軟件規(guī)模的擴(kuò)大、復(fù)雜性的增加、功能的增強(qiáng),高質(zhì)量的軟件開發(fā)變得越來越困難。在軟件開發(fā)的過程中,會(huì)經(jīng)常出現(xiàn)一些不能按時(shí)完成任務(wù)、產(chǎn)品質(zhì)量得不到保證、工作效率低下和開發(fā)經(jīng)費(fèi)嚴(yán)重超支等現(xiàn)象。這些情況逐漸使人們意識(shí)到軟件危機(jī)的存在及其影響。計(jì)算機(jī)軟件的開發(fā)、維護(hù)和應(yīng)用過程中普遍出現(xiàn)的一些嚴(yán)重的問題,主要表現(xiàn)如下。
●開發(fā)出來的軟件產(chǎn)品不能滿足用戶的需求,即產(chǎn)品的功能或特性與需求不符。這主要是由于開發(fā)人員與用戶之間不能充分有效地進(jìn)行交流造成的,使得開發(fā)人員對(duì)用戶需求的理解存在著差異。
●相比越來越廉價(jià)的硬件,軟件成本過高。
●軟件質(zhì)量難以得到保證,且難以發(fā)揮硬件潛能。開發(fā)團(tuán)隊(duì)缺少完善的軟件質(zhì)量評(píng)審體系以及科學(xué)的軟件測試規(guī)程,使得最終的軟件產(chǎn)品存在著諸多缺陷。
●難以準(zhǔn)確估計(jì)軟件開發(fā)、維護(hù)的費(fèi)用以及開發(fā)周期。軟件產(chǎn)品往往不能在預(yù)算范圍之內(nèi)按照計(jì)劃完成開發(fā)。很多情況下,軟件產(chǎn)品的開發(fā)周期或經(jīng)費(fèi)會(huì)大大超出預(yù)算。
●難以控制開發(fā)風(fēng)險(xiǎn),開發(fā)速度趕不上市場變化。
●軟件產(chǎn)品修改與維護(hù)困難,集成遺留系統(tǒng)更困難。
●軟件文檔不完備,并且存在文檔內(nèi)容與軟件產(chǎn)品不符的情況。軟件文檔是計(jì)算機(jī)軟件的重要組成部分,它為軟件開發(fā)人員之間以及開發(fā)人員與用戶之間的信息共享提供了重要的平臺(tái)。軟件文檔不完整和不一致的問題會(huì)給軟件的開發(fā)和維護(hù)等工作帶來很多麻煩。
這些問題嚴(yán)重影響了軟件產(chǎn)業(yè)的發(fā)展,制約著計(jì)算機(jī)的應(yīng)用。為了形象地描述軟件危機(jī),OS/360操作系統(tǒng)的開發(fā)經(jīng)常被作為一個(gè)典型的案例。20世紀(jì)60年代初期,IBM公司組織了OS/360操作系統(tǒng)的開發(fā),這是一個(gè)超大型的軟件項(xiàng)目,參與的程序員有1000人左右。在經(jīng)歷了數(shù)十年的開發(fā)之后,極度復(fù)雜的軟件項(xiàng)目甚至產(chǎn)生了一套不包括在原始設(shè)計(jì)方案之中的工作系統(tǒng)。Fred Brooks是這個(gè)項(xiàng)目的管理者,他在自己的著作《人月神話》中曾經(jīng)承認(rèn),自己犯了一個(gè)價(jià)值數(shù)百萬美元的錯(cuò)誤。
軟件危機(jī)的出現(xiàn)和日益嚴(yán)重的趨勢(shì)充分暴露了軟件產(chǎn)業(yè)在早期的發(fā)展過程中存在的各種各樣的問題。可以說,人們對(duì)軟件產(chǎn)品認(rèn)識(shí)的不足以及對(duì)軟件開發(fā)內(nèi)在規(guī)律的理解偏差是軟件危機(jī)出現(xiàn)的本質(zhì)原因。具體來說,軟件危機(jī)出現(xiàn)的原因可以概括為以下幾點(diǎn)。
●忽視軟件開發(fā)前期的需求分析。
●開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論的指導(dǎo)。軟件開發(fā)是一項(xiàng)復(fù)雜的工程,人們需要用科學(xué)的、工程化的思想來組織和指導(dǎo)軟件開發(fā)的各個(gè)階段。而這種工程學(xué)的視角正是很多軟件開發(fā)人員所沒有的,他們往往簡單地認(rèn)為軟件開發(fā)就是程序設(shè)計(jì)。
●文檔資料不齊全或不準(zhǔn)確。軟件文檔的重要性沒有得到軟件開發(fā)人員和用戶的足夠重視。軟件文檔是軟件開發(fā)團(tuán)隊(duì)成員之間交流和溝通的重要平臺(tái),還是軟件開發(fā)項(xiàng)目管理的重要工具。如果人們不能充分重視軟件文檔的價(jià)值,勢(shì)必會(huì)給軟件開發(fā)帶來很多不便。
●忽視與用戶之間、開發(fā)組成員之間的交流。
●忽視測試的重要性。
●不重視維護(hù)或由于上述原因造成維護(hù)工作的困難。由于軟件的抽象性和復(fù)雜性,軟件在運(yùn)行之前,對(duì)開發(fā)過程的進(jìn)展情況很難估計(jì)。再加上軟件錯(cuò)誤的隱蔽性和改正的復(fù)雜性,這些都使得軟件的開發(fā)和維護(hù)在客觀上比較困難。
●從事軟件開發(fā)的專業(yè)人員對(duì)這個(gè)產(chǎn)業(yè)認(rèn)識(shí)不充分,缺乏經(jīng)驗(yàn)。軟件產(chǎn)業(yè)相對(duì)于其他工業(yè)產(chǎn)業(yè)而言,是一個(gè)比較年輕、發(fā)展不成熟的產(chǎn)業(yè),人們?cè)趯?duì)它的認(rèn)識(shí)上缺乏深刻性。
●沒有完善的質(zhì)量保證體系。完善的質(zhì)量保證體系的建立需要有嚴(yán)格的評(píng)審制度,同時(shí)還需要有科學(xué)的軟件測試技術(shù)及質(zhì)量維護(hù)技術(shù)。軟件的質(zhì)量得不到保證,使得開發(fā)出來的軟件產(chǎn)品往往不能滿足人們的需求,同時(shí)人們還可能需要花費(fèi)大量的時(shí)間、資金和精力去修復(fù)軟件的缺陷,從而導(dǎo)致了軟件質(zhì)量的下降和開發(fā)預(yù)算超支等后果。
1.2.2 軟件危機(jī)的啟示
軟件危機(jī)給人們的最大啟示,是使人們更加深刻地認(rèn)識(shí)到軟件的特性以及軟件產(chǎn)品開發(fā)的內(nèi)在規(guī)律。
●軟件產(chǎn)品是復(fù)雜的人造系統(tǒng),具有復(fù)雜性、不可見性和易變性,難以處理。
●個(gè)人或小組在開發(fā)小型軟件時(shí)使用到的非常有效的編程技術(shù)和過程,在開發(fā)大型、復(fù)雜系統(tǒng)時(shí)難以發(fā)揮同樣的作用。
●從本質(zhì)上講,軟件開發(fā)的創(chuàng)造性成分很大,發(fā)揮的余地也很大,很接近于藝術(shù)。它介于藝術(shù)與工程之間的某一點(diǎn),并逐步向工程一段漂移,但很難發(fā)展成完全的工程。
●計(jì)算機(jī)和軟件技術(shù)的快速發(fā)展,提高了用戶對(duì)軟件的期望,促進(jìn)了軟件產(chǎn)品的演化,為軟件產(chǎn)品提出了新的、更多的需求,難以在可接受的開發(fā)進(jìn)度內(nèi)保證軟件的質(zhì)量。
●幾乎所有的軟件項(xiàng)目都是新的,而且是不斷變化的。項(xiàng)目需求在開發(fā)過程中會(huì)發(fā)生變化,而且很多原來預(yù)想不到的問題也會(huì)出現(xiàn),對(duì)設(shè)計(jì)和實(shí)現(xiàn)手段進(jìn)行適當(dāng)?shù)恼{(diào)整是不可避免的。
●“人月神化”現(xiàn)象——生產(chǎn)力與人數(shù)并不成正比。
為了解決軟件危機(jī),人們開始嘗試用工程化的思想去指導(dǎo)軟件開發(fā),于是軟件工程應(yīng)運(yùn)而生。
- Flutter移動(dòng)應(yīng)用開發(fā)
- 服飾設(shè)計(jì)應(yīng)用研究
- 周維權(quán)《中國古典園林史》(第3版)配套題庫【名??佳姓骖}+章節(jié)題庫+模擬試題】
- 土木工程項(xiàng)目管理
- 中級(jí)財(cái)務(wù)會(huì)計(jì)教程與案例
- 黑龍江大學(xué)俄語系《俄語1》(第二次修訂版)學(xué)習(xí)指南【詞匯短語+語音語調(diào)+課文精解+單元語法+全文翻譯+練習(xí)答案】
- 工程地質(zhì)
- 制藥工程專業(yè)實(shí)驗(yàn)
- 現(xiàn)代五大職教模式
- 新能源汽車技術(shù)(第2版)
- 互聯(lián)網(wǎng)產(chǎn)品開發(fā)(微課版)
- ERP模擬仿真實(shí)訓(xùn)
- 全國自考《思想道德修養(yǎng)與法律基礎(chǔ)》(2015年版)筆記和課后習(xí)題詳解[課程代碼:03706]
- 2020年P(guān)ETS四級(jí)核心詞匯全突破【附高清視頻講解】(上)
- 現(xiàn)代物流信息管理