軟件需求的質(zhì)量決定了開發(fā)、測試的質(zhì)量,而使用5W1H模型進行需求評審,能夠幫助我們獲得高質(zhì)量的、完整的需求。
什么是需求的5W1H模型?
5W,即why,Who,Where,When,What;1H即How,通過對需求進行5W1H的提問,獲得對需求更為準確的理解。
5W1H模型如下圖所示:
軟件需求一般分為三個層次:業(yè)務(wù)需求、用戶需求和軟件需求。在需求的5W1H模型中,Why適用業(yè)務(wù)需求,Who,Where,When,What適用用戶需求,How適用軟件需求。
業(yè)務(wù)需求(why)
作為高層需求,業(yè)務(wù)需求對用戶需求和軟件需求的定義有著決定性的作用。如果在定義用戶需求和軟件需求時發(fā)生分歧,應(yīng)以是否符合業(yè)務(wù)需求作為取舍的最終標準。業(yè)務(wù)需求描述客戶想要解決什么問題,達成什么目的。這是客戶提出需求的根本原因,所以,適用“Why”。
用戶需求(Who,Where,When,What)
用戶需求是站在用戶的角度,期望通過軟件操作來幫助用戶完成業(yè)務(wù)活動。具體來說,就是由什么角色(Who),在什么條件下(When),在哪個功能入口(Where),使用什么功能的什么操作(What)來達成業(yè)務(wù)目的。這是用戶需求最主要的內(nèi)容,它準確地描述了功能需求,包含功能觸發(fā)的入口、功能說明、功能使用約束、觸發(fā)功能的事件,以及執(zhí)行完成后的響應(yīng)和結(jié)果等。
軟件需求(how)
軟件需求是用來描述如何實現(xiàn)用戶需求的,這是軟件需求規(guī)格說明書的主要內(nèi)容。軟件需求將用戶需求分解為各個模塊或子系統(tǒng)的功能,包含功能的主流程和備選流程、數(shù)據(jù)對象和接口等。
現(xiàn)實項目中,對于用戶需求(Who,Where,When,What)(對應(yīng)軟件研制任務(wù)書)和軟件需求(how)(對應(yīng)軟件需求規(guī)格說明)基本能夠定義清楚,但對于業(yè)務(wù)需求(Why)卻不夠重視。這既可能使得真正的用戶需求和軟件需求被遺漏,也可能使得只開發(fā)出基本使用功能沒有讓用戶期望甚至興奮的功能。
業(yè)務(wù)需求遠比功能需求更為重要。
在需求調(diào)研時,無論是客戶還是需求開發(fā)人員,都傾向于一開始就談具體的功能,這是不恰當?shù)?。因為功能需求?jīng)常會發(fā)生變更,而決定功能需求的業(yè)務(wù)需求幾乎不會變。
業(yè)務(wù)需求需要需求開發(fā)人員與客戶的深入溝通才能獲得,而深入溝通的前提是需求開發(fā)人員了解軟件應(yīng)用的行業(yè)和客戶的組織結(jié)構(gòu)及其職能這些背景知識。
這正是:
需求分為三層次,5 W 1 H 用其中
業(yè)務(wù)需求別忽視,避免遺漏好功能
參考書目:軟件測試價值提升之路,作者:楊曉慧,出版社:機械工業(yè)出版社
本文經(jīng)授權(quán)發(fā)布,不代表增長黑客立場,如若轉(zhuǎn)載,請注明出處:http://m.gptmaths.com/quan/70110.html