需要做,這會給項目工期帶來較大的風(fēng)險。
回避和控制這部分風(fēng)險的辦法是在項目進(jìn)行的過程不斷的對該階段進(jìn)行風(fēng)險估計和指定有效的里程碑。同時采用"范例"方式提高開發(fā)人員的構(gòu)件組件的分析識別能力,適時調(diào)整構(gòu)件組件的數(shù)量和粒度。
軟件過程風(fēng)險—軟件需求階段的風(fēng)險
軟件的開發(fā)是以用戶的需求開始,在大多數(shù)情況下,用戶需求要靠軟件開發(fā)方誘導(dǎo)才能保證需求的完整,再以書面的形式形成《用戶需求》這一重要的文檔。需求分析更多的是開發(fā)方確認(rèn)需求的可行性和一致性的過程,在此階段需要和用戶進(jìn)行廣泛的交流和確認(rèn)。需求和需求分析的任何疏漏造成的損失會在軟件系統(tǒng)的后續(xù)階段被一級一級地放大,因此本階段的風(fēng)險最大。
設(shè)計階段的風(fēng)險。設(shè)計的主要目的在于軟件的功能正確的反映了需求??梢娦枨蟮牟煌暾蛯π枨蠓治龅牟煌暾湾e誤,在設(shè)計階段被成倍地放大。設(shè)計階段的主要任務(wù)是完成系統(tǒng)體系結(jié)構(gòu)的定義,使之能夠完成需求階段的即定目標(biāo);另一方面也是檢驗需求的一致性和需求分析的完整性和正確性。
設(shè)計本身的風(fēng)險主要來自于系統(tǒng)分析人員。分析人員在設(shè)計系統(tǒng)結(jié)構(gòu)時過于定制,系統(tǒng)的可擴(kuò)展性較弱,會給后期維護(hù)帶來巨大的負(fù)擔(dān),和維護(hù)成本的激增。對用戶來說系統(tǒng)的使用比例會有明顯的折扣,甚至造成軟件壽命過短。反之,軟件結(jié)構(gòu)的過于靈活和通用,必然引起軟件實現(xiàn)的難度增加,系統(tǒng)的復(fù)雜度會上升,這又會在實現(xiàn)和測試階段帶來風(fēng)險,系統(tǒng)的穩(wěn)定性也會受到影響。從另一個角度上看,業(yè)務(wù)規(guī)則的變化,或說用戶需求和將來軟件運(yùn)行環(huán)境的變化都是必然的情況,目前軟件設(shè)計的所謂"通用性"是否就能很好的適應(yīng)將來需求和運(yùn)行環(huán)境的的變化,是需要認(rèn)真折衷的。這種折中也蘊(yùn)涵著很大的風(fēng)險。
設(shè)計階段蘊(yùn)涵的另一種風(fēng)險來自于設(shè)計文檔。文檔的不健全不僅會造成實現(xiàn)階段的困難,更會在后期的測試和維護(hù)造成災(zāi)難性的后果,例如根本無法對軟件系統(tǒng)進(jìn)行版本升級,甚至是發(fā)現(xiàn)的簡單錯誤都無從更正。實現(xiàn)階段引入的風(fēng)險軟件的實現(xiàn)從某種意義上講是軟件代碼的生產(chǎn)。原代碼本身也是文檔的一部分,同時它又是將來運(yùn)行于計算機(jī)系統(tǒng)之上的實體。源代碼書寫的規(guī)范性,可讀性是該階段的主要風(fēng)險來源。規(guī)范的代碼生產(chǎn)會把屬于程序員自身個性風(fēng)格的成分引入代碼的比例降到最低限度,從而減小了系統(tǒng)整合的風(fēng)險。
維護(hù)階段的風(fēng)險。軟件維護(hù)包含兩個主要的維護(hù)階段,一個是軟件生產(chǎn)完畢到軟件試運(yùn)行階段的維護(hù),這個階段是一種實環(huán)境的測試性維護(hù),其主要目的是發(fā)現(xiàn)在測試環(huán)境中不能或未發(fā)現(xiàn)的問題;另一個階段是當(dāng)軟件的運(yùn)行不再能適應(yīng)用戶業(yè)務(wù)需求或是用戶的運(yùn)行環(huán)境(包括硬件平臺,軟件環(huán)境等)時進(jìn)行的軟件維護(hù),具體可能是軟件的版本升級或軟件移植等。
在軟件系統(tǒng)運(yùn)營期間,主要的風(fēng)險源自于技術(shù)支持體系的無效運(yùn)轉(zhuǎn)??茖W(xué)的方法是有一支客戶支持隊伍不斷收集運(yùn)行中發(fā)現(xiàn)的問題,并將解決問題的方法傳授給軟件系統(tǒng)的所有使用者。
從軟件工程的角度看,軟件維護(hù)費用約占總費用的55%~70%,系統(tǒng)越大,該費用越高。對系統(tǒng)可維護(hù)性的輕視是大型軟件系統(tǒng)的最大風(fēng)險。在軟件漫長的運(yùn)營期內(nèi),業(yè)務(wù)規(guī)則肯定會不斷發(fā)展,科學(xué)的解決此問題的做法是不斷對軟件系統(tǒng)進(jìn)行版本升級,在確??删S護(hù)性的前提下逐步擴(kuò)展系統(tǒng)。