需求是軟件的核心部分,就像發(fā)動(dòng)機(jī)沒有汽油不能運(yùn)行一樣。軟件沒有需求就沒有存在的價(jià)值,需求就是軟件的土壤或基石,一樣的需求或許因?yàn)椴煌~理解和解釋會(huì)開發(fā)出個(gè)性迥異的軟件,這就像是相同的種子在不同其中的種植下,長(zhǎng)出不同差異的果實(shí)一樣。
一、分析軟件開發(fā)的需求特點(diǎn)
1、目的性:希望得到什么,有明確的的要求,
2、描述性:可描述的需求內(nèi)容,可以詳細(xì)解釋的
3、操作性:有步驟、可進(jìn)行操作,哪怕只有一個(gè)步驟,
4、條件性:在一定條件下可實(shí)現(xiàn)的需求,
5、計(jì)算性:需要有固定算法,不然無(wú)法實(shí)現(xiàn),即使人工智能、人工模擬也是通過(guò)最基本的算法而成的,
6、驗(yàn)證性:需求最終實(shí)現(xiàn)后怎樣判斷結(jié)果是否正確?需求是否可被驗(yàn)證,
二、分析客戶需求本質(zhì)
在實(shí)踐過(guò)程中,用戶一開始提出的需求,往往是模糊的,不明確的,畢竟大部分的用戶都不是信息系統(tǒng)的專業(yè)人士。開發(fā)設(shè)計(jì)人員需要分化分解才能夠理解需求的內(nèi)在本質(zhì)。需要從以下幾方面考慮問題:
1、客戶的現(xiàn)狀是什么:用戶目前的現(xiàn)狀、用的什么系統(tǒng),市場(chǎng)情況、使用材料、設(shè)備、方法、人員、技術(shù)和流程,和有什么缺陷、錯(cuò)誤、抱怨或損失,數(shù)據(jù)量、使用頻率、用戶量、使用范圍、業(yè)務(wù)相關(guān)性和重要如何;
2、客戶的期望是什么:什么樣的問題最需要迫切解決,用戶系統(tǒng)提升到什么程度,需求的便利性和拓展性怎樣;
3、客戶有沒有替代方案:如沒有解決方案,可以代替的方案有幾種,方案之間的優(yōu)缺點(diǎn)是什么;
4、客戶的預(yù)算范圍:開發(fā)預(yù)算決定開發(fā)量和使用技術(shù)的成本;
5、需求的范圍:公開、內(nèi)部、多廠區(qū)、多語(yǔ)言使用還是分階段使用?使用的用戶量是多少、是否需要控制權(quán)限;
6、需求的內(nèi)容是什么:結(jié)構(gòu)圖、流程圖、操作說(shuō)明、數(shù)據(jù)報(bào)表等具體內(nèi)容;
7、需求的樣本:如用戶、材料清單、服務(wù)器配置、數(shù)據(jù)接口參數(shù)、數(shù)據(jù)格式和報(bào)告說(shuō)明等需求的實(shí)例文件。
綜上:需求清楚是軟件設(shè)計(jì)與軟件開發(fā)的工作依據(jù),是決定軟件成果能否落地的關(guān)鍵。所以選擇軟件開發(fā)公司時(shí),對(duì)軟件開發(fā)公司安排的梳理需求的人員的專業(yè)和經(jīng)驗(yàn)需要重點(diǎn)評(píng)估。