摘 要:開發(fā)軟件項(xiàng)目,需求分析是重點(diǎn)。軟件開發(fā)者必須深入了解業(yè)務(wù),明白系統(tǒng)所需要的功能以及約束條件,與用戶約定好技術(shù)實(shí)現(xiàn)的方式、項(xiàng)目的時(shí)間節(jié)點(diǎn)和運(yùn)行維護(hù)方式等具體內(nèi)容,最終將各階段的需求進(jìn)行匯總,形成規(guī)范可靠的需求規(guī)格說明書,用以指導(dǎo)后續(xù)的開發(fā)、實(shí)施、運(yùn)行維護(hù)工作。本文作者通過對軟件項(xiàng)目開發(fā)管理的學(xué)習(xí)和理解并結(jié)合多年項(xiàng)目實(shí)施的經(jīng)驗(yàn),闡述了對軟件需求分析的理解。
關(guān)鍵詞:軟件;需求分析;信息化;決策性
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2018)11-0013-03
Comprehension of Software Requirements Analysis
SHEN Xin1,CHEN Huashan2
(1.Jiangsu Changzhou Real Estate Information Center,Changzhou 213000,China;
2.Changzhou Information Center,Hohai University,Changzhou 213022,China)
Abstract:In developing software projects,requirements analysis is the key point. Software developers must have a thorough understanding of the business,understand the functions and constraints required by the system,and agree with users on the technical implementation methods,project time nodes,operation and maintenance methods and other specific content,and ultimately aggregate the requirements of various stages to form a standardized and reliable requirements specifications for guidance. Follow up development,implementation,operation and maintenance. Through the study and understanding of software project development management and combined with years of project implementation experience,the author expounds the understanding of software requirements analysis.
Keywords:software;requirement analysis;informatization;decision making
0 引 言
軟件項(xiàng)目通過問題定義、可行性研究進(jìn)入開發(fā)時(shí)期,最重要的工作就是需求分析。需求分析對整個(gè)軟件開發(fā)的過程起決定性的作用。需求分析做得不完善,會(huì)給后續(xù)的開發(fā)工作帶來大量的困難,造成用戶對軟件不滿,項(xiàng)目工期也因此延長,溝通協(xié)調(diào)困難,嚴(yán)重的甚至?xí)斐身?xiàng)目開發(fā)的失敗,用戶與軟件開發(fā)者終止合同??梢哉f需求分析是做好軟件項(xiàng)目的關(guān)鍵所在。
1 需求分析的目標(biāo)
需求分析要完成的目標(biāo)就是最終形成一份經(jīng)用戶認(rèn)可,開發(fā)方與使用方達(dá)成一致的需求規(guī)格說明書。需求規(guī)格說明書能準(zhǔn)確清晰地說明系統(tǒng)將要開發(fā)什么模塊和功能,能夠確定詳細(xì)的業(yè)務(wù)需求和技術(shù)需求,包括所有業(yè)務(wù)工作流程、數(shù)據(jù)流轉(zhuǎn)、統(tǒng)計(jì)的要求、應(yīng)用的范圍以及面向用戶和其它軟件系統(tǒng)的接口。人性化的精確的需求可以使系統(tǒng)功能更加完善,避免因性能和操作使用方面的問題導(dǎo)致使用困難,工作效率低下。同時(shí),通過編寫需求規(guī)格說明書也可以加強(qiáng)業(yè)務(wù)部門具體業(yè)務(wù)操作人員與軟件承建單位開發(fā)人員之間的交流,加深對系統(tǒng)的了解。需求規(guī)格說明書在整個(gè)軟件項(xiàng)目的開發(fā)實(shí)施過程中一直起著決定性作用。
2 需求分析的決定性
2.1 需求分析是掌握用戶需求的關(guān)鍵工作
軟件項(xiàng)目的開發(fā)是為用戶服務(wù),通過流程再造,提高工作效率,完善系統(tǒng)數(shù)據(jù),從而使得用戶方的管理和工作效能上升一個(gè)臺(tái)階。軟件開發(fā)方需要對用戶進(jìn)行深入了解,首先要對用戶現(xiàn)有的工作進(jìn)行梳理和掌握,有老應(yīng)用系統(tǒng)的,還必須對老系統(tǒng)進(jìn)行研究,分析歷史數(shù)據(jù),深入理解用戶新建或改建軟件項(xiàng)目的意義。不管軟件開發(fā)單位開發(fā)的平臺(tái)采取的技術(shù)有多先進(jìn),如果不能滿足用戶的需求,這樣的軟件項(xiàng)目就偏離了開發(fā)的正確方向,會(huì)導(dǎo)致項(xiàng)目不能完工,給用戶造成損失。
2.2 需求分析是決定項(xiàng)目成敗的決定性因素
通過對以往建設(shè)失敗,沒有真正運(yùn)行起來,或者剛運(yùn)行就問題不斷導(dǎo)致項(xiàng)目下線的軟件項(xiàng)目進(jìn)行分析,發(fā)現(xiàn)90%是由于在需求分析階段的工作沒有做好而造成的。需求分析沒做好,整個(gè)項(xiàng)目的風(fēng)險(xiǎn)就會(huì)具體體現(xiàn)在項(xiàng)目需求分析不明確、業(yè)務(wù)流程設(shè)計(jì)不合理,各個(gè)模塊互相沖突等方面,導(dǎo)致開發(fā)的軟件不具備可操作性,無法順利實(shí)施,從而造成項(xiàng)目失敗。
2.3 需求分析是系統(tǒng)研究和軟件開發(fā)的橋梁
需求分析是對用戶的日常工作流程和數(shù)據(jù)進(jìn)行分析,明確在用戶的工作中軟件系統(tǒng)應(yīng)該做什么。但是在需求分析開始時(shí),軟件開發(fā)人員往往不能清晰地知道系統(tǒng)最終要“做什么”,因?yàn)檐浖_發(fā)人員不熟悉用戶的業(yè)務(wù)流程和業(yè)務(wù)環(huán)境,所以業(yè)務(wù)部門的用戶必須與軟件承建單位需求分析人員進(jìn)行深入溝通。
通過仔細(xì)地研究和交流,大家都要盡可能全面、準(zhǔn)確地描述業(yè)務(wù)流程、數(shù)據(jù)和統(tǒng)計(jì)等需求,爭取及時(shí)發(fā)現(xiàn)問題并及時(shí)解決問題,業(yè)務(wù)部門要讓軟件承建單位人員對需求有明確的認(rèn)識(shí),這才能進(jìn)行下一步軟件設(shè)計(jì)。如果軟件開發(fā)單位對用戶需求沒有形成完整的正確認(rèn)識(shí)就急急忙忙地開始設(shè)計(jì)編程,開發(fā)出來的系統(tǒng)就必然不能滿足用戶的需要。
2.4 需求分析需要加強(qiáng)質(zhì)量控制
需求分析對整體軟件項(xiàng)目具有決策性、方向性的作用。如果在需求階段出現(xiàn)了問題,那么在軟件項(xiàng)目后續(xù)的階段,問題只會(huì)越積越多。所以在軟件項(xiàng)目的開發(fā)實(shí)踐過程中,一定要對需求分析的重要性有足夠的認(rèn)識(shí),優(yōu)質(zhì)的需求分析是所有軟件項(xiàng)目成功的必要條件。
3 明確需求分析的角色
在軟件開發(fā)過程中,業(yè)務(wù)部門、信息中心、軟件承建單位都將參與到其中,承擔(dān)各自的責(zé)任。
業(yè)務(wù)部門是需求分析的主要責(zé)任部門,應(yīng)該怎樣建設(shè)應(yīng)用子系統(tǒng)?希望達(dá)到什么目的?需要怎樣的工作流程?這些都取決于業(yè)務(wù)部門的需求。
就好比要造一幢怎樣的房屋,有什么使用功能,建造多少層,多大面積,這些都必須要由建設(shè)方來確定。只有確定下來具體的方案,施工方才能按照方案施工。
業(yè)務(wù)部門首先需要做好項(xiàng)目可行性分析,并提出詳細(xì)的前期需求方案(包括工作業(yè)務(wù)需求、實(shí)施范圍需求、技術(shù)需求、安全需求、設(shè)備需求、項(xiàng)目總投資概預(yù)算等,明確項(xiàng)目建設(shè)目標(biāo),詳細(xì)編寫項(xiàng)目的建設(shè)內(nèi)容、工作業(yè)務(wù)范圍、工作流程、數(shù)據(jù)量規(guī)模、應(yīng)用范圍、預(yù)期社會(huì)收益等內(nèi)容),積極參與需求分析,使軟件承建單位開發(fā)人員充分理解業(yè)務(wù)需求,形成雙方達(dá)成共識(shí)的需求規(guī)格說明書。
軟件承建單位負(fù)責(zé)參與需求分析,根據(jù)業(yè)務(wù)部門提出的需求,用符合計(jì)算機(jī)規(guī)格的形式表現(xiàn)出來,比如繪制業(yè)務(wù)流程圖、功能結(jié)構(gòu)示意圖、數(shù)據(jù)字典表、編寫用戶實(shí)例等。這些相對專業(yè)的工作需要和業(yè)務(wù)部門具體操作人員詳細(xì)溝通。而對于業(yè)務(wù)部門領(lǐng)導(dǎo)來說,上面這些方式過于專業(yè),軟件承建單位應(yīng)根據(jù)對需求的理解制作成演示系統(tǒng),來模擬實(shí)際系統(tǒng)的運(yùn)行,簡單明了。同時(shí),軟件承建單位對業(yè)務(wù)部門提出的需求不斷細(xì)化和完善,制訂出符合技術(shù)規(guī)范的軟件需求規(guī)格說明書。
信息中心負(fù)責(zé)的是:首先,組織對軟件開發(fā)項(xiàng)目可行性進(jìn)行評(píng)審;其次,在需求調(diào)研活動(dòng)中,發(fā)揮好業(yè)務(wù)部門和軟件承建單位之間的橋梁作用,業(yè)務(wù)部門提出的需求,有哪些可以做,哪些不可以做,是否有前后沖突;軟件承建單位理解的業(yè)務(wù)需求,是否與實(shí)際有出入,制作的演示系統(tǒng)是否將業(yè)務(wù)部門的需求準(zhǔn)確地表現(xiàn)出來,采取的技術(shù)是否符合開發(fā)規(guī)范等,對這些問題都要做好分析和調(diào)研。最后,信息中心還需要對管理項(xiàng)目實(shí)施的進(jìn)度和組織進(jìn)行需求評(píng)審。
在軟件開發(fā)需求分析過程中,只有三方各自都做好自己的任務(wù),才能加快我們的軟件項(xiàng)目建設(shè)步伐。
4 必須進(jìn)行可行性分析
要做好軟件需求分析,首先得進(jìn)行項(xiàng)目可行性分析。可行性分析是要先決定“能做還是不能做”,而需求分析是要具體決定“做什么”。
可行性分析必須是客觀的、科學(xué)的,分析應(yīng)從以下幾點(diǎn)考慮:
4.1 必須有主管業(yè)務(wù)部門
比如:白蟻預(yù)防滅治系統(tǒng)的業(yè)務(wù)主管部門是市白蟻防治研究所,商品房網(wǎng)上備案系統(tǒng)的業(yè)務(wù)主管部門是房管局市場管理處等。如果這些問題不明確,那么相關(guān)工作將無法開展。
4.2 工作需求必須迫切
看該項(xiàng)工作是否是當(dāng)前局系統(tǒng)的重點(diǎn)工作?需要用軟件的功能來做到規(guī)范化管理,對軟件的要求是否十分緊迫?比如:住房保障是當(dāng)前局系統(tǒng)的重點(diǎn)工作,任務(wù)很多也很復(fù)雜,需要用軟件規(guī)范管理,提高效率,因此對軟件的要求十分迫切。
4.3 系統(tǒng)開發(fā)的條件
必須具備以下條件:(1)業(yè)務(wù)管理工作必須有相關(guān)法律法規(guī)支持;(2)必須有相當(dāng)完善的管理工作制度;(3)必須有較為流暢的完整的工作流程;(4)必須有業(yè)務(wù)管理所用文檔的固定格式,比如統(tǒng)一的業(yè)務(wù)單據(jù)、統(tǒng)計(jì)報(bào)表等;(5)必須具備業(yè)務(wù)數(shù)據(jù)的流轉(zhuǎn)和應(yīng)用等。
比如商品房網(wǎng)上備案系統(tǒng)在開發(fā)時(shí)要已經(jīng)具備完善的管理方面的法律、法規(guī),具有相對成熟的管理制度和流暢的工作流程,全市具有統(tǒng)一的合同樣式,從開發(fā)企業(yè)到管理部門業(yè)務(wù)可以進(jìn)行數(shù)據(jù)的流轉(zhuǎn)等等,這樣才具備了開發(fā)的條件。
4.4 提出的業(yè)務(wù)流程必須經(jīng)過實(shí)踐驗(yàn)證
業(yè)務(wù)流程必須經(jīng)過實(shí)踐來驗(yàn)證,看是否成熟穩(wěn)定可靠。如果提出的業(yè)務(wù)流程目前還未開展或剛起步,存在太多未知因素,那就不能急于開發(fā)系統(tǒng),否則,隨著業(yè)務(wù)流程的不斷修正完善,系統(tǒng)將會(huì)陷入無休止的修改之中。
4.5 和法律法規(guī)不能有沖突
新系統(tǒng)開發(fā)必須考慮到和現(xiàn)行的法律法規(guī)是否沖突,如果有沖突,則不能開發(fā)。
業(yè)務(wù)部門對軟件開發(fā)的可行性分析結(jié)束后,要寫出可行性分析報(bào)告,提交信息中心審核,由信息中心組織有關(guān)專家進(jìn)行論證,根據(jù)可行性研究的結(jié)果,決定項(xiàng)目的取舍。
可行性分析的結(jié)論一般分為以下四種:(1)項(xiàng)目可行,可以立即開始實(shí)施;(2)需要推遲到某些條件(例如資金投入,人員配備,設(shè)備購置,新的法律規(guī)章、制度、文件出臺(tái)等)具備或?qū)嵤┑侥骋浑A段已經(jīng)成熟之后才能開始;(3)需要對開發(fā)項(xiàng)目的目標(biāo)進(jìn)行某些調(diào)整之后才能進(jìn)行;(4)不宜進(jìn)行,例如法律規(guī)章不完善,經(jīng)濟(jì)上不合算或可能產(chǎn)生負(fù)面的社會(huì)影響等原因,在這種情況下,業(yè)務(wù)部門應(yīng)該盡早終止項(xiàng)目計(jì)劃,以免浪費(fèi)人力、物力和財(cái)力。
根據(jù)可行性分析的結(jié)果,如果項(xiàng)目是可行的,那么業(yè)務(wù)部門可填寫《信息化項(xiàng)目建設(shè)立項(xiàng)報(bào)告》提交局領(lǐng)導(dǎo),由局領(lǐng)導(dǎo)進(jìn)行統(tǒng)籌安排。
項(xiàng)目立項(xiàng)決定實(shí)施后,由信息中心按市政府采購中心要求實(shí)施項(xiàng)目招標(biāo)工作。
5 結(jié) 論
在信息化軟件項(xiàng)目的開發(fā)實(shí)施過程中,需求分析階段是核心階段。形成一份用戶和開發(fā)方共同認(rèn)可的高質(zhì)量需求分析規(guī)格說明書,是核心工作,對后面的程序開發(fā)、系統(tǒng)上線直至項(xiàng)目驗(yàn)收都起到?jīng)Q定性的作用。
參考文獻(xiàn):
[1] 王峰.軟件開發(fā)需求分析技術(shù)探討 [J].電子技術(shù)與軟件工程,2015(16):73.
[2] 陳燕.軟件項(xiàng)目的需求管理方法與策略 [J].廣西科學(xué)院學(xué)報(bào),2009,25(2):108-110.
[3] 李超,謝坤武.軟件需求分析方法研究進(jìn)展 [J].湖北民族學(xué)院學(xué)報(bào)(自然科學(xué)版),2013,31(2):204-211.
作者簡介:沈鑫(1981-),男,江蘇常州人,工程師。從事信息化項(xiàng)目全過程管理工作。