淺談需求:軟件需求的分類到底有哪些?

2 評論 49813 瀏覽 64 收藏 7 分鐘

當(dāng)需求需要被文檔化描述,這就要求產(chǎn)品經(jīng)理弄清楚需求有哪些類型,每種類型該如何進行表達(dá)。

在軟件行業(yè),人們討論的“需求”通常指的是軟件應(yīng)用需求,但還是具有其他不同類型的需求,如下圖

  • 項目需求:大Boss要求團隊需要在3個月內(nèi)完成項目并上線,其對象針對項目的時間進度、成本、資源等。
  • 過程需求:項目經(jīng)理要求提交需求規(guī)格說明文檔、產(chǎn)品原型圖等報告,其對象是在開發(fā)過程中的開發(fā)人員、工具方法等。
  • 系統(tǒng)級需求,包括軟件需求(這就是我們常討論的需求)、硬件需求(怎么樣規(guī)格的服務(wù)器、顯示屏等),其他需求(如某些toB軟件投入使用要需要對用戶進行培訓(xùn)講解)。

對于上述的所講的項目需求、過程需求、硬件需求、其他需求也是要寫進需求文檔里去的,一般是寫在開頭或末尾,這根據(jù)自己的個人習(xí)慣。講了辣么多,我的主體還是我們所常提起的軟件需求。

從嚴(yán)格意義上的軟件需求分類具有:功能需求(functional requirement),非功能需求(non-functional requirement),就好比我在某寶想買一雙鞋子,球鞋、高跟鞋、過膝靴、紅色、黑色等是明顯可知的(功能需求),但鞋跟牢不牢固、鞋底會不會脫膠等是不清楚的(非功能需求)。其中非功能需求包括性能需求(performance requirement),質(zhì)量屬性(quality attribute),對外接口(external interface),約束(constraint)。

功能需求:

是最常見和最重要的需求,體現(xiàn)在系統(tǒng)與用戶之間的交互,幫助用戶解決問題,完成任務(wù)。功能也有復(fù)雜簡單之分,對于復(fù)雜的功能需要一層一層分離,如公司做的核銷功能,在賬單模塊,分離各種支付類型,支付類型又分為具有流水號和無流水號的等等?;蛘擢毩⒊啥鄠€部分,如公司的某項目,分成機票模塊、酒店模塊、用車模塊等等,然后再分別交給開發(fā)人員進行開發(fā)。

功能需求是整個系統(tǒng)產(chǎn)生價值的基礎(chǔ),是使得一個軟件應(yīng)用得以存在的原因。

性能需求:

我們會經(jīng)常討論到手機性能怎么樣,卡不卡,耗電量怎么樣,存儲量有多大……而軟件也具有性能,是指某指定功能的程度,如速度,精確度,內(nèi)存使用程度等

常見的性能:

  1. 速度:系統(tǒng)完成指定任務(wù)的時間。如航班搜索出來的結(jié)果必須在3s內(nèi)展示出來。
  2. 容量:系統(tǒng)所能存儲的數(shù)據(jù)量。如財務(wù)系統(tǒng)能存儲至少10萬條的核銷數(shù)據(jù)。
  3. 并發(fā)性:系統(tǒng)可以承載的并發(fā)工作量。如某軟件允許多少個用戶同時使用。
  4. 實時性:嚴(yán)格的實時要求。如降艙軟件中當(dāng)發(fā)現(xiàn)合乎條件的艙位,系統(tǒng)需在1s內(nèi)執(zhí)行降艙指令。

對于性能需求,如要不是很大的用戶量或大公司,其他則比較少去考慮該方面的需求,但對于系統(tǒng)的后期發(fā)展,這也是一個極其重要需求探討。

質(zhì)量屬性:

質(zhì)量屬性包括性能需求,只是性能需求比較特殊,所以單獨出來。

常見的質(zhì)量屬性:

  1. 可靠性:指在一定時間或條件下,系統(tǒng)執(zhí)行所要求功能的無故障執(zhí)行能力。
  2. 可用性:系統(tǒng)在使用中可操作或訪問程度。
  3. 可維護性:為改進系統(tǒng)或修復(fù)bug而修改系統(tǒng)或某功能模塊的難易程度。
  4. 安全性:阻止對其程序和數(shù)據(jù)進行未授權(quán)訪問的能力。
  5. 可移植性:將系統(tǒng)從一個硬件或軟件的運行環(huán)境換置到另一個環(huán)境。
  6. 易用性:系統(tǒng)易于使用的程度。

另外常見的質(zhì)量模型為[IOS/IEC 9126-1]和[IEEE 1061-1992,1998],點擊即可跳到鏈接查看,為26和27條

對外接口

對于接口需要進行說明:

  1. 接口的用途;
  2. 接口的輸入輸出;
  3. 數(shù)據(jù)格式;
  4. 命令格式;
  5. 異常處理要求;

如某數(shù)據(jù)包為XML格式,HotelProduct表示酒店接口,接口的輸入為Destination目的地,Date住店及離店日期,輸出的數(shù)據(jù)類型為數(shù)字文本,0代表操作正確,1代表數(shù)據(jù)錯誤,2代表網(wǎng)絡(luò)故障,3代表其他錯誤,而對于0還輸出具有目的地的酒店信息,其中一個字段為HotelID,酒店編號,Number類型,18位數(shù)據(jù)代碼。

約束

常見的約束:

  1. 系統(tǒng)開發(fā)以及運行的環(huán)境:包括計算機,操作系統(tǒng),編程語言、數(shù)據(jù)庫管理系統(tǒng)等
  2. 問題域內(nèi)的相關(guān)標(biāo)準(zhǔn):包括法律法規(guī)、合作協(xié)議等
  3. 社會性因素:文化、信仰等社會性因素

對于軟件需求的分類大致就是以上這幾類,這是最近在看需求工程書籍歸納的。另外自己的原型設(shè)計會對某界面或某功能進行需求描述,如行為的觸發(fā)條件,行為的前置條件、行為流程、后置條件、異常情況、和對數(shù)據(jù)的需求(類型、初始值、取值范圍、單位等)、使用什么接口,接口的描述等等,對于該如何完備性的描述一個界面或功能的需求下回見分曉~~如大家有什么建議或補充,歡迎留言。

 

本文由 @Halona 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 很棒!約束類需求里文化信仰這塊有實例么

    來自江蘇 回復(fù)
  2. 和我現(xiàn)在干的工作幾乎全一致

    回復(fù)