軟件工程項(xiàng)目管理需求分析論文
在軟件工程中,需求分析是一個(gè)重要的部分,它是軟件工程和項(xiàng)目管理的基礎(chǔ),是聯(lián)系客戶與開發(fā)者的紐帶。下面是小編搜集整理的相關(guān)內(nèi)容的論文,歡迎大家閱讀參考。
摘要:
科研機(jī)構(gòu)、高校承擔(dān)的大型科研工程越來(lái)越多,軟件在工程項(xiàng)目中扮演著重要角色。結(jié)合科研領(lǐng)域軟件開發(fā)特點(diǎn),介紹軟件開發(fā)流程管理及質(zhì)量保障措施等,可為科研軟件的質(zhì)量提高及創(chuàng)新提供一定借鑒。
關(guān)鍵詞:
科研軟件;需求分析;開發(fā)模型;質(zhì)量保障
引言
1.隨著科研機(jī)構(gòu)、高校承擔(dān)的國(guó)家大型科學(xué)工程項(xiàng)目越來(lái)越多,在這些大型科學(xué)工程中,軟件起到不可或缺的作用。如中國(guó)科學(xué)院高能物理研究所承擔(dān)的硬X射線調(diào)制望遠(yuǎn)鏡項(xiàng)目[1]、BESIII項(xiàng)目[2]中的數(shù)據(jù)采集軟件、探測(cè)器和數(shù)據(jù)監(jiān)測(cè)軟件是獲得物理成果的基礎(chǔ),而模擬軟件和分析軟件則直接關(guān)系到物理成果的處理和精度。這類軟件項(xiàng)目有較深的物理學(xué)背景,需要使用一些物理分析和設(shè)計(jì)方法,實(shí)現(xiàn)手段必須符合領(lǐng)域特點(diǎn)。
2.例如,數(shù)據(jù)存儲(chǔ)在粒子物理實(shí)驗(yàn)和空間天體物理實(shí)驗(yàn)中的要求不同,前者主要采用ROOT[3]格式,而后者則以FITS[4]格式為主,開發(fā)所用的常見庫(kù)和工具也因數(shù)據(jù)存取格式不同而不同。此外,該類軟件應(yīng)用面較窄,僅限于某一科研領(lǐng)域,其開發(fā)很難由軟件公司承擔(dān),因?yàn)檐浖颈仨毻度氪罅康膶W(xué)習(xí)成本,而產(chǎn)品應(yīng)用又受局限。因此,這類軟件的開發(fā)一般由科研院所、高校自行承擔(dān)。
3.然而,目前我國(guó)軟件整體實(shí)力與創(chuàng)新性還不強(qiáng),人才結(jié)構(gòu)也需要改善[5],一些從事基礎(chǔ)研究的機(jī)構(gòu),軟件人才緊缺,且缺乏軟件開發(fā)管理經(jīng)驗(yàn),造成軟件質(zhì)量不高?蒲袡C(jī)構(gòu)從事軟件開發(fā)的科研人員學(xué)習(xí)能力強(qiáng),熱衷于追求新技術(shù),如果在方法上給予指導(dǎo),可幫助其開發(fā)出高質(zhì)量的軟件。依托大型工程培養(yǎng)所需的軟件人才,不僅有利于大型工程項(xiàng)目的實(shí)施,而且還能為國(guó)家培養(yǎng)大批軟件人才。本文結(jié)合該類軟件項(xiàng)目的特點(diǎn)和科研機(jī)構(gòu)現(xiàn)狀,探討其軟件開發(fā)特點(diǎn),并提出流程管理和質(zhì)量保障措施。
一、科研領(lǐng)域軟件開發(fā)及其特點(diǎn)
1.1軟件項(xiàng)目特點(diǎn)
(1)軟件提出者。一般是項(xiàng)目科學(xué)家、顧問(wèn),他們具有較強(qiáng)的科學(xué)洞察力,也能較好地把握軟件開發(fā)方向,但他們大多只關(guān)注宏觀問(wèn)題,而非技術(shù)細(xì)節(jié),對(duì)軟件不是很了解,不能用計(jì)算機(jī)語(yǔ)言和思維描述項(xiàng)目,也無(wú)法很好地理解和描述實(shí)現(xiàn)流程、細(xì)節(jié),因此不能準(zhǔn)確估計(jì)軟件開發(fā)難度和工作量。
(2)軟件開發(fā)者。一般為青年職工和學(xué)生,他們熟悉軟件開發(fā),但往往不能完全理解項(xiàng)目目標(biāo),也不能深刻理解其物理過(guò)程,理解過(guò)程中往往思維局限性大,缺乏方向。
(3)軟件測(cè)試者。多數(shù)情況下單元測(cè)試由開發(fā)者承擔(dān),集成或系統(tǒng)測(cè)試由其他人員完成,部分由用戶完成。與開發(fā)人員相比,測(cè)試人員往往物理基礎(chǔ)較好,掌握基本測(cè)試方法,但是沒有建立起完整的測(cè)試體系,而且將軟件測(cè)試當(dāng)作“副業(yè)”,測(cè)試以功能實(shí)現(xiàn)為主,對(duì)軟件細(xì)節(jié)不了解。
(4)用戶。用戶一般是物理工作者,他們熟悉研究領(lǐng)域的物理要求,但不能用計(jì)算機(jī)語(yǔ)言描述需求,往往需求不實(shí)際或不夠明確。他們對(duì)軟件要求較高,要求通過(guò)物理測(cè)試對(duì)軟件性能和輸出結(jié)果精度進(jìn)行測(cè)試。如通過(guò)運(yùn)行大數(shù)據(jù)量檢查軟件內(nèi)存和時(shí)間消耗,以促進(jìn)開發(fā)者進(jìn)行算法優(yōu)化等。
1.2軟件項(xiàng)目開發(fā)特點(diǎn)
(1)軟件需求不夠明確。科研領(lǐng)域軟件項(xiàng)目一般都涉及到探測(cè)器和數(shù)據(jù),涉及領(lǐng)域較廣,而且需求不斷變化。無(wú)論是軟件提出者還是用戶,往往難以用計(jì)算機(jī)思維或語(yǔ)言清楚描述問(wèn)題;軟件開發(fā)者對(duì)項(xiàng)目物理目標(biāo),特別是物理過(guò)程缺乏深刻理解,不能很好地理解軟件功能細(xì)節(jié)及需求。比如,對(duì)于一些數(shù)據(jù)分析軟件,提出者或用戶難以描述出軟件需要完成的功能,而開發(fā)者對(duì)數(shù)據(jù)處理流程中進(jìn)行的數(shù)據(jù)轉(zhuǎn)換、修正、數(shù)據(jù)結(jié)構(gòu)重組也缺乏深刻理解。
(2)人員結(jié)構(gòu)較為單一。軟件開發(fā)中通常一人需要承擔(dān)多種角色,包括軟件需求分析員、設(shè)計(jì)者和開發(fā)者,甚至測(cè)試者。這樣的職位設(shè)定,人員分工不明確,難以深入把握某一領(lǐng)域(比如測(cè)試)的特點(diǎn)和方法,從而影響了整個(gè)軟件開發(fā)過(guò)程。
(3)軟件實(shí)現(xiàn)細(xì)節(jié)難以把握。此類軟件一般涉及復(fù)雜的物理過(guò)程,需要用一定的物理方法解決,但方法并不唯一,不同方法會(huì)對(duì)結(jié)果帶來(lái)一定影響,而且不同類型數(shù)據(jù)所依賴的方法也不同。軟件開發(fā)中還有些研究性課題,只能以接口形式存在于軟件中,但預(yù)留接口時(shí)往往設(shè)計(jì)較為簡(jiǎn)單,考慮的情況過(guò)于理想,難以滿足實(shí)際需求。然而,如果設(shè)計(jì)時(shí)考慮得比較復(fù)雜,接口較多,又往往缺乏必要的軟件技術(shù)和經(jīng)驗(yàn),不能有效把握細(xì)節(jié)。
(4)硬件頻繁改動(dòng)增加軟件開發(fā)風(fēng)險(xiǎn)。軟件依賴于硬件,設(shè)計(jì)初期軟件是在理想的硬件設(shè)計(jì)狀態(tài)下運(yùn)行,但如果硬件發(fā)生變更或者運(yùn)行影響因素增加,軟件也隨之變動(dòng),從而加大開發(fā)風(fēng)險(xiǎn)。
(5)軟件測(cè)試及評(píng)估缺乏專業(yè)水平。由于開發(fā)者、測(cè)試者與用戶的專業(yè)測(cè)試能力都比較欠缺,難以涉及到核心質(zhì)量問(wèn)題,往往無(wú)法全面對(duì)軟件作出專業(yè)評(píng)估。
(6)人員管理難度大?蒲袡C(jī)構(gòu)、高校一般熱衷于科學(xué)研究而不是工程項(xiàng)目本身,因此難以兼顧兩方面工作。軟件提出者和管理人員往往對(duì)軟件工程缺乏深入了解,難以對(duì)開發(fā)工作作出客觀評(píng)價(jià),因此對(duì)軟件開發(fā)的進(jìn)度和質(zhì)量帶來(lái)一定影響。
(7)軟件不確定性因素多。隨著工程實(shí)施,軟件提出者、用戶會(huì)不斷改變、增加需求,加上開發(fā)者及測(cè)試者缺乏相關(guān)經(jīng)驗(yàn),代碼開發(fā)不規(guī)范、開發(fā)人員流動(dòng)性強(qiáng)等增加了軟件開發(fā)的.不穩(wěn)定性。另外,為降低開發(fā)成本和難度,開發(fā)人員通常會(huì)引入現(xiàn)成的工具,這可能給軟件開發(fā)帶來(lái)隱患。然而,面向某一科研領(lǐng)域的軟件開發(fā)項(xiàng)目也有自身的優(yōu)勢(shì)。如和大型專業(yè)軟件相比,所需的項(xiàng)目功能不是特別多,部分開發(fā)平臺(tái)具有可移植性,開發(fā)人員綜合素質(zhì)較高,學(xué)習(xí)能力強(qiáng),英語(yǔ)基礎(chǔ)較好。此外,很多工程與國(guó)外合作開發(fā),可參考國(guó)外成熟軟件,并方便引進(jìn)一些免費(fèi)的軟件框架和平臺(tái),如Gaudi[6]框架、天文分析工具庫(kù)Ftool[7]等。
二、軟件開發(fā)流程管理
2.1確定軟件開發(fā)模型
科研機(jī)構(gòu),尤其是一些缺少經(jīng)驗(yàn)的團(tuán)隊(duì),習(xí)慣采用瀑布模型進(jìn)行開發(fā),主要由于該模型分階段,且各階段間存在因果關(guān)系,比較符合思維模式。但它會(huì)產(chǎn)生大量文檔,到開發(fā)后期會(huì)凸顯軟件開發(fā)缺陷。適合科研領(lǐng)域的開發(fā)模型有迭代式模型[8-9](需求變更驅(qū)動(dòng)型)、增量模型(功能驅(qū)動(dòng)型)及快速原型開發(fā)[10]等。對(duì)于科研軟件而言,模型選擇需綜合考慮軟件框架穩(wěn)定性和開放性、構(gòu)件獨(dú)立性以及項(xiàng)目組開發(fā)經(jīng)驗(yàn)等。比如對(duì)于需求不明確、流程不清晰、算法不確定的項(xiàng)目(如數(shù)據(jù)處理軟件、分析軟件和標(biāo)定軟件等)采用迭代模型或者快速原型開發(fā)較好。此外,采用一種模型為主,其它模型為輔,也會(huì)得到很好的效果。
2.2加強(qiáng)開發(fā)流程控制
無(wú)論采用何種開發(fā)模型,開發(fā)人員必須在每一次開發(fā)或迭代中完整實(shí)現(xiàn)需求分析、設(shè)計(jì)、編碼和測(cè)試等步驟。各階段的評(píng)審或項(xiàng)目報(bào)告尤為重要,項(xiàng)目前期要確保軟件開發(fā)人員準(zhǔn)確理解項(xiàng)目需求以及軟硬件環(huán)境;中期階段要確保開發(fā)流程和方法可靠;后期要通過(guò)測(cè)試確保軟件運(yùn)行符合要求。
2.3需求分析中注重物理分析
科研軟件中一般涉及大量數(shù)據(jù)操作,而且過(guò)程比較復(fù)雜,一些原始數(shù)據(jù)要經(jīng)過(guò)轉(zhuǎn)換、重建、標(biāo)定及修正等步驟,而且處理不一定是線性的,即相鄰數(shù)據(jù)之間可能有關(guān)聯(lián)。這些功能和性能需求不容易明確,需要著重把握。軟件中還可能涉及一些物理算法(比如圖像修正、頻率分解等),因此在需求分析中需要著重進(jìn)行物理分析,包括流程梳理、特殊方法和條件選擇等。
2.4采用串行開發(fā)方式
科研機(jī)構(gòu)人員結(jié)構(gòu)比較單一,往往多項(xiàng)工作并行執(zhí)行,給軟件開發(fā)質(zhì)量提升及人才培養(yǎng)帶來(lái)不利影響,可將相關(guān)性比較強(qiáng)的軟件以串行方式開發(fā),數(shù)據(jù)產(chǎn)品生成軟件和數(shù)據(jù)分析軟件可以依次開發(fā)。
2.5提高開發(fā)人員的主觀能動(dòng)性
軟件開發(fā)過(guò)程中,保障軟件項(xiàng)目負(fù)責(zé)人在經(jīng)費(fèi)使用及績(jī)效考核中的話語(yǔ)權(quán),組建凝聚力強(qiáng)的研發(fā)團(tuán)隊(duì),對(duì)軟件開發(fā)的進(jìn)度、質(zhì)量進(jìn)行考核。
三、軟件質(zhì)量保障措施
(1)加強(qiáng)開發(fā)過(guò)程中的溝通。科研項(xiàng)目的不確定性帶來(lái)軟件開發(fā)需求的變動(dòng),用戶往往只注重項(xiàng)目需求功能滿足,而不關(guān)心軟件的實(shí)現(xiàn)細(xì)節(jié),所提出的功能或接口可能不切實(shí)際,因此需要加強(qiáng)與用戶的溝通,明確軟件開發(fā)目標(biāo)。
(2)充分調(diào)動(dòng)開發(fā)人員積極性?蒲袡C(jī)構(gòu)軟件開發(fā)人員往往是科研項(xiàng)目的幕后工作者,其工作成果容易被科研項(xiàng)目成果所掩蓋,所以充分調(diào)動(dòng)軟件開發(fā)人員的工作積極性尤為必要。一方面,為其提供成果展示平臺(tái),尤其是展示創(chuàng)新性成果,如將開發(fā)中的文檔整理成冊(cè)等;另一方面,在基金申請(qǐng)、職稱評(píng)定等方面提供支持?蒲袡C(jī)構(gòu)職稱評(píng)定主要依據(jù)取得的科研成果,由于工作內(nèi)容不同,如采取同樣的評(píng)審條件,軟件開發(fā)人員與其他研究人員在同一層次上競(jìng)爭(zhēng)將缺乏競(jìng)爭(zhēng)力?赡軐(dǎo)致部分人員不愿意從事軟件開發(fā)工作,或者開發(fā)軟件的同時(shí)還從事其它研究,從而影響軟件開發(fā)進(jìn)度和質(zhì)量。因此,需要根據(jù)軟件開發(fā)人員工作的特殊性,通過(guò)有效的激勵(lì)措施調(diào)動(dòng)其積極性。
(3)培養(yǎng)既懂管理又懂技術(shù)的項(xiàng)目負(fù)責(zé)人。優(yōu)秀的軟件工程項(xiàng)目負(fù)責(zé)人不僅是一個(gè)好的軟件設(shè)計(jì)師,對(duì)軟件實(shí)現(xiàn)細(xì)節(jié)能夠很好的掌控,還是一名優(yōu)秀的管理者,能科學(xué)配置資源。
四、結(jié)語(yǔ)
面向科研領(lǐng)域的軟件具有較深的行業(yè)背景,其設(shè)計(jì)方法、實(shí)現(xiàn)手段有很強(qiáng)的領(lǐng)域依賴性。本文從科研領(lǐng)域特點(diǎn)及軟件提出者、開發(fā)者、測(cè)試者、用戶的角度出發(fā),探討了其需求難以明確、人員結(jié)構(gòu)較單一且管理難度大的特點(diǎn)。在軟件開發(fā)管理過(guò)程中,需要采用合適的軟件開發(fā)模型,注重流程管理,充分調(diào)動(dòng)開發(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.ROOTusersguide[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]劉麗梅.中國(guó)軟件產(chǎn)業(yè)市場(chǎng)競(jìng)爭(zhēng)力分析[M].北京:對(duì)外經(jīng)濟(jì)貿(mào)易大學(xué),2007.
[8]BARRANDG.Gaudi-asoftwareconfigurationmanagementtool[C].ProceedingofCHEP2000,2000.
[9]FTOOLS.Ageneralpackageofsoftwaretomanipulatefitsfiles[EB/OL].
[10]張;O.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2005.
[11]師迎海,何雪慧.迭代式軟件開發(fā)模型研究及應(yīng)用[J].微處理機(jī),2015(1):55-57.
[12]劉玉仁,董震曜.快速原型法在軟件設(shè)計(jì)中的應(yīng)用[J].光電對(duì)抗與無(wú)線干擾,2002(4):6-9.
【軟件工程項(xiàng)目管理需求分析論文】相關(guān)文章: