前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇需求變更的管理流程范文,相信會(huì)為您的寫作帶來(lái)幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
【關(guān)鍵詞】 需求開(kāi)發(fā) 需求變更 需求分析
隨著計(jì)算機(jī)的不斷發(fā)展,軟件開(kāi)發(fā)工程應(yīng)運(yùn)而生。影響軟件開(kāi)發(fā)的效率因素多種多樣,主要包括需求調(diào)研過(guò)程中理解產(chǎn)生的歧義、需求編寫的不完整性、需求表達(dá)的二義性、以及需求的頻繁變更等都將會(huì)影響到軟件開(kāi)發(fā)的最終結(jié)果。隨著軟件開(kāi)發(fā)規(guī)模的逐漸擴(kuò)大,軟件需求分析與管理成為整體軟件開(kāi)發(fā)的關(guān)鍵環(huán)節(jié),直接決定著軟件開(kāi)發(fā)的成敗。在軟件的開(kāi)發(fā)過(guò)程中,只有設(shè)定清晰完善的需求開(kāi)發(fā)與管理方案,才有助于軟件設(shè)計(jì)、開(kāi)發(fā)人員正確理解和確定軟件的完整功能,從而達(dá)到客戶需求的滿意度。
本文將以軟件需求工程為側(cè)重點(diǎn)、從軟件需求變更的原因、影響、原則及管理方案為研究領(lǐng)域進(jìn)行分析和討論。
一、軟件需求變更的主要原因分析
1、客戶需求因素。在軟件的開(kāi)發(fā)過(guò)程中,客戶會(huì)隨著項(xiàng)目開(kāi)發(fā)的進(jìn)程逐漸達(dá)成對(duì)軟件系統(tǒng)的深入了解和認(rèn)識(shí),在不斷的思考過(guò)后形成了新的需求信息或改進(jìn)的需求信息,進(jìn)而會(huì)提出滿足其新需要的軟件變更條款。2、系統(tǒng)內(nèi)部因素。在軟件開(kāi)發(fā)過(guò)程中,計(jì)算機(jī)外部硬件設(shè)備、系統(tǒng)軟件、系統(tǒng)數(shù)據(jù)等內(nèi)部系統(tǒng)之間的相互適應(yīng)要求都會(huì)引起軟件需求的變更。這種需求變更將會(huì)以硬件設(shè)備、操作系統(tǒng)、系統(tǒng)軟件等原始系統(tǒng)因素為基礎(chǔ)進(jìn)行更新、升級(jí)、換代,以此確定軟件設(shè)計(jì)的安全性、兼容性和準(zhǔn)確性。3、業(yè)務(wù)環(huán)境因素。在軟件開(kāi)發(fā)過(guò)程中,與軟件開(kāi)發(fā)相關(guān)聯(lián)的制度、規(guī)范、政策等的重新改寫與設(shè)定,或是軟件開(kāi)發(fā)業(yè)務(wù)要求的不斷改變都將會(huì)引起軟件需求變更。例如,軟件的需求會(huì)隨著保險(xiǎn)制度的變化而變更,會(huì)隨著交通制度的變化而變更等等。4、需求開(kāi)發(fā)缺陷因素。在軟件需求開(kāi)發(fā)過(guò)程中,需求信息調(diào)查研究、需求文檔的編寫及評(píng)審等工作的不足都是影響軟件需求變更的主要原因。
二、軟件需求變更的主要影響分析
1、影響軟件開(kāi)發(fā)的實(shí)際進(jìn)度。頻繁的需求變更不僅需要大量項(xiàng)目人員的支持,還需要投入大量的經(jīng)費(fèi),如果投入的力度過(guò)大,將會(huì)導(dǎo)致軟件開(kāi)發(fā)項(xiàng)目超過(guò)預(yù)期甚至導(dǎo)致失敗。
2、影響軟件開(kāi)發(fā)質(zhì)量的優(yōu)良。在軟件開(kāi)發(fā)過(guò)程中,需求的不斷變更將會(huì)導(dǎo)致原有的需求鏈斷裂,對(duì)原定需求的部分環(huán)節(jié)造成影響,而這些影響又將導(dǎo)致軟件開(kāi)發(fā)項(xiàng)目設(shè)計(jì)的改變,最終導(dǎo)致系統(tǒng)質(zhì)量的下降,開(kāi)發(fā)效率的降低。
3、影響客戶與開(kāi)發(fā)者之間的相互合作。軟件開(kāi)發(fā)是客戶與開(kāi)發(fā)者之間的一種相互信任、相互合作的過(guò)程。如果二者之間在軟件需求變更上產(chǎn)生不同意見(jiàn),而且沒(méi)有得到妥善的處理,將會(huì)導(dǎo)致二者之間的合作關(guān)系破裂,甚至造成軟件開(kāi)發(fā)中斷等嚴(yán)重后果。
三、軟件需求變更的處理原則
1、完整性原則。完整性是軟件安全的基本要點(diǎn)。在軟件開(kāi)發(fā)過(guò)程中,要保證需求變更信息的采納收集、匯總整理、評(píng)判審核、監(jiān)視追蹤等環(huán)節(jié)的完整性,保證軟件需求變更能夠按照規(guī)范的流程進(jìn)行操作。
2、合理性原則。在軟件開(kāi)發(fā)過(guò)程中,客戶與需求分析人員將會(huì)以不同的視角、不同的態(tài)度評(píng)估需求變更條件,要想達(dá)成軟件開(kāi)發(fā)的精確性,就需要在用戶需求、軟件技術(shù)和整體開(kāi)發(fā)能力的基礎(chǔ)上,達(dá)成需求變更的合理性,實(shí)際性。
四、軟件需求變更的有效管理方案
1、達(dá)成開(kāi)發(fā)者與客戶之間的有效溝通。在發(fā)生軟件需求變更時(shí),需求分析人員要與客戶進(jìn)行及時(shí)有效的溝通和反復(fù)的確認(rèn),向客戶說(shuō)明開(kāi)發(fā)建議和解決方案并制定相應(yīng)的合同規(guī)范,以此來(lái)達(dá)成對(duì)客戶的承諾和軟件修改后的滿意度。2、制定軟件需求變更信息的整理報(bào)告。在軟件需求變更過(guò)程中,要對(duì)客戶需求的規(guī)范、變更后的功能、軟件質(zhì)量目標(biāo)、變更解決方案等信息進(jìn)行整理、分析和記錄,制定明確的需求分析整理報(bào)告,以此來(lái)確保需求變更的準(zhǔn)確性、實(shí)際性與科學(xué)性。3、進(jìn)行明確、合理的人員分工。在需求變更達(dá)成協(xié)議后,就需要對(duì)開(kāi)發(fā)人員進(jìn)行合理的安排和組織,對(duì)操作人員和測(cè)試人員進(jìn)行明確的分工;利用合理的需求變更管理工具,達(dá)成整體軟件項(xiàng)目開(kāi)發(fā)的高效和優(yōu)質(zhì)。4、做好需求和產(chǎn)品特性的評(píng)審和測(cè)試工作。做好需求變更相關(guān)信息的記錄后,需求分析人員要組織開(kāi)發(fā)、測(cè)試與客戶等相關(guān)人員對(duì)更改后的需求進(jìn)行評(píng)審和測(cè)試,篩出掉不符合實(shí)際的變更需求,確保需求變更流程的順利進(jìn)行。在軟件變更實(shí)施的最后階段,要對(duì)軟件產(chǎn)品系統(tǒng)進(jìn)行測(cè)試,以檢驗(yàn)其是否滿足客戶的原定需求、是否達(dá)到了預(yù)期的效果和期望,以保證更改后產(chǎn)品系統(tǒng)的基準(zhǔn)性和安全性。
總之,在出現(xiàn)軟件需求變更狀況時(shí),首要的就是與客戶做好溝通和協(xié)商,其次要做好需求變更信息的詳細(xì)記錄,最后做好軟件需求變更后的測(cè)試。只要做好這關(guān)鍵的三部,就能夠充分確保軟件開(kāi)發(fā)的規(guī)范化和優(yōu)質(zhì)化。
參 考 文 獻(xiàn)
[關(guān)鍵詞] 需求分析 需求變更 需求控制
一、問(wèn)題的提出
什么是需求分析?
要知道需求變更是什么,首先要知道什么是需求分析。
需求分析是指理解客戶需求,就軟件功能與客戶達(dá)成一致,估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目成本代價(jià),最終形成開(kāi)發(fā)計(jì)劃的一個(gè)復(fù)雜過(guò)程。需求分析的成果形成需求說(shuō)明書。
什么是需求變更?
根據(jù)軟件工程思想定義,需求說(shuō)明書一般要經(jīng)過(guò)論證,如果在需求說(shuō)明書經(jīng)過(guò)論證以后,需要在原有需求基礎(chǔ)上追加和補(bǔ)充新的需求,或?qū)υ行枨筮M(jìn)行修改和削減,均屬于需求變更。
二、需求變更的原因及影響
1.需求變更原因
一方面是用戶:他們是項(xiàng)目需求的提出者。一個(gè)十分常見(jiàn)的現(xiàn)象是用戶提出需求以后,在軟件開(kāi)發(fā)過(guò)程中用戶改變了需求,這只能迫使開(kāi)發(fā)工作返工,丟棄一些無(wú)法修正的部分。無(wú)疑這會(huì)造成一定的損失,但又無(wú)法完全避免。要求用戶一次性把需求講清楚,并且不允許此后需求有任何變更,這是不現(xiàn)實(shí)的。只能盡量減少需求變更,降低它所造成的影響。
二是系統(tǒng)因素:在系統(tǒng)內(nèi)部,如計(jì)算機(jī)硬件、系統(tǒng)軟件或數(shù)據(jù)的變更要求與其相適應(yīng)。
三是外部環(huán)境因素:與軟件運(yùn)行相關(guān)的工作制度或法規(guī)、政策的變更,或是業(yè)務(wù)要求變更導(dǎo)致的需求變更。
四是需求分析階段工作缺陷:需求調(diào)研、分析、定義和評(píng)審工作不夠充分,致使需求規(guī)格說(shuō)明中隱含著問(wèn)題,在開(kāi)發(fā)過(guò)程中才有所發(fā)現(xiàn)。或者需求開(kāi)發(fā)中開(kāi)發(fā)人員與用戶溝通不夠充分,如未能如實(shí)獲得用戶的潛在需求等。
軟件需求一旦出現(xiàn)變更,它可能要涉及到一些相關(guān)的代碼和文檔的修改,為此要把這一變更通知到所有相關(guān)人員。提出需求變更有可能在開(kāi)發(fā)的任何階段,并且隨著項(xiàng)目的進(jìn)展,越晚的需求變更引起的損失越大。
2.需求變更給軟件的開(kāi)發(fā)工作帶來(lái)的影響
需求變更對(duì)軟件開(kāi)發(fā)的影響是多方面的,概括的看,包括以下三個(gè)方面:
(1)增加項(xiàng)目的人員、費(fèi)用開(kāi)支,影響開(kāi)發(fā)進(jìn)度。需求變意味著原先的需求調(diào)研、分析的結(jié)果與預(yù)期的軟件實(shí)現(xiàn)存在偏差,需要進(jìn)行需求變更。這無(wú)疑要增加項(xiàng)目的人員、費(fèi)用的開(kāi)支,并對(duì)開(kāi)發(fā)進(jìn)度造成影響。更有甚者,如果變更頻繁,可能對(duì)項(xiàng)目造成較大影響,嚴(yán)重時(shí)可能直接導(dǎo)致項(xiàng)目的失敗。
(2)影響軟件質(zhì)量。在一個(gè)復(fù)雜的軟件系統(tǒng)中,需求之間具有一定的聯(lián)系,相關(guān)需求可構(gòu)成需求鏈。如果由于需求變更導(dǎo)致需求鏈的某些環(huán)節(jié)脫節(jié),就可能引起一些難以察覺(jué)的錯(cuò)誤。當(dāng)需求變更沒(méi)能及時(shí)修改項(xiàng)目的設(shè)計(jì)、開(kāi)發(fā)文檔時(shí),這些錯(cuò)誤一般難以被測(cè)試人員發(fā)現(xiàn),將直接影響系統(tǒng)質(zhì)量,嚴(yán)重時(shí)可導(dǎo)致系統(tǒng)崩潰。
(3)影響開(kāi)發(fā)者與用戶之間的合作關(guān)系。需求變更的實(shí)施是用戶和開(kāi)發(fā)者相互協(xié)作的過(guò)程。開(kāi)發(fā)者和用戶在是否采用變更問(wèn)題上常常產(chǎn)生分歧,如果沒(méi)有恰當(dāng)處理,影響雙方的互信,從而影響項(xiàng)目開(kāi)發(fā)進(jìn)程。同時(shí)需求變更也會(huì)在項(xiàng)目開(kāi)發(fā)人員之間產(chǎn)生分歧,影響合作關(guān)系。
三、采取的對(duì)策
1.首先是預(yù)防
盡量做好需求分析工作,以期減少需求變更的頻次,為此在需求分析階段著重處理好以下問(wèn)題,力圖使需求分析的結(jié)果更接近目標(biāo)。
(1)培養(yǎng)正確的需求意識(shí)。優(yōu)秀軟件產(chǎn)品建立在優(yōu)秀的需求基礎(chǔ)之上,而高質(zhì)量的需求又來(lái)源于客戶與開(kāi)發(fā)人員之間有效的交流與合作。因此,雙方的參與者都需要認(rèn)識(shí)到:要想獲得成功,自己需要什么,合作方又需要什么。只有這樣,才能建立融洽的合作關(guān)系。因此,培養(yǎng)正確的需求意識(shí)是雙方都需要努力的,而開(kāi)發(fā)人員在這個(gè)階段應(yīng)該發(fā)揮更加積極主動(dòng)的作用。
首先,需求分析人員應(yīng)該接受一定的正規(guī)培訓(xùn),以提高與人溝通的能力、緩解矛盾的能力、善于傾聽(tīng)和詢問(wèn)的技巧,以及收集整理資料的能力等。在參與具體項(xiàng)目時(shí),分析人員也應(yīng)主動(dòng)學(xué)習(xí)一些項(xiàng)目所涉及的具體應(yīng)用領(lǐng)域的基本知識(shí),以更好地理解用戶的需求。
其次,開(kāi)發(fā)單位應(yīng)該對(duì)那些不想花時(shí)間在需求分析上的用戶明確指出:如果用戶不能充分地支持并參與,項(xiàng)目很可能會(huì)失敗;開(kāi)發(fā)單位還可以通過(guò)學(xué)習(xí)一些前車之鑒的真實(shí)案例警告用戶:低質(zhì)量的需求分析可能導(dǎo)致嚴(yán)重的后果。通過(guò)對(duì)用戶代表和管理人員的培訓(xùn),使他們真正理解需求分析的重要性和忽略需求帶來(lái)的風(fēng)險(xiǎn),并對(duì)計(jì)算機(jī)系統(tǒng)有一個(gè)大體的了解,這樣用戶才能夠主動(dòng)地參與需求分析。
同時(shí),正因?yàn)椴豢赡芤淮尉屯耆私庥脩舻男枨?而且在系統(tǒng)開(kāi)發(fā)過(guò)程中還需要不斷地請(qǐng)用戶參與,因此與用戶的溝通是需要貫穿始終的。需求分析中所采取的一些策略可能會(huì)讓用戶覺(jué)得意外和難以接受。因此,需求分析人員需要對(duì)用戶解釋一些做法的必要性和合理性,以得到用戶最大的支持與合作。
(2)從業(yè)務(wù)需求入手。用戶認(rèn)識(shí)到了需求分析的重要性,但可能仍然不知道從何處入手表達(dá)自己的需求。這時(shí)可以從業(yè)務(wù)需求入手,任何企業(yè)對(duì)自己的經(jīng)營(yíng)運(yùn)作目標(biāo)應(yīng)該是比較清楚的,這樣的經(jīng)營(yíng)背景讓用戶不僅有話說(shuō),也讓開(kāi)發(fā)者有章可循。需求分析不可以完全與它所處的背景相脫離,只有當(dāng)系統(tǒng)真正置身于它的社會(huì)和組織環(huán)境中,它的需求才能清晰地反映出來(lái)。
(3)充分利用需求來(lái)源。有了以上需求背景,就比較容易做到有的放矢了。需求分析人員可以直接與系統(tǒng)未來(lái)的操作者探討他們希望有什么樣的軟件;觀察系統(tǒng)的潛在用戶當(dāng)前的日常工作以獲取有價(jià)值的信息;系統(tǒng)的使用者可能有很多,可以將他們分類以簡(jiǎn)化需求;最后一定要與真正的決定者達(dá)成協(xié)議:對(duì)于有沖突的需求如何權(quán)衡,對(duì)于直接用戶的眾多需求如何取舍等。
同時(shí),用戶往往對(duì)計(jì)算機(jī)期望過(guò)高,認(rèn)為計(jì)算機(jī)可以解決當(dāng)前存在的所有問(wèn)題,因此會(huì)提出很多的功能需求,并且希望在很短的時(shí)間內(nèi)看到成效。但是,由于技術(shù)、人力等資源的限制,并不一定能夠在設(shè)定的時(shí)間期限內(nèi)滿足用戶所有的期望,這時(shí)就應(yīng)該盡早確定出交付的產(chǎn)品應(yīng)具備的最重要功能,即設(shè)定需求的優(yōu)先級(jí)。
在這個(gè)階段,可以采用UML中的用例圖幫助用戶和需求分析人員之間的交流。一個(gè)用例圖描述用戶可以用軟件產(chǎn)品執(zhí)行的一個(gè)任務(wù)。它不是從軟件的性能和系統(tǒng)的行為方面出發(fā),而是從用戶到底能夠用這個(gè)軟件產(chǎn)品干什么入手。這樣的方式用戶比較熟悉,容易溝通;而且不會(huì)在需求分析的一開(kāi)始就陷入過(guò)于細(xì)節(jié)化的設(shè)計(jì),也有助于避免分析人員添加一些與所需任務(wù)無(wú)關(guān)的自認(rèn)為很好的功能。
(4)提供選擇方案。由于用戶對(duì)軟件系統(tǒng)缺乏經(jīng)驗(yàn),或者由于用戶的運(yùn)作機(jī)制還未完善,或者由于其他種種原因,用戶可能仍然不能對(duì)一些需求做出明確的說(shuō)明,收集整理的需求中可能仍然存在一些不確定因素。這時(shí)可提出幾份比較詳細(xì)的方案。附帶不同做法的優(yōu)點(diǎn),供用戶選擇或者啟發(fā)用戶確定需求。
如果需求分析做得好,文檔清晰且又有客戶簽字,那么后期客戶提出的變更就超出了合同范圍,需要另外收費(fèi)。這個(gè)時(shí)候,開(kāi)發(fā)方一定要據(jù)理力爭(zhēng),此時(shí)這并非要刻意賺取客戶的錢財(cái),而是不能讓客戶養(yǎng)成經(jīng)常變更的習(xí)慣,否則后患無(wú)窮。
2.分級(jí)管理客戶需求
軟件開(kāi)發(fā)項(xiàng)目中,“客戶永遠(yuǎn)是對(duì)的”和“客戶是上帝”并不完全的正確,因?yàn)樵谝呀?jīng)簽定的項(xiàng)目合同中,任何新需求的變更和增加除了影響項(xiàng)目的正常進(jìn)行以外,還影響到了客戶的投入收益,所以有的時(shí)候項(xiàng)目經(jīng)理反倒應(yīng)該為客戶著想。
對(duì)于項(xiàng)目中的需求變更,可以實(shí)行分級(jí)管理,以達(dá)到對(duì)需求變更的控制。
一級(jí)需求變更是關(guān)鍵性的需求,這種需求如果不滿足,意味著整個(gè)項(xiàng)目不能正常交付使用,前期工作也會(huì)被全部否定。這個(gè)級(jí)別的需求是必須滿足的,否則就意味著否定自已的項(xiàng)目成員和成員的所有努力,所以定為“Urgent”。
二級(jí)需求變更是后續(xù)關(guān)鍵性需求,它不影響前面工作內(nèi)容的交付,但不加以滿足,新的項(xiàng)目?jī)?nèi)容無(wú)法提交或繼續(xù),所以是“Necessary”。一般新模塊關(guān)鍵性的基礎(chǔ)組件,屬于這個(gè)級(jí)別。
三級(jí)需求是后續(xù)重要的需求,如果不被滿足會(huì)令整體項(xiàng)目工作的價(jià)值下降,為了體現(xiàn)項(xiàng)目?jī)r(jià)值,也是開(kāi)發(fā)人員自已的技術(shù)價(jià)值的證明,所以定為“Needed”。一般性的重大的有價(jià)值的全新模塊開(kāi)發(fā),屬于這個(gè)級(jí)別。
以上三個(gè)等級(jí)是應(yīng)該實(shí)施的,但時(shí)間性上可以作優(yōu)先級(jí)的排列。
四級(jí)需求是改良性需求,沒(méi)有滿足這類需求并不影響已有功能的使用,但如果實(shí)現(xiàn)了則會(huì)更好,定級(jí)為“Better”。界面和使用方式的需求,一般在這個(gè)檔次。
五級(jí)需求是可選性需求,更多的是一種設(shè)想,以及一種可能,通常只是客戶的的一種個(gè)人喜好而已,定級(jí)為“Maybe”。
對(duì)于四級(jí)需求,如果時(shí)間和資源條件都允許的話,不妨做下去。對(duì)于五級(jí)需求,正如對(duì)它的描述一樣做與不做是“Maybe”。
3.加強(qiáng)需求變更的控制
在需求分析階段工作完成后,需求變更仍可以會(huì)發(fā)生,因此就要加強(qiáng)對(duì)需求變更的控制,主要有以下原則:
(1)建立需求基線。需求基線是需求變更的依據(jù)。在開(kāi)發(fā)過(guò)程中,需求確定并經(jīng)過(guò)評(píng)審后(用戶參與評(píng)審),可以建立第一個(gè)需求基線。此后每次變更并經(jīng)過(guò)評(píng)審后,都要重新確定新的需求基線。
(2)制訂簡(jiǎn)單、有效的變更控制流程,并形成文檔。在建立了需求基線后提出的所有變更都必須遵循這個(gè)控制流程進(jìn)行控制。同時(shí),這個(gè)流程具有一定的普遍性,對(duì)以后的項(xiàng)目開(kāi)發(fā)和其他項(xiàng)目都有借鑒作用。
(3)成立項(xiàng)目變更控制委員會(huì)(CCB)或相關(guān)職能的類似組織,負(fù)責(zé)裁定接受哪些變更。CCB由項(xiàng)目所涉及的多方人員共同組成,應(yīng)該包括用戶方和開(kāi)發(fā)方的決策人員在內(nèi)。
(4)需求變更一定要先申請(qǐng)然后再評(píng)估,最后經(jīng)過(guò)與變更大小相當(dāng)級(jí)別的評(píng)審確認(rèn)。
(5)需求變更后,受影響的軟件計(jì)劃、產(chǎn)品、活動(dòng)都要進(jìn)行相應(yīng)的變更,以保持和更新的需求一致。
(6)妥善保存變更產(chǎn)生的相關(guān)文檔。
這六大原則看起來(lái)簡(jiǎn)單,但真正實(shí)施起來(lái)有難度,還需要依據(jù)理論知識(shí)配合開(kāi)發(fā)項(xiàng)目組的實(shí)際工作情況,在實(shí)踐中不斷摸索總結(jié)。
四、總結(jié)
軟件項(xiàng)目的需求變更是對(duì)軟件產(chǎn)品的質(zhì)量、成本、工期帶來(lái)巨大的影響。通過(guò)預(yù)防性措施和加強(qiáng)需求變更的控制與管理,將需求變更的頻次大幅度降低,從而為軟件項(xiàng)目的順利實(shí)施打下堅(jiān)實(shí)基礎(chǔ)。
參考文獻(xiàn):
[1]王 莉 吳潔明:軟件項(xiàng)目中的需求變更管理的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(1):120~121
[2]王 強(qiáng):軟件開(kāi)發(fā)項(xiàng)目中的需求變更管理[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2007,(11)
北方工業(yè)大學(xué)教授
歷任北方工業(yè)大學(xué)軟件工程研究所、北方工業(yè)大學(xué)SEGUE軟件測(cè)試中心、以及與中國(guó)醫(yī)藥設(shè)備工程協(xié)會(huì)合作建立了“中國(guó)醫(yī)藥設(shè)備工程研究服務(wù)中心”負(fù)責(zé)人。
有人說(shuō)開(kāi)發(fā)軟件比建一幢大樓復(fù)雜多了,因?yàn)檐浖袠I(yè)缺乏準(zhǔn)確而又統(tǒng)一的語(yǔ)言來(lái)描述相應(yīng)的工作。有些“需求”實(shí)際上存在于人們的頭腦中,能否準(zhǔn)確無(wú)誤地用文字描述出來(lái)完全取決于客戶對(duì)計(jì)算機(jī)軟件的靈感和表達(dá)能力,而開(kāi)發(fā)人員能否完整、正確地獲取和理解客戶的需求,取決于開(kāi)發(fā)人員對(duì)客戶業(yè)務(wù)的熟悉程度和IT行業(yè)經(jīng)驗(yàn)。
所有的開(kāi)發(fā)商和用戶都希望獲得高質(zhì)量的需求,但是有許多因素影響需求的質(zhì)量,下面我們?cè)敿?xì)分析影響需求質(zhì)量的幾個(gè)主要因素和解決方法。
用戶需求不斷變更
開(kāi)發(fā)過(guò)程中需求不斷變化,會(huì)使軟件的整體結(jié)構(gòu)越來(lái)越混亂,補(bǔ)丁代碼使得整個(gè)程序難以理解和維護(hù),破壞了軟件模塊高內(nèi)聚、低耦合的設(shè)計(jì)原則。如果項(xiàng)目管理工作不完善,帶來(lái)后果會(huì)更加嚴(yán)重。但是用戶通常不是計(jì)算機(jī)專家,對(duì)需求變更導(dǎo)致的軟件質(zhì)量問(wèn)題認(rèn)識(shí)不足,所以,不論開(kāi)發(fā)人員如何強(qiáng)調(diào)需求變更的風(fēng)險(xiǎn),仍然無(wú)法阻攔用戶需求的變更。
為了減少用戶需求變更,可以從兩個(gè)方面入手:首先,必須從一開(kāi)始就對(duì)軟件的范圍、目標(biāo)、規(guī)模、接口和成功標(biāo)準(zhǔn)給予明確的定義。其次,在項(xiàng)目管理上要制定需求變更控制流程,一旦用戶需求發(fā)生變更,嚴(yán)格按照規(guī)范的流程進(jìn)行一系列的分析和審查。通過(guò)這兩種方法既可以有效地控制用戶需求變更的隨意性,又能夠滿足用戶需求變更的必要性。
用戶不配合
實(shí)際工作中,用戶的熱情參與是項(xiàng)目成功的重要因素。如果用戶不熱心,項(xiàng)目將無(wú)法成功。對(duì)待這個(gè)問(wèn)題主要是與用戶溝通,引導(dǎo)他們對(duì)項(xiàng)目感興趣,可以將做過(guò)的一些成功系統(tǒng)給用戶演示,提高用戶的信任度也是有效的方法。
過(guò)于精簡(jiǎn)的需求說(shuō)明
這是開(kāi)發(fā)中最經(jīng)常犯的錯(cuò)誤。盡管開(kāi)發(fā)人員和用戶都認(rèn)為應(yīng)該花大精力進(jìn)行需求分析,但在實(shí)際項(xiàng)目中仍然很難抵御編程的誘惑。在初始階段,可將項(xiàng)目組成員分為兩部分,一部分做需求工作,另一部分(主要是程序員)熟悉開(kāi)發(fā)環(huán)境,攻克開(kāi)發(fā)中可能遇到的技術(shù)難題,或者驗(yàn)證項(xiàng)目經(jīng)理所擔(dān)心的一些關(guān)鍵問(wèn)題。在需求審查時(shí),所有項(xiàng)目組成員都參加,由于后者沒(méi)有參加需求分析,對(duì)用戶需求了解甚少,他們對(duì)過(guò)于簡(jiǎn)單的需求描述往往會(huì)提出許多問(wèn)題,幫助彌補(bǔ)需求說(shuō)明的不足。
忽略用戶分類
網(wǎng)站項(xiàng)目是以Web服務(wù)器為主體、瀏覽器為客戶端作為基本架構(gòu)的項(xiàng)目。這樣的架構(gòu)項(xiàng)目中包含Web服務(wù)器、瀏覽器和網(wǎng)絡(luò)三個(gè)關(guān)鍵主體。網(wǎng)站項(xiàng)目可能是一個(gè)網(wǎng)站,也可能是各種Web應(yīng)用程序,例如網(wǎng)上商店、虛擬郵局、網(wǎng)絡(luò)辦公管理系統(tǒng)、客戶關(guān)系管理系統(tǒng)等等。網(wǎng)站項(xiàng)目管理就是圍繞著網(wǎng)站項(xiàng)目運(yùn)用知識(shí)、技術(shù)、技能、工具和方法進(jìn)行組織管理。其特點(diǎn)表現(xiàn)在以下幾個(gè)方面:
1)涉及的領(lǐng)域很多。狹義地講,網(wǎng)站項(xiàng)目包括了網(wǎng)頁(yè)制作、美工設(shè)計(jì)、程序編碼、系統(tǒng)及網(wǎng)絡(luò)管理等專業(yè)技術(shù),廣義上又包含了企業(yè)管理、市場(chǎng)營(yíng)銷、心理學(xué)、廣告學(xué)等更多領(lǐng)域的知識(shí),在項(xiàng)目進(jìn)行過(guò)程中還涉及到項(xiàng)目管理工具、文檔和設(shè)計(jì)開(kāi)發(fā)管理規(guī)范、開(kāi)發(fā)及測(cè)試環(huán)境部署等特殊領(lǐng)域的問(wèn)題。這對(duì)參與項(xiàng)目管理的人員提出了很高的要求。
2)參與項(xiàng)目的角色很多,水平可能參差不齊。對(duì)于網(wǎng)站項(xiàng)目管理,最關(guān)鍵的角色是項(xiàng)目經(jīng)理、業(yè)務(wù)流程分析師、用戶界面工程師、系統(tǒng)分析員、編碼人員(程序員)和質(zhì)量控制工程師等。根據(jù)項(xiàng)目的規(guī)模和開(kāi)發(fā)的深度,由項(xiàng)目經(jīng)理進(jìn)行角色劃分。假如嚴(yán)格細(xì)分,一個(gè)大型項(xiàng)目的角色可能達(dá)到50個(gè)以上,以確保每個(gè)細(xì)節(jié)都有專業(yè)的人員進(jìn)行負(fù)責(zé)和管理。其中需求分析過(guò)程中主要角色有客戶代表、業(yè)務(wù)員、業(yè)務(wù)流程分析師、用戶界面工程師,另外還有項(xiàng)目經(jīng)理、數(shù)據(jù)庫(kù)工程師、文檔工程師等參與。
3)網(wǎng)絡(luò)應(yīng)用的開(kāi)發(fā)技術(shù)在日新月異地進(jìn)步,從而使網(wǎng)站應(yīng)用系統(tǒng)的開(kāi)發(fā)模式具有多種選擇性,達(dá)到同樣的目標(biāo)可以采用很多不同的方式,現(xiàn)代的應(yīng)用系統(tǒng)越來(lái)越成為一個(gè)龐大的集成方案,需要考慮不同的操作平臺(tái)、不同的應(yīng)用服務(wù)器、不同的數(shù)據(jù)庫(kù)、不同的編程語(yǔ)言、不同的傳輸介質(zhì)等等,項(xiàng)目管理人員必須了解各種技術(shù)的利弊,幫助用戶選擇高效、廉價(jià)并富有前瞻性的方案。
2需求分析在網(wǎng)站項(xiàng)目管理中的作用及要求
需求分析是一個(gè)項(xiàng)目的開(kāi)端,也是項(xiàng)目建設(shè)的基石。由于以上提出的網(wǎng)站項(xiàng)目的特殊性和行業(yè)覆蓋的廣闊性,以及需求分析的高風(fēng)險(xiǎn)性,網(wǎng)站項(xiàng)目需求分析的重要性是不言而喻的,在以往建設(shè)失敗的項(xiàng)目中,80%是由于需求分析的不明確而造成的。因此一個(gè)項(xiàng)目成功的關(guān)鍵因素之一,就是對(duì)需求分析的把握程度。
在需求分析流程中,需要有客戶代表、業(yè)務(wù)員、業(yè)務(wù)流程分析師、用戶界面工程師等角色參與,業(yè)務(wù)員從客戶代表那里獲得需求,并形成需求報(bào)告;業(yè)務(wù)流程分析員從業(yè)務(wù)員那里獲得需求報(bào)告,分析生成項(xiàng)目模型報(bào)告;界面工程師得到項(xiàng)目模型后設(shè)計(jì)制作相應(yīng)的模板和用戶界面原型,最終由客戶代表確認(rèn)。需求分析所形成的文檔最終達(dá)到如下要求。
1)正確性:每個(gè)功能必須清楚描寫交付的功能。
2)可行性:確保在當(dāng)前的開(kāi)發(fā)能力和系統(tǒng)環(huán)境下可以實(shí)現(xiàn)每個(gè)需求。
3)必要性:功能是否必須交付,是否可以推遲實(shí)現(xiàn),是否可以在削減開(kāi)支情況發(fā)生時(shí)被“砍”掉。
4)簡(jiǎn)明性:不要使用專業(yè)的網(wǎng)絡(luò)術(shù)語(yǔ)。
5)檢測(cè)性:如果開(kāi)發(fā)完畢,客戶可以根據(jù)需求檢測(cè)。
3網(wǎng)站項(xiàng)目需求分析的一般方法
根據(jù)以往的工程經(jīng)驗(yàn),需求分析工作方法,應(yīng)該定位在“三個(gè)階段”(也稱“三步法”)。
第一階段:“訪談式”。這一階段是和具體用戶方的領(lǐng)導(dǎo)層、業(yè)務(wù)層人員的訪談式溝通,主要目的是從宏觀上把握用戶的具體需求方向和趨勢(shì),了解現(xiàn)有的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運(yùn)行系統(tǒng)等等具體情況和客觀信息,建立起良好的溝通渠道和方式。針對(duì)具體的職能部門以及各委辦局,最好能指定本次項(xiàng)目的接口人。
實(shí)現(xiàn)手段:訪談、調(diào)查表格。
輸出成果:調(diào)查報(bào)告、業(yè)務(wù)流程報(bào)告。
第二階段:“誘導(dǎo)式”。這一階段是在承建方已經(jīng)了解了具體用戶方的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運(yùn)行系統(tǒng)等等具體實(shí)際和客觀信息的基礎(chǔ)上,結(jié)合現(xiàn)有的硬件、軟件實(shí)現(xiàn)方案,做出簡(jiǎn)單的用戶流程頁(yè)面,同時(shí)結(jié)合以往的項(xiàng)目經(jīng)驗(yàn)對(duì)用戶采用誘導(dǎo)式、啟發(fā)式的調(diào)研方法和手段,和用戶一起探討業(yè)務(wù)流程設(shè)計(jì)的合理性、準(zhǔn)確性,界面的便易性、習(xí)慣性。用戶可以操作簡(jiǎn)單演示的DEMO,來(lái)感受一下整個(gè)業(yè)務(wù)流程的設(shè)計(jì)合理性、準(zhǔn)確性等等問(wèn)題,及時(shí)地提出改進(jìn)意見(jiàn)和改進(jìn)方法。
實(shí)現(xiàn)手段:拜訪(誘導(dǎo))、原型演示。
輸出成果:調(diào)研分析報(bào)告、原型反饋報(bào)告、業(yè)務(wù)流程報(bào)告。
第三階段:“確認(rèn)式”。這一階段是在上述兩個(gè)階段成果的基礎(chǔ)上,進(jìn)行具體的流程細(xì)化、數(shù)據(jù)項(xiàng)的確認(rèn)階段,這個(gè)階段承建方必須提供原型系統(tǒng)和明確的業(yè)務(wù)流程報(bào)告、數(shù)據(jù)項(xiàng)表,并能清晰地向用戶描述系統(tǒng)的業(yè)務(wù)流設(shè)計(jì)目標(biāo)。用戶方可以通過(guò)審查報(bào)告來(lái)提出反饋意見(jiàn),并對(duì)已經(jīng)可接受的報(bào)告、文檔簽字確認(rèn)。
實(shí)現(xiàn)手段:拜訪(回顧、確認(rèn)),提交業(yè)務(wù)流程報(bào)告、數(shù)據(jù)項(xiàng)表;原型演示系統(tǒng)。
輸出成果:需求分析報(bào)告、數(shù)據(jù)項(xiàng)、業(yè)務(wù)流程報(bào)告、原型系統(tǒng)反饋意見(jiàn)(后三者可以統(tǒng)一歸入需求分析報(bào)告中,提交用戶方、監(jiān)理方進(jìn)行確認(rèn)和存檔)。
整體來(lái)講,需求分析的三個(gè)階段是需求調(diào)研中不可忽視的一個(gè)重要部分,三個(gè)階段或者說(shuō)三步法的實(shí)施和采用,對(duì)用戶和承建方都同樣提供了項(xiàng)目成功的保證。
4網(wǎng)站項(xiàng)目需求分析的注意事項(xiàng)和技巧
項(xiàng)目的整體風(fēng)險(xiǎn)往往表現(xiàn)在需求分析不明確、業(yè)務(wù)流程不合理,導(dǎo)致用戶不習(xí)慣或不愿意去用承建方的軟件。承建方和客戶方都要重視需求分析的重要性。為更好地把握用戶的需求和方向,應(yīng)該采用必要的手段和方法來(lái)進(jìn)行需求調(diào)研。
4.1挖掘用戶需求
鼓勵(lì)用戶將所有的想法盡可能地闡述清楚,并把所有的要求羅列出來(lái)。這時(shí)候不必?fù)?dān)心引起客戶的潛在需求而增加設(shè)計(jì)開(kāi)發(fā)的工作量,應(yīng)直接明白地跟客戶把問(wèn)題和要求一條條地列出來(lái),把條理、歸納、分析先都放到一邊,將用戶最原始、最完整的要求準(zhǔn)確地記錄下來(lái)。
很多情況下客戶并非專業(yè)人士,在他們的描述中很難凸現(xiàn)重點(diǎn)和技術(shù)難關(guān),這需要我們?nèi)榭蛻暨M(jìn)行分析、歸納和整理,尤其是客戶談的不多卻又是技術(shù)上實(shí)現(xiàn)難度和強(qiáng)度很高的地方特別值得注意。客戶往往對(duì)需求的概念是非常模糊的,大多時(shí)候給出的需求都是籠統(tǒng)而且尺度難以控制的,這就要求業(yè)務(wù)人員在傾聽(tīng)了客戶的詳細(xì)說(shuō)明以后,幫助客戶進(jìn)行整理和分析,預(yù)測(cè)客戶在開(kāi)發(fā)過(guò)程中變更及今后應(yīng)用中可能進(jìn)行修改升級(jí)的潛在需求。
比如在為客戶設(shè)計(jì)辦公自動(dòng)化系統(tǒng)的時(shí)候,也許就要為客戶預(yù)留將來(lái)與他們的業(yè)務(wù)單位進(jìn)行交互的通道;在設(shè)計(jì)郵件系統(tǒng)的時(shí)候要考慮可能會(huì)需要廣告管理服務(wù)器;設(shè)計(jì)網(wǎng)絡(luò)電子商店時(shí)需考慮今后增加庫(kù)存產(chǎn)品進(jìn)銷存統(tǒng)計(jì)分析等等;限于時(shí)間和財(cái)力的考慮,客戶通常能夠接受分階段實(shí)施的開(kāi)發(fā)過(guò)程,在需求分析時(shí),提早為客戶設(shè)想到今后的需求變更除了使項(xiàng)目開(kāi)發(fā)更加順利以外,也為今后業(yè)務(wù)的進(jìn)一步深入打下了更好的基礎(chǔ)。
4.2利用自然的語(yǔ)言和圖表描述項(xiàng)目模型
在業(yè)務(wù)員與客戶進(jìn)行溝通和調(diào)查時(shí)撰寫的需求分析,盡可能用自然語(yǔ)言或形式化語(yǔ)言來(lái)描述,還可以添加圖形表述方式和模型表征方式。雖然客戶的水平和資歷有所不同,但是最自然的描述能夠使項(xiàng)目開(kāi)發(fā)的各個(gè)成員都能清楚地理解需求含義,不至于在理解上產(chǎn)生偏差。對(duì)客戶而言,這樣的模型描述最接近真實(shí),容易參與修訂,并能以此為測(cè)試和驗(yàn)收的依據(jù)。制作示意圖可以有很多種方式,關(guān)鍵是利用示意圖將客戶的需求和即將開(kāi)始設(shè)計(jì)的系統(tǒng)體現(xiàn)出來(lái)。在進(jìn)行系統(tǒng)分析和程序開(kāi)發(fā)之前,雙方對(duì)今后要完成的產(chǎn)品就能夠有直觀的認(rèn)識(shí),換言之,就是在產(chǎn)品還沒(méi)有真正進(jìn)入開(kāi)發(fā)階段的時(shí)候,雙方就對(duì)工作的結(jié)果達(dá)成統(tǒng)一的意見(jiàn),這將大大地減輕需求變更所帶來(lái)的困擾,同時(shí)客戶更容易地參與到項(xiàng)目的開(kāi)發(fā)過(guò)程中。
4.3需求分析要共同參與各施其職
項(xiàng)目經(jīng)理、系統(tǒng)分析員、開(kāi)發(fā)經(jīng)理、交互設(shè)計(jì)師、測(cè)試人員、文檔人員包括客戶代表都應(yīng)該看需求分析,并進(jìn)行共同討論,達(dá)成一致意見(jiàn)。參與項(xiàng)目開(kāi)發(fā)的人員都應(yīng)該對(duì)這份需求有統(tǒng)一清晰的認(rèn)識(shí),并根據(jù)自己的工作對(duì)需求提出意見(jiàn),通過(guò)與客戶的溝通修訂,最終確定項(xiàng)目實(shí)現(xiàn)的目標(biāo)。這樣可以盡量避免業(yè)務(wù)人員與開(kāi)發(fā)人員、承建方和客戶方之間發(fā)生不必要的糾紛。
例如:項(xiàng)目經(jīng)理通過(guò)需求分析才能組建所需要的團(tuán)隊(duì)包括配置工作環(huán)境,制定開(kāi)發(fā)周期;開(kāi)發(fā)周期的限制和功能上的要求可能會(huì)影響到程序員采用什么樣的語(yǔ)言和工具進(jìn)行編寫;操作用戶的技能水平將影響到交互設(shè)計(jì)師進(jìn)行前臺(tái)設(shè)計(jì)時(shí)做到什么樣的精度;界面設(shè)計(jì)人員根據(jù)項(xiàng)目的性質(zhì)和定位確定表現(xiàn)方式;測(cè)試人員了解測(cè)試環(huán)境和條件后才能對(duì)項(xiàng)目質(zhì)量進(jìn)行跟蹤和檢測(cè)。
4.4將需求變更置于可控狀態(tài)
需求的變更幾乎是不可避免的,也許是出自客戶的遺漏,也可能是在開(kāi)發(fā)過(guò)程中被激發(fā)出來(lái)的。如何以可控的方式管理網(wǎng)站項(xiàng)目需求的變更,對(duì)于項(xiàng)目的順利進(jìn)行有著重要的意義。如果匆匆忙忙地完成用戶調(diào)研與分析,則往往意味著不穩(wěn)定的需求。所以需求管理要保證需求分析各個(gè)活動(dòng)都得到了充分的執(zhí)行。
為了將變更及時(shí)反饋到項(xiàng)目的各個(gè)角色中,做好需求變更日志就顯得非常重要。在需求分析后面附上變更日志,并將修改后的需求分析制作成新版本,保留每次更改過(guò)的版本,而不是覆蓋,這樣就比較容易地跟蹤到需求變更過(guò)程中所帶來(lái)的工作調(diào)整。在新版本的需求分析中,將變更部分用特殊方式表示出來(lái),并在日志中記錄變更明細(xì)。
4.5評(píng)審需求文檔
需求文檔完成后,需要經(jīng)過(guò)正式評(píng)審,以便作為下一階段工作的基礎(chǔ)。一般的評(píng)審分為用戶評(píng)審和同行評(píng)審兩類。用戶和開(kāi)發(fā)方對(duì)于軟件項(xiàng)目?jī)?nèi)容的描述,是以需求規(guī)格說(shuō)明書作為基礎(chǔ)的;用戶驗(yàn)收的標(biāo)準(zhǔn)則是依據(jù)需求規(guī)格說(shuō)明書中的內(nèi)容來(lái)制訂,所以評(píng)審需求文檔時(shí)用戶的意見(jiàn)是第一位的。而同行評(píng)審的目的,是在軟件項(xiàng)目初期發(fā)現(xiàn)那些潛在的缺陷或錯(cuò)誤,避免這些錯(cuò)誤和缺陷遺漏到項(xiàng)目的后續(xù)階段。
為使軟件既能高效又能保質(zhì)保量的完成,近幾年來(lái),軟件開(kāi)發(fā)單位采用專門的軟件管理團(tuán)隊(duì)對(duì)軟件進(jìn)行規(guī)范管理,與此同時(shí)改進(jìn)軟件開(kāi)發(fā)技術(shù)。軟件規(guī)范管理從近年的9001B質(zhì)量體系認(rèn)證、GJB5000A軟件過(guò)程改進(jìn)以及軟件工程化等都對(duì)軟件開(kāi)發(fā)的各個(gè)階段產(chǎn)品進(jìn)行了規(guī)范管理,地面測(cè)控軟件的管理日益規(guī)范,不斷改進(jìn)。另一方面,為大幅度提高軟件的研發(fā)效率和質(zhì)量,可以采用軟件復(fù)用技術(shù)。本文結(jié)合測(cè)控軟件開(kāi)發(fā)實(shí)踐,對(duì)復(fù)用技術(shù)在測(cè)控軟件中的有效應(yīng)用進(jìn)行初步研究。
2軟件復(fù)用理論
2.1軟件復(fù)用的概念
為避免程序開(kāi)發(fā)“從零開(kāi)始”以及重復(fù)相同的工作,采用已有的經(jīng)驗(yàn)和成果,將開(kāi)發(fā)的重點(diǎn)集中在應(yīng)用系統(tǒng)的新研部分,提高工作效率和軟件質(zhì)量,這就是軟件復(fù)用。復(fù)用形式包括基于構(gòu)件的復(fù)用和基于過(guò)程的復(fù)用,基于構(gòu)件的復(fù)用是目前主要的復(fù)用形式。
2.2軟件構(gòu)件及基于構(gòu)件的軟件開(kāi)發(fā)
軟件構(gòu)件是軟件復(fù)用的核心和基本單位,具有獨(dú)立的功能,是可復(fù)用的軟件組成部分,可供第三方進(jìn)行軟件組裝。構(gòu)件可以是被封裝的對(duì)象類、類樹(shù)、功能模塊、軟件框架、軟件構(gòu)架(或體系結(jié)構(gòu))、文檔、分析件、設(shè)計(jì)模式等。基于構(gòu)件的軟件開(kāi)發(fā)與傳統(tǒng)的軟件開(kāi)發(fā)相比,基于構(gòu)件的軟件開(kāi)發(fā)強(qiáng)調(diào)使用軟件構(gòu)件對(duì)軟件系統(tǒng)進(jìn)行設(shè)計(jì)開(kāi)發(fā)。基于構(gòu)件的軟件開(kāi)發(fā)方法需要有相應(yīng)的軟件開(kāi)發(fā)過(guò)程作為基礎(chǔ),否則,就不會(huì)有與該系統(tǒng)相符合的質(zhì)量特性要求的軟件構(gòu)件。
2.3軟件復(fù)用的優(yōu)點(diǎn)
(1)改善軟件質(zhì)量:經(jīng)過(guò)測(cè)試以及經(jīng)過(guò)實(shí)踐的軟件往往缺陷更少。(2)降低開(kāi)發(fā)風(fēng)險(xiǎn):開(kāi)發(fā)新的組件,如果測(cè)試不夠充分,輕則有效性不高,重則可能是造成軟件失敗的原因。(3)支持快速原型開(kāi)發(fā):快速構(gòu)建實(shí)用可操作系統(tǒng)模型,憑借其與用戶進(jìn)行有效溝通,最終獲得用戶有效意見(jiàn)反饋。(4)提高軟件開(kāi)發(fā)效率,縮短軟件開(kāi)發(fā)周期,從而降低軟件開(kāi)發(fā)成本。
3軟件復(fù)用在測(cè)控軟件開(kāi)發(fā)中的應(yīng)用
近年來(lái),隨著任務(wù)數(shù)量的增多,測(cè)控軟件的開(kāi)發(fā)團(tuán)隊(duì)越來(lái)越小,軟件開(kāi)發(fā)周期越來(lái)越短,軟件的研制要求卻不斷的提高;隨著衛(wèi)星工作模式的增加,地面接收設(shè)備也需增加相應(yīng)的工作模式完成相應(yīng)的接收任務(wù)。因此,測(cè)控軟件不但需要完成原有工作模式的監(jiān)控管理功能,還需完成新增工作模式的監(jiān)控管理功能。測(cè)控軟件必須有效繼承原有成熟的計(jì)劃管理、自動(dòng)標(biāo)校/測(cè)試及自動(dòng)運(yùn)行管理技術(shù),同時(shí)需要開(kāi)發(fā)適合新增工作模式的計(jì)劃管理、自動(dòng)標(biāo)校/測(cè)試及自動(dòng)運(yùn)行管理技術(shù),并且要為后續(xù)其它型號(hào)軟件提供高效的功能繼承。基于軟件復(fù)用技術(shù)的測(cè)控軟件開(kāi)發(fā),使用大量的已經(jīng)過(guò)驗(yàn)證的高效軟件,對(duì)傳統(tǒng)瀑布模型的各個(gè)研制階段的產(chǎn)品(如需求分析、軟件設(shè)計(jì)、軟件編碼、軟件測(cè)試)進(jìn)行優(yōu)化和簡(jiǎn)化,節(jié)省了人力和時(shí)間,提高了軟件的可靠性,降低了軟件成本和開(kāi)發(fā)周期。在軟件的研制過(guò)程中,需要對(duì)軟件的復(fù)用架構(gòu)進(jìn)行設(shè)計(jì),對(duì)可復(fù)用的構(gòu)件進(jìn)行適應(yīng)性修改設(shè)計(jì)以適應(yīng)新的軟件需求,還需對(duì)新研的部件進(jìn)行軟件設(shè)計(jì)。測(cè)控軟件對(duì)原有成熟的設(shè)備監(jiān)控、計(jì)劃管理、自動(dòng)標(biāo)校/測(cè)試及自動(dòng)運(yùn)行管理功能的繼承,就成為軟件的復(fù)用的內(nèi)容。其中包括四個(gè)階段的復(fù)用:需求復(fù)用、設(shè)計(jì)復(fù)用、代碼復(fù)用、測(cè)試復(fù)用。
3.1需求復(fù)用
測(cè)控軟件的變更原因主要有兩種:(1)用戶需求變更。(2)軟件自身技術(shù)升級(jí)。其中,用戶需求變更是導(dǎo)致軟件變更的首要因素;軟件技術(shù)升級(jí)的部分工作往往也是為了更好的適應(yīng)用戶的需求。首先,同類任務(wù)的需求是逐漸增加的,并且有一定的可繼承性,當(dāng)增加新的需求時(shí),已驗(yàn)證過(guò)的任務(wù)需求即可成為后續(xù)任務(wù)需求的可復(fù)用的構(gòu)件。其次,不同的測(cè)控任務(wù)需求之間同樣存在相同或相似的元素。例如,任何一個(gè)任務(wù)都有相同或相似的任務(wù)流程;根據(jù)工作計(jì)劃及自動(dòng)運(yùn)行策略進(jìn)行站前標(biāo)校、任務(wù)宏配置、啟動(dòng)自動(dòng)運(yùn)行流程;監(jiān)控?cái)?shù)據(jù)的存儲(chǔ)、顯示、查詢等任務(wù)需求存在一定的共性,對(duì)其通用的任務(wù)需求,是完全可以復(fù)用或部分復(fù)用的。因此,任務(wù)需求變更與軟件需求變更為因果關(guān)系,直至后續(xù)的各個(gè)階段活動(dòng)都受到任務(wù)需求變更的影響。從需求分析、軟件設(shè)計(jì)、軟件編碼直至軟件測(cè)試,都會(huì)因?yàn)槿蝿?wù)需求的變更而必須進(jìn)行相應(yīng)的更動(dòng)。
3.2設(shè)計(jì)復(fù)用
多年以來(lái),很多任務(wù)的測(cè)控軟件都有相同或相似的軟件結(jié)構(gòu),因此,這一有利條件,在軟件結(jié)構(gòu)設(shè)計(jì)時(shí),得到了充分的利用。從軟件復(fù)用的角度來(lái)說(shuō),在進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì)時(shí),需將軟件中相對(duì)穩(wěn)定的部分(如設(shè)備監(jiān)控、數(shù)據(jù)庫(kù)管數(shù)據(jù)庫(kù)管理、計(jì)劃管理、用戶管理)與新增加的部分不僅從結(jié)構(gòu)上分開(kāi),而且要求其接口相對(duì)單一穩(wěn)定。這樣,從軟件設(shè)計(jì)到代碼開(kāi)發(fā)都可以復(fù)用。
3.3代碼復(fù)用
對(duì)程序代碼的復(fù)用,以設(shè)備的監(jiān)控線程為例介紹如下:目前,測(cè)控站內(nèi)設(shè)備通過(guò)局域網(wǎng)進(jìn)行通信,各個(gè)設(shè)備與測(cè)控軟件之間的通信接口都已進(jìn)行了標(biāo)準(zhǔn)化,因此,對(duì)不同設(shè)備的監(jiān)控線程可以進(jìn)行代碼復(fù)用;如果重新設(shè)計(jì)代碼,不但要耗費(fèi)大量的人力和時(shí)間,延長(zhǎng)軟件開(kāi)發(fā)周期,而且重新設(shè)計(jì)的代碼必須進(jìn)行充分的軟件測(cè)試,否則難以保證其正確性和健壯性。開(kāi)發(fā)者使用以往可復(fù)用的程序代碼,或全部吸收或加以優(yōu)化,大大避免了重復(fù)性工作,將精力集中于關(guān)鍵技術(shù)的攻關(guān),如此設(shè)計(jì)更加高效可靠的軟件系統(tǒng)。
3.4測(cè)試用例復(fù)用
軟件測(cè)試復(fù)用主要包括測(cè)試流程的復(fù)用、測(cè)試方法的復(fù)用和測(cè)試用例的復(fù)用。其中,測(cè)試用例的復(fù)用是測(cè)試復(fù)用中的關(guān)鍵技術(shù)。測(cè)試用例的復(fù)用對(duì)于縮短軟件的開(kāi)發(fā)周期和降低軟件開(kāi)發(fā)成本具有極其重要的意義。
4結(jié)束語(yǔ)