您的位置:軟件測試 > 軟件項目管理 > 風險管理 >
快速原型方法與軟件開發(fā)中的風險管理
作者:網絡轉載 發(fā)布時間:[ 2013/7/18 14:18:05 ] 推薦標簽:

軟件系統(tǒng)往往體現一定的功能,這些功能要符合一定的使用目的,F實世界是在不斷變化的,而且變化的速度是越來越快,不變的是“變化”的主題。這一現實也直接影響到了實現實際功能的軟件系統(tǒng),體現在需求、技術實現手段、應用環(huán)境等多個方面,這些都直接影響到了軟件系統(tǒng)自身的穩(wěn)定性。同時,由于快速變化這一事實,人們對于以后的預測能力也越來越有限,有時根本難以明確未來的需求,只能是根據環(huán)境的變化而隨時調整,因此直接導致了軟件生命周期越來越短這一現實,特別是應用軟件,直接與這種變化緊密相連。

但是,軟件開發(fā)往往需要一定的時間,一個軟件系統(tǒng)從需求、設計、開發(fā)到投入使用,這一周期都不會很短,即從需求產生到實際能夠投入使用這段時間,其本身已經成為應用軟件自身的風險,很可能當一個軟件開發(fā)完成的時候,市場需求已經發(fā)生了變化,開發(fā)出來的軟件已經不適用了。軟件生命周期已經縮短,特別是應用軟件,隨著新業(yè)務的市場窗口變窄的趨勢,其自身的壽命周期也在縮短?焖偻斗攀袌鲆呀洺蔀檐浖到y(tǒng)的首要因素。另一方面,由于快速變化的外部環(huán)境給軟件產品帶來的風險,成本控制也成為軟件工程管理的一個重要方面,通過對需求變化的風險的評估來重新認識軟件壽命周期,以合理的成本完成軟件開發(fā),也已經成為對軟件產品管理者的一個挑戰(zhàn)。

在傳統(tǒng)的軟件工程方法中,主要使用瀑布式順序開發(fā)方法,包括需求分析和定義、系統(tǒng)設計、實現和單元測試、系統(tǒng)集成測試、運行維護等多個階段,這一方法的優(yōu)點是全面、嚴謹,但大的缺陷,是過程一旦啟動難以適應變化。這一方法是基于一個重要的假設前提——能夠提出明確的需求。當面對快速變化、甚至是根本不明確的需求時,這種假設根本上不成立,因此這種傳統(tǒng)的開發(fā)方法的缺點越來越突出,特別是應用軟件的開發(fā),由于它與市場的聯系更加緊密,使用這種傳統(tǒng)的開發(fā)方法,已經難以為繼。我們需要尋找一種更加快速、成本合理的軟件開發(fā)方法。

快速原型方法是這樣一種開發(fā)更加迅速、更加成本合理的開發(fā)方法。在軟件開發(fā)過程中,關鍵的步驟是確切定義出需求,明確軟件要實現的功能是什么,而這恰恰也是困難的過程,因為現在許多用戶在初期只有一個隱約的、大致的考慮,根本不可能提出具體明確的需求。這種情況下,使用快速原型進行反復交流、細化需求,成為一種更加有效的方法。一個軟件的原型,主要是模擬重要的功能和界面,但是一般不考慮運行效率,也不考慮系統(tǒng)的健壯性,出錯處理也考慮不多,它的目的只是為了實際描述概念中的結構,使用戶能夠檢測與其概念的一致性和概念的可用性。

目前主要有兩種快速原型方法:

· 丟棄原型(Throw-away prototyping)。其目標只是為了明確需求,使用簡單的開發(fā)方法,以低的成本實現一個可工作的系統(tǒng),該系統(tǒng)只關注功能,不考慮開發(fā)工具、性能、容錯、未來實際運行環(huán)境等。通過反復與客戶交流和修改原型,使原型的功能能夠充分體現客戶需求。在明確了需求之后,原型會被丟棄。以后軟件的開發(fā)將根據明確了的需求按照傳統(tǒng)的工程化方法來開發(fā)。

· 進化原型(Evolutionary prototyping)。其目標是與客戶一起工作,從一個原始的需求的輪廓開始,逐步改進,終發(fā)展成為符合實際需要的系統(tǒng)。采用這種方法,需要考慮到軟件未來的運行環(huán)境等有關要求,這要求從一開始要對需求有一個比較清晰的認識,不能有方向性的錯誤。

快速原型方法存在的主要問題是:文檔容易被忽略,建立原型過程中的許多工作會被浪費,項目難以計劃和管理。但是這種方法的好處更大:能夠適應不明確的需求,比傳統(tǒng)的瀑布式方法要快得多,用戶的介入更多,能夠及早發(fā)現問題從而降低風險。 在軟件開發(fā)過程中,面對快速變化的市場需求和新技術發(fā)展,大的風險往往來自對需求的分析和技術實現手段的選擇,通過原型化方法,首先以合理的成本細化需求、試驗技術手段,把主要的風險降到低,從而在總體上降低軟件開發(fā)的風險,加快軟件產品的形成,降低軟件開發(fā)的成本。

快速原型方法的過程,特別是進化的原型方法,與軟件的版本升級有些類似。隨著市場需求的變化,軟件版本不斷升級,每升級一次,會增加新的功能,或者引入符合發(fā)展新趨勢的技術手段。但是每一個版本都是產品化的,在產品質量方面都達到了相當的要求,這與軟件原型是不同的,快速原型是一個由粗到細的過程,在終形成產品之前,不論原型被修改了多少個版本,都還不能達到產品化的要求,不能對外發(fā)布。

使用快速原型方法的大困難是工程管理的問題,許多具有較強管理能力的企業(yè)對快速原型方法也感到畏懼,根本原因是其不確定性所帶來的風險。但是應該知道,快速原型的方法,正是為了針對主要風險,分解風險,盡早地、低成本地降低風險。否則,如果一味地強調軟件開發(fā)必須以明確的需求為前提,采用傳統(tǒng)的瀑布式開發(fā)方法,則會面臨更大的市場風險,如果以不明確的需求采用傳統(tǒng)的開發(fā)方法,軟件開發(fā)本身也必然面臨著災難性的風險。因此,快速原型方法應該成為我們軟件開發(fā)過程中降低風險的一種有效的方法。

許多企業(yè)在新的軟件開發(fā)需求提出時,實際已經建立了自己的信息系統(tǒng)的基礎架構,也已經開發(fā)了類似的軟件系統(tǒng),因此在新產品開發(fā)中應采用的技術手段方面,已經不存在問題,這時的風險主要存在于不明確的需求上,此時采用進化的原型方法,比丟棄的原型方法會更有效。為了加強對原型化方法的開發(fā)過程的管理,可以在整個原型化過程中把每一次對需求的細化看作是一次版本升級,在每一次升級過程中,細化了的需求是明確的(雖然還不一定是終的),這可以采用瀑布式開發(fā)管理方法,只是這一過程的周期會非常短,而且只要不是終版本,成本必須控制在低。從另一個角度來說,如果企業(yè)的規(guī)劃能力比較強,對整個產品發(fā)展、信息系統(tǒng)建設都有比較明確的思路,這對于降低單個軟件產品的風險非常有利,限制了產品的風險,為單個軟件產品的設計開發(fā),提供了很好的基礎。因此,使用快速原型方法,需要充分考慮到與企業(yè)原有的規(guī)劃和基礎設施的關系,并注意對它們的影響。下圖是一種典型的快速原型方法的工作流程。

因此,通過提高項目管理能力,針對不同情況,在不同階段,正確運用不同的工程方法,才能有效地控制風險,使軟件開發(fā)保持強大的適應變化的能力,也保持了軟件開發(fā)者的生存能力?焖僭头槲覀兲峁┝艘粋很好的解決辦法。

后還需要強調一點。為了是軟件工程管理能夠適應這種快速變化的要求,使用相應的軟件工程管理軟件是十分必要的。它主要有幾個方面的好處:

1, 建模工具和自動代碼生成工具能夠大大提高開發(fā)的速度。

2, 配置管理工具可以有效對對軟件的變更進行管理。

3, 強大的測試工具可以更加有效地覆蓋測試范圍,提高測試的效率。

4, 強化對軟件開發(fā)過程中的流程管理,加強溝通協作,提高工作效率。

5, 提高項目的績效管理水平。

越是風險高的項目,越需要引入強有力的管理工具,提高管理力度和管理水平。加強科學管理是提高風險管理水平的出路。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd