需求分析是軟件開發(fā)過程的核心,其結(jié)果直接影響到整個(gè)的軟件開發(fā)過程,對開發(fā)的成敗起決定作用。因此,做好需求分析是軟件開發(fā)的關(guān)鍵。傳統(tǒng)的軟件工程理論主張開發(fā)方派專門的需求分析人員或小組到委托方進(jìn)行長期的業(yè)務(wù)實(shí)踐和調(diào)研。我認(rèn)為,這種方式效率并不是很高,浪費(fèi)了大量的人力,財(cái)力和時(shí)間。延長了開發(fā)周期,增加了開發(fā)費(fèi)用。然而,如若將需求分析的工作分作兩大部分,由委托方和開發(fā)方共同來完成,或許能達(dá)到更好的效果。
在此,本人主張將軟件需求分析團(tuán)隊(duì)分作兩組:委托方業(yè)務(wù)團(tuán)隊(duì)和開發(fā)方需求分析團(tuán)隊(duì)。委托方業(yè)務(wù)團(tuán)隊(duì)由熟悉業(yè)務(wù)的業(yè)務(wù)主要負(fù)責(zé)人員組成,本組人員所應(yīng)完成的主要工作有:描述業(yè)務(wù)的內(nèi)容、性質(zhì)及業(yè)務(wù)規(guī)則,并形成相關(guān)文檔,為開發(fā)方提供業(yè)務(wù)流程圖及所有與業(yè)務(wù)相關(guān)的日常業(yè)務(wù)數(shù)據(jù)表。另外,企業(yè)各項(xiàng)業(yè)務(wù)間存在著千絲萬縷的聯(lián)系,委托方需求分析團(tuán)隊(duì)?wèi)?yīng)注重向開發(fā)方描述這種聯(lián)系。因?yàn),這些聯(lián)系將作為數(shù)據(jù)庫設(shè)計(jì)的依據(jù)。開發(fā)方需求分析團(tuán)隊(duì)作為需求分析的第二部分,將根據(jù)委托方需求分析團(tuán)隊(duì)所提供的所有數(shù)據(jù)形成面向計(jì)算機(jī)的需求分析,包括功能分析,性能分析和數(shù)據(jù)分析等。具體說來,分析人員要根據(jù)業(yè)務(wù)的內(nèi)容和性質(zhì)概括出功能需求,根據(jù)業(yè)務(wù)規(guī)則概括出初步的算法思路,根據(jù)業(yè)務(wù)流程和日常數(shù)據(jù)表形成數(shù)據(jù)流圖和數(shù)據(jù)字典。
綜上,本人主張軟件需求分析的任務(wù)由委托方業(yè)務(wù)團(tuán)隊(duì)和開發(fā)方分析團(tuán)隊(duì)共同來完成。二者各伺其職。從分析時(shí)間上,委托方業(yè)務(wù)團(tuán)隊(duì)具備豐富的業(yè)務(wù)經(jīng)驗(yàn),應(yīng)該在很短的時(shí)間內(nèi)就能整理出開發(fā)所需的所有數(shù)據(jù),以供開發(fā)方分析團(tuán)隊(duì)使用。而開發(fā)方分析團(tuán)隊(duì),根據(jù)委托方提供的說明文檔、業(yè)務(wù)流程圖及數(shù)據(jù)表,經(jīng)雙方座談、研討,便能很快形成需求分析的全局印象,進(jìn)而根據(jù)現(xiàn)有的資料及研討結(jié)果便可進(jìn)行具體的需求分析。相對于傳統(tǒng)的瀑布模型中的需求分析,二者的差異在于,傳統(tǒng)模型中的需求分析的全部過程均由的分析人員來完成。這樣,在需求分析開始之初,開發(fā)方要派遣分析人員到委托方接受業(yè)務(wù)培訓(xùn),培訓(xùn)結(jié)束還要進(jìn)行長期的業(yè)務(wù)實(shí)踐,方可掌握業(yè)務(wù)概況,再進(jìn)一步做具體的需求分析,浪費(fèi)了大量的時(shí)間。而我所提出的分析過程,前半部分過程由熟悉業(yè)務(wù)的人員來替代的軟件需求分析人員來完成,這樣,不但節(jié)省了人員培訓(xùn)的過程和費(fèi)用,更是避免了需求分析所產(chǎn)生的誤差,有利于縮短整個(gè)軟件開發(fā)的周期,也使得軟件將來的主要用戶在開發(fā)初始就能大體了解到自己委托別人開發(fā)的軟件能做什么。從而,在一定程度上也會(huì)降低將來用戶培訓(xùn)的力度,為開發(fā)雙方節(jié)省人力、物力、財(cái)力和時(shí)間。
|