采用有彈性和可擴展的軟件體系結構設計可以有效地降低需求變更引起的風險和維護代價,能夠在項目范圍未發生變化的前提下很好地適應需求的變化。體系結構的靈活和可擴展性設計使得開發者可以在這種體系結構上面進行各個功能層的組合和分離,也可以將各個功能層分布在各個不同的服務器上共同提供服務,因而能夠快速的對需求變更作出響應,并且對已經開發好的系統產生盡可能少的影響。
體系結構的設計除了考慮到體系結構的靈活性和可擴展性以外,還應盡量采用松散耦合的結構,使得結構中的各個構件之間的關聯程度盡可能的少,這樣就能在需求發生變更時一個構件的變化對另一個構件產生盡可能少的影響。
現有的軟件體系結構很多,包括管道-過濾器結構、B/S結構(含C/S結構)、解釋器/虛擬機結構、黑板系統以及基于中間件技術的體系結構。在設計體系結構時,首先應該選出適合項目需求的系統結構,然后在從中挑選出那些擴展性比較好,構件之間耦合性比較小的體系結構;谥虚g件技術的體系結構就是擴展性比較好的體系結構。采用中間件技術,中間件作為用戶界面和操作系統以及網絡的連接點,向上為用戶提供服務,向下屏蔽操作系統和網絡的細節。這種分層的思想能夠很好的適應操作系統和網絡的變化,可擴展性十分的好。同時,可以在中間件中給出容易改變的接口或是為系統將來改變預留接口來實現功能上的需求變更。當然可擴展性比較好的體系結構遠不止基于中間件技術的體系結構這一種,具體的選擇和運用應該由設計人員根據實際需要考慮。
采用面向對象思想
需求是不穩定的,因而沒有不變的需求,然而需求之中卻有穩定的東西,這就是對象。世界都是由對象組成的,而對象都是持久的,例如動物、植物已經有相當長的時間。雖然對象也在變化,動物、植物也在不斷的進化。但對象在一個相當長的時期內都存在,動植物的存在時間肯定比任何一家企業長久。面向對象的開發方法的精髓就是從企業的不穩定需求中分析出企業的穩定對象,以企業對象為基礎來組織需求、構架系統。這樣得出的系統就會比傳統的系統要穩定得多,因為企業的模式一旦變化,只需要將穩定的企業對象重新組織就行了。
面向對象(OO)技術的三大特征保證了采用OO技術可以建立易于改變和加強可重用性的軟件系統。封裝可以把問題影響的范圍縮小,外部的變化要求對系統的影響可以限定到某個類層次或某些類層次中,從而改變系統的一部分相對簡單;繼承可以使改變基于原有技術基礎,很大程度上減少重復開發工作;多態的應用可以使開發和設計人員在相對統一的接口下更改系統的實現細節,從而改變系統的行為。
顯然,OO技術是一種增強軟件可維護性、健壯性以及保持設計穩定性的一種分析和設計方法,可以在一定程度上快速對需求變更進行反應,并可相對減少需求變更需要的成本。因此,在系統開發過程中應該盡量的采用面向對象的思維方式來構建系統和開發系統。
需求變更控制
正如前文所言,需求變更不可避免的會發生,那么當需求變更發生后項目開發人員應該如何應對呢?
一般來講,需求的變更通常意味著需求的增加,需求的減少相對很少,而且處理也比較容易。當客戶提出新需求的時候,項目開發人員應該分析這些新需求對項目現階段帶來的風險,得出雙方實現變更需求的需要的成本,包括時間、人力、資源等等方面,再與客戶商討是否有必要進行變更和如何在最小代價下實現變更。
當客戶確實希望進行需求變更時,可以讓開發人員開發一個快速原型,讓用戶體驗一下,以確?蛻舸_確實實的希望添加這些需求。在客戶和項目開發人員共同確定了需求變更后,項目開發人員應該與客戶簽訂一份新的合同。
當客戶提出需求變更并且簽訂了合同后或是開發人員根據市場和國家政策作出的需求變更得到確證后,項目開發人員應該決定何時實施這些變更。對于那些對系統影響不大和一些優先權十分高的需求變更可以立即在項目中實施,而對于那些對于整個系統現階段的開發影響很大,而且又不是十分緊急的需求可以放在下一個版本中進行。無論是立即實施還是放在下一個版本中,都應該給新的需求一個充足的開發和測試時間,保證產品質量。
結論
在面對需求變更時,除了通過減少需求變更和規范文檔,從分析和設計的角度通過采用合理的分析和設計方法適應需求變更以外,還應該改變我們設計的意識和對需求變更的理解,做好對需求變更的控制和管理,做到對需求變更的靈活應對,在一定程度上降低維護代價和提高用戶滿意度。
文章來源于領測軟件測試網 http://www.kjueaiud.com/