應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

為什么在軟件工程中,需求分析總是令信息化主管頭疼不已?

2018-11-23 10:15 媒體投稿
關(guān)鍵詞:軟件工程需求分析

導(dǎo)讀:有資料表示,現(xiàn)在的軟件項目中返工開銷幾乎占了總開發(fā)的一半,而導(dǎo)致返工的主要原因是需求分析不明確,從而引發(fā)項目開發(fā)中的一系列更改,這些更改可能導(dǎo)致大量資源的浪費、軟件項目無法按時完成等嚴重問題,給信息化部門主管帶來嚴重的困擾。

 在軟件工程的歷史中,很長時間里人們一直認為需求分析是整個軟件工程中最簡單的一個步驟,但在過去十幾年中越來越多的人認識到它是整個過程中最關(guān)鍵的一個過程,它關(guān)乎著軟件項目開發(fā)的成敗。有資料表示,現(xiàn)在的軟件項目中返工開銷幾乎占了總開發(fā)的一半,而導(dǎo)致返工的主要原因是需求分析不明確,從而引發(fā)項目開發(fā)中的一系列更改,這些更改可能導(dǎo)致大量資源的浪費、軟件項目無法按時完成等嚴重問題,給信息化部門主管帶來嚴重的困擾。那么,為什么在軟件工程中,需求分析那么困難?

一、自身需求不清晰

需求分析是對用戶的業(yè)務(wù)活動進行分析,明確在用戶的業(yè)務(wù)環(huán)境中軟件系統(tǒng)應(yīng)該“做什么”。有些用戶在決定引進某一軟件項目后,對需求只有朦朧的感覺,說不清楚具體的需求是什么;另外還有一些用戶,雖然心里清楚自己單位要做的軟件項目需求,但卻不能準(zhǔn)確描述出來。

二、業(yè)務(wù)部門不配合

對于軟件建設(shè)單位,軟件項目往往是由信息中心等信息化主管部門負責(zé),業(yè)務(wù)部門需要配合進行業(yè)務(wù)需求調(diào)研、可行性研究等工作。但有的業(yè)務(wù)部門由于自身業(yè)務(wù)工作繁忙,不想承擔(dān)相關(guān)責(zé)任,從而拒絕投入太多的時間和精力在軟件項目需求調(diào)研工作中,往往形成業(yè)務(wù)部門與信息化主管部門工作不配合的局面,軟件項目需求得不到充分了解。

三、溝通存在障礙

用戶在與開發(fā)方溝通時,由于開發(fā)方不是用戶領(lǐng)域的專家,不熟悉用戶的業(yè)務(wù)活動和業(yè)務(wù)環(huán)境,雙方在溝通上存在一定的隔閡,導(dǎo)致用戶所表達的需求并不能被開發(fā)方完全理解。

四、需求變動頻繁

對于一個大型而復(fù)雜的軟件系統(tǒng),很難在開始就精確完整地提出它的功能和性能要求。一開始只能提出一個大概、模糊的功能,只有經(jīng)過長時間的反復(fù)認識才逐步明確;有時進入到設(shè)計、編程階段甚至開發(fā)后期,還會有新的需求出現(xiàn)。


78.jpeg

以上現(xiàn)象普遍存在于軟件項目需求分析階段,直接影響著后面軟件項目開發(fā)的順利進展。針對以上問題,我們總結(jié)了常見的幾種解決方法如下:

1、訪談

系統(tǒng)分析員或者設(shè)計人員針對該項目提出一些事先已經(jīng)準(zhǔn)備好的具體問題,鼓勵被訪問人員說出自己的想法。同時,也可以通過調(diào)查表的形式對相關(guān)問題進行一個初步的統(tǒng)計?;蛟谀撤N程度上通過快速建立的原型演示系統(tǒng)的主要功能,然后讓大家都參與進來去體驗,針對體驗的結(jié)果請大家做出自己的分析和理解,這種方法充分提高了大家在需求分析過程中積極主動的作用,這種方法我們通常稱之為“情景分析技術(shù)”。

2、面向數(shù)據(jù)流的自頂向下求精

基本思想是--“自頂向下,逐步求精,抽象和細分”。主要是利用數(shù)據(jù)流圖,先建立一個初步的系統(tǒng)功能模型,然后按照基本思想,自頂向下,逐步對頂層數(shù)據(jù)流圖進行細分,在細分的過程中,根據(jù)數(shù)據(jù)流圖判斷是否分解正確或者哪些地方有問題,然后再進行修正完善。

3、 簡易的應(yīng)用規(guī)格說明技術(shù)

1)進行初步訪談,初步確定待解決的問題的范圍和解決方案;2)開發(fā)者和用戶分別寫出“產(chǎn)品需求”;3)選定會議的時間和地點,選舉協(xié)調(diào)人;4)邀請開發(fā)者和用戶雙方組織的代表出席會議;5)列出系統(tǒng)環(huán)境組成部分的對象、系統(tǒng)將產(chǎn)生的對象、系統(tǒng)為完成自己的功能將使用的對象,列出操作這些對象或與這些對象交互的服務(wù),列出約束條件和性能標(biāo)準(zhǔn);6)共同創(chuàng)建一張組合列表起草完整的軟件需求規(guī)格說明書。

4.、快速原型分析技術(shù)

首先通過初步需求,快速建立一個系統(tǒng)原型;然后運行給用戶看,用戶根據(jù)原型提出自己的修改意見;最后程序開發(fā)者根據(jù)用戶的建議,對原型進行修改和完善。如此反復(fù)的迭代進行,直到最終建立一個滿足全面需求的軟件系統(tǒng)為止。

5、合理使用需求跟蹤矩陣

需求跟蹤矩陣是把產(chǎn)品需求從其來源連接到能滿足需求的可交付成果的一種表格。使用需求跟蹤矩陣,可以把每個需求與業(yè)務(wù)目標(biāo)或項目目標(biāo)聯(lián)系起來,有助于確保每個需求都具有商業(yè)價值。需求跟蹤矩陣提供了在整個項目生命周期中跟蹤需求的一種方法,有助于確保需求文件中被批準(zhǔn)的每項需求在項目結(jié)束的時候都能交付。最后,需求跟蹤矩陣還為管理產(chǎn)品范圍變更提供了框架。

6、分階段進行需求評審

在軟件項目需求分析階段中,應(yīng)該在需求形成的過程中進行分階段的評審,而不是在需求最終形成后再進行評審。分階段評審可以將原本需要進行的大規(guī)模評審拆分成各個小規(guī)模的評審,降低了需求返工的風(fēng)險,提高了評審的質(zhì)量。比如可以在形成目標(biāo)性需求后進行一次評審,在形成系統(tǒng)的初次概要需求后進行一次評審,對概要需求細分成幾個部分,對每個部分進行各個評審,最終再對整體的需求進行評審。

軟件需求分析是軟件設(shè)計及實現(xiàn)的基礎(chǔ),對于整個軟件項目來說至關(guān)重要。有數(shù)據(jù)統(tǒng)計,百分之八十的軟件項目失敗是由于需求分析不明確導(dǎo)致而成。因此,如果能科學(xué)合理地進行需求分析,解決需求分析階段面臨的各種問題,將會極大推動后續(xù)軟件項目的順利進展。