系統(tǒng)基本需求,交由客戶評(píng)審和補(bǔ)充
通過第一步的逆向工程,我們獲得了系統(tǒng)的基本需求。為了充分記錄需求的變化及需求之間的依賴關(guān)系,我們決定選用Rational公司的Requisite PRO作為我們的需求管理工具,Rational公司有一整套用于需求管理的工具,功能非常強(qiáng)大,包括Requisite Pro、Clear Quest等等,這些需求分析工具可以對(duì)需求進(jìn)行全面的管理,包括記錄需求的變化情況,需求之間的依賴關(guān)系等等。但是,我們考慮到Rational的一套工具全面實(shí)施會(huì)非常昂貴與復(fù)雜,需要非常強(qiáng)的項(xiàng)目管理能力才能全面實(shí)施,因此,我們只采用了其中最簡(jiǎn)單的一部分功能,那就是記錄需求變更,記錄需求之間的依賴關(guān)系,其他跟RUP有關(guān)的功能都給略去了。之所以這樣做,主要是考慮到項(xiàng)目的經(jīng)費(fèi)、人力以及國(guó)內(nèi)軟件開發(fā)的實(shí)際情況。正如前面所說,我們根據(jù)自己的理解并寫出基本需求后,交由客戶做評(píng)審井做適當(dāng)補(bǔ)充,我們將經(jīng)過補(bǔ)充整理后的需求作為正式需求記錄入Requisite Pro所維護(hù)的數(shù)據(jù)庫(kù)中,并對(duì)各個(gè)需求進(jìn)行分類,設(shè)定優(yōu)先級(jí)等,這些工作完成后,就可以從數(shù)據(jù)庫(kù)中直觀地了解客戶到現(xiàn)在為止提出了哪些需求,哪些需求是必須優(yōu)先考慮的,哪些是難度較大的等等。在這個(gè)過程中,我們遇到了一些問題,譬如:用戶對(duì)我們用自然語(yǔ)言書寫的需求文檔有許多地方不理解,往往在花了較長(zhǎng)時(shí)間閱讀之后,仍不明白我們所描寫的需求過程與他們所完成的業(yè)務(wù)之間的對(duì)應(yīng)關(guān)系;另外是由于首次采用Requisite Pro進(jìn)行需求管理,在類型劃分,屬性值的確定上,部分開發(fā)人員沒有經(jīng)驗(yàn),造成了不少反復(fù),對(duì)于前者,我們的方法是想辦法增加一些示意圖,將大的流程分解為小流程,再與客戶反復(fù)交流與溝通,最終達(dá)到雙方理解一致的目的。對(duì)第二個(gè)問題,則參考了一些例子,再結(jié)合實(shí)際中屬性的使用情況,給予取舍或者選擇,經(jīng)過這一階段的工作,我們建立了基本的需求庫(kù),定出了基本需求規(guī)格說明。
第三步則是在第二步的基礎(chǔ)上建立起原型,利用原型與客戶進(jìn)行更深入的交流,通過交流修改相應(yīng)的需求
在這一階段的工作是在對(duì)第二步任務(wù)進(jìn)行報(bào)告交流的基礎(chǔ)上進(jìn)行的。我們用PB開發(fā)了一個(gè)原型系統(tǒng),就具體的業(yè)務(wù)流程與客戶進(jìn)行交流與溝通,通過原型,客戶發(fā)現(xiàn)了許多我們與他們的理解相互不協(xié)調(diào)的地方,我們?cè)谛薷男枨蟮耐瑫r(shí),也在Requisite Pro需求數(shù)據(jù)庫(kù)中記錄下修改的歷史。事實(shí)證明,這種記錄歷史的作用是很有效的,如曾經(jīng)有客戶在兩個(gè)不同的時(shí)間對(duì)同一需求提了相反的需求,我們根據(jù)歷史記錄很快證實(shí)了該客戶的提法有錯(cuò)誤,在事實(shí)面前無需再作爭(zhēng)論,同時(shí)利用Requisite Pro,我們還發(fā)現(xiàn)了一些需求相互之間有矛盾。經(jīng)過這一階段工作,我們終于獲得了經(jīng)過用戶認(rèn)可的需求基線,即是可用于下一步進(jìn)行詳細(xì)設(shè)計(jì)的基線需求。
在這個(gè)項(xiàng)目中,我們利用了Power Designer、PB Documents等逆向工程分析工具和Requisite Pro需求管理工具,這些工具的使用,使我們提高了工作效率,起到了一定的輔助作用。但是,就需求分析工具方面而言。我們覺得國(guó)內(nèi)應(yīng)用得還是太少了,這一方面是因?yàn)閷?duì)需求分析不夠重視,另一方面是因?yàn)楣芾硭竭€達(dá)不到相應(yīng)的層次。Rational公司的一整套需求分析工具,其功能是非常強(qiáng)大的,國(guó)外已在普遍地使用,在國(guó)內(nèi)也逐漸開始普及,特別是那些通過CMM二級(jí)以上評(píng)審的單位,都必須使用工具對(duì)需求進(jìn)行管理。在本項(xiàng)目中,我們僅僅利用了Requisite Pro功能的一些小方面,已經(jīng)體會(huì)到該工具對(duì)于項(xiàng)目管理的諸多好處。如果一個(gè)有實(shí)力的公司能夠全面實(shí)施RUP,那么需求管理這個(gè)老大難的問題會(huì)變得不再那么棘手了,項(xiàng)目的質(zhì)量也會(huì)得到相應(yīng)的提高。目前國(guó)內(nèi)由于CMM熱潮的興起,已經(jīng)逐漸重視需求分析,也逐漸使用需求分析工具,這是非??上驳?,當(dāng)然,更希望在不久的將來,能用上國(guó)產(chǎn)的需求分析工具,那時(shí)我們的軟件產(chǎn)業(yè)也許會(huì)真正地騰飛了。
評(píng)注;采用逆向工具進(jìn)行再工程的應(yīng)用很多,本文給出了一個(gè)實(shí)際的例子。寫作有條理,也很實(shí)際。合理地界定了需求分析的現(xiàn)實(shí)水平。所采用的需求分析的方法與工具相對(duì)較合理科學(xué)。能在對(duì)項(xiàng)目討論的同時(shí)抒發(fā)議論、使用體會(huì)、愛國(guó)心和事業(yè)心。深度還可以提高,例子宜更加豐富一些。