時間:2023-03-10 14:59:38
序論:在您撰寫項目需求分析時,參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A文章編號:1007-9599(2012)05-0000-02
我國科學(xué)技術(shù)和經(jīng)濟都在快速發(fā)展,信息化的進(jìn)程速度也在加速發(fā)展,計算機已經(jīng)開始應(yīng)用到各個行業(yè)當(dāng)中,很多應(yīng)用軟件業(yè)都紛紛涌現(xiàn)出來,各個行業(yè)的管理也逐漸走向了快捷化和數(shù)字化。現(xiàn)在很多客戶對計算機的軟件要求都比較高,需要完成很多復(fù)雜的程序,軟件需求的設(shè)計作為一種前端設(shè)計,主要就是為了把客戶的需求勾勒出來,軟件需求分析做地好于壞能夠直接影響到這個軟件的成功和失敗。在軟件開發(fā)的市場當(dāng)中,返工的開銷很大,導(dǎo)致返工成本高的原因之一就是沒有把需求明確化,一些人不重視需求分析,導(dǎo)致在項目完成后會進(jìn)行大量的修改工作。這些更改的工作浪費了大量的時間、人力,推遲了軟件項目的完成時間??梢赃@樣說,需求分析是軟件開發(fā)的基礎(chǔ),是項目順利上線的基礎(chǔ)。我國國內(nèi)的軟件開發(fā)的發(fā)展落后于發(fā)達(dá)國家,軟件行業(yè)的緩慢發(fā)展制約了我國計算機行業(yè)的發(fā)展。我國自主開發(fā)的軟件比較少,而且開發(fā)的工程項目都存在著缺陷,或者是開發(fā)失敗了。當(dāng)前我國正在培養(yǎng)軟件人才,需求分析做地不好所導(dǎo)致了缺陷占據(jù)了一半以上,只有小部分原因是由于程序代碼編寫錯誤導(dǎo)致的,所以說,做好需求分析的工作能夠有效提高項目的質(zhì)量。通過對軟件系統(tǒng)的學(xué)習(xí),并且結(jié)合自己的經(jīng)驗,提出了一些有效的措施來做好需求分析的工作。
一、需求分析的目的
需求分析階段是軟件開發(fā)的最初階段,需求分析得到的結(jié)果決定了后面的設(shè)計、編碼、測試以及維護階段,在需求分析當(dāng)中如果出現(xiàn)了一個小的差錯,就很可能會造成很嚴(yán)重的后果,所得到的產(chǎn)品就不是客戶所需要的,就需要返工修改。在軟件的需求分析當(dāng)中一定要有很詳細(xì)的文檔,做需求分析的工作人員要弄清楚用戶的需求,幫助用戶解決業(yè)務(wù)問題,規(guī)劃處軟件開發(fā)的產(chǎn)品。需求分析階段把用戶的業(yè)務(wù)管理集中體現(xiàn)出來,這樣才能夠讓用戶認(rèn)可自己的產(chǎn)品,加強管理的效果。需求分析要明確需要完成的工作內(nèi)容,要把系統(tǒng)所要實現(xiàn)的目標(biāo)完整化、清晰化、具體化和準(zhǔn)確化,要能夠深入了解軟件的功能,確定一些細(xì)節(jié)的工作內(nèi)容。軟件需求要解決以后的工作當(dāng)中需要做什么,首先要確定物理模型,之后確定邏輯模型,最后確定目標(biāo)模型,如圖1:
二、做好需求分析的措施
(一)了解項目企業(yè)
要能夠了解項目企業(yè)的有重要影響的人,比如項目的負(fù)責(zé)人,這個負(fù)責(zé)人很可能讓項目受益,當(dāng)然也可能讓項目受害,所以說,需求分析要從項目的啟動階段做起,項目的相關(guān)成員要清楚項目的負(fù)責(zé)人以及和項目有關(guān)的人,要能夠協(xié)調(diào)他們的關(guān)系,要獲取他們的支持,把他們對項目的需求和愿望都明確化,從而減少他們對項目的阻撓,確保項目能夠順利成功。一些開發(fā)的項目在進(jìn)行調(diào)查分析的階段的時候,受到進(jìn)度方面的要求,分析員與企業(yè)的技術(shù)部門會有很多交流,導(dǎo)致了沒有深入調(diào)查軟件使用者的需求,也會造成之后復(fù)雜的返修工作,甚至是從頭再來,這嚴(yán)重浪費了時間和人力,財力。所以,分析員要把握好軟件使用企業(yè)的全貌,這才是需求分析的最基礎(chǔ)的環(huán)節(jié)。在軟件使用企業(yè)的相關(guān)人當(dāng)中,最中意的就是人事部門,最好是能夠畫出單位的組織結(jié)構(gòu),并且分清人物的重要性,這樣才能夠全面進(jìn)行調(diào)查,還要保證與軟件使用企業(yè)的負(fù)責(zé)人的溝通。
(二)挖掘客戶的需求
一些客戶計算機知識很匱乏,沒有辦法提成比較準(zhǔn)確的需求信息,所以,分析員要能夠深思熟慮,在各個方面為客戶著想,明確客戶的需求,啟發(fā)客戶的潛在需求,并且結(jié)合各自分析技術(shù)來挖掘客戶的需求,從而讓客戶滿意自己的工作。分析員自身要熟悉相關(guān)的業(yè)務(wù),要能夠在客戶的立場去考慮問題,要把軟件與業(yè)務(wù)的關(guān)系協(xié)調(diào)好??梢允褂每梢暬恼{(diào)查方式,挖掘客戶的需求,使用圖、表等工具來進(jìn)行敘述,讓客戶的需求更加全面,更加完善。在調(diào)查企業(yè)的高層領(lǐng)導(dǎo)需求的時候,可以提供總體的框架,而在調(diào)查管理人員需求的時候,可以選擇業(yè)務(wù)流程圖的方式來展示,在調(diào)查技術(shù)人員需求的時候,可以使用數(shù)據(jù)流圖等圖形進(jìn)行描述,而調(diào)查各個流程的使用者的時候,就需要靠一些界面圖來進(jìn)行展示,與各個層次的人進(jìn)行有效溝通。用戶的界面很重要,雖然設(shè)計界面是軟件設(shè)計者的任務(wù),但是客戶也可以提出自己的要求,一旦客戶提出了這方面的要求,就要改善需求調(diào)研。因為在做 需求分析的時候,客戶對軟件沒有很明確的概念,都是很模糊的,所以,分析員畫出相關(guān)的界面來展示給用戶,可以深入了解客戶的需求,更好地做好需求分析的工作。
(三)平衡用戶方相關(guān)人員的愿望
不同的人有不同的追求,用戶有很多相關(guān)人員,他們的愿望也是很不同的,所以分析員要平衡好他們的愿望,這項工作是很難的。比如,醫(yī)院系統(tǒng)當(dāng)中,管理層希望軟件系統(tǒng)能夠方便數(shù)據(jù)的統(tǒng)計以及分析,但是基層的窗口就需要減少信息的輸入量,客戶希望能夠加快辦事速度,這些要求有些是相互制約的,所以不可能都滿足客戶的要求,尤其是比較消極的需求,這些都是需要平衡的。不同的客戶也有不同的需求,所以分析員就需要決定,滿足哪方的需求,要了解客戶的種類信息,產(chǎn)品的業(yè)務(wù)目標(biāo),這會決定哪個用戶群的要求更加合理。如果分析員的需求與開發(fā)者的需求不一致,就需要分析員進(jìn)行進(jìn)一步的需求分析。根據(jù)項目的業(yè)務(wù)目標(biāo)來決定最關(guān)心的客戶群,不是核心用戶的需求就安排在下個版本當(dāng)中去。
(四)詳細(xì)描述各項業(yè)務(wù)
分析員要做到詳細(xì)調(diào)查所有用戶的需求,并且把客戶的需求做成流程圖,并且把這些業(yè)務(wù)做成檔案與用戶討論,把描述錯誤的進(jìn)行修改,協(xié)調(diào)好之后就讓確認(rèn)。對于具體的業(yè)務(wù)都需要分為很多步驟,所有步驟也都有自己的名稱,一個步驟就可能對多個數(shù)據(jù)進(jìn)行操作,需要調(diào)查清楚了用戶的習(xí)慣,讓開發(fā)出來的軟件更加受歡迎。分析員要排除掉業(yè)務(wù)流程的制約,把業(yè)務(wù)的每步工作都作為很獨立的對象,考慮到接口,把業(yè)務(wù)流程做好,從而能夠更加方便去做修改的工作??梢酝ㄟ^資料的收集和整理的工作來完成業(yè)務(wù)調(diào)查的工作,這些資料關(guān)系到用戶遵循的標(biāo)準(zhǔn)、作業(yè)流程、辦事指南以及技術(shù)資料等等。
(五)強調(diào)實現(xiàn)項目需求的層次遞進(jìn)性
了解該系統(tǒng)或者該項目用戶所能夠提供的最小的工程費用。當(dāng)預(yù)計經(jīng)費不能支持時,應(yīng)當(dāng)考慮將項目分期實施。在系統(tǒng)上、技術(shù)上對用戶進(jìn)行引導(dǎo)性建議,使用戶了解集成商所要進(jìn)行的工作,了解集成商是為了幫助用戶實現(xiàn)他的需要、達(dá)到用戶的目的,而不僅僅是為了賺錢,用戶更了解集成商,也更了解自己的系統(tǒng),有利于以后的項目合作、工程實施和系統(tǒng)維護。分析用戶曾用系統(tǒng)模式、數(shù)據(jù)結(jié)構(gòu)和庫模式,看是否保持、共用、轉(zhuǎn)換,這涉及保護用戶投資的問題。根據(jù)現(xiàn)在工作業(yè)務(wù)流情況確定現(xiàn)有的工作模式,還應(yīng)兼顧將來可能會發(fā)生的變化、擴展、新規(guī)定,及與同國際接軌可能的帶來的變化??疾楣こ虒嵤┉h(huán)境是否有保證,尤其是網(wǎng)絡(luò)工程,必須在需求調(diào)查時充分了解用戶領(lǐng)域的實施環(huán)境,當(dāng)不具有實施環(huán)境時,要求進(jìn)行配套設(shè)計和環(huán)境改造。
(六)編寫需求文擋
文檔資料是集成商重要的財富,貫穿于系統(tǒng)集成和項目開發(fā)的整個過程,其中包括法律文檔、技術(shù)文檔、資料文擋。文擋要求完整性、一致性、可修改性、可跟蹤性。以原來的需求為基礎(chǔ)的工作完成后,要修補需求錯誤需要大量的工作,研究表明:比起在需求開發(fā)階段由客戶發(fā)現(xiàn)的一個錯誤,然后更正這一錯誤需要多花到倍的時間。因此,需要進(jìn)行需求評審。需求審查結(jié)束的標(biāo)準(zhǔn)為:已經(jīng)明確闡述了審查員提出的所有問題、已經(jīng)正確修改了文檔、修訂過的文檔已經(jīng)進(jìn)行了語法檢查、所有TBD問題都已經(jīng)解決、文檔歸檔。
如果能科學(xué)地進(jìn)行需求分析,采用一些技術(shù)來避免可能導(dǎo)致需求分析失敗的情況,能圓滿地完成軟件需求分析任務(wù),為后續(xù)軟件開發(fā)做好準(zhǔn)備工作。
參考文獻(xiàn):
[1]閆健恩,王翠華,林建秋,王俊義.用例建模在軟件需求分析中的應(yīng)用[J].內(nèi)蒙古大學(xué)學(xué)報(自然科學(xué)版),2007,05
[2]崔巍,曾廣周.面向組件的軟件需求協(xié)同分析研究[J].山東師范大學(xué)學(xué)報(自然科學(xué)版),2002,03
[3]趙晉松,劉鳳翔.測試控制方法在對日軟件開發(fā)中的應(yīng)用[J].中國科技信息,2009,22
[4]潘俠,王宇穎,洪家榮.軟件需求分析生成環(huán)境RAGE/DFD的設(shè)計與實現(xiàn)[J].哈爾濱工業(yè)大學(xué)學(xué)報,1994,04
[5]吳潔.一種復(fù)雜系統(tǒng)需求和構(gòu)架管理的分析工具(英文)[J].Transactions of Nanjing University of Aeronautics & Astronau,2005,03
[6]蔣國強.論軟件需求分析方法和工具的選用――結(jié)構(gòu)化分析方法和Visio2000的使用[J].計算機時代.2002,09
[7]馮徑,馬小駿,顧伯萱,沈蘇彬,顧冠群.面向?qū)ο蟮木W(wǎng)絡(luò)需求分析工具研究與實現(xiàn)[J].小型微型計算機系統(tǒng),2000,07
關(guān)鍵詞:網(wǎng)站項目管理;需求分析;注意事項
中圖分類號:TP368 文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2011)31-0000-00
伴隨著計算機技術(shù)的不斷發(fā)展和日益提高的用戶需求,網(wǎng)站項目經(jīng)歷了由簡單的HTML到ASP,PHP,.NET語言的編寫,由一兩名設(shè)計師自由創(chuàng)作到團體集體分工實施完成的轉(zhuǎn)變,網(wǎng)站的設(shè)計和開發(fā)已經(jīng)成為了一個越來越復(fù)雜的軟件工程。目前,網(wǎng)站項目主要以B/S模式開發(fā),以網(wǎng)絡(luò)服務(wù)器為核心,瀏覽器為交互端的軟件建設(shè)項目,是根據(jù)特定規(guī)范在預(yù)定的預(yù)算和時間內(nèi)完成的網(wǎng)站開發(fā)任務(wù),他可以是一個獨立的網(wǎng)站,也可以是基于各種需要的網(wǎng)站應(yīng)用程序。為實現(xiàn)網(wǎng)站項目的具體功能,達(dá)到預(yù)期的計劃目標(biāo),網(wǎng)站項目必須建立規(guī)范、有效、健壯的開發(fā)機制,也就是要做好網(wǎng)站項目管理,其中需求分析尤為重要。
1 網(wǎng)站項目需求分析的必要性
需求分析是一個項目的開端,也是項目建設(shè)的基石,沒有做好需求分析的項目是有高風(fēng)險性的。據(jù)有關(guān)統(tǒng)計,失敗的項目中有80%是由于需求分析不明確造成的,同為軟件項目的網(wǎng)站項目建設(shè)亦是如此,當(dāng)然這也是與網(wǎng)站項目自身的特點相關(guān)聯(lián)的。
1.1 網(wǎng)站項目建設(shè)的特點
1)設(shè)計者與客戶層次與認(rèn)識存在差異,容易導(dǎo)致項目建設(shè)目標(biāo)的不確定性。
2)網(wǎng)站項目涉及領(lǐng)域廣,對參與項目的人員理解和研發(fā)項目提出高要求。
3)網(wǎng)站建設(shè)屬智力密集、勞動密集型項目,受人力資源影響大。
4)開發(fā)技術(shù)的快速發(fā)展使得網(wǎng)站項目的開發(fā)具有多模式的特征。
5)網(wǎng)站項目底層編程較為專業(yè),要有友好界面對項目各參數(shù)進(jìn)行配置。
1.2 網(wǎng)站項目需求分析的作用
結(jié)合網(wǎng)站項目建設(shè)特點,網(wǎng)站項目需要以下幾個步驟:首先業(yè)務(wù)員與客戶接洽了解,確認(rèn)立項,從客戶代表那里獲得需求后,形成需求報告;業(yè)務(wù)流程分析員分析需求報告,生成項目模型報告;界面工程師得到項目模型后設(shè)計制作相應(yīng)的模板和用戶界面原型,并最終由客戶代表確認(rèn)。可以看出,作為項目開端的需求分析直接保障了整個項目的正確性、可行性和必要性,對項目最終的檢測性和簡明性至關(guān)重要,也可以這么說,做好需求分析才能有的放矢,項目才有成功的可能性。
2 網(wǎng)站項目建設(shè)需求分析策略
上面我們已經(jīng)了解了網(wǎng)站項目需求分析的重要性,怎樣做好需求分析,形成分析報告并最終完成項目呢?
網(wǎng)站項目狹義地講包括了網(wǎng)頁制作、美工設(shè)計、程序編碼、系統(tǒng)及網(wǎng)絡(luò)管理等專業(yè)技術(shù),廣義上又包含了企業(yè)管理、市場營銷、心理學(xué)、廣告學(xué)等很多領(lǐng)域的知識,在業(yè)務(wù)員與客戶溝通立項后,由于設(shè)計者與客戶層次與認(rèn)識事物存在差異,容易導(dǎo)致項目建設(shè)目標(biāo)的不確定性,這就使項目組與客戶的溝通出現(xiàn)了問題;另外不同行業(yè)客戶的特殊要求(比如開發(fā)稅務(wù)相關(guān)網(wǎng)站項目,就需要設(shè)計人員有一定的稅務(wù)知識)也對參與項目管理的人員和研發(fā)人員提出了很高的要求,這就要求接洽業(yè)務(wù)員要加強客戶所在領(lǐng)域的知識積累,能夠?qū)⒖蛻舻男枨筠D(zhuǎn)化成實際的程序輸出,也能夠?qū)㈨椖恐械膫€模塊以客戶易于理解的方式進(jìn)行說明,深度挖掘客戶需求,并最終明晰項目建設(shè)目的,完成必要的項目需求分析。在項目組的準(zhǔn)備工作完成后,我認(rèn)為采集客戶需求應(yīng)該按照以下三個階段進(jìn)行:
1)第一階段
目標(biāo):完成調(diào)查報告和業(yè)務(wù)流程報告,搞清供求關(guān)系。
采取方法:項目組采取主動“問答”方式,指定有經(jīng)驗的業(yè)務(wù)員和需求方進(jìn)行溝通。
具體實施:項目中涉及的經(jīng)理、頁面設(shè)計員、程序設(shè)計員、測試員,文檔起草等人員必須到場,通過訪談、調(diào)查表、填寫意向表等方式從宏觀上把握客戶具體需求方向和趨勢,了解現(xiàn)有的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運行系統(tǒng)等客觀信息,與客戶建立起良好的溝通渠道和方式。建設(shè)團隊經(jīng)理對搜集的信息進(jìn)行匯總,各參與人員就獲取的知識進(jìn)行進(jìn)一步的歸類分析,頁面設(shè)計員制定大略的視覺模版;程序員就網(wǎng)站功能進(jìn)行拆解分析,列出網(wǎng)站需要的程序模塊并就各功能實現(xiàn)的可行性對照現(xiàn)有的軟硬件環(huán)境進(jìn)行評估;文檔起草準(zhǔn)備完成調(diào)查報告和業(yè)務(wù)流程報告,進(jìn)一步明細(xì)項目思路。
2)第二階段
目標(biāo):完成調(diào)研分析報告,完成業(yè)務(wù)流程設(shè)計,進(jìn)一步確認(rèn)客戶需求。
采取方法:項目組采取 “聯(lián)想啟發(fā)”方式,對第一階段的調(diào)查進(jìn)行完善和修改。
具體實施:項目涉及人員的要通過“聯(lián)想啟發(fā)”方式經(jīng)一步與客戶進(jìn)行溝通,消除由網(wǎng)站項目建設(shè)的特點導(dǎo)致的眾多不確定性??蛻舻男枨笸腔\統(tǒng)的、分散的,第二階段要對第一階段的對網(wǎng)站項目的總體設(shè)計方向進(jìn)行進(jìn)一步的確認(rèn),可以通過展示企業(yè)以往開發(fā)的相似類別的產(chǎn)品實例、對網(wǎng)站項目的開發(fā)方法及運行方式和要求進(jìn)一步說明,讓客戶等非專業(yè)人員對整站系統(tǒng)從前臺到后臺,從頁面到代碼,從架構(gòu)到管理有一定的認(rèn)識,從而是客戶對自己的最終需求進(jìn)行具體的描述。另外,項目組還要進(jìn)一步了解客戶的組織架構(gòu)、業(yè)務(wù)流程,目前已有的軟硬件環(huán)境,服務(wù)器現(xiàn)有的系統(tǒng)等,結(jié)合實際情況,架設(shè)調(diào)試服務(wù)器,作出基本的演示頁面,和用戶一起探討業(yè)務(wù)流程設(shè)計的合理性、準(zhǔn)確性以及站點瀏覽界面的習(xí)慣性和友好性,展現(xiàn)整個業(yè)務(wù)流程的設(shè)計,就建設(shè)目標(biāo)的合理性和準(zhǔn)確性進(jìn)一步探討,提出改進(jìn)意見和改進(jìn)方法。
3)第三階段
目標(biāo):根據(jù)客戶反饋修改演示系統(tǒng),完成需求分析報告和業(yè)務(wù)流程報告,提交客戶確認(rèn)。
采取方法:對涉及網(wǎng)站項目流程和數(shù)據(jù)項的報告、文檔進(jìn)行“逐項簽字確認(rèn)”。
具體實施:在第二階段需求分析工作的基礎(chǔ)上,要求客戶對前兩個階段的反饋意見進(jìn)行審查,進(jìn)一步明晰網(wǎng)站項目建設(shè)方向;承建方要對網(wǎng)站項目的流程進(jìn)行進(jìn)一步細(xì)化,對涉及的數(shù)據(jù)項要求客戶進(jìn)行逐項確認(rèn),另外承建方還要進(jìn)一步改進(jìn)演示頁面,向客戶描述整個網(wǎng)站項目的設(shè)計目標(biāo)和輸出結(jié)果,最終雙方達(dá)成一致并簽字確認(rèn)。
總的來說,網(wǎng)站項目的需求分析是逐步深入,曲線前進(jìn)的,要重視各個階段的重點,將分析工作做到位才能做到省時、省力、省錢、高效,并最終保證整個項目的成功開發(fā)。
3 網(wǎng)站項目需求分析的注意事項
網(wǎng)站項目需求主要是指用戶對網(wǎng)站系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望,通過對應(yīng)問題及其環(huán)境的理解與分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成需求規(guī)格說明。在整個項目實施過程中需求不明確、業(yè)務(wù)流程不合理往往是項目面臨的最大風(fēng)險,直接導(dǎo)致項目的開發(fā)失敗或是客戶不接受,因此必須做到細(xì)致了解客戶意愿,明晰客戶需求,采用必要措施來強化需求調(diào)研,需要注意以下幾點:
3.1 深化溝通,強化需求分析
關(guān)鍵詞:網(wǎng)站 項目管理 需求分析
1 網(wǎng)站項目管理的特點
網(wǎng)站項目是以Web服務(wù)器為主體、瀏覽器為客戶端作為基本架構(gòu)的項目。這樣的架構(gòu)項目中包含Web服務(wù)器、瀏覽器和網(wǎng)絡(luò)三個關(guān)鍵主體。網(wǎng)站項目可能是一個網(wǎng)站,也可能是各種Web應(yīng)用程序,例如網(wǎng)上商店、虛擬郵局、網(wǎng)絡(luò)辦公管理系統(tǒng)、客戶關(guān)系管理系統(tǒng)等等。網(wǎng)站項目管理就是圍繞著網(wǎng)站項目運用知識、技術(shù)、技能、工具和方法進(jìn)行組織管理。其特點表現(xiàn)在以下幾個方面:
1)涉及的領(lǐng)域很多。狹義地講,網(wǎng)站項目包括了網(wǎng)頁制作、美工設(shè)計、程序編碼、系統(tǒng)及網(wǎng)絡(luò)管理等專業(yè)技術(shù),廣義上又包含了企業(yè)管理、市場營銷、心理學(xué)、廣告學(xué)等更多領(lǐng)域的知識,在項目進(jìn)行過程中還涉及到項目管理工具、文檔和設(shè)計開發(fā)管理規(guī)范、開發(fā)及測試環(huán)境部署等特殊領(lǐng)域的問題。這對參與項目管理的人員提出了很高的要求。
2)參與項目的角色很多,水平可能參差不齊。對于網(wǎng)站項目管理,最關(guān)鍵的角色是項目經(jīng)理、業(yè)務(wù)流程分析師、用戶界面工程師、系統(tǒng)分析員、編碼人員(程序員)和質(zhì)量控制工程師等。根據(jù)項目的規(guī)模和開發(fā)的深度,由項目經(jīng)理進(jìn)行角色劃分。假如嚴(yán)格細(xì)分,一個大型項目的角色可能達(dá)到50個以上,以確保每個細(xì)節(jié)都有專業(yè)的人員進(jìn)行負(fù)責(zé)和管理。其中需求分析過程中主要角色有客戶代表、業(yè)務(wù)員、業(yè)務(wù)流程分析師、用戶界面工程師,另外還有項目經(jīng)理、數(shù)據(jù)庫工程師、文檔工程師等參與。
3)網(wǎng)絡(luò)應(yīng)用的開發(fā)技術(shù)在日新月異地進(jìn)步,從而使網(wǎng)站應(yīng)用系統(tǒng)的開發(fā)模式具有多種選擇性,達(dá)到同樣的目標(biāo)可以采用很多不同的方式,現(xiàn)代的應(yīng)用系統(tǒng)越來越成為一個龐大的集成方案,需要考慮不同的操作平臺、不同的應(yīng)用服務(wù)器、不同的數(shù)據(jù)庫、不同的編程語言、不同的傳輸介質(zhì)等等,項目管理人員必須了解各種技術(shù)的利弊,幫助用戶選擇高效、廉價并富有前瞻性的方案。
2 需求分析在網(wǎng)站項目管理中的作用及要求
需求分析是一個項目的開端,也是項目建設(shè)的基石。由于以上提出的網(wǎng)站項目的特殊性和行業(yè)覆蓋的廣闊性,以及需求分析的高風(fēng)險性,網(wǎng)站項目需求分析的重要性是不言而喻的,在以往建設(shè)失敗的項目中,80%是由于需求分析的不明確而造成的。因此一個項目成功的關(guān)鍵因素之一,就是對需求分析的把握程度。
在需求分析流程中,需要有客戶代表、業(yè)務(wù)員、業(yè)務(wù)流程分析師、用戶界面工程師等角色參與,業(yè)務(wù)員從客戶代表那里獲得需求,并形成需求報告;業(yè)務(wù)流程分析員從業(yè)務(wù)員那里獲得需求報告,分析生成項目模型報告;界面工程師得到項目模型后設(shè)計制作相應(yīng)的模板和用戶界面原型,最終由客戶代表確認(rèn)。需求分析所形成的文檔最終達(dá)到如下要求。
1)正確性:每個功能必須清楚描寫交付的功能。
2)可行性:確保在當(dāng)前的開發(fā)能力和系統(tǒng)環(huán)境下可以實現(xiàn)每個需求。
3)必要性:功能是否必須交付,是否可以推遲實現(xiàn),是否可以在削減開支情況發(fā)生時被“砍”掉。
4)簡明性:不要使用專業(yè)的網(wǎng)絡(luò)術(shù)語。
5)檢測性:如果開發(fā)完畢,客戶可以根據(jù)需求檢測。
3 網(wǎng)站項目需求分析的一般方法
根據(jù)以往的工程經(jīng)驗,需求分析工作方法,應(yīng)該定位在“三個階段”(也稱“三步法”)。
第一階段:“訪談式”。這一階段是和具體用戶方的領(lǐng)導(dǎo)層、業(yè)務(wù)層人員的訪談式溝通,主要目的是從宏觀上把握用戶的具體需求方向和趨勢,了解現(xiàn)有的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運行系統(tǒng)等等具體情況和客觀信息,建立起良好的溝通渠道和方式。針對具體的職能部門以及各委辦局,最好能指定本次項目的接口人。
實現(xiàn)手段:訪談、調(diào)查表格。
輸出成果:調(diào)查報告、業(yè)務(wù)流程報告。
第二階段:“誘導(dǎo)式”。這一階段是在承建方已經(jīng)了解了具體用戶方的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運行系統(tǒng)等等具體實際和客觀信息的基礎(chǔ)上,結(jié)合現(xiàn)有的硬件、軟件實現(xiàn)方案,做出簡單的用戶流程頁面,同時結(jié)合以往的項目經(jīng)驗對用戶采用誘導(dǎo)式、啟發(fā)式的調(diào)研方法和手段,和用戶一起探討業(yè)務(wù)流程設(shè)計的合理性、準(zhǔn)確性,界面的便易性、習(xí)慣性。用戶可以操作簡單演示的DEMO,來感受一下整個業(yè)務(wù)流程的設(shè)計合理性、準(zhǔn)確性等等問題,及時地提出改進(jìn)意見和改進(jìn)方法。
實現(xiàn)手段:拜訪(誘導(dǎo))、原型演示。
輸出成果:調(diào)研分析報告、原型反饋報告、業(yè)務(wù)流程報告。
第三階段:“確認(rèn)式”。這一階段是在上述兩個階段成果的基礎(chǔ)上,進(jìn)行具體的流程細(xì)化、數(shù)據(jù)項的確認(rèn)階段,這個階段承建方必須提供原型系統(tǒng)和明確的業(yè)務(wù)流程報告、數(shù)據(jù)項表,并能清晰地向用戶描述系統(tǒng)的業(yè)務(wù)流設(shè)計目標(biāo)。用戶方可以通過審查報告來提出反饋意見,并對已經(jīng)可接受的報告、文檔簽字確認(rèn)。
實現(xiàn)手段:拜訪(回顧、確認(rèn)),提交業(yè)務(wù)流程報告、數(shù)據(jù)項表;原型演示系統(tǒng)。
輸出成果:需求分析報告、數(shù)據(jù)項、業(yè)務(wù)流程報告、原型系統(tǒng)反饋意見(后三者可以統(tǒng)一歸入需求分析報告中,提交用戶方、監(jiān)理方進(jìn)行確認(rèn)和存檔)。
整體來講,需求分析的三個階段是需求調(diào)研中不可忽視的一個重要部分,三個階段或者說三步法的實施和采用,對用戶和承建方都同樣提供了項目成功的保證。 4 網(wǎng)站項目需求分析的注意事項和技巧
項目的整體風(fēng)險往往表現(xiàn)在需求分析不明確、業(yè)務(wù)流程不合理,導(dǎo)致用戶不習(xí)慣或不愿意去用承建方的軟件。承建方和客戶方都要重視需求分析的重要性。為更好地把握用戶的需求和方向,應(yīng)該采用必要的手段和方法來進(jìn)行需求調(diào)研。
4.1 挖掘用戶需求
鼓勵用戶將所有的想法盡可能地闡述清楚,并把所有的要求羅列出來。這時候不必?fù)?dān)心引起客戶的潛在需求而增加設(shè)計開發(fā)的工作量,應(yīng)直接明白地跟客戶把問題和要求一條條地列出來,把條理、歸納、分析先都放到一邊,將用戶最原始、最完整的要求準(zhǔn)確地記錄下來。
很多情況下客戶并非專業(yè)人士,在他們的描述中很難凸現(xiàn)重點和技術(shù)難關(guān),這需要我們?nèi)榭蛻暨M(jìn)行分析、歸納和整理,尤其是客戶談的不多卻又是技術(shù)上實現(xiàn)難度和強度很高的地方特別值得注意。客戶往往對需求的概念是非常模糊的,大多時候給出的需求都是籠統(tǒng)而且尺度難以控制的,這就要求業(yè)務(wù)人員在傾聽了客戶的詳細(xì)說明以后,幫助客戶進(jìn)行整理和分析,預(yù)測客戶在開發(fā)過程中變更及今后應(yīng)用中可能進(jìn)行修改升級的潛在需求。
比如在為客戶設(shè)計辦公自動化系統(tǒng)的時候,也許就要為客戶預(yù)留將來與他們的業(yè)務(wù)單位進(jìn)行交互的通道;在設(shè)計郵件系統(tǒng)的時候要考慮可能會需要廣告管理服務(wù)器;設(shè)計網(wǎng)絡(luò)電子商店時需考慮今后增加庫存產(chǎn)品進(jìn)銷存統(tǒng)計分析等等;限于時間和財力的考慮,客戶通常能夠接受分階段實施的開發(fā)過程,在需求分析時,提早為客戶設(shè)想到今后的需求變更除了使項目開發(fā)更加順利以外,也為今后業(yè)務(wù)的進(jìn)一步深入打下了更好的基礎(chǔ)。
4.2 利用自然的語言和圖表描述項目模型
在業(yè)務(wù)員與客戶進(jìn)行溝通和調(diào)查時撰寫的需求分析,盡可能用自然語言或形式化語言來描述,還可以添加圖形表述方式和模型表征方式。雖然客戶的水平和資歷有所不同,但是最自然的描述能夠使項目開發(fā)的各個成員都能清楚地理解需求含義,不至于在理解上產(chǎn)生偏差。對客戶而言,這樣的模型描述最接近真實,容易參與修訂,并能以此為測試和驗收的依據(jù)。制作示意圖可以有很多種方式,關(guān)鍵是利用示意圖將客戶的需求和即將開始設(shè)計的系統(tǒng)體現(xiàn)出來。在進(jìn)行系統(tǒng)分析和程序開發(fā)之前,雙方對今后要完成的產(chǎn)品就能夠有直觀的認(rèn)識,換言之,就是在產(chǎn)品還沒有真正進(jìn)入開發(fā)階段的時候,雙方就對工作的結(jié)果達(dá)成統(tǒng)一的意見,這將大大地減輕需求變更所帶來的困擾,同時客戶更容易地參與到項目的開發(fā)過程中。
4.3 需求分析要共同參與各施其職
項目經(jīng)理、系統(tǒng)分析員、開發(fā)經(jīng)理、交互設(shè)計師、測試人員、文檔人員包括客戶代表都應(yīng)該看需求分析,并進(jìn)行共同討論,達(dá)成一致意見。參與項目開發(fā)的人員都應(yīng)該對這份需求有統(tǒng)一清晰的認(rèn)識,并根據(jù)自己的工作對需求提出意見,通過與客戶的溝通修訂,最終確定項目實現(xiàn)的目標(biāo)。這樣可以盡量避免業(yè)務(wù)人員與開發(fā)人員、承建方和客戶方之間發(fā)生不必要的糾紛。
例如:項目經(jīng)理通過需求分析才能組建所需要的團隊包括配置工作環(huán)境,制定開發(fā)周期;開發(fā)周期的限制和功能上的要求可能會影響到程序員采用什么樣的語言和工具進(jìn)行編寫;操作用戶的技能水平將影響到交互設(shè)計師進(jìn)行前臺設(shè)計時做到什么樣的精度;界面設(shè)計人員根據(jù)項目的性質(zhì)和定位確定表現(xiàn)方式;測試人員了解測試環(huán)境和條件后才能對項目質(zhì)量進(jìn)行跟蹤和檢測。
4.4 將需求變更置于可控狀態(tài)
需求的變更幾乎是不可避免的,也許是出自客戶的遺漏,也可能是在開發(fā)過程中被激發(fā)出來的。如何以可控的方式管理網(wǎng)站項目需求的變更,對于項目的順利進(jìn)行有著重要的意義。如果匆匆忙忙地完成用戶調(diào)研與分析,則往往意味著不穩(wěn)定的需求。所以需求管理要保證需求分析各個活動都得到了充分的執(zhí)行。
為了將變更及時反饋到項目的各個角色中,做好需求變更日志就顯得非常重要。在需求分析后面附上變更日志,并將修改后的需求分析制作成新版本,保留每次更改過的版本,而不是覆蓋,這樣就比較容易地跟蹤到需求變更過程中所帶來的工作調(diào)整。在新版本的需求分析中,將變更部分用特殊方式表示出來,并在日志中記錄變更明細(xì)。
4.5 評審需求文檔
需求文檔完成后,需要經(jīng)過正式評審,以便作為下一階段工作的基礎(chǔ)。一般的評審分為用戶評審和同行評審兩類。用戶和開發(fā)方對于軟件項目內(nèi)容的描述,是以需求規(guī)格說明書作為基礎(chǔ)的;用戶驗收的標(biāo)準(zhǔn)則是依據(jù)需求規(guī)格說明書中的內(nèi)容來制訂,所以評審需求文檔時用戶的意見是第一位的。而同行評審的目的,是在軟件項目初期發(fā)現(xiàn)那些潛在的缺陷或錯誤,避免這些錯誤和缺陷遺漏到項目的后續(xù)階段。
關(guān)鍵詞:需求分析;項目干系人;系統(tǒng)分析員
中圖分類號:F270 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-3890(2012)05-0056-03
需求分析是軟件開發(fā)過程的核心,其結(jié)果直接影響到整個的軟件開發(fā)過程。據(jù)相關(guān)資料顯示,因需求分析因素所造成的軟件項目失敗或缺陷約占60%,屬于系統(tǒng)實施階段的代碼錯誤,而導(dǎo)致軟件項目失敗的比率約為40%。項目失敗的根源在于需求分析不明確,需求調(diào)研不徹底,從而引發(fā)需求不斷變更,最終導(dǎo)致項目停滯。這些變更不僅加大了開發(fā)成本、項目無法按時完成等嚴(yán)重問題,而且,還有可能引發(fā)用戶方與開發(fā)方之間互相指責(zé),導(dǎo)致項目擱淺。
一、軟件項目需求分析的重要性
軟件系統(tǒng)的開發(fā)主要分為五個階段,分別是系統(tǒng)的需求分析階段、系統(tǒng)設(shè)計階段、系統(tǒng)實施階段、系統(tǒng)測試階段和系統(tǒng)維護階段。而需求分析階段是整個五階段中的重中之重,在該階段所占的工作量大概是整個軟件開發(fā)項目的50%,邏輯方案是該階段的最終成果。邏輯方案不僅是進(jìn)行系統(tǒng)設(shè)計的依據(jù),而且,還是系統(tǒng)最終驗收的說明性文件。從以往的經(jīng)驗來看,需求分析做的不徹底,沒有深層次的挖掘用戶需求,往往可能導(dǎo)致整個項目無法達(dá)到預(yù)期的效果,或者說設(shè)計開發(fā)出來的產(chǎn)品不能滿足用戶的需求。
需求分析首先要對現(xiàn)有系統(tǒng)有充分的認(rèn)識和了解,在此基礎(chǔ)上,通過識別關(guān)鍵問題、分析項目的可行性、詳細(xì)調(diào)查研究、系統(tǒng)化分析,最終設(shè)計完成該項目的新系統(tǒng)邏輯方案。只有系統(tǒng)分析員明白了用戶的真正需求,才能開發(fā)出滿足用戶的軟件產(chǎn)品。在這里,要強調(diào)一點的是,在做需求分析的時候,開發(fā)方一定要指派有實際工作經(jīng)驗的系統(tǒng)分析員來與用戶溝通,而不是指派具體的開發(fā)人員,這將避免一些溝通不暢的問題發(fā)生。系統(tǒng)分析員在了解用戶的基本需求之后,要以書面的形式,準(zhǔn)確地制定出軟件需求報告。該報告主要說明系統(tǒng)的行為屬性,是項目開發(fā)過程中對系統(tǒng)的制約。要實現(xiàn)這一目標(biāo),就需要系統(tǒng)分析員與用戶之間做到緊密協(xié)作,甚至系統(tǒng)分析員要深入到用戶方的實際業(yè)務(wù)當(dāng)中,把自己當(dāng)做是用戶,從用戶的角度思考問題,只有這樣,開發(fā)方才可以真正了解用戶需要什么,系統(tǒng)應(yīng)該做什么。
二、規(guī)范執(zhí)行需求分析的流程
需求分析的過程,要嚴(yán)格執(zhí)行規(guī)范化操作,囫圇吞棗式的需求調(diào)研是不可取的。開發(fā)方在做需求分析過程中,一定要嚴(yán)格把關(guān),從對用戶負(fù)責(zé)的角度出發(fā),并且也為了降低自己的開發(fā)成本,對無法與用戶實現(xiàn)很好溝通的項目經(jīng)理要及時叫停,避免后續(xù)工作無法正常進(jìn)行。
按照需求分析的過程,同樣也可將其分為五個階段:首先要獲取用戶需求,其次是分析用戶的需求,第三是編寫需求文檔,第四是評審需求文檔,最后是管理需求。規(guī)范執(zhí)行需求分析的流程,是需求分析能否成功的關(guān)鍵。圖1是根據(jù)實際工作經(jīng)驗總結(jié)出的需求分析工作流程:
在需求分析過程中,開發(fā)方要深入用戶方的各個部門,最簡單的項目也要做到用戶確認(rèn)需求和需求評審兩個過程,復(fù)雜的項目甚至要做到多次。
三、盡快熟悉項目用戶方干系人全貌
項目干系人又稱為項目相關(guān)利益者,是指積極參與項目、或其利益會受到項目執(zhí)行或完成情況影響的個人或組織,項目干系人對項目的目的和結(jié)果施加影響。項目管理團隊,即開發(fā)方,必須識別項目干系人,確定他們的需求和期望,盡最大可能地管理與需求相關(guān)的因素,以獲得項目的成功。因此,應(yīng)當(dāng)從項目的啟動開始,系統(tǒng)分析員用戶方相關(guān)人員的配合下,逐步分清項目用戶方干系人具體包含哪些人和部門,通過開方法與其溝通加之用戶方領(lǐng)導(dǎo)的協(xié)調(diào)以驅(qū)動他們對項目的支持,從而減小其對項目的阻力。
有些項目在做需求調(diào)研時,因受用戶方提出的進(jìn)度要求等因素影響,有些系統(tǒng)分析員不愿與用戶過多地交流,只是發(fā)一些調(diào)研表做一些大概的了解。往往是因為開發(fā)方已有與該建設(shè)單位相似的原型,會亟不可待地去推廣,這樣會導(dǎo)致某些差異需求得不到深入了解,用戶方只能被動地去適應(yīng)原型系統(tǒng),這樣的做法是不可取的。另一種情況則是開發(fā)方與用戶方的技術(shù)部門交流比較多,而向業(yè)務(wù)部門和實際使用人員調(diào)查的力度不夠,往往容易造成原型試用后,與用戶的需求不一致,不得不再對需求做較大調(diào)整,造成開發(fā)周期不斷延期,開發(fā)成本大大增加。因此,熟悉項目用戶方干系人全貌是進(jìn)行需求調(diào)研的第一步,也是需求調(diào)研的基礎(chǔ)。在定制的開發(fā)項目中,最重要的是要弄清楚用戶方中的組織結(jié)構(gòu)關(guān)系、業(yè)務(wù)流程關(guān)系、數(shù)據(jù)流程關(guān)系。制定該項目的牽頭單位,在此基礎(chǔ)上,使用圖表的形式將這三種關(guān)系表現(xiàn)出來。
四、采取正確的方法獲取用戶需求
2 什么是需求分析
結(jié)構(gòu)化軟件開發(fā)一般分為分析、設(shè)計、開發(fā)、測試、驗收與運行等階段。開發(fā)前,會進(jìn)行前期的可行性研究;在運行開始以后,還要進(jìn)行后期維護。需求分析是結(jié)構(gòu)化開發(fā)中的重要階段。通常情況下,國內(nèi)軟件開發(fā)公司在做歐美和日本的項目時,對前期的可行性研究參與得較少,一般都是對方已經(jīng)做完可行性研究,國內(nèi)軟件開發(fā)公司從需求分析開始做起,直到軟件開發(fā)后的運行和維護。所謂需求分析,是指對要解決的問題進(jìn)行詳細(xì)的分析,弄清楚客戶的需求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么,等等??梢哉f,軟件工程當(dāng)中的需求分析就是確定要計算機做什么。
3 需求分析的重要性
從需求分析的定義上,就可以看出需求分析在軟件開發(fā)過程中的重要性了。需求分析做得不對,后面的步驟做得再好,也只能是南轅北轍,無法滿足客戶的要求。研究表明,改正產(chǎn)品付諸應(yīng)用后所發(fā)現(xiàn)的一個需求方面的缺陷,比在需求階段改正這個錯誤要多付出大約100倍的成本。而另一項研究發(fā)現(xiàn),在需求開發(fā)階段發(fā)現(xiàn)的一個錯誤,平均僅需要花30分鐘修復(fù),但若在系統(tǒng)測試時發(fā)現(xiàn)則需要5-17個小時來修復(fù)。
需求工程的成功與否直接關(guān)系到系統(tǒng)給的命運,需求工程絕對不是軟件開發(fā)的前期任務(wù),而應(yīng)該在整個系統(tǒng)的生命周期里都扮演著重要角色。在需求工程階段解決和根除需求引起的問題可以大大降低生產(chǎn)和維護的成本,提高用戶的滿意度。在軟件開發(fā)的過程中,需求工程階段是了解用戶需求的最佳時期,但很大一部分用戶不知道、不了解需求工程,以至于在和他們交流的時候,他們都不能準(zhǔn)確完整的說出自己的需求,因而對于從事需求工程的人員來說,能夠正確的理解用戶的需求觀點,利用一些方法和技巧來啟發(fā)用戶闡述清楚自己的需求是很重要的。需求工程作為了解并實現(xiàn)軟件開發(fā)者的目標(biāo)的重要手段,有著不可替代的作用。
比如一個失敗的案例:由于和客戶簽訂了合同,5個月必須交付軟件,開發(fā)時間緊迫,導(dǎo)致項目計劃時做需求分析的時間只給了2周時間(理由是客戶的文檔已經(jīng)提供好了,照著做即可)。結(jié)果,由于前期對客戶文檔理解得不是很清楚,導(dǎo)致開發(fā)進(jìn)行到3個月的時候發(fā)現(xiàn)需求上有爭議。在和客戶確認(rèn)后得出結(jié)論:如果要滿足客戶的要求,則需要對整體架構(gòu)進(jìn)行修改。雖然最后按期交付了軟件,但是整個項目組最后兩個月每天都在加班,包括周末,而且軟件質(zhì)量也沒有得到客戶的充分認(rèn)可。
再如我們在了解客戶需求的同時,應(yīng)該盡量了解客戶為什么要這么做,幫客戶一起想需求,以便我們開發(fā)的軟件能夠更好地為客戶服務(wù)。每天開完會后,我們應(yīng)該把客戶的需求整理好,發(fā)給同事進(jìn)行研究分析,建立簡單的基礎(chǔ)模型并研究技術(shù)可行性。需求分析結(jié)束后,保持每周至少3次電話會議與客戶進(jìn)行溝通,隨時了解客戶的需求。最后正因為在前期階段進(jìn)行了這種細(xì)致的需求分析,項目組在很少加班的情況下,不但按時交付了項目,并且得到客戶的充分認(rèn)可。
4 軟件需求分析的任務(wù)
軟件工程的發(fā)展來源于信息需求對它的推動,現(xiàn)在互聯(lián)網(wǎng)技術(shù)和應(yīng)用越來越成熟,信息的獲取也逐漸變得簡單和完整,但是由于資源的開放性、系統(tǒng)與系統(tǒng)的相互滲透性、用戶的變動性讓需求變得多目的、多變化,增加了軟件制作的難度,但同樣帶來了巨大的用戶市場。需求的獲取同樣也是困擾軟件工程的絆腳石。需求與資源的搭配不合理,就會影響軟件工程的發(fā)展。未來適應(yīng)變化多端的用戶需求,必須讓軟件也隨之變化。要滿足多樣化的信息需求,提取合適的信息需求建立模式,就要有相應(yīng)的系統(tǒng)對需求信息進(jìn)行分析和總結(jié),通過程序化的模式來制定切實可行的軟件方案。
國項目中,在前期分析時軟件開發(fā)的核心技術(shù)人員和測試人員就已經(jīng)進(jìn)入項目組,每天技術(shù)人員會對分析的結(jié)果提出技術(shù)實現(xiàn)的難點以及改進(jìn)的方法,筆者在隨后的會議上就會和客戶進(jìn)行討論,盡量在滿足客戶需求的同時,使用更簡單可行的技術(shù),這樣就為以后的開發(fā)奠定了基礎(chǔ),使開發(fā)時的工作量大大減少。測試人員也在需求時提出從測試角度看到的問題,同樣在需求分析階段得到解決,節(jié)省了大量的開發(fā)時間。
需求工程在未來發(fā)展中會有如下幾個方面的著重考慮:(1)縮小需求工程在理論研究階段取得的成果同實際應(yīng)用中得到的效果的差距,通過得到的結(jié)論來更好的設(shè)計軟件;(2)規(guī)范需求工程的各種機制,可以有需求工程規(guī)格數(shù)據(jù)的搜集、整理、制作、實現(xiàn)以及維護,也可以有需求工程的問題的解決辦法;(3)保證需求工程有較高的質(zhì)量。這一點是需求工程最為關(guān)鍵的要求,質(zhì)量的高低直接影響了未來實現(xiàn)效果的好壞。需求工程就是對未知問題進(jìn)行探索、處理的過程。未來必然會朝著對象具體化、分析自動化的方向發(fā)展。
5 進(jìn)行需求分析的注意事項
5.1 需求分析是分析人員與用戶共同的責(zé)任
用戶必須對軟件功能和性能提出初步要求,并澄清一些模糊概念。而需求分析人員則要認(rèn)真了解用戶的要求,細(xì)致地進(jìn)行調(diào)查分析,把用戶做什么的要求最終轉(zhuǎn)換成一個完全的、精細(xì)的軟件邏輯模型,并寫出軟件的需求規(guī)格說明,準(zhǔn)確地表達(dá)用戶的要求。在一些項目中,由于時間緊迫,一些模糊問題沒有及時澄清,導(dǎo)致最后返工,影響了項目進(jìn)度。
5.2 需求分析階段研究的對象是軟件項目的用戶要求
需要注意的是,必須理解用戶的各項要求,但又不能全盤接受所有的要求。在一些項目中,針對客戶提出的需求,了解客戶的意圖后,發(fā)現(xiàn)技術(shù)上實現(xiàn)有很大難度。我們了解到這個需求對客戶來說不是十分重要,于是和客戶商量出一個折中的解決方案,繞過技術(shù)難點,并且沒有降低客戶滿意度。
5.3 主動積極了解客戶業(yè)務(wù)和相關(guān)知識
求討論集中于業(yè)務(wù)需求和任務(wù),因此要使用術(shù)語。客戶應(yīng)將有關(guān)術(shù)語教給分析人員,而客戶不一定要懂得計算機行業(yè)的術(shù)語。由于通常情況下客戶對計算機術(shù)語了解不多,需求分析人員應(yīng)該盡量將計算機術(shù)語轉(zhuǎn)化成通俗易懂的語言,這樣便于和客戶溝通。而對于客戶方面的術(shù)語,一方面不懂的時候一定要問;另一方面也要多學(xué)習(xí)。
Abstract: This paper analyzed the demand conditions of the training program, and determines whether the gap between the actual status and ideal state can be narrowed by training and determines the specific training program through a series of survey analysis, including, the investigation of personnel's quality, the results performance level and the common goals of organization; then carried out a detailed evaluation of both by comparing the advantages and disadvantages of the training project at home and abroad.
關(guān)鍵詞: 培訓(xùn)項目;需求分析;模型
Key words: training project;demand analysis;model
中圖分類號:C975 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2012)30-0239-03
1 培訓(xùn)項目需求分析的界定
培訓(xùn)項目需求分析自從出現(xiàn)以來到現(xiàn)在一直有大量的學(xué)者在研究,在某些觀點上肯定存在著某些偏差,但是整體上都認(rèn)同培訓(xùn)項目分析基于四個方面的:第一是與理想狀態(tài)的差距是進(jìn)行培訓(xùn)項目需求分析的基礎(chǔ);第二是業(yè)績績效水平是進(jìn)行培訓(xùn)項目分析的依據(jù);第三是培訓(xùn)項目需求來自組織和個人;第四是培訓(xùn)項目需求分析不僅要對是否進(jìn)行培訓(xùn)提出判斷,也要對針對什么做培訓(xùn)作出解答。綜合起來培訓(xùn)項目需求分析可以理解為通過一系列的調(diào)查包括人員素質(zhì)考察、業(yè)績績效水平和組織共同目標(biāo)等來分析研究,判斷出實際現(xiàn)狀和理想狀態(tài)的差距能否通過培訓(xùn)這種方式來縮小,以及要具體怎么樣來培訓(xùn)解決的過程。這個概念是由由麥基(McGehee)和泰勒(Thayer)等人在1961年提出的。
2 國外培訓(xùn)項目需求分析模型及理論述評
2.1 Goldstein三層次模型 二十世紀(jì)八十年代,I.L.Goldstein與E.P.Braverman、H.Goldstein三人經(jīng)過長期的研究將培訓(xùn)項目需求分析系統(tǒng)化,構(gòu)建了Goldstein模型。這個模型中的培訓(xùn)項目需求分析包括組織分析、任務(wù)分析和人員分析三部分(如圖1)[1]。
從圖1中可以看出Goldstein模型分析是從組織、任務(wù)和人員三個方面來進(jìn)行分析研究的,在這個模型中,組織分析研究主要是針對組織中需要培訓(xùn)的部門和員工是否需要培訓(xùn)來展開的,進(jìn)行分析之前要在滿足組織經(jīng)營戰(zhàn)略的條件下才能進(jìn)行,最終目的是要保證整個培訓(xùn)的計劃滿足組織整體的目標(biāo)規(guī)劃和戰(zhàn)略要求;任務(wù)分析主要包括對培訓(xùn)項目需要的理論支持和技能支持,以便來確定各項培訓(xùn)項目的內(nèi)容,并且要分析出各項培訓(xùn)業(yè)務(wù)的難易程度和重要性;人員分析主要針對組織中員工來進(jìn)行,從他們的實際情況出發(fā),分析員工的實際能力標(biāo)準(zhǔn)和理想水平中的差距,也就是所說的“目標(biāo)差”,這樣形成培訓(xùn)的目標(biāo)和培訓(xùn)內(nèi)容的有效依據(jù)。
Goldstein模型目前看來是對培訓(xùn)項目分析最全面的一個模型,也是在學(xué)術(shù)界得到普遍認(rèn)同的分析模型,但是還是會有一些缺點和不足,主要表現(xiàn)在三個方面:第一是該模型沒有考慮到外界環(huán)境對組織的影響;第二是進(jìn)行人員分析時,這個模型的側(cè)重點在于研究員工業(yè)績績效水平和理想水平之間的差距,只關(guān)注到了員工必須要培訓(xùn)的項目,卻沒有對員工想學(xué)什么、想培訓(xùn)什么沒有加以重視;第三是實際培訓(xùn)項目實際分析研究的過程中,這個項目還是缺乏一些可操作性的分析方法,沒有一個標(biāo)準(zhǔn)的指導(dǎo),這也是該項目存在的最大不足。
2.2 培訓(xùn)項目需求差距分析模型[2] 美國學(xué)者湯姆·W·戈特將培訓(xùn)項目分析出來的“差距”,也就是“實際水平”和“理想狀態(tài)”之間的距離叫做“缺口”,建立出一個培訓(xùn)項目差距分析的具體模型(如圖2)。這個模型是針對員工現(xiàn)有的實際技能水平和理想技能水平兩個方面來分析培訓(xùn)需求狀況的。
在培訓(xùn)項目差距分析模型中我們重點掌握兩點:第一是是只要“理想水平狀態(tài)”存在,必定與“實際水平狀態(tài)”之間有一個差距;第二是差距一旦產(chǎn)生就會有培訓(xùn)需求,也就是說培訓(xùn)需求=理想水平狀態(tài)-現(xiàn)實水平狀態(tài)。
同樣這個分析模型也是會有一些不足和局限性的,表現(xiàn)之一就是沒有充分關(guān)注組織的戰(zhàn)略目標(biāo)對培訓(xùn)需求的影響;其次表現(xiàn)在它的有效性會在一個假設(shè)前提下進(jìn)行也就是“培訓(xùn)活動=績效提高”,存在依賴性。更深一步的分析可以對這個前提提出兩個命題:第一死后業(yè)績績效問題百分之百是由于理論知識和技能與態(tài)度的不足產(chǎn)生的,第二是培訓(xùn)能百分之百的轉(zhuǎn)化成員工的績效。
2.3 前瞻性培訓(xùn)項目需求分析模型 前瞻性模型是由美國學(xué)者Terry.L.leap和Michael D.Crino提出的。將“前瞻性”思想運用在培訓(xùn)項目需求分析中是該模型的精髓(如圖3)[3]。
該模型認(rèn)為員工在企業(yè)中肯定會不斷地成大,技術(shù)技能也肯定會一直在提升,也就是說員工可能會對目前的工作績效感到滿意,但是也有可能會職位調(diào)動或者升職做準(zhǔn)備,由于工作內(nèi)容和工作性質(zhì)的變化可能需要一些培訓(xùn)指導(dǎo),為員工的升職或者適應(yīng)工作變化提出培訓(xùn)的要求。前瞻性培訓(xùn)分析模型就是為這種情況作出的支持,給培訓(xùn)指導(dǎo)作出一個分析框架,對員工的個人職業(yè)規(guī)劃和任職能力等方面都做了一個的指導(dǎo)價值。
但是這個模型也會存在一些缺陷,“前瞻性”培訓(xùn)需求項目分析只是分析了對員工未來發(fā)展方面,忽視了針對企業(yè)發(fā)展的需求分析,所以說可能這個模型的分析結(jié)果不能夠?qū)M織戰(zhàn)略目標(biāo)和業(yè)務(wù)發(fā)展的要求做一個統(tǒng)一,會有模型設(shè)計和組織戰(zhàn)略目標(biāo)不相聯(lián)系的情況出現(xiàn)。
2.4 勝任特征模型 確定特定職務(wù)的勝任特征(Competency)是培訓(xùn)需求項目評價的新的趨勢之一,勝任特征這一概念是由McClelland于1973提出的[4]。勝任特征模型主要是針對員工個性化表現(xiàn)的一個分析,是指在一項工作或組織中表現(xiàn)優(yōu)異的人和平庸的人分開來的單個人表面層次特征和深層次特征的分析。主要包括在知識、技術(shù)能力、社會角色和自我認(rèn)識概念、特質(zhì)和動機等方面通過測量和計算來顯示區(qū)分優(yōu)異績效和一般績效的個體特征。該模型是綜合來說是企業(yè)定的工作崗位所具備的要求和優(yōu)異績效相關(guān)的一些勝任特征的總合。它主要是強調(diào)培訓(xùn)需求分析和培訓(xùn)的結(jié)果應(yīng)該能提高員工對未來的職位的勝任的特征。
勝任特征模型導(dǎo)入培訓(xùn)項目需求分析中是非常有必要的,因為首先勝任特征的分析是針對員工個性化的分析,有可測量性的特征存在,可以使得整個分析過程更加的標(biāo)準(zhǔn)化和具體化,再次這個模型也很好地補充了Goldstein模型在培訓(xùn)任務(wù)分析方面操作性弱的缺陷,兩者做了很好地補充,模型中對各項分析明確能力標(biāo)準(zhǔn),讓企業(yè)在業(yè)績績效的評估方面也更加簡潔方便。第三是勝任特征的模型使得員工非常容易理解企業(yè)對自己的要求,促使個人建立行動導(dǎo)向的學(xué)習(xí)。
但是勝任特征模型也沒能夠?qū)ζ髽I(yè)的戰(zhàn)略目標(biāo)要求納入分析范圍之內(nèi),沒有重視企業(yè)戰(zhàn)略對是否進(jìn)行培訓(xùn)項目和培訓(xùn)結(jié)果對企業(yè)戰(zhàn)略的影響,這是和差距分析模型是存在一樣的問題的。要知道企業(yè)的戰(zhàn)略目標(biāo)的改變會對員工等個方面也新的要求的,也就是說會長身新的勝任特征需求或者改變原來的勝任特征的要求標(biāo)準(zhǔn),會相應(yīng)的對企業(yè)員工的培訓(xùn)需求帶來不同的要求。在一個方面,勝任特征概念是非常復(fù)雜的,一項工作或者崗位所需要的勝任特征是需要長時間的積累和豐富的技能經(jīng)驗和知識來判斷的,所以說建立勝任特征模型需要要求相當(dāng)專業(yè)的訪談技術(shù)和后期的技術(shù)處理技巧,同時耗費的成本試試非常高的,這也是企業(yè)中人力資源管理部門的水平提出了相當(dāng)高的要求。
3 國內(nèi)培訓(xùn)項目需求分析模型及理論述評
最近幾年,我國的相關(guān)學(xué)術(shù)者在對人力資源開發(fā)的研究分析中,也漸漸地認(rèn)識到培訓(xùn)項目分析對企業(yè)組織的重要性。
我國的學(xué)者在研究借鑒國外培訓(xùn)項目需求分析的理論知識和模型的時候,也進(jìn)行了創(chuàng)新和新的觀點的提出。主要是表現(xiàn)在以下幾個方面:
于苗和孔燕[5]認(rèn)為企業(yè)戰(zhàn)略目標(biāo)與員工培訓(xùn)需求之間存在著密切的聯(lián)系,提出了以戰(zhàn)略為導(dǎo)向的培訓(xùn)項目需求分析模型(如圖4所示)。
這些學(xué)者指出在企業(yè)的發(fā)展壯大的過程中,企業(yè)的經(jīng)營戰(zhàn)略目標(biāo)的選擇和邊和都會影響著員工培訓(xùn)的需求。企業(yè)戰(zhàn)略是一個動態(tài)的變化的概念,企業(yè)在發(fā)展到一定的階段或者為適應(yīng)市場的變化和不斷的進(jìn)行調(diào)整和改變。培訓(xùn)項目需求的分析也會不單單是要求如實的反應(yīng)企業(yè)現(xiàn)在的戰(zhàn)略情況,而且要求具備前瞻性,也就是通過培訓(xùn)要實現(xiàn)預(yù)防和避免一些問題的出現(xiàn),能夠很好地輔助企業(yè)戰(zhàn)略目標(biāo)的布置和實施,促進(jìn)其更好的實現(xiàn)。培訓(xùn)項目需求的分析中以企業(yè)戰(zhàn)略為主要導(dǎo)向,彌補了差距分析模型和前瞻性分析模型的不足和卻像,讓培訓(xùn)項目需求的分析可以轉(zhuǎn)到以組織委重點。但是這個模型目前看來只是從理論上對企業(yè)戰(zhàn)略目標(biāo)和培訓(xùn)項目需求兩者的關(guān)系進(jìn)行了分析,沒有對通過對戰(zhàn)略分析怎么樣轉(zhuǎn)到對員工行為標(biāo)準(zhǔn)培訓(xùn)等方面的實際操作上來,實際上是降低了操作性。另外該模型認(rèn)為培訓(xùn)項目的需求僅僅是來自企業(yè)戰(zhàn)略目標(biāo)的需求和企業(yè)員工的現(xiàn)狀的差異,并沒有對企業(yè)中其他的要素和企業(yè)員工個體化的需求對培訓(xùn)項目需求的影響引起足夠的重視。
馬士斌、黃永華[6]認(rèn)為在培訓(xùn)項目需求的各種影響因素中員工職業(yè)生涯規(guī)劃是很重要的一個方面,培訓(xùn)項目需求分析模型要充分考慮到員工職業(yè)生涯的重要性(如圖5)。
他們認(rèn)為企業(yè)整理利益和員工的利益是有相關(guān)性的,不存在哪個利益重要,企業(yè)和員工是兩個平等的利益主體,并且認(rèn)為企業(yè)的發(fā)展是建立在企業(yè)員工個人利益和員工個人發(fā)張基礎(chǔ)之上的,員工發(fā)展了,企業(yè)才能更好地發(fā)展,認(rèn)為企業(yè)的培訓(xùn)是應(yīng)該和企業(yè)員工的個人職業(yè)規(guī)劃掛鉤的,是分不開的。這個模型主要有三大特點:首先是重視員工個人職業(yè)發(fā)展,將企業(yè)的目標(biāo)需求和員工個人的職業(yè)生涯發(fā)展有效地結(jié)合了起來;其次是考慮到企業(yè)和員工的現(xiàn)有需求和長期發(fā)展的需求,前瞻性的培訓(xùn)項目需求分析也充分的做到位;第三是企業(yè)員工能夠真正的參與到培訓(xùn)項目分析的整個過程中,最主要的培訓(xùn)項目的需求也得到了充分的拓展,更體現(xiàn)了以人為本的思想。
4 國內(nèi)外培訓(xùn)項目需求分析模型及理論比較
國內(nèi)的培訓(xùn)項目需求的分析主要是分析理論知識和模型的結(jié)構(gòu)建設(shè)兩個方面,拓寬了分析的內(nèi)容和分析的角度,但是定性的研究成果分析的比較多,在模型建設(shè)方面的研究比較少,主要是針對培訓(xùn)項目需求分析的效果和內(nèi)容等理論角度分析的比較多,研究的角度也大多是比較宏觀的角度,在微觀角度證明項目培訓(xùn)需求的課題比較少。
在國外,這種培訓(xùn)項目需求的分析,在理論是實踐上都有很多經(jīng)驗,并有很多的成功的范例,這些項目需求分析的成功對我們而言,是一個重要的參考,不過我們也應(yīng)該認(rèn)識到,國外在這一領(lǐng)域的研究雖然比我們成熟,但是也存在一些弊端和局限性。因為在國外的研究中,往往強調(diào)企業(yè)的需求和績效水平在需求中的影響,而對人的作用,也就是企業(yè)員工的發(fā)展并沒有重視起來,另外,由于處在不同的文化環(huán)境中,相對于國外,國內(nèi)的企業(yè)受政府政策的影響要遠(yuǎn)遠(yuǎn)的高于國外,這也使得培訓(xùn)項目需求的來源有很大不同。
參考文獻(xiàn):
[1]Raymond A. Noe, John R.Hollenbeck, Barry Gerhart, Patrick M.Wright, Human Resource Management[M].3rd Edition,北京:清華大學(xué)出版社出版,2000,212.
[2]王鵬,時堪.培訓(xùn)需求評價的研究概況[J].心理學(xué)動態(tài),1998,(4):15-18.
[3]吳瓊瓊.人力資源開發(fā)管理技能[M].北京:華夏出版社,2002,317.
[4]Mc Clelland,S.B,Training needs assessment data-gathering methods: Part 1,survey questionnaires.Journal of European Industrial Training[M].1994a,18,(1):22-26.
關(guān)鍵詞:科研軟件;需求分析;開發(fā)模型;質(zhì)量保障
0引言
隨著科研機構(gòu)、高校承擔(dān)的國家大型科學(xué)工程項目越來越多,在這些大型科學(xué)工程中,軟件起到不可或缺的作用。如中國科學(xué)院高能物理研究所承擔(dān)的硬X射線調(diào)制望遠(yuǎn)鏡項目[1]、BESIII項目[2]中的數(shù)據(jù)采集軟件、探測器和數(shù)據(jù)監(jiān)測軟件是獲得物理成果的基礎(chǔ),而模擬軟件和分析軟件則直接關(guān)系到物理成果的處理和精度。這類軟件項目有較深的物理學(xué)背景,需要使用一些物理分析和設(shè)計方法,實現(xiàn)手段必須符合領(lǐng)域特點。例如,數(shù)據(jù)存儲在粒子物理實驗和空間天體物理實驗中的要求不同,前者主要采用ROOT[3]格式,而后者則以FITS[4]格式為主,開發(fā)所用的常見庫和工具也因數(shù)據(jù)存取格式不同而不同。此外,該類軟件應(yīng)用面較窄,僅限于某一科研領(lǐng)域,其開發(fā)很難由軟件公司承擔(dān),因為軟件公司必須投入大量的學(xué)習(xí)成本,而產(chǎn)品應(yīng)用又受局限。因此,這類軟件的開發(fā)一般由科研院所、高校自行承擔(dān)。然而,目前我國軟件整體實力與創(chuàng)新性還不強,人才結(jié)構(gòu)也需要改善[5],一些從事基礎(chǔ)研究的機構(gòu),軟件人才緊缺,且缺乏軟件開發(fā)管理經(jīng)驗,造成軟件質(zhì)量不高??蒲袡C構(gòu)從事軟件開發(fā)的科研人員學(xué)習(xí)能力強,熱衷于追求新技術(shù),如果在方法上給予指導(dǎo),可幫助其開發(fā)出高質(zhì)量的軟件。依托大型工程培養(yǎng)所需的軟件人才,不僅有利于大型工程項目的實施,而且還能為國家培養(yǎng)大批軟件人才。本文結(jié)合該類軟件項目的特點和科研機構(gòu)現(xiàn)狀,探討其軟件開發(fā)特點,并提出流程管理和質(zhì)量保障措施。
1科研領(lǐng)域軟件開發(fā)及其特點
1.1軟件項目特點
(1)軟件提出者。一般是項目科學(xué)家、顧問,他們具有較強的科學(xué)洞察力,也能較好地把握軟件開發(fā)方向,但他們大多只關(guān)注宏觀問題,而非技術(shù)細(xì)節(jié),對軟件不是很了解,不能用計算機語言和思維描述項目,也無法很好地理解和描述實現(xiàn)流程、細(xì)節(jié),因此不能準(zhǔn)確估計軟件開發(fā)難度和工作量。
(2)軟件開發(fā)者。一般為青年職工和學(xué)生,他們熟悉軟件開發(fā),但往往不能完全理解項目目標(biāo),也不能深刻理解其物理過程,理解過程中往往思維局限性大,缺乏方向。
(3)軟件測試者。多數(shù)情況下單元測試由開發(fā)者承擔(dān),集成或系統(tǒng)測試由其他人員完成,部分由用戶完成。與開發(fā)人員相比,測試人員往往物理基礎(chǔ)較好,掌握基本測試方法,但是沒有建立起完整的測試體系,而且將軟件測試當(dāng)作“副業(yè)”,測試以功能實現(xiàn)為主,對軟件細(xì)節(jié)不了解。
(4)用戶。用戶一般是物理工作者,他們熟悉研究領(lǐng)域的物理要求,但不能用計算機語言描述需求,往往需求不實際或不夠明確。他們對軟件要求較高,要求通過物理測試對軟件性能和輸出結(jié)果精度進(jìn)行測試。如通過運行大數(shù)據(jù)量檢查軟件內(nèi)存和時間消耗,以促進(jìn)開發(fā)者進(jìn)行算法優(yōu)化等。
1.2軟件項目開發(fā)特點
(1)軟件需求不夠明確??蒲蓄I(lǐng)域軟件項目一般都涉及到探測器和數(shù)據(jù),涉及領(lǐng)域較廣,而且需求不斷變化。無論是軟件提出者還是用戶,往往難以用計算機思維或語言清楚描述問題;軟件開發(fā)者對項目物理目標(biāo),特別是物理過程缺乏深刻理解,不能很好地理解軟件功能細(xì)節(jié)及需求。比如,對于一些數(shù)據(jù)分析軟件,提出者或用戶難以描述出軟件需要完成的功能,而開發(fā)者對數(shù)據(jù)處理流程中進(jìn)行的數(shù)據(jù)轉(zhuǎn)換、修正、數(shù)據(jù)結(jié)構(gòu)重組也缺乏深刻理解。
(2)人員結(jié)構(gòu)較為單一。軟件開發(fā)中通常一人需要承擔(dān)多種角色,包括軟件需求分析員、設(shè)計者和開發(fā)者,甚至測試者。這樣的職位設(shè)定,人員分工不明確,難以深入把握某一領(lǐng)域(比如測試)的特點和方法,從而影響了整個軟件開發(fā)過程。
(3)軟件實現(xiàn)細(xì)節(jié)難以把握。此類軟件一般涉及復(fù)雜的物理過程,需要用一定的物理方法解決,但方法并不唯一,不同方法會對結(jié)果帶來一定影響,而且不同類型數(shù)據(jù)所依賴的方法也不同。軟件開發(fā)中還有些研究性課題,只能以接口形式存在于軟件中,但預(yù)留接口時往往設(shè)計較為簡單,考慮的情況過于理想,難以滿足實際需求。然而,如果設(shè)計時考慮得比較復(fù)雜,接口較多,又往往缺乏必要的軟件技術(shù)和經(jīng)驗,不能有效把握細(xì)節(jié)。
(4)硬件頻繁改動增加軟件開發(fā)風(fēng)險。軟件依賴于硬件,設(shè)計初期軟件是在理想的硬件設(shè)計狀態(tài)下運行,但如果硬件發(fā)生變更或者運行影響因素增加,軟件也隨之變動,從而加大開發(fā)風(fēng)險。
(5)軟件測試及評估缺乏專業(yè)水平。由于開發(fā)者、測試者與用戶的專業(yè)測試能力都比較欠缺,難以涉及到核心質(zhì)量問題,往往無法全面對軟件作出專業(yè)評估。
(6)人員管理難度大??蒲袡C構(gòu)、高校一般熱衷于科學(xué)研究而不是工程項目本身,因此難以兼顧兩方面工作。軟件提出者和管理人員往往對軟件工程缺乏深入了解,難以對開發(fā)工作作出客觀評價,因此對軟件開發(fā)的進(jìn)度和質(zhì)量帶來一定影響。
(7)軟件不確定性因素多。隨著工程實施,軟件提出者、用戶會不斷改變、增加需求,加上開發(fā)者及測試者缺乏相關(guān)經(jīng)驗,代碼開發(fā)不規(guī)范、開發(fā)人員流動性強等增加了軟件開發(fā)的不穩(wěn)定性。另外,為降低開發(fā)成本和難度,開發(fā)人員通常會引入現(xiàn)成的工具,這可能給軟件開發(fā)帶來隱患。然而,面向某一科研領(lǐng)域的軟件開發(fā)項目也有自身的優(yōu)勢。如和大型專業(yè)軟件相比,所需的項目功能不是特別多,部分開發(fā)平臺具有可移植性,開發(fā)人員綜合素質(zhì)較高,學(xué)習(xí)能力強,英語基礎(chǔ)較好。此外,很多工程與國外合作開發(fā),可參考國外成熟軟件,并方便引進(jìn)一些免費的軟件框架和平臺,如Gaudi[6]框架、天文分析工具庫Ftool[7]等。
2軟件開發(fā)流程管理
2.1確定軟件開發(fā)模型
科研機構(gòu),尤其是一些缺少經(jīng)驗的團隊,習(xí)慣采用瀑布模型進(jìn)行開發(fā),主要由于該模型分階段,且各階段間存在因果關(guān)系,比較符合思維模式。但它會產(chǎn)生大量文檔,到開發(fā)后期會凸顯軟件開發(fā)缺陷。適合科研領(lǐng)域的開發(fā)模型有迭代式模型[8-9](需求變更驅(qū)動型)、增量模型(功能驅(qū)動型)及快速原型開發(fā)[10]等。對于科研軟件而言,模型選擇需綜合考慮軟件框架穩(wěn)定性和開放性、構(gòu)件獨立性以及項目組開發(fā)經(jīng)驗等。比如對于需求不明確、流程不清晰、算法不確定的項目(如數(shù)據(jù)處理軟件、分析軟件和標(biāo)定軟件等)采用迭代模型或者快速原型開發(fā)較好。此外,采用一種模型為主,其它模型為輔,也會得到很好的效果。
2.2加強開發(fā)流程控制
無論采用何種開發(fā)模型,開發(fā)人員必須在每一次開發(fā)或迭代中完整實現(xiàn)需求分析、設(shè)計、編碼和測試等步驟。各階段的評審或項目報告尤為重要,項目前期要確保軟件開發(fā)人員準(zhǔn)確理解項目需求以及軟硬件環(huán)境;中期階段要確保開發(fā)流程和方法可靠;后期要通過測試確保軟件運行符合要求。
2.3需求分析中注重物理分析
科研軟件中一般涉及大量數(shù)據(jù)操作,而且過程比較復(fù)雜,一些原始數(shù)據(jù)要經(jīng)過轉(zhuǎn)換、重建、標(biāo)定及修正等步驟,而且處理不一定是線性的,即相鄰數(shù)據(jù)之間可能有關(guān)聯(lián)。這些功能和性能需求不容易明確,需要著重把握。軟件中還可能涉及一些物理算法(比如圖像修正、頻率分解等),因此在需求分析中需要著重進(jìn)行物理分析,包括流程梳理、特殊方法和條件選擇等。
2.4采用串行開發(fā)方式
科研機構(gòu)人員結(jié)構(gòu)比較單一,往往多項工作并行執(zhí)行,給軟件開發(fā)質(zhì)量提升及人才培養(yǎng)帶來不利影響,可將相關(guān)性比較強的軟件以串行方式開發(fā),數(shù)據(jù)產(chǎn)品生成軟件和數(shù)據(jù)分析軟件可以依次開發(fā)。
2.5提高開發(fā)人員的主觀能動性
軟件開發(fā)過程中,保障軟件項目負(fù)責(zé)人在經(jīng)費使用及績效考核中的話語權(quán),組建凝聚力強的研發(fā)團隊,對軟件開發(fā)的進(jìn)度、質(zhì)量進(jìn)行考核。
3軟件質(zhì)量保障措施
(1)加強開發(fā)過程中的溝通??蒲许椖康牟淮_定性帶來軟件開發(fā)需求的變動,用戶往往只注重項目需求功能滿足,而不關(guān)心軟件的實現(xiàn)細(xì)節(jié),所提出的功能或接口可能不切實際,因此需要加強與用戶的溝通,明確軟件開發(fā)目標(biāo)。
(2)充分調(diào)動開發(fā)人員積極性??蒲袡C構(gòu)軟件開發(fā)人員往往是科研項目的幕后工作者,其工作成果容易被科研項目成果所掩蓋,所以充分調(diào)動軟件開發(fā)人員的工作積極性尤為必要。一方面,為其提供成果展示平臺,尤其是展示創(chuàng)新性成果,如將開發(fā)中的文檔整理成冊等;另一方面,在基金申請、職稱評定等方面提供支持??蒲袡C構(gòu)職稱評定主要依據(jù)取得的科研成果,由于工作內(nèi)容不同,如采取同樣的評審條件,軟件開發(fā)人員與其他研究人員在同一層次上競爭將缺乏競爭力。可能導(dǎo)致部分人員不愿意從事軟件開發(fā)工作,或者開發(fā)軟件的同時還從事其它研究,從而影響軟件開發(fā)進(jìn)度和質(zhì)量。因此,需要根據(jù)軟件開發(fā)人員工作的特殊性,通過有效的激勵措施調(diào)動其積極性。
(3)培養(yǎng)既懂管理又懂技術(shù)的項目負(fù)責(zé)人。優(yōu)秀的軟件工程項目負(fù)責(zé)人不僅是一個好的軟件設(shè)計師,對軟件實現(xiàn)細(xì)節(jié)能夠很好的掌控,還是一名優(yōu)秀的管理者,能科學(xué)配置資源。
4結(jié)語
面向科研領(lǐng)域的軟件具有較深的行業(yè)背景,其設(shè)計方法、實現(xiàn)手段有很強的領(lǐng)域依賴性。本文從科研領(lǐng)域特點及軟件提出者、開發(fā)者、測試者、用戶的角度出發(fā),探討了其需求難以明確、人員結(jié)構(gòu)較單一且管理難度大的特點。在軟件開發(fā)管理過程中,需要采用合適的軟件開發(fā)模型,注重流程管理,充分調(diào)動開發(fā)人員的工作積極性。
參考文獻(xiàn):
[1]LITIPEI,WUMEI.ThehardX-raymodulationtelescopemission[J].Physics,2008,37(9):648-651.
[2]LITIPEI.HXMT:achinesehigh-energyastrophysicsmission[J].NuclearPhysicsB,2007(166):131-139.
[3]BESCOLLABORATION.PreliminarydesignreportoftheBESIIIDetector[Z].2003.
[4]TheROOTTeam.ROOTuser'sguide[EB/OL].https://root.cern.ch/drupal/content/users-guide.
[5]WELLSDC,GREISENEW,HARTENRH.FITS:aflexibleim-agetransportsystem[J].A&AS,1981,(44):363-370.
[6]APrimerontheFITSDataFormat[EB/OL].http://fits.gsfc.nasa.gov/fits_primer.html.
[7]劉麗梅.中國軟件產(chǎn)業(yè)市場競爭力分析[M].北京:對外經(jīng)濟貿(mào)易大學(xué),2007.
[8]BARRANDG.Gaudi-asoftwareconfigurationmanagementtool[C].ProceedingofCHEP2000,2000.
[9]FTOOLS.Ageneralpackageofsoftwaretomanipulatefitsfiles[EB/OL].http://heasarc.gsfc.nasa.gov/docs/software/ftools/ftools_menu.html.
[10]張?;O.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2005.
[11]師迎海,何雪慧.迭代式軟件開發(fā)模型研究及應(yīng)用[J].微處理機,2015(1):55-57.