前言:
需求對于我們IT人來講是一個再熟悉不過的名詞了,如何在項目開發(fā)周期做需求,那就是各有各的道了,下面是我對軟件開發(fā)過程中對做需求的理解和總結(jié)。希望能給大家?guī)硪稽c不同的感官。
1、什么是需求,需求分析在整個開發(fā)周期的作用。
對于需求概念來講就是功能+質(zhì)量+約束。在整個開發(fā)周期中,需求是整個開發(fā)的基礎(chǔ)。需求分析成功,則軟件風(fēng)險就減少了一半。
這么一講,還是蠻空洞的,對于我們來講如何進行需求分析,它的流程是什么,每步流程的標(biāo)準(zhǔn)又是什么呢?
本人在需求操作中,主要分為三個階段。
第一階段:確定項目的大背景。第二階段:項目本階段的核心需求定義和確定,第三階段:項目詳細需求分析。
2、在需求過程中的三個里程碑
2.1 第一階段 確定項目的大背景
確定項目的大背景,就是充分的了解項目的領(lǐng)域,客戶對項目的期望值。其次,對于企業(yè)項目來講,在確定項目目標(biāo)后,還要進一步的了解客戶的企業(yè)框架。當(dāng)前項目在企業(yè)框架中位置,第三方接口定義等等。
在考慮到完成業(yè)務(wù)上的預(yù)景后,接下來就是項目實現(xiàn)技術(shù)實現(xiàn)方案,選擇實現(xiàn)項目的技術(shù)框架(通常包含 開發(fā)平臺,第三方組件,硬件環(huán)境,測試環(huán)境,部署環(huán)境等)
第一階段的配置項為《企業(yè)建設(shè)方案》。
2.2 第二階段 項目本階段的核心需求定義和確定
在確定了需求的大背景下,下一步,我們需要做的內(nèi)容就是確定項目的核心功能,關(guān)鍵的質(zhì)量,和相關(guān)的約束。在這邊我要著重向大家說明一下溫昱老師的二維需求表。
表的格式為:
|
功能 |
質(zhì)量 |
約束 |
業(yè)務(wù)及需求 |
|
|
|
用戶級需求 |
|
|
|
開發(fā)級需求 |
|
|
|
功能:
軟件功能又分關(guān)鍵功能,次要功能等。在第二階段,我們要做的就是分辨并整理關(guān)鍵功能,和次要功能。根據(jù)項目的規(guī)劃,找出當(dāng)前需要實現(xiàn)的關(guān)鍵功能,與此同時,對于高風(fēng)險,技術(shù)風(fēng)險大的功能,或者關(guān)鍵功能中相互沖突的功能進行前期取舍。(當(dāng)然啦,在取舍和確定具體的功能范圍,還是要和客戶之間相互溝通的)
最后要補充一點的,就是確定關(guān)鍵功能這個過程是不停遞歸的一個過程。
質(zhì)量:
一般質(zhì)量分類包含 性能,安全性,可靠性,易用性,可擴展,可維護,可移植等。
在需求分析中,和關(guān)鍵功能一樣,要根據(jù)項目的愿景,進行關(guān)鍵質(zhì)量的篩選。
在某種情況下軟件的質(zhì)量之間還是有沖突,魚和熊掌不可兼得的情況,如 可維護性和性能是一對對立的兩兄弟。我們還需要對這樣的關(guān)鍵質(zhì)量進行必要的取舍。在作出這樣的取舍,依據(jù)的標(biāo)準(zhǔn)就來源于我們需求的第一階段的工作。
約束:
軟件的約束分好多的角度,
業(yè)務(wù)級約束:舉例:項目的組織結(jié)構(gòu)和人員信息來源于企業(yè)人事系統(tǒng)
用戶級約束:舉例:使用客戶用一部分是殘障人事等,其包含了藏語用戶等
開發(fā)級約束:舉例:開發(fā)人員的技術(shù)水平等。
在調(diào)研并完成這樣的二維需求表后,及時的和客戶溝通,確定關(guān)鍵功能,關(guān)鍵質(zhì)量和約束等。對二維需求表中的內(nèi)容進行取舍和確定。
在第二階段出的配置項二維需求表
2.3 第三階段 項目詳細需求分析
在第二階段的基礎(chǔ)上,我們就可以對項目核心功能進行數(shù)據(jù)流需求調(diào)研分析,業(yè)務(wù)邏輯分析。并在這基礎(chǔ)上編寫用戶用例 ,數(shù)據(jù)流轉(zhuǎn)圖,業(yè)務(wù)邏輯圖等
在完成了以上業(yè)務(wù)核心功能的詳細調(diào)研分析后,將全部用例和其他內(nèi)容組合在一起,制定《項目需求規(guī)格說明書》。
在第三階段出的配置項《項目需求規(guī)格說明書》。