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