軟件始于需求。
軟件開發(fā),能否獲得成功,最重要的是需求分析的工作。因此,軟件需求分析師的能力和水平,對軟件項(xiàng)目至關(guān)重要。
多年以來,我接觸過非常多軟件從業(yè)人員,很多人說自己參加過多個(gè)項(xiàng)目,在項(xiàng)目組中做過需求分析,仔細(xì)聊起來卻發(fā)現(xiàn)他們根本沒有接受過軟件需求分析的培訓(xùn),對軟件需求根本沒有清晰的概念,甚至很多人認(rèn)為把業(yè)務(wù)流程圖畫出來,把數(shù)據(jù)表做出來,就叫需求分析完成了。
我是做軟件實(shí)踐的,側(cè)重基本概念。因此,本文中,我給大家講解一下軟件需求分析的基本概念。
軟件需求,只有三個(gè)要素:Actor、系統(tǒng)邊界、輸入輸出。
Actor:軟件需求分析整個(gè)階段,要構(gòu)建的系統(tǒng)作為一個(gè)黑盒子。Actor 與這個(gè)軟件系統(tǒng)有直接交互關(guān)系。Actor 可以是人,也可以是其他軟件系統(tǒng)。
系統(tǒng)邊界:要構(gòu)建的軟件系統(tǒng)是個(gè)黑盒子,看不見這個(gè)黑盒子里面的任何子系統(tǒng)、模塊,只能看到系統(tǒng)的邊界。Actor 與系統(tǒng)的交互,都發(fā)生在系統(tǒng)邊界上。
輸入輸出:Actor 與軟件系統(tǒng)在邊界上進(jìn)行的所有交互。這些交互,無非是Actor給系統(tǒng)怎樣的輸入,然后系統(tǒng)給Actor怎樣的輸出,或者反之,系統(tǒng)給Actor怎樣的輸入,Actor給系統(tǒng)怎樣的輸出。用戶在鍵盤的輸入,鼠標(biāo)的輸入,對接系統(tǒng)向要構(gòu)建系統(tǒng)發(fā)起的連接,發(fā)送的消息,接口的調(diào)用......,都是輸入;用戶看到的軟件界面,系統(tǒng)的錯(cuò)誤提示,系統(tǒng)回應(yīng)的消息、接口調(diào)用的返回值、錯(cuò)誤碼等等,都是輸出。
所有軟件的需求分析,都是由這三個(gè)要素構(gòu)成。首先要確定是系統(tǒng)邊界和Actor,然后才是仔細(xì)分析Actor和系統(tǒng)邊界之間的各種輸出輸出。