需求的三個層次

我們的軟件產品或者項目,其需求都有三個層級和三個方面。

需求的三個層次

軟件需求包括3個不同的層次――業務需求、用戶需求和功能需求。

業務需求 (Business requirement)表示組織或客戶高層次的目標。業務需求通常來自項目投資人、購買產品的客戶、實際用戶的管理者、市場營銷部門或產品策劃部門。業 務需求描述了組織爲什麼要開發一個系統,即組織希望達到的目標。使用前景和範圍(vision and scope)文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求(project charter 或 market requirement)文檔。

用戶需求 (user requirement)描述的是用戶的目標,或用戶要求系統必須能完成的任務。用例、場景描述和事件――響應表都是表達用戶需求的有效途徑。也就是說用戶需求描述了用戶能使用系統來做些什麼。

功能需求 (functional requirement)規定開發人員必須在產品中實現的軟件功能,用戶利用這些功能來完成任務,滿足業務需求。功能需求有時也被稱作行爲需求 (behavīoral requirement),因爲習慣上總是用“應該”對其進行描述:“系統應該發送電子郵件來通知用戶已接受其預定”。功能需求描述是開發人員需要實現什 麼。注意:用戶需求不總是被轉變成功能需求。產品特性,所謂特性(feature),是指一組邏輯上相關的功能需求,它們爲用戶提供某項功能,使業務目標 得以滿足。對商業軟件而言,特性則是一組能被客戶識別,並幫助他決定是否購買的需求,也就是產品說明書中用着重號標明的部分。客戶希望得到的產品特性和用 戶的任務相關的需求不完全是一回事。一項特性可以包括多個用例,每個用例又要求實現多項功能需求,以便用戶能夠執行某項任務。

系統需求 (system requirement)用於描述包含有多個子系統的產品(即系統)的頂級需求。系統可以只包含軟件系統,也可以既包含軟件又包含硬件子系統。人也可以是系統的一部分,因此某些系統功能可能要由人來承擔。

業務規則 包 括企業方針、政府條例、工業標準、會計準則和計算方法等。業務規劃本身並非軟件需求,因爲它們不屬於任何特定軟件系統的範圍。然而,業務規則常常會限制誰 能夠執行某些特定用例,或者規定系統爲符合相關規則必須實現某些特定功能。有時,功能中特定的質量屬性(通過功能實現)也源於業務規則。所以,對某些功能 需求進行追溯時,會發現其來源正是一條特定的業務規則。

功能需求記錄在軟件需求規格說明(SRS)中。SRS完整地描述了軟件系統的預期特性。SRS我們一般把它當作文檔,其實,SRS還可以是包含需求信息的數據庫 或電子表格;或者是存儲在商業需求管理工具中的信息;而對於小型項目,甚至可能是一疊索引卡片。開發、測試 、質量保證、項目管理和其他 相關的項目功能都要用到 SRS。

組織級需求->業務需求->用戶需求->功能需求(有時也叫行爲需求)。

組織級需求: 一 般代表着組織的願景和目標。對於大的公司,一般是通過資深的諮詢顧問和諮詢公司得出的,呈現的方式是諮詢報告。比如在ITSM或者企業信息化這方面。典型 的組織級的需求是:降低成本、減少庫存成本、提升IT服務部門在企業中的價值、通過ISO20000、提高IT服務的效率、提高員工的滿意度等。

業務需求: 是要完組織的使命,達成組織的願景的各個業務流程和業務單元具有的需求。業務需求服從於組織需求。

用戶需求: 用戶級的需求,是在業務級的需求下,各個崗位協作完成業務而具有的需求。我們在軟件需求規格說明書中表述的需求其實主要是這一部分需求。

功能需求: 同樣,它代表着產品或者軟件需求具備的能力。 一般是管理人員或者產品的市場部門人員負責定義軟件的業務需求,以提高公司的運營效率(對信息系統而言)或產品的市場競爭力(對商業軟件而言)。所有的用 戶需求都必須符合業務需求。需求分析員從用戶需求中推導出產品應具備哪些對用戶有幫助的功能。開發人員則根據功能需求和非功能需求設計解決方案,在約束條 件的限制範圍內實現必需的功能,並達到規定的質量和性能指標。當一項新的特性、用例或功能需求被提出時,需求分析員必須思考一個問題:“它在範圍內 嗎?”。如果答案是肯定的,則該需求屬於需求規格說明,反之則不屬於。但答案也許是“不在,但應該在”,這時必須由業務需求的負責人或投資管理人來決定: 是否擴大項目範圍以容納新的需求。這是一個可能影響項目進度和預算的商業決策。

需求的三個方面

除了功能需求外,SRS中還包含非功能需求,包括性能指標和對質量屬性的描述。

質量屬性 (quality attribute)對產品的功能描述作了補充,它從不同方面描述了產品的各種特性。這些特性包括可用性、可移植性、完整性、效率和健壯性,它們對用戶或 開發人員都很重要。其他的非功能需求包括系統與外部世界的外部界面,以及對設計與實現的約束。還有一項稱爲可用性(usability)的質量屬性,它規 定了業務需求中“有效”(efficiently)一詞的含義。

約束 (constraint)限制了開發人員設計和構建系統時的選擇範圍。約束,在產品的架構設計中,是需要被首先考慮的問題。

如果說產品的功能代表了產品的能力,那麼產品的質量屬性代表了產品的品質,產品的約束代表了產品必須去滿足的或者適應的條件!用人說“用戶體驗”是產品的 靈魂,對於個人級的軟件這麼說或許很恰當,當對於企業級甚至是行業級的產品,其靈魂有兩個:一個是產品帶個用戶的價值,另一個是產品的品質,簡單的說,就 是價值和品質。但其成爲一個產品的前提應該是滿足約束,否則就不應該設計、開發、進入市場而成爲一個垃圾。

用戶需求和功能需求的區別

 用戶需求:用戶需要在應用系統中實現什麼東西,爲實現這個目標,需要用戶提供的全部的詳細的業務說明,業務流程,表格樣式等。

 功能需求:將用戶需求歸類分解爲計算機可以實現的子系統和功能模塊,用設計語言描述和解釋用戶的需求,以達到可以指導程序設計的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章