軟件開發(fā)的四大危機及避免方法
2015-06-23 15:33:08 訪問:
從軟件開發(fā)危機的種種表現(xiàn)和軟件開發(fā)作為邏輯產(chǎn)品的特殊性可以發(fā)現(xiàn)軟件開發(fā)危機的原因:
(1)用戶需求不明確
在軟件開發(fā)過程中,用戶需求不明確問題主要體現(xiàn)在四個方面:
在軟件開發(fā)出來之前,用戶自己也不清楚軟件開發(fā)的具體需求;
用戶對軟件開發(fā)需求的描述不精確,可能有遺漏、有二義性、甚至有錯誤;
在軟件開發(fā)過程中,用戶還提出修改軟件開發(fā)功能、界面、支撐環(huán)境等方面的要求;
軟件開發(fā)人員對用戶需求的理解與用戶本來愿望有差異。
(2)缺乏正確的理論指導(dǎo)
缺乏有力的方法學(xué)和工具方面的支持。由于軟件開發(fā)不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復(fù)雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設(shè)計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件開發(fā)產(chǎn)品的個性化,也是發(fā)生軟件開發(fā)危機的一個重要原因。
(3)軟件開發(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)生疏漏和錯誤。
(4)軟件開發(fā)復(fù)雜度越來越高
軟件開發(fā)不僅僅是在規(guī)模上快速地發(fā)展擴大,而且其復(fù)雜性也急劇地增加。軟件開發(fā)產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力處?復(fù)雜問題"。所謂"復(fù)雜問題"的概念是相對的,一旦人們采用先進(jìn)的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復(fù)雜的問題又?jǐn)[在人們的面前。
3 如何克服軟件開發(fā)危機
人們在認(rèn)真地研究和分析了軟件開發(fā)危機背后的真正原因之后,得出了"人們面臨的不光是技術(shù)問題,更重要的是管理問題。管理不善必然導(dǎo)致失敗。"的結(jié)論,便開始探索用工程的方法進(jìn)行軟件開發(fā)生產(chǎn)的可能性,即用現(xiàn)代工程的概念、原理、技術(shù)和方法進(jìn)行計算機軟件的開發(fā)、管理和維護。于是,計算機科學(xué)技術(shù)的一個新領(lǐng)域--軟件開發(fā)工程誕生了。
軟件開發(fā)工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護計算機軟件開發(fā)的有關(guān)技術(shù)及管理方法。軟件開發(fā)工程包括三個要素:
(1)方法。軟件開發(fā)工程方法為軟件開發(fā)提供了"如何做"的技術(shù),是完成軟件開發(fā)工程項目的技術(shù)手段;
(2)工具。軟件開發(fā)工具是人類在開發(fā)軟件開發(fā)的活動中智力和體力的擴展和延伸,為軟件開發(fā)工程方法提供了自動的或半自動的軟件開發(fā)支撐環(huán)境;
(3)過程。軟件開發(fā)工程的過程則是將軟件開發(fā)工程的方法和工具綜合起來以達(dá)到合理、及時地進(jìn)行計算機軟件開發(fā)的目的。
迄今為止,軟件開發(fā)工程的研究與應(yīng)用已經(jīng)取得很大成就,它在軟件開發(fā)方法、工具、管理等方面的應(yīng)用大大緩解了軟件開發(fā)危機造成的被動局面。