摘 要:我國現(xiàn)代信息化建設(shè)已經(jīng)歷經(jīng)了無數(shù)個春秋,但大部分軟件開發(fā)公司始終把工作重心放在軟件本身的收集、編寫以及產(chǎn)品的管理上,忽略了用戶作為主體,對軟件需求有著主導(dǎo)作用,其在軟件的設(shè)計中有著至關(guān)重要的作用。很大一部分軟件工程師并沒有細(xì)致的對用戶需求進行調(diào)查、走訪以及意見的收集等,導(dǎo)致很多開發(fā)出來的軟件并沒有受到用戶的接受或青睞。本文詳細(xì)闡述了軟件工程需求的具體含義及其重要性,同時針對軟件工程需求的工作流程分析提出了自己的見解。
關(guān)鍵詞:軟件工程;需求分析;重要價值
中圖分類號:TP311.5
在軟件工程這一行業(yè)中,始終存在著一種現(xiàn)象,即為軟件開發(fā)方所開發(fā)的軟件明明是按照用戶要求制作的,但是結(jié)果卻不盡如人意。而用戶也面臨著相應(yīng)的問題就是軟件開發(fā)方所給出的系統(tǒng)跟自身想要的軟件系統(tǒng)差距太大,造成軟件的開發(fā)方與使用方不能很好的合作,以達到雙贏。這一問題的根源在于沒有對用戶的需求進行詳細(xì)的分析。在軟件的設(shè)計中,較為盲目,沒有一定的目標(biāo),造成軟件的不適用性。筆者針對軟件工程現(xiàn)階段的主要問題、需求分析的重要價值以及工作流程做了詳細(xì)的討論。
1 軟件工程需求分析的含義
軟件工程需求分析主要宗旨是了解用戶需求。針對軟件功能以及特征與用戶達成一致,對軟件開發(fā)中所應(yīng)承擔(dān)的風(fēng)險以及所付出的代價進行合理的評定與估算,最終形成一個完整的開發(fā)項目。其過程十分繁瑣,在整個過程中,用戶始終都處于主導(dǎo)地位,分析師和相關(guān)部門負(fù)責(zé)人應(yīng)負(fù)責(zé)用戶需求的整理與歸類,為后期的軟件設(shè)計打好基礎(chǔ),以便于可以更加直觀的了解用戶的需求,并針對這些需求進行軟件的設(shè)計,盡量給客戶提供一個完美的設(shè)計方案。
一個軟件項目的開發(fā)大體可以分成五個階段:需求分析階段、設(shè)計階段、編碼階段、測試階段和維護階段。而需求分析作為首要步驟,是完成軟件設(shè)計的先決條件。需求分析結(jié)束之后,應(yīng)把分析結(jié)果整理成文檔形式,現(xiàn)階段普遍使用的有SRS文檔和DRM文檔兩種。這兩種方式讓軟件工程師更加清晰的了解用戶的相關(guān)需求,有利于工作效率的提高。
2 需求分析在軟件工程設(shè)計中的重要價值
需求分析是軟件工程中的一個重要環(huán)節(jié),是開發(fā)軟件過程中的不可缺少的組成部分。需求分析甚至還關(guān)乎到軟件項目是否可以順利發(fā)售。當(dāng)前的軟件工程中,返工的現(xiàn)象很多,浪費了大量的人力、物力和財力,其中最主要的原因就是對于用戶的需求沒有清晰的了解,在設(shè)計中隨心所欲,導(dǎo)致后期多次更改,項目也無法按時完成,很大程度上大大降低了工作效率??傊?,需求分析是軟件設(shè)計的基礎(chǔ),在軟件設(shè)計中有著十分重要的價值。
3 軟件工程的需求分析
軟件需求分析主要包含提煉、對用戶的需求進行分析以及最后審核所有用戶需求,及時的查漏補缺,確保軟件工程的風(fēng)險承擔(dān)者能明白其內(nèi)涵等步驟。分析員應(yīng)明確所有的需求及軟件需求是否與需求說明的要求相匹配。其目的在于高質(zhì)量需求的開發(fā),以便于設(shè)計師能對項目進行大致估算,在此基礎(chǔ)上,進行設(shè)計以及測試等過程。需求分析可分成功能需求、非功能需求以及領(lǐng)域需求這三個方面:(1)功能需求主要是對系統(tǒng)實際運用中所要做到的要求,包括系統(tǒng)的相關(guān)處理以及系統(tǒng)的輸入或輸出等功能。功能需求是用戶最直觀的要求,也是用戶對于系統(tǒng)的最主要的要求。如果功能需求沒有達到用戶的要求,對于其他功能用戶也就不愿關(guān)注。(2)非功能需求主要是各項指標(biāo)以及軟件的各個角度對系統(tǒng)起到的約束作用。如系統(tǒng)的存儲效應(yīng)、軟件界面樣式以及軟件相關(guān)報表的規(guī)格等。(三)領(lǐng)域需求是指系統(tǒng)應(yīng)用的領(lǐng)域,涉及到相關(guān)合同以及酬勞的發(fā)放,集中反應(yīng)了此領(lǐng)域中的諸多基本問題。如果此項需求不能得到滿足,則系統(tǒng)就無法正常運行。它即是功能需求也可以是非功能需求,這一需求是根據(jù)實際情況的不同,屬性也不盡相同。
4 軟件工程的需求分析工作流程
廣義上的軟件工程需求分析即用戶在目標(biāo)軟件的功能、性能、行為、社會約束等方面的期望。通過對相關(guān)問題以及設(shè)計環(huán)境的分析,精確地了解用戶的要求,最終形成相對應(yīng)的規(guī)格說明。整個軟件開發(fā)中的需求分析有以下幾個階段,如下圖所示。
在工程的需求分析中,主要問題圍繞在業(yè)務(wù)需求、用戶需求和功能需求這三個大的方向。業(yè)務(wù)需求主要是由分析員參與,對企業(yè)目前的業(yè)務(wù)流程進行評估,確定業(yè)務(wù)模塊的構(gòu)造;用戶需求主要是針對用戶需求的收集以及獲取方法的制定;而功能需求是建立在用戶需求的基礎(chǔ)之上的,是用戶需求的一個相對具體的反應(yīng),致力于為用戶設(shè)計一個軟件原型。
需求分析還包括了跟客戶之間的交流以及對某些概念的混淆進行相應(yīng)指導(dǎo),澄清相關(guān)問題,并合理分析出哪些需求才是至關(guān)重要的,確保項目中的所有風(fēng)險承擔(dān)者對于將來的軟件產(chǎn)品有相對一致的認(rèn)識。
(1)數(shù)據(jù)字典的創(chuàng)建。數(shù)據(jù)字典是對軟件系統(tǒng)中所有用到的數(shù)據(jù)以及結(jié)構(gòu)進行定義。促使軟件開發(fā)人員在數(shù)據(jù)定義上的使用是一致的,有利于軟件開發(fā)過程中管理工作的展開;(2)確定最重要的用戶需求。采用分析方法確定產(chǎn)品特征或者對相對重要的需求優(yōu)先滿足。確認(rèn)優(yōu)先級要建立在需求特性及需求級別的分析之上;(3)對需求可行性進行分析。在對成本以及性能要求有準(zhǔn)確的認(rèn)識之后,對每項需求的可行性進行合理分析,清晰了解每項需求實現(xiàn)所承受的相關(guān)風(fēng)險,要考慮的因素很多,包括要處理好其他需求之間的聯(lián)系,以及外界因素和技術(shù)上的缺陷等;(4)進行質(zhì)量功能調(diào)配。質(zhì)量功能調(diào)配實質(zhì)上是一種高級系統(tǒng)技術(shù)。它綜合了軟件的特征、屬性與用戶價值這幾項重要因素。為其提供一種好的分析方法,清晰的呈現(xiàn)出客戶最為關(guān)注的需求,將其分成期望需求,即必須要達到的需求;(5)保持需求的穩(wěn)定狀態(tài)。過多的需求則預(yù)示著用戶還未真正明白所有的問題,或者是由于政策變化較大等因素;(6)繪制系統(tǒng)示意圖。示意圖是一種相對較為簡單的模型。主要作用是為了定義系統(tǒng)與系統(tǒng)外部實體問的界限和借口,可以使信息更加明確化;(7)補充功能需求。對于功能需求的補充主要包括對產(chǎn)品必須遵從的規(guī)范和標(biāo)準(zhǔn)、合約內(nèi)容、界面的具體細(xì)節(jié)、性能要求及其質(zhì)量屬性等。是對于使用者和執(zhí)行者在軟件過程中的各項行為準(zhǔn)則的一種展現(xiàn)。
5 結(jié)束語
綜上所述,我們不難看出,準(zhǔn)確的認(rèn)識到需求分析的含義、了解需求分析的過程以及選擇合適的需求分析方法是一個軟件項目走向成功的關(guān)鍵。只有通過對用戶需求進行分析,才能更好的呈現(xiàn)軟件的性能與功能特征。因此,采用好的需求分析方法在軟件設(shè)計中有著事半功倍的效果。軟件分析師應(yīng)注重對于用戶的需求分析,在此基礎(chǔ)上,不斷總結(jié)與歸納好的、合適的需求分析方法,應(yīng)用到實際工作中去,不僅有利于提高自身的工作效率,還推動了企業(yè)或者相關(guān)部門的快速發(fā)展,為我國社會主義現(xiàn)代化建設(shè)貢獻自己的一份綿薄之力。
參考文獻:
[1]付赟.軟件需求變更影響建模與風(fēng)險管理研究[D].天津大學(xué),2011.
[2]來羽.軟件工程需求分析與質(zhì)量保障[J].煤炭技術(shù),2013(09):204-205.
[3]石彥,桂志海.軟件工程需求分析與質(zhì)量保障[J].無線互聯(lián)科技,2014(02):45.
[4]湛浩旻.軟件需求獲取過程關(guān)鍵技術(shù)研究[D].哈爾濱工程大學(xué),2013.
[5]蔣明遠.關(guān)于軟件工程需求分析探究[J].商場現(xiàn)代化,2010(09):28.
作者單位:中國人民解放軍信息工程大學(xué),鄭州 50002