国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于變更分析的軟件開發(fā)過程量化系統(tǒng)

2018-05-23 11:46:20盛玉強(qiáng)楊春花
智能計算機(jī)與應(yīng)用 2018年2期
關(guān)鍵詞:過程管理

盛玉強(qiáng) 楊春花

摘 要: 軟件量化對軟件項目管理有著至關(guān)重要的作用,便于進(jìn)行開發(fā)成本和開發(fā)時間的估算,合理規(guī)劃軟件生命周期。目前應(yīng)用比較廣泛的方法大多是以歷史經(jīng)驗為基礎(chǔ)進(jìn)行量化管理,由于在過程中存在很多不確定性因素,量化的結(jié)果不能準(zhǔn)確反映實際情況??紤]到實際開發(fā)需求,本文提出一種依據(jù)變更數(shù)據(jù)對軟件開發(fā)過程進(jìn)行量化管理的方法,通過對日常變更內(nèi)容的分析,獲取基礎(chǔ)數(shù)據(jù),進(jìn)一步建立量化指標(biāo),對團(tuán)隊或個人的工作量、效率、活躍度等進(jìn)行衡量?;贘ava EE技術(shù),設(shè)計了一個量化管理系統(tǒng)對該方法集中展開研發(fā)實現(xiàn)。最后,以Tomcat版本庫為例,闡述了具體的實現(xiàn)過程及結(jié)果。

關(guān)鍵詞: 軟件量化;變更分析;過程管理

Abstract:Software quantification plays an important role in software project management which makes it easy to estimate the development cost and development time and reasonably plan the software life cycle. Most of the current methods widely used is based on historical experience to realize a quantitative management because there are many uncertainty factors in the process the quantitative results cannot accurately reflect the actual situation. Considering the actual development requirement this paper proposes a quantitative management method of software development process based on change data which could through the analysis of the daily change of content obtain basic data then establish the quantitative indicators therefore evaluate the team or individual work such as efficiency active measure.Based on the Java EE technology a quantitative management system is designed to implement this method. Finally the implementation process and results of the Tomcat version library are illustrated.

Key words: software quantification;change analysis;process management

引言

軟件度量研究是一個在過去30多年中始終處于發(fā)展活躍期的軟件工程領(lǐng)域,研究主流是關(guān)心軟件的品質(zhì)和軟件的定量化度量。

目前行業(yè)對軟件度量和項目管理的研究,主要集中于對已有度量模型和方法的優(yōu)化上。如基于IFPUG功能點分析法的改進(jìn)方法[1]、基于CMMI的量化方法[2-3]、基于Delphi技術(shù)對軟件規(guī)模和進(jìn)度進(jìn)行估算的方法[4]、基于偏最小二乘回歸的方法校準(zhǔn)度量因子,并結(jié)合COCOMO模型[5]進(jìn)行量化的方法[6]、基于GQM模型[7],利用PUGH矩陣的決策機(jī)制進(jìn)行過程控制和軟件量化的方法[8]等。這些方法多以軟件的結(jié)構(gòu)為主體提供度量,將軟件按照功能點、方法、模塊等元素進(jìn)行拆分后,設(shè)置加權(quán)參數(shù),實現(xiàn)整體的度量。缺點是只能在軟件項目設(shè)計階段進(jìn)行估算或者在軟件開發(fā)完成后,對整個項目進(jìn)行回顧,無法應(yīng)用到軟件開發(fā)過程中創(chuàng)建實時的管理,缺乏靈活性。

現(xiàn)有的軟件度量方法,可以做到對代碼復(fù)雜度、每日版本可用率、代碼質(zhì)量缺陷指數(shù)[9]等進(jìn)行度量,但無法做到對變更內(nèi)容生成定量化分析。為對開發(fā)過程定制有效的量化管理,本文提出基于軟件開發(fā)過程中的變更數(shù)據(jù)進(jìn)行量化管理的方法。結(jié)合項目開發(fā)過程中的具體變更數(shù)據(jù),對變更內(nèi)容進(jìn)行分析,包括變更的代碼行、文檔行,變更文件的個數(shù)、類型、內(nèi)容,所屬的模塊名等統(tǒng)計代碼、文檔的增、刪、改等的操作,建立研究對象的模型??梢愿鶕?jù)這些基礎(chǔ)數(shù)據(jù),對指定時間段內(nèi)團(tuán)隊效率、活躍度、工作量,成員效率、修改內(nèi)容、產(chǎn)出量以及文件修改的內(nèi)容、類型、個數(shù)等展開分析,從而調(diào)整開發(fā)計劃,對軟件開發(fā)過程進(jìn)行實時調(diào)控,實現(xiàn)軟件開發(fā)過程量化管理。

1 基于變更分析的量化管理方法

1.1 方法概要

現(xiàn)代軟件的開發(fā),大多基于版本控制系統(tǒng)。版本控制系統(tǒng)可以支持完備的版本管理功能,用于存儲、追蹤目錄和文件的修改歷史。本系統(tǒng)對使用了SVN版本管理系統(tǒng)(Subversion)的軟件項目進(jìn)行分析,首先需要確定軟件項目,即SVN倉庫,然后對軟件開發(fā)過程中的變更數(shù)據(jù)進(jìn)行獲取、分類整理并輔以數(shù)據(jù)處理后,形成本系統(tǒng)的數(shù)據(jù)源,由此將有效確保后續(xù)數(shù)據(jù)量化管理系統(tǒng)的設(shè)計與實現(xiàn)。研究中,系統(tǒng)設(shè)計如圖1所示。

其中,數(shù)據(jù)提取是指從軟件版本倉庫獲取版本變更數(shù)據(jù)并存儲到本地數(shù)據(jù)庫;數(shù)據(jù)處理是指對抓取到的數(shù)據(jù)進(jìn)行過濾優(yōu)化和分類;軟件開發(fā)過程量化管理是指對變更數(shù)據(jù)進(jìn)行分析、統(tǒng)計、量化,并續(xù)接此后的數(shù)據(jù)可視化和開發(fā)過程量化。

1.2 量化管理系統(tǒng)設(shè)計

本系統(tǒng)基于SVNKit研發(fā)設(shè)計。SVNKit是一個Java工具包,用于訪問和操作SVN版本庫。SVNKit不僅是一個純Java的SVN類庫,而且還適用于主流的絕大多數(shù)操作系統(tǒng),基于SVNKit開發(fā)軟件,可以實現(xiàn)版本庫的管理和信息的獲取。

1.2.1 變更數(shù)據(jù)的獲取

基于SVNKit提供的API,使用Java語言開發(fā)一套數(shù)據(jù)獲取和管理工具,對變更數(shù)據(jù)進(jìn)行獲取。獲取內(nèi)容包括:

(1)該軟件項目的所有已提交版本。包括版本號、提交者、提交日期、影響的文件名或目錄以及注釋信息;

(2)所有已提交的版本包含的信息。包括指定版本包含的文件、變更的文件名、變更時間、變更類型等;

(3)所有文件內(nèi)容。包括文件被增加時的初始內(nèi)容、變更后的內(nèi)容,以及文件變更時所對應(yīng)的版本信息等;

(4)所有文件變更內(nèi)容。包括文件變更前后對應(yīng)的版本信息、變更類型、變更內(nèi)容等;

(5)其它項目信息的獲取。包括開發(fā)團(tuán)隊、項目相關(guān)信息等。

1.2.2 數(shù)據(jù)分析與處理

對獲取到的源數(shù)據(jù)進(jìn)行過濾優(yōu)化和分類。分類方法主要包括:

(1)按文件類型分類。主要區(qū)分軟件代碼和說明文檔;

(2)按修改類型分類。主要區(qū)分文件的增、刪、改操作;

(3)按修改內(nèi)容分類。主要區(qū)分是否為修復(fù)bug、執(zhí)行代碼重構(gòu)、添加測試、添加注釋等。

由于獲取到的原始數(shù)據(jù)包含大量冗余數(shù)據(jù),并且會產(chǎn)生由于文件名相同、文件內(nèi)容無法識別、文件編碼方式不同等導(dǎo)致的數(shù)據(jù)異常,所以需要對數(shù)據(jù)進(jìn)行優(yōu)化處理。經(jīng)數(shù)據(jù)優(yōu)化處理后,形成本系統(tǒng)的數(shù)據(jù)源,用于后期的數(shù)據(jù)分析和展示,統(tǒng)計變更內(nèi)容研究。

1.2.3 量化管理

以得到的數(shù)據(jù)為基礎(chǔ),應(yīng)用B/S架構(gòu)、MVC設(shè)計模式、MySQL數(shù)據(jù)庫,使用SpringMVC、MyBatis等Java EE后端技術(shù),Ajax、Echarts等前端技術(shù),設(shè)計實現(xiàn)量化管理系統(tǒng),對軟件開發(fā)過程進(jìn)行量化管理。

2 系統(tǒng)實現(xiàn)-以Tomcat為例

2.1 選取版本庫

本文選取流行的Web應(yīng)用服務(wù)器軟件Tomcat的版本庫作為數(shù)據(jù)源。Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta系統(tǒng)中的一個核心項目,由Apache、Sun 和其它一些公司及個人共同開發(fā)而成。由于有了Sun公司的參與和支持,使得最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),在現(xiàn)代軟件開發(fā)中提供了業(yè)界范本的作用。

Tomcat版本庫創(chuàng)建時間為2007年11月10日,截止2017年12月20日,該項目共有26位開發(fā)者,5 123個文件,約18 000個提交版本、56 000次文件變更記錄,具體可見表1。

2.2 獲取變更數(shù)據(jù)

2.2.1 獲取原始數(shù)據(jù)

基于SVNKit開發(fā)版本庫數(shù)據(jù)獲取工具,對Tomcat版本庫獲取版本數(shù)據(jù),形成原始數(shù)據(jù)庫。該數(shù)據(jù)獲取工具提供的主要功能如下:

(1)showlogs:獲取版本庫所有提交版本記錄和文件變動記錄,記錄到數(shù)據(jù)庫的actions表中;

(2)displayFile:獲取文件首次提交時的初始內(nèi)容,用于后續(xù)比較變更內(nèi)容,記錄到數(shù)據(jù)庫的contents表中;

(3)showDiff:獲取所有內(nèi)容發(fā)生變動的文件列表,記錄到數(shù)據(jù)庫的diffs表中;

(4)getHunks:獲取所有文件變更內(nèi)容的具體變更片段,記錄到數(shù)據(jù)庫的hunks表中。

2.2.2 數(shù)據(jù)處理

獲取原始數(shù)據(jù)后,由于對變更分析的需要,需要對數(shù)據(jù)進(jìn)行進(jìn)一步加工處理。內(nèi)容闡釋如下:

(1)根據(jù)版本信息,提取版本對應(yīng)的提交者,存儲到user表;

(2)根據(jù)版本信息,提取所有版本的版本號相關(guān)信息,存儲到revisions表;

(3)根據(jù)文件首次提交的信息,提取項目中所有的文件信息,存儲到files表;

(4)按照文件類型、修改類型、變更類型對數(shù)據(jù)進(jìn)行標(biāo)記;

(5)對文件的MIME類型、編碼、字符集等進(jìn)行識別與優(yōu)化處理;

(6)異常數(shù)據(jù)處理。如不同目錄下的同名文件,系統(tǒng)會默認(rèn)為是同一個文件,這會導(dǎo)致后續(xù)對變更代碼的分析混亂。處理方法是:為每個文件添加時間戳進(jìn)行區(qū)分。

2.2.3 形成數(shù)據(jù)源

經(jīng)原始數(shù)據(jù)獲取和數(shù)據(jù)處理后,形成本次量化管理系統(tǒng)的數(shù)據(jù)源,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可見表2。

2.3 變更數(shù)據(jù)量化管理

以獲取到的變更數(shù)據(jù)為數(shù)據(jù)源,使用JavaEE相關(guān)技術(shù),開發(fā)變更數(shù)據(jù)量化管理系統(tǒng)。

2.3.1 數(shù)據(jù)更新

數(shù)據(jù)更新模塊提供版本庫信息展示與更新功能。對此可展開研究分述如下:

(1)設(shè)置版本庫。設(shè)置要進(jìn)行量化管理的SVN版本庫地址,支持http、https、svn、file協(xié)議;

(2)數(shù)據(jù)更新。設(shè)置對版本庫的數(shù)據(jù)更新方式,可選手動更新或自動定時更新。用于實時跟蹤開發(fā)進(jìn)度;

(3)信息展示。默認(rèn)展示版本庫中最新信息,包括版本庫地址、最新版本號、最新提交日期和提交者。進(jìn)行數(shù)據(jù)更新時,實時顯示系統(tǒng)狀態(tài)。

2.3.2 代碼統(tǒng)計

設(shè)置擬研究的開發(fā)者和時間段進(jìn)行統(tǒng)計。首先指定開發(fā)者,可選全部或單一開發(fā)者;然后指定時間,可選某天、某月、某年或任意時間段。研究可得,該項技術(shù)主題的分析闡釋可見如下。

(1)代碼修改量。對指定的開發(fā)者在指定時間段內(nèi),針對代碼的增加和刪除行數(shù)進(jìn)行統(tǒng)計,方便用于一些指標(biāo),諸如活躍度、開發(fā)效率的分析。為此,可給出某成員的統(tǒng)計運行效果如圖2所示;

(2)影響文件類型。對指定的開發(fā)者在指定時間段內(nèi),提交的所有版本影響的文件類型進(jìn)行統(tǒng)計,區(qū)分代碼文件、配置文件或非文本文件;

(3)修改文件個數(shù)。對指定的開發(fā)者在指定時間段內(nèi),提交的所有版本影響到的文件進(jìn)行統(tǒng)計;

(4)變更類型分析。對指定的開發(fā)者在指定時間段內(nèi),發(fā)生的代碼修改進(jìn)行歸類分析。可分為修改方法體、增加方法、代碼重構(gòu)、修復(fù)bug等。

2.3.3 量化指標(biāo)

(1)團(tuán)隊

① 團(tuán)隊效率。該團(tuán)隊在指定時間段內(nèi),對代碼的增、刪行數(shù)的平均值;

② 團(tuán)隊活躍度。該團(tuán)隊在指定時間段內(nèi)的活躍情況;

③ 團(tuán)隊成員貢獻(xiàn)量。團(tuán)隊所有成員在指定時間段內(nèi)的工作量查看和比較,呈現(xiàn)效果如圖3所示。

(2)成員

① 開發(fā)效率。該成員在指定的時間段內(nèi),對代碼的修改量,以及與團(tuán)隊平均水平的比較;

② 修改文件類型。該成員在指定的時間段內(nèi),所有對軟件項目的修改所影響到的文件類型;

③ 活躍度。顯示該成員在指定時間段內(nèi)的活躍時間與活躍度;

④ Bug修復(fù)量。指定時間段內(nèi)修復(fù)的Bug數(shù)量,以及修改指定Bug所耗時間;

⑤ 產(chǎn)出量。指定時間段內(nèi)的代碼產(chǎn)出量和功能產(chǎn)出量,可以查看月產(chǎn)出、季度產(chǎn)出等。

2.3.4 內(nèi)容查看

對指定文件的任意版本內(nèi)容進(jìn)行查看,并可以比較任意版本之間的變更內(nèi)容。研究重點可概述如下。

(1)文件內(nèi)容查看。指定文件名(文件路徑)、版本號,展示文件的增加時間、修改時間、文件類型及文件內(nèi)容;

(2)變更內(nèi)容查看。指定文件名、變更前后的版本號,展示該文件在這2個指定版本間的變更內(nèi)容。

3 結(jié)束語

本軟件開發(fā)過程量化系統(tǒng),通過獲取軟件開發(fā)過程中的變更數(shù)據(jù)并協(xié)同數(shù)據(jù)處理,實現(xiàn)了對軟件開發(fā)過程的量化管理。后續(xù)根據(jù)量化結(jié)果,可以對工作量、缺陷數(shù)、熟練度、開發(fā)能力等具體數(shù)據(jù)進(jìn)行度量,確定開發(fā)者的開發(fā)能力等級,進(jìn)而獲得對人員、團(tuán)隊、公司的生產(chǎn)率的度量、項目進(jìn)度管理和進(jìn)度預(yù)警;并可以結(jié)合COCOMOⅡ模型,形成適用于該機(jī)構(gòu)的工作量估算模型和軟件成本估算模型。

參考文獻(xiàn)

[1] 侯成功,譚裴,葉敏. IFPUG功能點分析方法在電信行業(yè)軟件中的應(yīng)用[J]. 軟件導(dǎo)刊,2017,16(9):142-144,147.

[2] 張旭,劉浩馳. 基于CMMI的量化管理在項目中的應(yīng)用與研究[J]. 電腦與電信,2016(4):62-65.

[3] 羅娟,陸東暉,徐霞. 基于CMMI4的軟件項目量化質(zhì)量管理研究[J]. 軟件導(dǎo)刊,2016,15(6):8-10.

[4] 楊培培,趙海生,張金棟. Wideband_Delphi技術(shù)在軟件估算中的應(yīng)用[J]. 電子質(zhì)量,2017(10):39-42.

[5] BOEHM B W CLARK HOROWITZ et al. Software cost estimation with Cocomo II with Cdrom[M]. Upper Saddle River NJ USA: Prentice Hall PTR 2000.

[6] 魏來,劉海濤,付祎. 基于偏最小二乘回歸的COCOMO模型校準(zhǔn)方法[J]. 統(tǒng)計與決策,2016(8):73-76.

[7] 李亞紅,郝克剛,葛瑋. 基于GQM模型的軟件項目進(jìn)度的度量過程[J]. 計算機(jī)應(yīng)用,2005,25(6):1448-1450.

[8] 戴炳榮,王凌,李超,等. 一種在GQM度量方法中的決策機(jī)制研究[J]. 計算機(jī)應(yīng)用與軟件,2017,34(5):19-23.

[9] 姜文,劉立康. 基于持續(xù)集成的軟件度量[J]. 計算機(jī)測量與控制,2017,25(5):136-139.

猜你喜歡
過程管理
基于教學(xué)過程管理提高人才培養(yǎng)質(zhì)量的探索與實踐
經(jīng)管專業(yè)本科畢業(yè)設(shè)計(論文)創(chuàng)新模式研究
青島市拓展行業(yè)現(xiàn)狀與對策研究
如何做好建筑工程中質(zhì)量控制
居業(yè)(2016年9期)2016-12-26 08:48:39
基于Web的畢業(yè)設(shè)計管理系統(tǒng)設(shè)計與實現(xiàn)
研究生創(chuàng)新培養(yǎng)的“步態(tài)追蹤”模式
病案首頁質(zhì)量控制與信息系統(tǒng)實現(xiàn)方法
關(guān)于黨校干部培訓(xùn)中現(xiàn)場教學(xué)的幾點思考
青年時代(2016年28期)2016-12-08 15:18:12
全面質(zhì)量管理理念在高校學(xué)生事務(wù)過程管理中的應(yīng)用探索
教學(xué)過程管理信息化探討
磴口县| 泗水县| 大洼县| 虞城县| 沙洋县| 从化市| 浦东新区| 黑山县| 夏津县| 博客| 郁南县| 临安市| 武川县| 彝良县| 五指山市| 宁陵县| 阿拉尔市| 尚义县| 临清市| 山东省| 衡阳县| 卫辉市| 大新县| 工布江达县| 收藏| 南郑县| 海口市| 稷山县| 武强县| 叶城县| 乌兰县| 广汉市| 青浦区| 浠水县| 吴旗县| 西青区| 明水县| 高要市| 娄底市| 金山区| 商南县|