1、需求分析前的準(zhǔn)備
在軟件開發(fā)過程中,需求分析可以說是核心任務(wù)之一,就像一支將要遠(yuǎn)航的船隊(duì),要在指定時(shí)間內(nèi)到達(dá)目錄地,他們需要一條正確的航線,才能到達(dá)目的地,如果航線有誤,他們將會(huì)誤時(shí)到達(dá),或是不回到原位將永遠(yuǎn)到達(dá)不了,這么重要的東西,但在國內(nèi)很多團(tuán)隊(duì)中缺少,雖然我也做了一些,但在項(xiàng)目完成的時(shí)候,回頭看看,其實(shí)我們做了很多不必要的事,浪費(fèi)了很多時(shí)間、人力和物力,為保證在今后的開發(fā)中減少這些錯(cuò)誤的發(fā)生,現(xiàn)將一些問題記錄下來。
為了了解系統(tǒng)需求,先可以從概要式的需求著手,再細(xì)化需求,需求分析必須擬定文檔,在寫文檔之前我們必須做好尋求分析的范圍,總結(jié)為以下幾點(diǎn):
1.1要做一個(gè)什么樣的系統(tǒng)
這個(gè)不說,我想做軟件開發(fā)的人都知道,擬定這個(gè)后,一切才可以擴(kuò)展開,比如我們要做一個(gè)B2C的商城,要賣母嬰用品,知道了這些,我們就可以找現(xiàn)在網(wǎng)站有的B2C網(wǎng)站做參考,分析系統(tǒng)構(gòu)架,系統(tǒng)功能等。
1.2系統(tǒng)將要在什么樣的環(huán)境下進(jìn)行
我上次經(jīng)歷的一個(gè)系統(tǒng),就是要用asp.net重新發(fā)一個(gè)B2C商城,但有一些前提條件,以前公司有網(wǎng)站,是用java+MYSQL開發(fā)的,但我們開發(fā)的新系統(tǒng)必須兼容以前的數(shù)據(jù),如客戶信息,商品信息,還有一些資源信息,并且還要兼容Google,baidu收錄的地址路徑,還有與原ERP的通訊等條件,這樣讓我們的開發(fā)很受限制,這些需求就是這樣,你無法改變,所以在設(shè)計(jì)新系統(tǒng)的同時(shí)你必須考慮,要花時(shí)間去了解以前系統(tǒng)的功能,接口等,如果不了解,等你把新系統(tǒng)開發(fā)完了才發(fā)現(xiàn)系統(tǒng)脫離了公司原有的業(yè)務(wù)流程,讓公司無法運(yùn)作,那就代表你開發(fā)的系統(tǒng)根本沒有價(jià)值,我想這不是我們想要的結(jié)果。
1.3要解決哪些問題
開發(fā)出來軟件系統(tǒng)就是為了解決客戶需求的,一個(gè)B2C網(wǎng)站就是賣商品,主要由客戶、商品、購物車、定單組成,將這些核心的功能定義好,我想其它的意外都不會(huì)太影響到整個(gè)系統(tǒng)的進(jìn)程。
1.4將來可能會(huì)有哪些變化
面對(duì)將來的發(fā)展,我們也許不能完全考慮到,但與公司的戰(zhàn)略發(fā)展,可以提前考慮些,能想到多少就想多少,多多益善,我們開發(fā)一個(gè)系統(tǒng)不是只滿足當(dāng)前的需求,如果眼光只放在眼前,那么你這個(gè)系統(tǒng)很快就會(huì)被淘汰,功能也許不需要現(xiàn)在實(shí)現(xiàn),但接口總得留下吧,不然想改進(jìn)都是很困難的事,如果一個(gè)稍微的小需求都要?jiǎng)酉到y(tǒng)構(gòu)架,我想這個(gè)系統(tǒng)會(huì)越來越不穩(wěn)定,作為系統(tǒng)分析師,這塊也是至關(guān)重要的。
1.5系統(tǒng)可以維持任務(wù)的周期是多少
系統(tǒng)周期與公司戰(zhàn)略發(fā)展是緊扣的,一個(gè)系統(tǒng)的功能不可能隨著社會(huì)的變化,能一直滿足市場需要的,在設(shè)計(jì)系統(tǒng)的時(shí)候,可以了解一下公司的戰(zhàn)略發(fā)展,比如公司三年之內(nèi)要做成什么樣,客戶多少,網(wǎng)站瀏量,可以做下評(píng)估,這樣就考慮系統(tǒng)構(gòu)架的問題,你開始就準(zhǔn)備構(gòu)架一個(gè)大胖子,但現(xiàn)在需求簡單,在實(shí)際的運(yùn)行中,速度緩慢,其實(shí)你構(gòu)架越復(fù)雜,系統(tǒng)運(yùn)行就越緩慢,雖說現(xiàn)在很多大系統(tǒng)運(yùn)行的都很好,但要想想,人家服務(wù)器,網(wǎng)絡(luò)構(gòu)架是什么樣的,你不可能讓你的系統(tǒng)一線就有這么好的環(huán)境,就算有,那成本也太大了,一般的公司也吃不消。
1.6系統(tǒng)分幾個(gè)階段實(shí)施
在開發(fā)初期,我們不可能將系統(tǒng)所有的功能都能完成的很好,為了加快開進(jìn)度,為了系統(tǒng)能盡早上線,我們得像建樓一樣,分階段進(jìn)行,分段實(shí)施,如果我們現(xiàn)在只是要在網(wǎng)上賣商品,那我們就得把客戶管理、商品管理、購物車、定單管理這幾大塊實(shí)現(xiàn),把一個(gè)系統(tǒng)根基打好,誰都想讓自己的系統(tǒng)變成最強(qiáng)大的系統(tǒng),但這個(gè)想法幾乎是不可能完成的,如果我們把根基打好了,再在上面加以改進(jìn),添磚添瓦,根據(jù)客戶或市場的需要來完善,我想這個(gè)系統(tǒng)就會(huì)慢慢變成