1 軟件危機概述
1.1 軟件危機新問題
軟件危機是指軟件生産方式過(guò)于落後(hòu),但是計算機軟件需求迅速增長(cháng),兩(liǎng)者之間造成(chéng)難以調和的矛盾,從而導緻軟件在開(kāi)發(fā)與維護過(guò)程中出現一系列嚴重問題的現象。
1.2 早期軟件危機的表現
因爲軟件産品是人爲生産的産品,隻要是由人做的工作都(dōu)不會(huì)是完美無缺的,總會(huì)或多或少的存在一些錯誤。既然錯誤是必然存在的,我們目前的問題是如何避免錯誤的産生和消除已經(jīng)産生的錯誤。
早期軟件危機主要表現在:
(1)開(kāi)發(fā)費用和進(jìn)度失控,爲了趕進(jìn)度或壓成(chéng)本不得不采用一些權宜之計,這(zhè)樣(yàng)又往往嚴重損害軟件産品質量。
(2)軟件可靠性差,盡管耗費了大量的人力物力,系統的正确性越來越難以保證。
(3)軟件難以維護,很多程序缺乏相應的文檔資料,程序中的錯誤難以定位,難以改正。 2 軟件開(kāi)發(fā)規律認識
2.1 軟件開(kāi)發(fā)本質
軟件開(kāi)發(fā)規律是所有軟件開(kāi)發(fā)人員不得不研究和解決的問題,尤其是中國(guó)的軟件從業者不僅要研究一般的軟件開(kāi)發(fā)規律,還(hái)要研究具有中國(guó)特色的軟件開(kāi)發(fā)規律和中國(guó)商業軟件的開(kāi)發(fā)規律。軟件開(kāi)發(fā)的本質其實就(jiù)是一種(zhǒng)映射,具體的說是要實現“高層概念”到“低層概念”的映射,從“高層處理邏輯”到“低層處理邏輯”的映射。特别是對(duì)于大型軟件系統的開(kāi)發(fā),這(zhè)一映射是相當複雜的,涉及相關人員、使用技術、采取的途徑等等。
軟件工程活動是生産一個最終滿足用戶的需求且達到工程目标的軟件産品所需要的步驟,包括需求、設計、實現、确認、支持等活動。需求是在一個抽象層上建立系統模型的活動。設計活動定義實現需求規約所需的結構,該活動的主要産品包括軟件體系結構、詳細的處理算法。實現活動是設計規約到代碼轉換的活動。驗證确認是一項評估活動,貫穿于整個開(kāi)發(fā)過(guò)程,包括動态分析和靜态分析。
2.2 軟件過(guò)程管理
在實際的項目質量管理中,質量管理總是圍繞著(zhe)質量保證過(guò)程和質量控制過(guò)程兩(liǎng)方面(miàn)。這(zhè)兩(liǎng)個過(guò)程相互作用,在實際應用中可能(néng)發(fā)生交叉。軟件質量保證的目的是使軟件過(guò)程對(duì)于管理人員來說是可見的。它通過(guò)對(duì)軟件産品和活動進(jìn)行評審和審計來驗證軟件是合乎标準的。軟件質量保證組在項目開(kāi)始時就(jiù)一起(qǐ)參與建立計劃、标準和過(guò)程。軟件質量控制主要爲發(fā)現和消除軟件産品的缺陷。對(duì)于高質量的軟件來講,最終産品應該盡可能(néng)達到零缺陷。而軟件開(kāi)發(fā)是一個以人爲中心的活動,所以缺陷是不可避免。要想交付一個高質量的軟件,消除缺陷的活動就(jiù)變得很重要。缺陷消除是通過(guò)評審和測試來實現。潛在的缺陷越大,用來消除它所花的費用越高。因此成(chéng)熟的軟件開(kāi)發(fā)過(guò)程在每一個可能(néng)會(huì)引入潛在缺陷的階段完成(chéng)之後(hòu)會(huì)展開(kāi)質量控制活動。這(zhè)些活動包括:需求評審、設計評審、代碼走查、單元測試、集成(chéng)測試、系統測試和驗收測試等。
CMM對(duì)實施軟件過(guò)程的必要條件做了明确定義,劃分了5個成(chéng)熟度等級:
⑴初始級。在初始級,企業一般不具備穩定的軟件開(kāi)發(fā)與維護的環境。處于這(zhè)一等級的企業,成(chéng)功與否在很大程度上決定于有傑出的項目經(jīng)理與經(jīng)驗豐富的開(kāi)發(fā)團隊,項目成(chéng)功與否非常不确定。
⑵可重複級。這(zhè)一級,建立了管理軟件項目的政策,以及爲貫徹執行這(zhè)些政策而定的措施。通過(guò)這(zhè)一級,企業實現了過(guò)程的規範化、穩定化。
⑶定義級。這(zhè)一級,面(miàn)對(duì)整個企業的軟件開(kāi)發(fā)與維護過(guò)程的文件將(jiāng)被(bèi)制訂出來。這(zhè)些過(guò)程是集成(chéng)到一個協調的整體。項目小組要根據該項目的特點去改編企業的标準軟件過(guò)程來制訂出爲本項目而定義的過(guò)程。
⑷定量管理級。這(zhè)一級,企業對(duì)産品與過(guò)程建立起(qǐ)定量的質量目标,同時在過(guò)程中加入規定的很清楚的連續的度量。
⑸優化級。這(zhè)個等級中企業會(huì)把重點放在對(duì)過(guò)程的不斷優化。企業會(huì)主動去找出過(guò)程的弱點和長(cháng)處,達到預防缺陷的目标。項目小組分析引起(qǐ)缺陷的原因,對(duì)過(guò)程進(jìn)行評鑒與改進(jìn),以便預防已發(fā)生的缺陷再度發(fā)生。
軟件危機曾經(jīng)是計算機領域最熱門的話題,爲了解決這(zhè)場危機,衆多專家、學(xué)者做了大量努力,最終認識到所謂的軟件危機實質上是軟件中存在錯誤。錯誤是軟件的固有屬性,是沒(méi)法去改變的。軟件過(guò)程是爲了獲得高質量軟件所需要完成(chéng)的一系列任務的框架,它規定了完成(chéng)各項任務的工作步驟。ISO 9000把過(guò)程定義爲:使用資源將(jiāng)輸入轉化爲輸出的活動所構成(chéng)的系統。過(guò)程定義了:運用方法的順序、應該交付的文檔資料、管理措施,以及标志軟件開(kāi)發(fā)各個階段任務完成(chéng)的裡(lǐ)程碑。