由于風險是在項目開始之后才開始對項目的開發(fā)起負面的影響,所以風險分析的不足,或是風險回避措施不得力,都很有可能造成軟件開發(fā)的失敗。風險分析是在事前的一種估計,憑借一定的技術(shù)手段和豐富的經(jīng)驗,基本能夠?qū)椖康娘L險做出比較準確的估計,經(jīng)過慎重的考慮提出可行的風險回避措施,是避免損失的重要環(huán)節(jié)。本文主要針對軟件開發(fā)涉及到的風險,包括在軟件開發(fā)周期過程中可能出現(xiàn)的風險以及軟件實施過程中外部環(huán)境的變化可能引起的風險等進行評估。在文中對所提到的風險都一一做了詳細的分析,并提出了相應的風險回避措施。
一、主要風險綜述
任何軟件的開發(fā),其主要風險均來自于兩個方面,一是軟件管理,二是軟件體系結(jié)構(gòu)。軟件產(chǎn)品的開發(fā)是工程技術(shù)與個人創(chuàng)作的有機結(jié)合。軟件開發(fā)是人的集體智慧按照工程化的思想進行發(fā)揮的過程。軟件管理是保證軟件開發(fā)工程化的手段。軟件體系結(jié)構(gòu)的合理程度是取決于集體智慧發(fā)揮的程度和經(jīng)驗的運用。
1、軟件體系結(jié)構(gòu)影響到軟件的如下質(zhì)量因素:
軟件的可伸縮性:是指軟件在不進行修改的情況下適應不同的工作環(huán)境的能力。由于硬件的飛速發(fā)展和軟件開發(fā)周期較長的矛盾,軟件升級的需要顯得非常迫切。如果軟件的升級和移植非常困難,軟件的生命期必定很短,使得化費巨大人力物力開發(fā)出的軟件系統(tǒng)只能在低性能的硬件或網(wǎng)絡上運行,甚至被廢棄不用,造成巨大的浪費。
軟件的可維護性:軟件的維護也是必然的事情,為了保證軟件的較長使用壽命,軟件就必須適應不斷的業(yè)務需求變化,根據(jù)業(yè)務需求的變化對軟件進行修改。修改的成本和周期都直接和軟件的體系結(jié)構(gòu)相關(guān)。一個好的軟件體系結(jié)構(gòu)可以盡可能地將系統(tǒng)的變化放在系統(tǒng)的配置上,即軟件代碼無需修改,僅僅是在系統(tǒng)提供的配置文件中進行適當?shù)男薷?,然后軟件重新加載進入運行狀態(tài),就完成了系統(tǒng)部分功能和性能要求的變化。對于重大改動,需要打開源代碼進行修改的,也僅僅是先繼承原先的代碼,然后用新的功能接替原先的調(diào)用接口,這樣將把軟件改動量減小到最低。
軟件易用性:軟件的易用性是影響軟件是否被用戶接受的關(guān)鍵之關(guān)鍵因素。在軟件產(chǎn)品中,設計復雜,功能強大而完備,但因為操作繁復而被擱置者屢見不鮮。造成的主要原因在于缺乏軟件開發(fā)中軟件體系結(jié)構(gòu)的宏觀把握能力。另一方面,缺乏有效的手段進行軟件需求的確定和對潛在需求的挖掘。
2、軟件管理將影響到軟件的下列因素:
軟件是否能夠按工期的要求完成:軟件的工期常常是制約軟件質(zhì)量的主要因素。很多情況下,軟件開發(fā)商在工期的壓力下,放棄文檔的書寫,組織,結(jié)果在工程的晚期,大量需要文檔進行協(xié)調(diào)的工作時,致使軟件進度越來越慢。軟件的開發(fā)不同于其他的工程,在不同的工程階段,需要的人員不同,需要配合的方面也不同,所有這些都需要行之有效的軟件管理的保證。
軟件需求的調(diào)研是否深入透徹:軟件的需求是確保軟件正確反映用戶的對軟件使用的重要的文檔,探討軟件需求是軟件開發(fā)的起始點,但軟件的需求卻會貫穿整個軟件的開發(fā)過程,軟件管理需要對軟件需求的變化進行控制和管理,一方面保證軟件需求的變化不至于造成軟件工程的一改再改而無法按期完成;同時又要保證開發(fā)的軟件能夠為用戶所接受。軟件管理需要控制軟件的每個階段進行的成度,不能過細造成時間的浪費,也不能過粗,造成軟件缺陷。
軟件的實現(xiàn)技術(shù)手段是否能夠同時滿足性能要求:軟件的構(gòu)造需要對軟件構(gòu)造過程中的使用的各種技術(shù)進行評估。軟件構(gòu)造技術(shù)通常是這樣:最成熟的技術(shù),往往不能體現(xiàn)最好的軟件性能;先進的技術(shù),往往人員對其熟悉程度不夠,對其中隱含的缺陷不夠明了。軟