网站首页
教育杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
医学杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
经济杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
金融杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
管理杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
科技杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
工业杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
SCI杂志
中科院1区 中科院2区 中科院3区 中科院4区
全部期刊
公務員期刊網 論文中心 正文

軟件工程項目管理需求分析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程項目管理需求分析范文,希望能給你帶來靈感和參考,敬請閱讀。

摘要:科研機構、高校承擔的大型科研工程越來越多,軟件在工程項目中扮演著重要角色。結合科研領域軟件開發(fā)特點,介紹軟件開發(fā)流程管理及質量保障措施等,可為科研軟件的質量提高及創(chuàng)新提供一定借鑒。

關鍵詞:科研軟件;需求分析;開發(fā)模型;質量保障

0引言

隨著科研機構、高校承擔的國家大型科學工程項目越來越多,在這些大型科學工程中,軟件起到不可或缺的作用。如中國科學院高能物理研究所承擔的硬X射線調制望遠鏡項目[1]、BESIII項目[2]中的數據采集軟件、探測器和數據監(jiān)測軟件是獲得物理成果的基礎,而模擬軟件和分析軟件則直接關系到物理成果的處理和精度。這類軟件項目有較深的物理學背景,需要使用一些物理分析和設計方法,實現手段必須符合領域特點。例如,數據存儲在粒子物理實驗和空間天體物理實驗中的要求不同,前者主要采用ROOT[3]格式,而后者則以FITS[4]格式為主,開發(fā)所用的常見庫和工具也因數據存取格式不同而不同。此外,該類軟件應用面較窄,僅限于某一科研領域,其開發(fā)很難由軟件公司承擔,因為軟件公司必須投入大量的學習成本,而產品應用又受局限。因此,這類軟件的開發(fā)一般由科研院所、高校自行承擔。然而,目前我國軟件整體實力與創(chuàng)新性還不強,人才結構也需要改善[5],一些從事基礎研究的機構,軟件人才緊缺,且缺乏軟件開發(fā)管理經驗,造成軟件質量不高??蒲袡C構從事軟件開發(fā)的科研人員學習能力強,熱衷于追求新技術,如果在方法上給予指導,可幫助其開發(fā)出高質量的軟件。依托大型工程培養(yǎng)所需的軟件人才,不僅有利于大型工程項目的實施,而且還能為國家培養(yǎng)大批軟件人才。本文結合該類軟件項目的特點和科研機構現狀,探討其軟件開發(fā)特點,并提出流程管理和質量保障措施。

1科研領域軟件開發(fā)及其特點

1.1軟件項目特點

(1)軟件提出者。一般是項目科學家、顧問,他們具有較強的科學洞察力,也能較好地把握軟件開發(fā)方向,但他們大多只關注宏觀問題,而非技術細節(jié),對軟件不是很了解,不能用計算機語言和思維描述項目,也無法很好地理解和描述實現流程、細節(jié),因此不能準確估計軟件開發(fā)難度和工作量。

(2)軟件開發(fā)者。一般為青年職工和學生,他們熟悉軟件開發(fā),但往往不能完全理解項目目標,也不能深刻理解其物理過程,理解過程中往往思維局限性大,缺乏方向。

(3)軟件測試者。多數情況下單元測試由開發(fā)者承擔,集成或系統(tǒng)測試由其他人員完成,部分由用戶完成。與開發(fā)人員相比,測試人員往往物理基礎較好,掌握基本測試方法,但是沒有建立起完整的測試體系,而且將軟件測試當作“副業(yè)”,測試以功能實現為主,對軟件細節(jié)不了解。

(4)用戶。用戶一般是物理工作者,他們熟悉研究領域的物理要求,但不能用計算機語言描述需求,往往需求不實際或不夠明確。他們對軟件要求較高,要求通過物理測試對軟件性能和輸出結果精度進行測試。如通過運行大數據量檢查軟件內存和時間消耗,以促進開發(fā)者進行算法優(yōu)化等。

1.2軟件項目開發(fā)特點

(1)軟件需求不夠明確??蒲蓄I域軟件項目一般都涉及到探測器和數據,涉及領域較廣,而且需求不斷變化。無論是軟件提出者還是用戶,往往難以用計算機思維或語言清楚描述問題;軟件開發(fā)者對項目物理目標,特別是物理過程缺乏深刻理解,不能很好地理解軟件功能細節(jié)及需求。比如,對于一些數據分析軟件,提出者或用戶難以描述出軟件需要完成的功能,而開發(fā)者對數據處理流程中進行的數據轉換、修正、數據結構重組也缺乏深刻理解。

(2)人員結構較為單一。軟件開發(fā)中通常一人需要承擔多種角色,包括軟件需求分析員、設計者和開發(fā)者,甚至測試者。這樣的職位設定,人員分工不明確,難以深入把握某一領域(比如測試)的特點和方法,從而影響了整個軟件開發(fā)過程。

(3)軟件實現細節(jié)難以把握。此類軟件一般涉及復雜的物理過程,需要用一定的物理方法解決,但方法并不唯一,不同方法會對結果帶來一定影響,而且不同類型數據所依賴的方法也不同。軟件開發(fā)中還有些研究性課題,只能以接口形式存在于軟件中,但預留接口時往往設計較為簡單,考慮的情況過于理想,難以滿足實際需求。然而,如果設計時考慮得比較復雜,接口較多,又往往缺乏必要的軟件技術和經驗,不能有效把握細節(jié)。

(4)硬件頻繁改動增加軟件開發(fā)風險。軟件依賴于硬件,設計初期軟件是在理想的硬件設計狀態(tài)下運行,但如果硬件發(fā)生變更或者運行影響因素增加,軟件也隨之變動,從而加大開發(fā)風險。

(5)軟件測試及評估缺乏專業(yè)水平。由于開發(fā)者、測試者與用戶的專業(yè)測試能力都比較欠缺,難以涉及到核心質量問題,往往無法全面對軟件作出專業(yè)評估。

(6)人員管理難度大??蒲袡C構、高校一般熱衷于科學研究而不是工程項目本身,因此難以兼顧兩方面工作。軟件提出者和管理人員往往對軟件工程缺乏深入了解,難以對開發(fā)工作作出客觀評價,因此對軟件開發(fā)的進度和質量帶來一定影響。

(7)軟件不確定性因素多。隨著工程實施,軟件提出者、用戶會不斷改變、增加需求,加上開發(fā)者及測試者缺乏相關經驗,代碼開發(fā)不規(guī)范、開發(fā)人員流動性強等增加了軟件開發(fā)的不穩(wěn)定性。另外,為降低開發(fā)成本和難度,開發(fā)人員通常會引入現成的工具,這可能給軟件開發(fā)帶來隱患。然而,面向某一科研領域的軟件開發(fā)項目也有自身的優(yōu)勢。如和大型專業(yè)軟件相比,所需的項目功能不是特別多,部分開發(fā)平臺具有可移植性,開發(fā)人員綜合素質較高,學習能力強,英語基礎較好。此外,很多工程與國外合作開發(fā),可參考國外成熟軟件,并方便引進一些免費的軟件框架和平臺,如Gaudi[6]框架、天文分析工具庫Ftool[7]等。

2軟件開發(fā)流程管理

2.1確定軟件開發(fā)模型

科研機構,尤其是一些缺少經驗的團隊,習慣采用瀑布模型進行開發(fā),主要由于該模型分階段,且各階段間存在因果關系,比較符合思維模式。但它會產生大量文檔,到開發(fā)后期會凸顯軟件開發(fā)缺陷。適合科研領域的開發(fā)模型有迭代式模型[8-9](需求變更驅動型)、增量模型(功能驅動型)及快速原型開發(fā)[10]等。對于科研軟件而言,模型選擇需綜合考慮軟件框架穩(wěn)定性和開放性、構件獨立性以及項目組開發(fā)經驗等。比如對于需求不明確、流程不清晰、算法不確定的項目(如數據處理軟件、分析軟件和標定軟件等)采用迭代模型或者快速原型開發(fā)較好。此外,采用一種模型為主,其它模型為輔,也會得到很好的效果。

2.2加強開發(fā)流程控制

無論采用何種開發(fā)模型,開發(fā)人員必須在每一次開發(fā)或迭代中完整實現需求分析、設計、編碼和測試等步驟。各階段的評審或項目報告尤為重要,項目前期要確保軟件開發(fā)人員準確理解項目需求以及軟硬件環(huán)境;中期階段要確保開發(fā)流程和方法可靠;后期要通過測試確保軟件運行符合要求。

2.3需求分析中注重物理分析

科研軟件中一般涉及大量數據操作,而且過程比較復雜,一些原始數據要經過轉換、重建、標定及修正等步驟,而且處理不一定是線性的,即相鄰數據之間可能有關聯。這些功能和性能需求不容易明確,需要著重把握。軟件中還可能涉及一些物理算法(比如圖像修正、頻率分解等),因此在需求分析中需要著重進行物理分析,包括流程梳理、特殊方法和條件選擇等。

2.4采用串行開發(fā)方式

科研機構人員結構比較單一,往往多項工作并行執(zhí)行,給軟件開發(fā)質量提升及人才培養(yǎng)帶來不利影響,可將相關性比較強的軟件以串行方式開發(fā),數據產品生成軟件和數據分析軟件可以依次開發(fā)。

2.5提高開發(fā)人員的主觀能動性

軟件開發(fā)過程中,保障軟件項目負責人在經費使用及績效考核中的話語權,組建凝聚力強的研發(fā)團隊,對軟件開發(fā)的進度、質量進行考核。

3軟件質量保障措施

(1)加強開發(fā)過程中的溝通??蒲许椖康牟淮_定性帶來軟件開發(fā)需求的變動,用戶往往只注重項目需求功能滿足,而不關心軟件的實現細節(jié),所提出的功能或接口可能不切實際,因此需要加強與用戶的溝通,明確軟件開發(fā)目標。

(2)充分調動開發(fā)人員積極性??蒲袡C構軟件開發(fā)人員往往是科研項目的幕后工作者,其工作成果容易被科研項目成果所掩蓋,所以充分調動軟件開發(fā)人員的工作積極性尤為必要。一方面,為其提供成果展示平臺,尤其是展示創(chuàng)新性成果,如將開發(fā)中的文檔整理成冊等;另一方面,在基金申請、職稱評定等方面提供支持??蒲袡C構職稱評定主要依據取得的科研成果,由于工作內容不同,如采取同樣的評審條件,軟件開發(fā)人員與其他研究人員在同一層次上競爭將缺乏競爭力??赡軐е虏糠秩藛T不愿意從事軟件開發(fā)工作,或者開發(fā)軟件的同時還從事其它研究,從而影響軟件開發(fā)進度和質量。因此,需要根據軟件開發(fā)人員工作的特殊性,通過有效的激勵措施調動其積極性。

(3)培養(yǎng)既懂管理又懂技術的項目負責人。優(yōu)秀的軟件工程項目負責人不僅是一個好的軟件設計師,對軟件實現細節(jié)能夠很好的掌控,還是一名優(yōu)秀的管理者,能科學配置資源。

4結語

面向科研領域的軟件具有較深的行業(yè)背景,其設計方法、實現手段有很強的領域依賴性。本文從科研領域特點及軟件提出者、開發(fā)者、測試者、用戶的角度出發(fā),探討了其需求難以明確、人員結構較單一且管理難度大的特點。在軟件開發(fā)管理過程中,需要采用合適的軟件開發(fā)模型,注重流程管理,充分調動開發(fā)人員的工作積極性。

參考文獻:

[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]劉麗梅.中國軟件產業(yè)市場競爭力分析[M].北京:對外經濟貿易大學,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.軟件工程導論[M].北京:清華大學出版社,2005.

[11]師迎海,何雪慧.迭代式軟件開發(fā)模型研究及應用[J].微處理機,2015(1):55-57.

[12]劉玉仁,董震曜.快速原型法在軟件設計中的應用[J].光電對抗與無線干擾,2002(4):6-9.

作者:趙海升 李兵 聶建胤 宋黎明 單位:中國科學院高能物理研究所

免责声明

本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。

AI写作,高效原创

在线指导,快速准确,满意为止

立即体验
文秘服务 AI帮写作 润色服务 论文发表