《需求管理》系列之二需求定義 表達與組織

2021-04-08 13:19:31 字數 2028 閱讀 5245

描述使用者的某個需求看似一件簡單易做的事情,感覺上只需要指出使用者想要幹什麼,系統能夠提供什麼就可以了,實則不然。

比如,使用者在商品建檔時有如下需求

「使用者可以臨時調整商品的**,其規則是:使用者申請對某個商品臨時調價,並設定臨時**啟用期的起止日期,臨時調價審批通過後,在該臨**啟用期內系統按臨時**開單銷售,有效期結束後,系統恢復臨時調價前的**」

這段話看上去沒有任何問題,讀起來也很自然,事實上,程式設計師拿到這個需求後,他

/她仍然很痛苦,他

/她可能有如下問題不清楚

1、使用者申請對某個商品臨時調價,這裡的「商品」是尚未**的還是已經**的,弄不清楚這個,他

/她沒辦法寫

sql語句

2、設定臨時**啟用期的起止日期,起止日期可能會產生歧意,是否包含「止」的那一天,系統從「起」天

0:00:000

還是9:00:000 am

開始,到「止」天

23:59:59

還是17:59

:59

結束,不同行業、不用使用者都可能有不同的答案

3、臨時調價審批通過後

….,如果審批不通過,系統是刪除這個申請還是保留該申請允許使用者編輯,這要看使用者的使用習慣,有時可能刪除比保留來得更合理些

……….

可能還有其他類似問題,每個人考察問題的角度和解決問題的方式都不盡相同,怎麼盡可能降低這種語義表達的晦澀,比如不完整和二義性是需求定義和表達的重要目標。

在需求定義時,系統詞彙表是必不可少的組成部分。

系統詞彙表是系統(業務)術語的集合,詞彙一般是行業相關專業術語或公司業務詞彙,這些術語的含義用自然語言表達出來,尋求需求人員和使用者對該詞彙有一致的認識並固定下來。

有些系統詞彙本身就是對業務規則的一種表達,這種性質的系統詞彙應給予更多重視。

系統詞彙一旦固定下來,決不能任意修改;除非有不得已的原因,但也要通過評審

傳統的需求表達方式,把使用者的業務需求按業務性質(對映成系統的功能模組,比如採購模組、銷售模組、庫房模組等等)分解成乙個個小的業務特性/功能

(feature/function)

一一間接描述系統要支援的功能(以解決使用者的現時業務問題),以文字直接陳述為主。

比如,下面是乙個描述零售店鋪建檔的簡單需求

系統可由使用者錄入店鋪資料建檔,審批通過的店鋪在系統中啟用;審批未通過的店鋪,使用者可編輯後提交審批或者刪除。

對於已經申請的店鋪資料或審批通過的店鋪資料,系統要提供編輯功能;對於已審批店鋪資料的編輯要重新審批

業務單據資料字段或業務列表顯示字段資訊

【店鋪檔案】欄位有:**、名稱、簡稱、經營性質、位址、**、聯絡人、管理歸屬、店鋪定位、營業面積、協議

其中經營性質欄位的取值由系統定義為扣率或租金,使用者店鋪建檔時選擇其一,可在整個系統內使用

管理歸屬、店鋪定位欄位的取值範圍由使用者自定義,因為不同地區使用者的業務要求及命名方式不一致,僅在地區範圍內使用

協議:當且僅當店經營性質為「扣率」時出現

有兩個明細項

扣率:使用者手工填寫,以%計,比如32%

結算:設定結算日期

,使用者錄入。

這種定義和表達需求的方式形式上比較自由、功能相對離散,用模組將近似需求組織起來。

但是,這種表達不能夠直觀的體現出需求之間的若干關係;在需求發生變更等情況時,如果需求管理沒有借助有效的

rm工具,很難有效跟蹤其產生的連鎖反應(對其他依賴此需求的需求產生的影響)

其描述的系統需求還比較抽象,由於完全依賴於文字載體描述功能,需求人員和使用者也可能對同一種描述產生不同的理解,這種分歧可能導致後來系統部門模組重寫。

作為補充手段,可以結合系統原型或者業務

demo

與使用者溝通以達成一致

用例是基於場景(scenario)的,從這個角度來說,uc直觀的表達出使用者期望的系統功能及使用者與系統的互動細節

關於何如編寫用例,可以參考cockburn寫的《writing effective use cases》一書。

系統分析員通過分析uc,抽取業務領域(domain)並分析其關係可形成最初的系統模型,進而不斷深化衍生出系統架構

rose

ea

需求管理系列之二 軟體需求分析關注什麼?

需求開發沒有做好會出現什麼後果?需求問題的代價?需求分析如何做?為什麼要做?首先來看下需求問題產生的代價模型 一 需求問題的代價 通過圖形可以看出,在需求階段消除問題的代價最小,而如果需求問題等到產品發布出去後才發現的話,那修復的成本就會 n倍的增加。不合格的需求分析 1 沒有足夠的使用者參與 2 ...

《需求管理》系列之一需求捕獲

之所以用捕獲這個詞,而不是獲取 獲得一類詞彙,僅僅是想說明需求不是信手拈來的 它是跳動的 不穩定的,你必須下點功夫才可能有所收穫 主要方式 圓桌會議 最常見 最普通的需求獲取方式,就是需求人員與使用者 代表 坐下來就某個 業務 主題展開培訓或討論,使用者稱述 需求人員提問的方式,這種方式通常能獲得業...

02軟體需求之二

今天是第二次讀軟體需求這本書,經過上次的閱讀,我知道了軟體需求的三個層次,分別是 業務,使用者和功能。在專案中它們在不同的時間來自不同的 也有著不同的目標和物件,並需以不同的方式編寫成文件。業務需求不應包括使用者需求,而所有的功能需求都應該源於使用者需求。同時你也需要獲取非功能需求,如質量屬性。那麼...