(譯自Rose Enterprise 2000中的RequisitePro 4.5中的隨機(jī)文檔)
需求管理是對變動(dòng)的需求進(jìn)行確定、組織和制作文檔的過程。本文將介紹Rational Unified Process (RUP)中的有關(guān)于需求管理的基本概念,并展示如何使用RequisitePro來實(shí)行需求管理。
RequisitePro是很特別的產(chǎn)品,它集成了一個(gè)大家都很熟悉的環(huán)境:Microsoft Word,以及一個(gè)數(shù)據(jù)庫來提供強(qiáng)有力的十分容易使用的框架,你可以用它來對產(chǎn)品需求進(jìn)行管理。你要在需求文檔中逐條標(biāo)記你的需求,然后通過數(shù)據(jù)庫對它們進(jìn)行管理。以此為基礎(chǔ),你的團(tuán)隊(duì)可以對同一個(gè)項(xiàng)目進(jìn)行合作與聯(lián)系,并進(jìn)行不斷的更新。
理解需求管理的第一步是建立一個(gè)通用的詞匯表。Rational把需求定義為:一種在建系統(tǒng)必須遵循的條件或功能。需求管理應(yīng)該是:可以對系統(tǒng)的需求進(jìn)行引入、組織和文檔化的一種系統(tǒng)化的方法與步驟,以及建立和維護(hù)開發(fā)團(tuán)隊(duì)和客戶之間關(guān)于系統(tǒng)需求變更的確認(rèn)的過程。
要注意的是目前的需求管理沒有最通用的辦法。以下的各步驟是作為一種起點(diǎn)來提供的。在你的開發(fā)環(huán)境中,由于你不斷經(jīng)歷著你的軟件的反復(fù)疊代并為此不斷工作,你需要不斷地重新定義你的過程,并且要找出最適合你開發(fā)需要的工作程序。 由于這是反復(fù)迭代的過程,所以你要在項(xiàng)目中經(jīng)常經(jīng)歷以下的12個(gè)步驟。
Step 1: 分析問題并收集stakeholder needs
系統(tǒng)分析對總體任務(wù)負(fù)有責(zé)任。所有的團(tuán)隊(duì)成員,包括核心的stakeholder,都要幫助系統(tǒng)分析員從客戶那里收集stakeholder needs。可以使用以下方法:
☆面談交流
☆問題調(diào)查表
☆集體討論與靈感收集
☆討論板
☆原型
這些和客戶交互的結(jié)果可以很方便地記錄到RequisitePro文檔中去。
Step 2: 為RequisitePro工程創(chuàng)建一個(gè)概要說明
一旦你的團(tuán)隊(duì)已經(jīng)分析了問題,并且收集了足夠的stakeholder needs,下一步是在RequisitePro中對你的項(xiàng)目組織安排進(jìn)行規(guī)劃。你可以使用Requirements Management Plan outline (rup_rmpln.dot)來創(chuàng)建一個(gè)需求管理計(jì)劃文檔。如果你使用的是RequisitePro Project Template 4.5,那么你還可以選擇需求管理計(jì)劃文檔的類型。你可以在需求管理計(jì)劃文檔中記載以下信息:
你可能在項(xiàng)目中要用到的Requirements artifacts (RequisitePro文檔),例如Stakeholder需求文檔、 Vision(確定性不高的)文檔、軟件需求文檔、測試計(jì)劃書,還有需求類型,例如用于stakeholder NEED,特性 FEAT, 軟件需求SR(software requirement),另外還有需求屬性,跟蹤要點(diǎn)等。
Step 3: 在一個(gè)可見的文本中的文檔特性
系統(tǒng)分析員可以在推薦的軟件產(chǎn)品的高層次的需求(或功能特性)上獲得客戶的認(rèn)可。這些關(guān)鍵性的用戶需要一個(gè)在RequisitePro中的可見的文檔。系統(tǒng)分析員可以為功能特性Feature創(chuàng)建需求類型 (使用FEAT)以及Stakeholder需求(使用NEED) 作為文檔中缺省的需求類型。
每一個(gè)經(jīng)過肯定的特性都被標(biāo)記為FEAT需求,而每一個(gè)stakeholder needs將被標(biāo)記為NEED需求并放在一個(gè)不確定文檔中。
此后系統(tǒng)分析員可以在RequisitePro中建立功能特性(例如:客戶優(yōu)先級、風(fēng)險(xiǎn)、rationale、來源等)。 在輸入完以后,系統(tǒng)分析員為需求管理來定義有關(guān)的屬性,因?yàn)樗鼈兩婕暗介_發(fā)周期中其它的工作。
Step 4: 拓展需求的細(xì)節(jié)
一旦你的特性需求定義好了,你可以創(chuàng)建底層的需求(它門可能被組織成軟件需求) 。在搜集了整個(gè)團(tuán)隊(duì)的輸入以后,系統(tǒng)分析員將需求輸入到RequisitePro,同時(shí)還定義屬性用以進(jìn)行跟蹤。
還有些組織會選擇use case來規(guī)劃他們的需求。系統(tǒng)分析員和所有項(xiàng)目成員聚集在一處,共同探討需求問題,對軟件中所有的use case和actor角色進(jìn)行鑒定。通常這會在白板或紙上進(jìn)行記錄,系統(tǒng)分析員使用這些信息并把這些use case和actor記錄到Rational Rose中去。你可以在Rose中拓展use case,并把它們和RequisitePro中的需求進(jìn)行關(guān)聯(lián) (參見Step 10: 和Rational Rose集成)。如果你的工作過程不包括Rose,那么何不直接把它們作為需求輸入到RequisitePro。
Rational提倡在詳細(xì)描述uses case時(shí)使用分層次等級的需求。如果你在一個(gè)很大的非常復(fù)雜的系統(tǒng)中,那么你可以決定是否要為某一個(gè)use case使用分離的需求類型。如果你要為2個(gè)不同的需求類型使用不同的安全設(shè)置,或者你可能希望在use case和在其中定義的需求之間建立外在的可跟蹤性,或者你需要一套2個(gè)不同的需求類型中彼此分離的屬性,那么這還是有必要的。
一旦需求被加入到RequisitePro,系統(tǒng)分析員(通過團(tuán)隊(duì)的輸入?yún)f(xié)助下)可以定義一些屬性來對需求進(jìn)行管理。Use case用例在項(xiàng)目的某個(gè)過程中可能接著被加入。你的列表可能還不完善,但這沒有關(guān)系,因?yàn)樗梢栽谌魏螘r(shí)候得到進(jìn)一步的更新和完善。
Step 5: 跟蹤需求,并擴(kuò)展到功能上去
一旦所有的需求都已經(jīng)輸入到RequisitePro中了,系統(tǒng)分析員在軟件需求(SR)和特性(FEAT)需求之間建立了可跟蹤性。我們推薦對從SR類型到FEAT類型需求的過程進(jìn)行跟蹤,由此可以顯示SR對FEAT依賴關(guān)系。
如果你選擇使用use case,我們推薦對Use Case需求到FEAT需求的過程進(jìn)行跟蹤,因?yàn)閡se case依賴于對功能的定義。但在某些時(shí)候,功能特性并不和use case相對應(yīng),或者,很難通過特殊的use case來進(jìn)行跟蹤。在這種情況下,系統(tǒng)分析員要對功能需求進(jìn)行Supplementary Specification (SUPL)跟蹤。
Step 6: 對需求區(qū)分優(yōu)先級
在需求之間設(shè)置了可跟蹤性以后,系統(tǒng)分析員和整個(gè)團(tuán)隊(duì)成員要搜集并決定輸入RequisitePro的需求的有限級別。
在你確定優(yōu)先級的時(shí)候,要考慮這樣一些因素:
需求是如何體現(xiàn)到產(chǎn)品功能、可用性、可靠性和性能中去的?
在進(jìn)度約束下,需求實(shí)現(xiàn)后的效果是否值得?
現(xiàn)實(shí)下需求是否帶來風(fēng)險(xiǎn)?
該需求如果實(shí)現(xiàn)了,對你進(jìn)行產(chǎn)品維護(hù)的能力有什么影響?
你還必須檢查你的進(jìn)度。是否有時(shí)間完成所有高優(yōu)先級需求?
在此階段建立比較現(xiàn)實(shí)的期望將幫助你的團(tuán)隊(duì)在進(jìn)度和預(yù)算范圍內(nèi)開展工作。
使用需求屬性可以幫助你確定需求的優(yōu)先級別。一旦你輸入了需求數(shù)據(jù),你就可以對它們進(jìn)行查詢、排序并決定它們的位置。
在RequisitePro學(xué)習(xí)工程中,屬性"Planned Iteration"字段被設(shè)為一個(gè)數(shù)值,該數(shù)值反映了軟件中的反復(fù),團(tuán)隊(duì)準(zhǔn)備用該軟件來實(shí)現(xiàn)特定的use case。一旦第一次反復(fù)疊代的范圍被定義完成,而且反復(fù)疊代次數(shù)被指定到use case,系統(tǒng)分析員對用例執(zhí)行一項(xiàng)Attribute Matrix查詢來分離那些在軟件中首次反復(fù)可被定位的用例。你可以將該Attribute Matrix保存并在以后再次查看它。
Step 7: 對需求進(jìn)行分派
對需求指定優(yōu)先級以后,系統(tǒng)分析員和團(tuán)隊(duì)將每一個(gè)use case或者requirement指派給團(tuán)隊(duì)成員,這可通過使用 "Assigned To"需求屬性來完成。團(tuán)隊(duì)中的一些人將對每一個(gè)特性的具體實(shí)現(xiàn)負(fù)責(zé)。
通過參考上面步驟中的Attribute Matrix,分析員為每一個(gè)需求或用例填寫"Assigned To"屬性。這將被作為第一次反復(fù)。
使用use case方法的組織將把use cases分派給use case定義者,他將對所有和流程相關(guān)的所有需求負(fù)責(zé)。
如果你的組織使用其它的方法,則分派也可能是其它形式:
SRS系統(tǒng)規(guī)格文檔,可以包括多組需求;
或者特定格式的需求記錄
Step 8: 細(xì)化需求規(guī)格
團(tuán)隊(duì)成員 (或者use case 定義者)通過在RequisitePro中"Assigned To"屬性來確認(rèn)他們被分派了哪些需求。他們可以得到一張顯示所有需求對個(gè)人的分派情況的列表。
從該表中你可以查詢一個(gè)FEAT需求類型的Traceability Matrix,以及分派給你的需求類型。你可以通過選擇需求類型得到所有特性跟蹤的列表,并通過它生成一個(gè)特定的文檔。
Use case specifier將進(jìn)行查詢,這些查詢基于從用例的類型的跟蹤,然后可使用來自requirement workshop的use case描述來創(chuàng)建Use-Case Specification文檔。
Rational推薦在詳細(xì)描述use case時(shí)使用分等級管理。你可以使用“屬性Property”來組織你的use case需求。 可以用use case的名字來創(chuàng)建父一級的用例需求,并設(shè)置屬性"Name"的值。你可能還要使用屬性"Brief Description"或者"Basic Flow"來定義子一級的用例需求,他們可提供用例的細(xì)節(jié)。
Step 9: 在RequisitePro中將需求屬性公布(Populating)
在此之前,系統(tǒng)分析員已通過整個(gè)團(tuán)隊(duì)的輸入而定義了需求管理的有關(guān)屬性(見前面章節(jié))。 被分派了需求的團(tuán)隊(duì)成員可以將這些屬性在RequisitePro中通過賦予特定的用于需求管理的值來使之公布(Populating) 。
Step 10: 和Rational Rose進(jìn)行集成
如果你同時(shí)擁有Rational Rose和RequisitePro,那么有2種方法來共享數(shù)據(jù)。
我們推薦使用Integrated Use Case Management來開始你的開發(fā)周期。系統(tǒng)分析員在Rose中定義use case ,然后在RequisitePro中使用Integrated Use Case Management特性來創(chuàng)建use case文檔。該方法只需要通過幾項(xiàng)菜單操作即可實(shí)現(xiàn)Rose和RequisitePro之間的轉(zhuǎn)化和關(guān)聯(lián)。對use case的修改將自動(dòng)在Rose或RequisitePro中得到更新。
但是,如果你在RequisitePro中開發(fā)use case,并且想轉(zhuǎn)換到Rose use case圖,并且?guī)в嘘P(guān)聯(lián)屬性,那么你要使用Rational Synchronizer,此后你可以通過Integrated Use Case Management將這些use case關(guān)聯(lián)到RequisitePro需求和文檔。
Rational Synchronizer可以幫助你在Rose中從RequisitePro中已經(jīng)存在的需求中創(chuàng)建use case。如果你已經(jīng)在RequisitePro中建立了大量的use case,那么這時(shí)候?qū)⒑苡袔椭?。在這種情況下,你可以用Rational Synchronizer中的rules feature來把RequisitePro中的use case需求以批處理方式轉(zhuǎn)換到Rose中。然后你可以使用Integrated Use Case Management來把這些Rose use case和已經(jīng)存在的RequisitePro中的use case需求進(jìn)行關(guān)聯(lián)。
Step 11: 通過查詢來找出項(xiàng)目的進(jìn)展?fàn)顩r
在查詢以前,要在FEAT需求和指派給你的需求類型之間建立一個(gè)Traceability Matrix,(Use case specifiers將在FEAT和用例需求之間建立Traceability Matrix)。視圖將以行方式顯示你的FEAT需求,以列方式顯示其它需求。
點(diǎn)擊Query column requirements按鈕,并且在Select Attribute對話框中選擇"Planned Iteration" 屬性,點(diǎn)擊OK。在Query Requirements對話框中,選擇Equal to選項(xiàng),然后鍵入你期望的反復(fù)次數(shù)。如果要看哪一項(xiàng)屬性沒有反復(fù)計(jì)劃,則可以什么也不填。點(diǎn)擊OK,并關(guān)閉每個(gè)對話框以執(zhí)行查詢。
查詢結(jié)果將給出這些FEAT需求類型的跟蹤情況。如果你選擇了沒有反復(fù)計(jì)劃的類型,這樣的列表可以在團(tuán)隊(duì)會議上被檢閱,而被指派到這些需求上的反復(fù)疊代則沒有任何指示。
Step 12: 對變更進(jìn)行管理
每一個(gè)項(xiàng)目都會在發(fā)展過程中產(chǎn)生變化,如何跟蹤這些變化,以及如何將這些變化及時(shí)地與你的團(tuán)隊(duì)和經(jīng)理進(jìn)行及時(shí)溝通,這將是一種挑戰(zhàn)。是否成功將取決于你跟蹤需求變更的能力。系統(tǒng)分析員在整個(gè)項(xiàng)目生命周期內(nèi)應(yīng)進(jìn)行各種查看以確定對各種不同的項(xiàng)目的估計(jì)是否合理正確。RequisitePro可以確定哪種需求已經(jīng)變更,該需求是否需要重新定位,從而使項(xiàng)目的描述保持正確。這些關(guān)聯(lián)將作為一種可覺察到的因素引起注意。
RequisitePro包含了2個(gè)強(qiáng)力管理工具來幫助你記載需求的狀態(tài),跟蹤對需求的變更,并加強(qiáng)你在變更發(fā)生時(shí)對所實(shí)行處理的分析能力。
Traceability提供了一種有系統(tǒng)性的方法來管理變更,可以建立較高層次的需求和它們的更詳細(xì)精確的后期需求之間的連接。Traceability連接關(guān)系使得需求變更的跟蹤變得簡便。
通過Rational ClearCase, Microsoft Visual SourceSafe, 或Merant (Intersolv) PVCS Version Manager 進(jìn)行的版本控制可以允許你通過項(xiàng)目存檔來跟蹤變化。版本控制可以幫助你在整個(gè)開發(fā)周期內(nèi)保持項(xiàng)目文件的變化。你可以管理多種項(xiàng)目的修訂版。你可以用一種有組織的、協(xié)同一致的方式來找回、修改并把修訂版返回到檔案中去。如果你沒有版本管理經(jīng)理,那么你可以使用RequisitePro的Archive命令進(jìn)行項(xiàng)目備份。
【?發(fā)表評論?0條?】