- 相關(guān)推薦
淺談軟件開(kāi)發(fā)中的需求分析
摘要:眾所周知,想要做好軟件 ,首先要做好需求分析,但是實(shí)際上人們對(duì)需求分析卻不夠重視。并且由于需求分析的錯(cuò)誤引起的軟件開(kāi)發(fā)的錯(cuò)誤在制作時(shí)是看不出來(lái)的,只有做完軟件進(jìn)行檢測(cè)時(shí)才能發(fā)現(xiàn),但是這時(shí)想要改正錯(cuò)誤就要付出雙倍的代價(jià)。下文就需求分析的相關(guān)問(wèn)題進(jìn)行了探討。 關(guān)鍵詞:軟件開(kāi)發(fā) 需求分析 分類(lèi)號(hào)】:TP311.52 一.什么是需求分析 結(jié)構(gòu)化軟件開(kāi)發(fā)一般分為分析、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、驗(yàn)收與運(yùn)行等階段。開(kāi)發(fā)前,會(huì)進(jìn)行前期的可行性研究;在運(yùn)行開(kāi)始以后,還要進(jìn)行后期維護(hù)。需求分析是結(jié)構(gòu)化開(kāi)發(fā)中的重要階段。通常情況下,國(guó)內(nèi)軟件開(kāi)發(fā)公司在做歐美和日本的項(xiàng)目時(shí),對(duì)前期的可行性研究參與得較少,一般都是對(duì)方已經(jīng)做完可行性研究,國(guó)內(nèi)軟件開(kāi)發(fā)公司從需求分析開(kāi)始做起,直到軟件開(kāi)發(fā)后的運(yùn)行和維護(hù)。 所謂“需求分析”,是指對(duì)要解決的問(wèn)題進(jìn)行詳細(xì)的分析,弄清楚客戶的需求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么,等等?梢哉f(shuō),軟件工程當(dāng)中的“需求分析”就是確定要計(jì)算機(jī)“做什么”。 二.需求分析的重要性 從需求分析的定義上,就可以看出需求分析在軟件開(kāi)發(fā)過(guò)程中的重要性了。需求分析做得不對(duì),后面的步驟做得再好,也只能是南轅北轍,無(wú)法滿足客戶的要求。研究表明,改正產(chǎn)品付諸應(yīng)用后所發(fā)現(xiàn)的一個(gè)需求方面的缺陷,比在需求階段改正這個(gè)錯(cuò)誤要多付出大約100倍的成本。而另一項(xiàng)研究發(fā)現(xiàn),在需求開(kāi)發(fā)階段發(fā)現(xiàn)的一個(gè)錯(cuò)誤,平均僅需要花30分鐘修復(fù),但若在系統(tǒng)測(cè)試時(shí)發(fā)現(xiàn)則需要5―17個(gè)小時(shí)來(lái)修復(fù)。 需求工程的成功與否直接關(guān)系到系統(tǒng)給的命運(yùn),需求工程絕對(duì)不是軟件開(kāi)發(fā)的前期任務(wù),而應(yīng)該在整個(gè)系統(tǒng)的生命周期里都扮演著重要角色。在需求工程階段解決和根除需求引起的問(wèn)題可以大大降低生產(chǎn)和維護(hù)的成本,提高用戶的滿意度。在軟件開(kāi)發(fā)的過(guò)程中,需求工程階段是了解用戶需求的最佳時(shí)期,但很大一部分用戶不知道、不了解需求工程,以至于在和他們交流的時(shí)候,他們都不能準(zhǔn)確完整的說(shuō)出自己的需求,因而對(duì)于從事需求工程的人員來(lái)說(shuō),能夠正確的理解用戶的需求觀點(diǎn),利用一些方法和技巧來(lái)啟發(fā)用戶闡述清楚自己的需求是很重要的。需求工程作為了解并實(shí)現(xiàn)軟件開(kāi)發(fā)者的目標(biāo)的重要手段,有著不可替代的作用。 比如一個(gè)失敗的案例:由于和客戶簽訂了合同,5個(gè)月必須交付軟件,開(kāi)發(fā)時(shí)間緊迫,導(dǎo)致項(xiàng)目計(jì)劃時(shí)做需求分析的時(shí)間只給了2周時(shí)間(理由是客戶的文檔已經(jīng)提供好了,照著做即可)。結(jié)果,由于前期對(duì)客戶文檔理解得不是很清楚,導(dǎo)致開(kāi)發(fā)進(jìn)行到3個(gè)月的時(shí)候發(fā)現(xiàn)需求上有爭(zhēng)議。在和客戶確認(rèn)后得出結(jié)論:如果要滿足客戶的要求,則需要對(duì)整體架構(gòu)進(jìn)行修改。雖然最后按期交付了軟件,但是整個(gè)項(xiàng)目組最后兩個(gè)月每天都在加班,包括周末,而且軟件質(zhì)量也沒(méi)有得到客戶的充分認(rèn)可。 再如我們?cè)诹私饪蛻粜枨蟮耐瑫r(shí),應(yīng)該盡量了解客戶為什么要這么做,幫客戶一起想需求,以便我們開(kāi)發(fā)的軟件能夠更好地為客戶服務(wù)。每天開(kāi)完會(huì)后,我們應(yīng)該把客戶的需求整理好,發(fā)給同事進(jìn)行研究分析,建立簡(jiǎn)單的基礎(chǔ)模型并研究技術(shù)可行性。需求分析結(jié)束后,保持每周至少3次電話會(huì)議與客戶進(jìn)行溝通,隨時(shí)了解客戶的需求。最后正因?yàn)樵谇捌陔A段進(jìn)行了這種細(xì)致的需求分析,項(xiàng)目組在很少加班的情況下,不但按時(shí)交付了項(xiàng)目,并且得到客戶的充分認(rèn)可。 三.軟件需求分析的任務(wù) 軟件工程的發(fā)展來(lái)源于信息需求對(duì)它的推動(dòng),現(xiàn)在互聯(lián)網(wǎng)技術(shù)和應(yīng)用越來(lái)越成熟,信息的獲取也逐漸變得簡(jiǎn)單和完整,但是由于資源的開(kāi)放性、系統(tǒng)與系統(tǒng)的相互滲透性、用戶的變動(dòng)性讓需求變得多目的、多變化,增加了軟件制作的難度,但同樣帶來(lái)了巨大的用戶市場(chǎng)。需求的獲取同樣也是困擾軟件工程的絆腳石。需求與資源的搭配不合理,就會(huì)影響軟件工程的發(fā)展。未來(lái)適應(yīng)變化多端的用戶需求,必須讓軟件也隨之變化。要滿足多樣化的信息需求,提取合適的信息需求建立模式,就要有相應(yīng)的系統(tǒng)對(duì)需求信息進(jìn)行分析和總結(jié),通過(guò)程序化的模式來(lái)制定切實(shí)可行的軟件方案。 在軟件分析過(guò)程中,應(yīng)盡http://m.stanzs.com/news/557AB9D13B507EBA.html可能地讓更多的人參與進(jìn)來(lái),而不僅僅是軟件分析師自己。在之前的美國(guó)項(xiàng)目中,在前期分析時(shí)軟件開(kāi)發(fā)的核心技術(shù)人員和測(cè)試人員就已經(jīng)進(jìn)入項(xiàng)目組,每天技術(shù)人員會(huì)對(duì)分析的結(jié)果提出技術(shù)實(shí)現(xiàn)的難點(diǎn)以及改進(jìn)的方法,筆者在隨后的會(huì)議上就會(huì)和客戶進(jìn)行討論,盡量在滿足客戶需求的同時(shí),使用更簡(jiǎn)單可行的技術(shù),這樣就為以后的開(kāi)發(fā)奠定了基礎(chǔ),使開(kāi)發(fā)時(shí)的工作量大大減少。測(cè)試人員也在需求時(shí)提出從測(cè)試角度看到的問(wèn)題,同樣在需求分析階段得到解決,節(jié)省了大量的開(kāi)發(fā)時(shí)間。 需求工程在未來(lái)發(fā)展中會(huì)有如下幾個(gè)方面的著重考慮:(1)縮小需求工程在理論研究階段取得的成果同實(shí)際應(yīng)用中得到的效果的差距,通過(guò)得到的結(jié)論來(lái)更好的設(shè)計(jì)軟件;(2)規(guī)范需求工程的各種機(jī)制,可以有需求工程規(guī)格數(shù)據(jù)的搜集、整理、制作、實(shí)現(xiàn)以及維護(hù),也可以有需求工程的問(wèn)題的解決辦法;(3)保證需求工程有較高的質(zhì)量。這一點(diǎn)是需求工程最為關(guān)鍵的要求,質(zhì)量的高低直接影響了未來(lái)實(shí)現(xiàn)效果的好壞。 需求工程就是對(duì)未知問(wèn)題進(jìn)行探索、處理的過(guò)程。未來(lái)必然會(huì)朝著對(duì)象具體化、分析自動(dòng)化的方向發(fā)展。 四.進(jìn)行需求分析的注意事項(xiàng) 1.需求分析是分析人員與用戶共同的責(zé)任。用戶必須對(duì)軟件功能和性能提出初步要求,并澄清一些模糊概念。而需求分析人員則要認(rèn)真了解用戶的要求,細(xì)致地進(jìn)行調(diào)查分析,把用戶“做什么”的要求最終轉(zhuǎn)換成一個(gè)完全的、精細(xì)的軟件邏輯模型,并寫(xiě)出軟件的需求規(guī)格說(shuō)明,準(zhǔn)確地表達(dá)用戶的要求。在一些項(xiàng)目中,由于時(shí)間緊迫,一些模糊問(wèn)題沒(méi)有及時(shí)澄清,導(dǎo)致最后返工,影響了項(xiàng)目進(jìn)度。 2.需求分析階段研究的對(duì)象是軟件項(xiàng)目的用戶要求。需要注意的是,必須理解用戶的各項(xiàng)要求,但又不能全盤(pán)接受所有的要求。在一些項(xiàng)目中,針對(duì)客戶提出的需求,了解客戶的意圖后,發(fā)現(xiàn)技術(shù)上實(shí)現(xiàn)有很大難度。我們了解到這個(gè)需求對(duì)客戶來(lái)說(shuō)不是十分重要,于是和客戶商量出一個(gè)折中的解決方案,繞過(guò)技術(shù)難點(diǎn),并且沒(méi)有降低客戶滿意度。 3.分析人員要使用符合客戶語(yǔ)言習(xí)慣的表達(dá),應(yīng)主動(dòng)積極了解客戶業(yè)務(wù)和相關(guān)知識(shí)。需求討論集中于業(yè)務(wù)需求和任務(wù),因此要使用術(shù)語(yǔ)?蛻魬(yīng)將有關(guān)術(shù)語(yǔ)教給分析人員,而客戶不一定要懂得計(jì)算機(jī)行業(yè)的術(shù)語(yǔ)。由于通常情況下客戶對(duì)計(jì)算機(jī)術(shù)語(yǔ)了解不多,需求分析人員應(yīng)該盡量將計(jì)算機(jī)術(shù)語(yǔ)轉(zhuǎn)化成通俗易懂的語(yǔ)言,這樣便于和客戶溝通。而對(duì)于客戶方面的術(shù)語(yǔ),一方面不懂的時(shí)候一定要問(wèn);另一方面也要多學(xué)習(xí)。 綜上所述,需求分析是軟件開(kāi)發(fā)周期中的重要階段,關(guān)系到軟件開(kāi)發(fā)的成敗。我們?cè)谲浖_(kāi)發(fā)中應(yīng)該充分重視這一階段,盡量將問(wèn)題在這一階段解決好,為后期的軟件開(kāi)發(fā)打好堅(jiān)實(shí)的基礎(chǔ),使項(xiàng)目能夠保質(zhì)保量的完成。 參考文獻(xiàn): 【1】李德毅.需求工程----對(duì)復(fù)雜系統(tǒng)的軟件工程的基礎(chǔ)研究【J】.中國(guó)基礎(chǔ)科學(xué),2009,11(2);56-57. 【2】李虹,閆德恒.基于項(xiàng)目需求工程理論的軟件需求管理淺析【J】.國(guó)科技信息,2011,(16);72-73 【3】李建平.軟件需求工程過(guò)程管理的研究與應(yīng)用【J】.科技信息,2011,(5);66-67
【淺談軟件開(kāi)發(fā)中的需求分析】相關(guān)文章:
需求分析報(bào)告09-17
論英語(yǔ)語(yǔ)言課程設(shè)計(jì)中的需求分析05-01
軟件需求分析報(bào)告11-27
網(wǎng)站需求分析報(bào)告08-17
淺談危險(xiǎn)性分析中應(yīng)注意的問(wèn)題04-28
有效需求不足的成因分析04-29
住宅小區(qū)交通影響分析中交通需求預(yù)測(cè)方法04-28