劉軼群
【摘要】 本文從統一過程的最佳實踐角度對需求分析、需求用例、需求管理、需求變更管理等方面,進行了理論分析.本文認為,采用迭代和用例最佳實踐方法進行需求分析,可以使軟件開發的進度、成本和質量有了安全可靠的基礎,系統風險大大降低.
【關鍵詞】 需求;Unified Process;迭代方法;用例;需求變更管理
【基金項目】
國家自然科學基金(61379152,61309022),武警工程大學基礎基金(WJY201314)
一、引言
軟件工程中,采用瀑布式方法進行軟件開發,在開發初期就希望全面地用于捕獲需求的特性和功能列表的方式,造成了項目延遲交付,甚至無法完成等情況.研究和總結諸多失敗的軟件項目,發現對項目的錯誤假設是主要原因.這個假設是:規格說明是可預知的和穩定的,并且能夠在項目開始時就正確定義需求,同時具有低變更率.這種假設與事實背道而馳,而且導致了代價高昂的誤解.研究結果表明,典型的軟件項目在需求上會經歷25%的變更,而對于大型軟件項目,其變更率有的高達35%到50%之多.
成功開發一個軟件項目,對于項目組人員和用戶而言,在很大程度上取決于能否采用一種都易于理解和采用的直觀方式定義系統的需求.UP(Unified Process,統一過程)提出了一系列的最佳實踐模式,用例是目前定義軟件系統需求的一種最佳方法,它強調了用戶的目標和觀點,使領域專家或需求提供者自己編寫(或參與編寫)用例成為可能,并使軟件開發工作難度降低,核心風險也就大大降低.
二、需求的含義
需求(requirement)是將要開發的系統必須提供的功能和遵守的條件.它包括需求分析、需求用例、需求管理、需求變更管理和需求實現等方面.
UML創始人之一的Ivar Jacobson強調:對于需求分析,一方面應關注系統的用戶或參與者編寫需求,詢問其目標和典型情況;另一方面應關注理解參與者所考慮的有價值結果.優秀軟件開發在需求分析中應該避免進行“如何”的決策,避免規定系統的外部行為.在項目的前期需求工作流中,應記住“摒除用戶界面于考慮之外——集中于意圖”.也就是說,尋找、溝通和記錄什么是真正需要的,并能夠清楚地講解給客戶和開發團隊的成員.需求分析強調的是對需求和問題的調查研究,而不是解決方案,在設計過程中創建滿足該規格說明的解決方案.實踐中,“分析”與“設計”的區別就在于“什么”和“如何”的差異.
三、UP的最佳實踐
UP廣泛運用了統一建模語言(Unified Modeling Language,UML).UML是一種圖形表示法,用于傳遞設計理念的可視化語言.它可以輔助開發者指定、顯現、構建和記錄開發過程的工作.UML已經成為用于面向對象建模的圖 形化表示法的事實和法律標準.面向對象不是編程語言,而是一種思考問題的方法,也就是說,使用者將問題分解為可區分的對象,采用對象思維開展工作的方法.UML的核心是模型,在軟件開發過程中,充分發揮UML的九類圖在可視化方面的表達價值,構建實際事物的簡化模型,展示建模者對問題認知求解的過程,幫助項目團隊理解軟件內部復雜結構的方方面面.“面向對象設計模型”依賴于“軟件需求”并作為“代碼框架”的依據,是需求向代碼過渡的直觀表述.
1.UP的最佳實踐之一:迭代開發
迭代開發(Iterative Development)是一種最佳實踐方法.在這個生命周期方法中,開發被組織成一系列固定的短期小項目.每次迭代都具有各自的需求分析、設計、實現和測試活動.系統基于多次迭代實現持續擴展和精化,并以循環反饋和調整為核心驅動力,使之最終形成合適的軟件.隨著時間和一次又一次的迭代遞進,系統增量式地發展完善.
2.UP的最佳實踐二:用例
用例(Use Case)常用于軟件項目的需求分析階段.用例是文本文檔,而非圖形.用例由一個或多個參與者(人或系統外部的實體)以及系統自身進行的一系列活動,活動的結果會給一個或多個參與者帶來若干價值,而且,用例主要說明了系統如何工作的功能性或行為性需求.用例建模主要是編寫文本的活動,而非制圖,用例的核心是文本情節,而非具有特殊符號和語法的用例圖,文本用例才是能夠被用戶所廣泛接受的形式.
3.UP的最佳實踐三:需求變更管理
基于軟件長期穩定的這一假設所作出的分析、建模、開發或管理實踐(如瀑布式模型)都具有根本缺陷.變更對于軟件項目來說是永恒的.需求變更的出現主要是因為在項目的需求確定階段,用戶往往不能確切地定義自己需要什么,隨著開發工作的不斷進展,系統開始展現功能的雛形,用戶對系統的了解也逐步深入,于是,用戶可能會想到各種新的功能和特色,或對以前提出的要求進行改動,需求變更因此不可避免地一次又一次出現.
四、總結
本文從UP的最佳實踐角度對需求分析、需求用例、需求變更管理等方面,進行了分析,本文認為,采用迭代和用例最佳實踐方法進行需求分析,可以使軟件開發的進度、成本和質量有了“安全”的基礎,風險也就大大降低了.
【參考文獻】
[1]尤克濱.UML應用建模實踐過程.北京:機械工業出版社,2003.
[2]斯科特(Scott,K.),著.付宇光,朱劍平,譯.統一過程精解.北京:清華大學出版社,2005.
[3](美)Craig Larman,著.李洋,等譯.UML和模式應用(原書第3版).北京:機械工業出版社,2006.
[4]賈慧.需求變更六大原則及應對之道.http://industry.ccidnet.com/col/1544/1544.html.