一 子虛和烏有的對話 (如何獲取源碼缺陷跟蹤系統(tǒng)的需求)
??? A公司是一個軟件開發(fā)公司,正同時開發(fā)多個軟件項(xiàng)目,急切需要一個簡單易用的源碼缺陷跟蹤系統(tǒng)進(jìn)行bug的記錄管理,但他們沒有時間精力再開發(fā)這么一個系統(tǒng).于是子虛先生------A公司的商務(wù)人員聯(lián)系到B軟件開發(fā)公司的烏有先生(需求分析師),打算讓B公司為A開發(fā)一套源碼缺陷跟蹤系統(tǒng).??? 以下為用戶子虛和烏有的對話.子虛(以下簡稱子)提出了缺陷跟蹤系統(tǒng)的初步需求,烏有(以下簡稱烏)力圖弄清子虛的需求.以編制需求說明分析書以供系統(tǒng)開發(fā).系統(tǒng)設(shè)計(jì)師Diego旁聽,不發(fā)言.
???
??? 子:我需要一個源碼缺陷跟蹤系統(tǒng),使我可以存檔和查看開發(fā)過程中出現(xiàn)的bug.
??? 烏:我明白.這個系統(tǒng)一般叫源碼缺陷跟蹤系統(tǒng)(Bug Tracking System),有個叫Bugzilla的老牌軟件可以滿足你的需要.
???
??? 子:我聽說過,也了解過Bugzilla的相關(guān)情況.我覺得它的配置管理使用都過于麻煩,我覺得它應(yīng)該盡量簡單,簡單到在10分鐘之內(nèi)可以配置,半天之內(nèi)就能讓小組的人學(xué)會使用.畢竟,在我的理解里,它只是個留言本性質(zhì)的東東.
??? 烏:好吧,假設(shè)它真的是個留言本性質(zhì)的東東.那么你覺得,它是一個怎樣的留言本?
???
??? 子:嗯,比方說我是一個開發(fā)人員,我要查看今天系統(tǒng)發(fā)現(xiàn)了多少個bug,其中有那些是屬于我的.
??? 烏:明白.我是不是可以這么總結(jié):系統(tǒng)要有bug的瀏覽界面,并且瀏覽界面能看到bug的名稱,代號,bug的所有人,bug的狀態(tài)(是否修復(fù))
??? 子:對,當(dāng)然,時間日期也要能看到.
??? 烏:OK,我補(bǔ)充這么一條,"在瀏覽界面盡可能詳盡的列出bug的狀態(tài)",對不?
??? 子:完全正確.
???
??? (烏有簡單總結(jié)客戶需求如下:1.系統(tǒng)應(yīng)存在bug列表界面,開發(fā)人員應(yīng)能在列表界面上看到bug的狀態(tài)(是否修復(fù)),bug的所有人,bug的名稱,bug的發(fā)現(xiàn)時間,bug的建議修復(fù)時間.)
???
??? 子:我發(fā)現(xiàn)系統(tǒng)上有我的bug,于是我就進(jìn)去改我的bug.
??? 烏:等等."你進(jìn)去改bug",這句話怎么理解?
??? 子:很難理解嗎?
??? 烏:沒有,我只是試著使你的需求清晰.例如,在bug列表上,每個bug有個連接,你點(diǎn)這個連接,就進(jìn)到bug的修改頁面,于是你查看bug的詳細(xì)信息.如果發(fā)現(xiàn)這個bug你已經(jīng)修復(fù),你就更改它的狀態(tài),然后退出這個bug的編輯界面,回到列表.對不?
??? 子:完全正確.
???
??? (烏有繼續(xù)總結(jié)需求如下:2.在bug列表上的每個bug都有一個html鏈接,開發(fā)人員點(diǎn)擊這個鏈接就進(jìn)到bug的詳盡頁面.這個頁面列出了bug的狀態(tài),bug的所有人,bug的名稱,發(fā)現(xiàn)時間,建議修復(fù)時間,bug的詳細(xì)描述,bug的配圖(以附件形式搭配,最多可搭配5張圖片).開發(fā)人員可以修改bug的狀態(tài).)
???
??? (烏有突然笑了起來.)
??? 烏:我不自覺就寫下html鏈接這些子句.忘了問你,這是個BS系統(tǒng)嗎?
??? (子虛很奇怪的看著烏有.)
??? 子:這還用說?據(jù)我的了解,Bugzilla就是BS系統(tǒng).
???
??? (烏有補(bǔ)充需求:3.這是個BS系統(tǒng).)
???
??? 子:當(dāng)然,如果這個bug不是我的,我就無權(quán)查看并修改它了.
??? 烏:明白.這是個權(quán)限控制的問題.不同的開發(fā)人員只能查看修改屬于自己的bug.
??? 子:你說到這個我才想起,不但開發(fā)人員只能查看修改自己的bug,bug本身應(yīng)該也有權(quán)限,有分組.
??? 烏:按照我的理解,我覺得應(yīng)該是這樣:不同的bug應(yīng)該屬于不同的模塊.因?yàn)楹芸赡芄就瑫r開發(fā)著多個產(chǎn)品/項(xiàng)目,而這個系統(tǒng)要管理多個產(chǎn)品/項(xiàng)目的bug.
??? 子:你總結(jié)得對.
???
??? (烏有記錄需求:
????? 4.不同的bug屬于不同的模塊,并且bug有"擁有者"屬性,不是該bug的擁有者不能查看修改該bug.
????? 5.不同的開發(fā)人員屬于不同的模塊.
??? )
???
??? 子:我對5有異議.一個能力強(qiáng)的程序員可能同時參與幾個項(xiàng)目的開發(fā).
??? 烏:那把bug和開發(fā)者聯(lián)系起來就可以了?
??? 子:我覺得是.
???
??? (烏有去掉了需求5)
???
??? 子:嗯.現(xiàn)在我把我們開發(fā)人員的要求表述完了.接下來我要說說項(xiàng)目經(jīng)理,測試人員的需求.
??? 烏:繼續(xù).
??? 子:系統(tǒng)應(yīng)該有能添加bug的地方.
??? 烏:用戶可以添加一個新的bug,設(shè)定bug的簡單描述,詳細(xì)描述,bug的發(fā)現(xiàn)時間,建議修復(fù)時間,所屬模塊,添加人,所有人,修改人,狀態(tài).對不?
??? 子:對.
???
??? (烏有記錄需求:5.用戶能夠添加bug,設(shè)定bug的簡單描述,詳細(xì)描述,bug的發(fā)現(xiàn)時間,建議修復(fù)時間,所屬模塊,添加人,所有人,修改人,狀態(tài).)
???
??? (子虛滿意的點(diǎn)點(diǎn)頭)
??? 子:嗯,我想我的要求已經(jīng)表達(dá)得很清楚了.希望你們能盡快做出滿足我要求的軟件.
??? 烏:(苦笑)按照我的過往經(jīng)驗(yàn),軟件需求很少能做到真正清晰明了.在開發(fā)和維護(hù)期間,需求總會變更.
??? 子:我和程序員已經(jīng)打過好幾次交道.我發(fā)現(xiàn)你們總是強(qiáng)調(diào)需求變更的重要性,以此作為軟件開發(fā)進(jìn)度緩慢,使用期間bug不斷的借口.
??? 烏:其實(shí)不是我們想以此作為借口.軟件開發(fā)的本質(zhì),就是使相對不確定的東西變得真正確定.如果事物是完全不確定的,那我們也很難將之完全確定下來.
??? 子:我確定我完全不明白你在說什么.這個調(diào)研會已經(jīng)有兩小時了吧?該結(jié)束了?
??? 烏:等等,我將總結(jié)的東西給你看看,然后我今晚會寫份需求分析書再給你確認(rèn)確認(rèn).如果沒什么大問題,我們的工程師就可以進(jìn)行設(shè)計(jì).
??? 子:好,盡快.
???
??? (烏有的需求列表如下:
??? 1.系統(tǒng)采用BS結(jié)構(gòu).(建議用java進(jìn)行開發(fā)).
??? 2.系統(tǒng)應(yīng)存在bug列表界面,用戶應(yīng)能在列表界面上看到bug的狀態(tài)(是否修復(fù)),bug的所有人,bug的名稱,bug的發(fā)現(xiàn)時間,bug的建議修復(fù)時間,bug所屬模塊.)
??? 3.在bug列表上的每個bug都有一個html鏈接,開發(fā)人員點(diǎn)擊這個鏈接就進(jìn)到bug的詳盡頁面.這個頁面列出了bug的狀態(tài),bug的所有人,bug的名稱,發(fā)現(xiàn)時間,建議修復(fù)時間,bug的詳細(xì)描述,bug的配圖(以附件形式搭配,最多可搭配5張圖片).開發(fā)人員可以修改bug的狀態(tài).
??? 4.不同的bug屬于不同的模塊,并且bug有"擁有者"屬性,不是該bug的擁有者不能查看修改該bug.
??? 5.用戶能夠添加bug,設(shè)定bug的簡單描述,詳細(xì)描述,bug的發(fā)現(xiàn)時間,建議修復(fù)時間,所屬模塊,添加人,所有人,修改人,狀態(tài).
??? )
???
??? 子:不錯.就這樣.
??? 烏:那明天見.
??? 子:烏有明天見.Diego明天見.
???
???
???
posted on 2007-03-28 11:55 Diego 閱讀(1433) 評論(2) 編輯 收藏 所屬分類: 需求分析/系統(tǒng)設(shè)計(jì)