風(fēng)險(xiǎn)分析是在事前的一種估計(jì),由于風(fēng)險(xiǎn)是在項(xiàng)目開(kāi)始之后才開(kāi)始對(duì)項(xiàng)目的開(kāi)發(fā)起負(fù)面的影響,所以風(fēng)險(xiǎn)分析的不足,或是風(fēng)險(xiǎn)回避措施不得力,都很有可能造成軟件開(kāi)發(fā)的失敗。憑借一定的技術(shù)手段和豐富的經(jīng)驗(yàn),基本能夠?qū)?a href="http://opto-elec.com.cn/" target="_blank">項(xiàng)目的風(fēng)險(xiǎn)做出比較準(zhǔn)確的估計(jì),經(jīng)過(guò)慎重的考慮提出可行的風(fēng)險(xiǎn)回避措施,是避免損失的重要環(huán)節(jié)。
本文主要針對(duì)軟件開(kāi)發(fā)涉及到的風(fēng)險(xiǎn),包括在軟件開(kāi)發(fā)周期過(guò)程中可能出現(xiàn)的風(fēng)險(xiǎn)以及軟件實(shí)施過(guò)程中外部環(huán)境的變化可能引起的風(fēng)險(xiǎn)等進(jìn)行評(píng)估。在文中對(duì)所提到的風(fēng)險(xiǎn)都一一做了詳細(xì)的分析,并提出了相應(yīng)的風(fēng)險(xiǎn)回避措施。
一、軟件開(kāi)發(fā)主要風(fēng)險(xiǎn)綜述
任何軟件的開(kāi)發(fā),其主要風(fēng)險(xiǎn)均來(lái)自于兩個(gè)方面,一是軟件管理,二是軟件體系結(jié)構(gòu)。軟件產(chǎn)品的開(kāi)發(fā)是工程技術(shù)與個(gè)人創(chuàng)作的有機(jī)結(jié)合。軟件開(kāi)發(fā)是人的集體智慧按照工程化的思想進(jìn)行發(fā)揮的過(guò)程。軟件管理是保證軟件開(kāi)發(fā)工程化的手段。軟件體系結(jié)構(gòu)的合理程度是取決于集體智慧發(fā)揮的程度和經(jīng)驗(yàn)的運(yùn)用。
1、軟件管理將影響到軟件的下列因素:
軟件是否能夠按工期的要求完成:軟件的工期常常是制約軟件質(zhì)量的主要因素。很多情況下,軟件開(kāi)發(fā)商在工期的壓力下,放棄文檔的書(shū)寫(xiě),組織,結(jié)果在工程的晚期,大量需要文檔進(jìn)行協(xié)調(diào)的工作時(shí),致使軟件進(jìn)度越來(lái)越慢。軟件的開(kāi)發(fā)不同于其他的工程,在不同的工程階段,需要的人員不同,需要配合的方面也不同,所有這些都需要行之有效的軟件管理的保證。
軟件需求的調(diào)研是否深入透徹:軟件的需求是確保軟件正確反映用戶的對(duì)軟件使用的重要的文檔,探討軟件需求是軟件開(kāi)發(fā)的起始點(diǎn),但軟件的需求卻會(huì)貫穿整個(gè)軟件的開(kāi)發(fā)過(guò)程,軟件管理需要對(duì)軟件需求的變化進(jìn)行控制和管理,一方面保證軟件需求的變化不至于造成軟件工程的一改再改而無(wú)法按期完成;同時(shí)又要保證開(kāi)發(fā)的軟件能夠?yàn)橛脩羲邮?。軟件管理需要控制軟件的每個(gè)階段進(jìn)行的成度,不能過(guò)細(xì)造成時(shí)間的浪費(fèi),也不能過(guò)粗,造成軟件缺陷。
軟件的實(shí)現(xiàn)技術(shù)手段是否能夠同時(shí)滿足性能要求:軟件的構(gòu)造需要對(duì)軟件構(gòu)造過(guò)程中的使用的各種技術(shù)進(jìn)行評(píng)估。軟件構(gòu)造技術(shù)通常是這樣:最成熟的技術(shù),往往不能體現(xiàn)最好的軟件性能;先進(jìn)的技術(shù),往往人員對(duì)其熟悉程度不夠,對(duì)其中隱含的缺陷不夠明了。軟件管理在制定軟件開(kāi)發(fā)計(jì)劃和定義里程碑時(shí)必須考慮這些因素,并做出合理的權(quán)衡決策。
軟件質(zhì)量體系是否能夠被有效地保證:任何軟件管理忽略軟件質(zhì)量監(jiān)督環(huán)節(jié)都將對(duì)軟件的生產(chǎn)構(gòu)成巨大的風(fēng)險(xiǎn)。而制定卓有成效的軟件質(zhì)量監(jiān)督體系,是任何軟件開(kāi)發(fā)組織必不可少的。軟件質(zhì)量保證體系是軟件開(kāi)發(fā)成為可控制過(guò)程的基礎(chǔ),也是開(kāi)發(fā)商和用戶進(jìn)行交流的基礎(chǔ)和依據(jù)。
2、軟件體系結(jié)構(gòu)影響到軟件的如下質(zhì)量因素:
軟件的可伸縮性:是指軟件在不進(jìn)行修改的情況下適應(yīng)不同的工作環(huán)境的能力。由于硬件的飛速發(fā)展和軟件開(kāi)發(fā)周期較長(zhǎng)的矛盾,軟件升級(jí)的需要顯得非常迫切。如果軟件的升級(jí)和移植非常困難,軟件的生命期必定很短,使得化費(fèi)巨大人力物力開(kāi)發(fā)出的軟件系統(tǒng)只能在低性能的硬件或網(wǎng)絡(luò)上運(yùn)行,甚至被廢棄不用,造成巨大的浪費(fèi)。
軟件的可維護(hù)性:軟件的維護(hù)也是必然的事情,為了保證軟件的較長(zhǎng)使用壽命,軟件就必須適應(yīng)不斷的業(yè)務(wù)需求變化,根據(jù)業(yè)務(wù)需求的變化對(duì)軟件進(jìn)行修改。修改的成本和周期都直接和軟件的體系結(jié)構(gòu)相關(guān)。一個(gè)好的軟件體系結(jié)構(gòu)可以盡可能地將系統(tǒng)的變化放在系統(tǒng)的配置上,即軟件代碼無(wú)需修改,僅僅是在系統(tǒng)提供的配置文件中進(jìn)行適當(dāng)?shù)男薷模缓筌浖匦录虞d進(jìn)入運(yùn)行狀態(tài),就完成了系統(tǒng)部分功能和性能要求