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