【VC++开源代码栏目提醒】:网学会员为广大网友收集整理了,VCSTalk_基于DEA的开源软件开发人员效率评价工具 - 讲义教程,希望对大家有所帮助!
收稿日期:2006202228修返日期:2006204215 基金项目:国家自然科学基金资助项目60373053中国科学院“百人计划”留学回国人员科研启动基金资助项目2003406国家“863”计划资助项目2002AA116060 作者简介:童杰19822男硕士研究生主要研究方向为软件工程tongjieitechs.iscas.ac.cn王永吉19622男辽宁盖州人研究员博导主要研究方向为实时系统与软件工程张19812男博士研究生主要研究方向为软件工程.VCSTalk:基于DEA的
开源软件开发人员效率评价工具3童 杰12王永吉12张 1211中国科学院软件研究所互联网软件技术实验室北京10008021中国科学院研究生院北京100049摘 要:介绍了VCSTalk的具体架构并展示了它用于评价若干
开源软件项目中的开发人员效率的一个具体实例。
关键词:数据包络分析
开源软件开发人员效率评价中图分类号:TP311156 文献标志码:A 文章编号:10012369520070420054204VCSTalk:DEA2basedToolforOpenSourceSoftwareDeveloper’sPerformanceEvaluationTONGJie12WANGYong2ji12ZHANGShen121.LaboratoryforInternetSoftwareTechnologiesInstituteofSoftwareChineseAcademyofSciencesBeijing100080China2.GraduateSchoolChineseAcademyofSciencesBeijing100049ChinaAbstract:VCSTalkaDEA2basedevaluationtoolwaspresented.Andasetofopensourcesoftwareprojectswasappliedprovedthatthepayoffoftheevaluationtoolissubstantial.Keywords:dataenvelopmentanalysisDEAopensourcesoftwaredeveloper’sperformanceevaluation0 引言开发人员效率评价即以统一的标准对一系列开发人员的效率进行评估以评估结果表明各个开发人员的相对效率高低。
该评价工作对
开源软件组织和个人很有意义。
例如可以给出每个开发者的能力相对高低有助于
开源软件组织更合理地分配资源和控制项目进度。
此外通过效率评价还可以列举出具有相对高效率的开发者将其作为学习对象以帮助
开源软件开发人员提高自身能力。
对
开源软件开发人员效率进行评价存在如下困难:①
开源软件项目的过程数据往往未被集中收集管理而是散布于各种软件配置库如版本控制系统和缺陷管理系统中因此度量数据的收集比较困难。
②不存在一种单一的指标可直观地表示出效率的高低。
开发人员的生产率和一些其他因素如工作成果质量都会影响到效率高低。
换言之该评价问题具有多变量输入/输出特性。
此外文献1研究证明对个人软件过程能力的评价问题表现出可变规模收益特性该证明过程同样适用于对开发人员效率的评价。
因此对
开源软件开发人员的效率评价问题也具有可变规模收益特性即输入和输出具有非线性关系VRS。
该评价问题具有非线性和多变量输入/输出的特点。
开源项目开发人员效率评价工具需要解决数据收集的困难如避免手工采集各个软件配置库中的过程数据还必须解决问题的多变量输入/输出和VRS特性。
针对上述问题设计并实现的评价工具VCSTalk兼顾了上述两方面要求:自动地从多种软件配置库如版本控制系统、缺陷管理系统等中获取项目数据用于执行评价工作在解决数据收集问题的同时降低了人力开销基于数据包络分析技术既能给出量化的、直观的评价结果又较好地解决了多变量和VRS特性问题。
为验证其可用性VCSTalk被应用于20个
开源软件项目中的22位开发人员得到了客观可靠的评价结果。
1 DEA及其经典模型CharnesA.和CooperW.W.2于1978年提出的DEA是一种用于前沿估计的非参数化数学规划方法适用于评价一系列决策单元DecisionMakeUnitDMU的相对效率。
DMU的效率可以看做是DMU的输出与输入之间的比值关系输入即DMU的消耗如耗费成本的数量输出即DMU的产值。
作为一种极限点方法DEA将每个生产者即DMU与最好的生产者加以比较从而得到生产者的相对效率。
所谓最好的生产者往往是虚拟的由若干实际生产者组成这些相对效率高的DMU构成了效率前沿面EfficiencyFrontier。
DEA被广泛应用于各个领域的性能估计和评测3在软件工程领域也同样有应用4:展示了如何使用DEA从一系列ERP项目中识别出高效率的项目。
前期研究成果1则给出了第24卷第4期2007年4月计算机应用研究ApplicationResearchofComputersVol.24No.4April2007一种基于DEA的个人软件过程能力评价方法但将DEA方法在实际工具中实现用来解决实际中的问题VCSTalk尚为首例。
从DEA方法提出至今研究者们已经提出了多种DEA模型2357。
VCSTalk采用了两种经典的DEA模型即Charnes等人提出的CCR模型2以及Banker等人提出的BCC模型5。
CCR模型和BCC模型的对偶规划形式如下:CCR模型minθλsis-kθ-ε∑mi1si∑sk1s-ks.t.θxij0-∑nj1xijλj-si0i1…m∑nj1ykjλj-ykj0-s-k0k1…sλj≥0j1…nsi≥0i1…ms-k≥0k1…pBCC模型minθλsis-kθ-ε∑mi1si∑sk1s-ks.t.θxij0-∑nj1xijλj-si0i1…m∑nj1ykjλj-ykj0-s-k0k1…s∑nj1λj1λj≥0j1…nsi≥0i1…ms-k≥0k1…p其中θ表示DMUj0的效率分值EfficiencyScore其取值范围为0到1。
效率分值为1的DMU为相对有效RelativeEffi2cient否则即为非相对有效RelativeInefficient。
siθxij0-∑nj1xijλj和s-k∑nj1ykjλj-ykj0分别是输入和输出的松弛与剩余变量。
松弛变量表示对输入的过量使用而剩余变量则表示输出的不足。
它们的数值大小表示使该DMU从非相对有效变为相对有效可作的改进及其幅度大小。
在VCSTalk的评价结果中效率分值和剩余变量是最重要的数据。
通过观察效率分值可以了解每个被评估开发人员的相对效率表现而通过对剩余变量进行分析可以得知特定开发人员应该通过改进哪些方面来改进自身的效率。
文献7对CCR和BCC模型进行了更细致的讨论。
2 VCSTalk211 系统工作流程VCSTalk的工作流程包括两个主要步骤:①根据确立的效率评价指标从软件配置库中获得项目数据并转换为量化的指标值②采用DEA模型对收集到的指标数据进行计算得到评价结果。
1指标选择和数据获取MoserS等人8研究了面向对象方法与开发人员生产效率之间的关系他们采用功能点FP作为评价指标。
Ying等人9通过分析从CVS10中导出的
代码行LinesofCodeLOC和一些其他信息来理解学生在实践课程中的开发行为给出了一个非常好的示例说明可以从软件配置库中获取哪些信息用于评价开发人员的效率。
Keir等人11从超过200个项目的CVS中提取出LOC和
代码质量等指标进行统计学分析试图找到最直观合理的效率指标。
这些研究表明LOC和开发者工作成果的质量包括
代码质量和软件质量可以作为评价开发人员效率的重要指标。
因此选择了四类指标作为VCSTalk评价开发人员效率的依据表1。
表1 VCSTalk所使用的四类指标及其含义和量化表示指标名称含义量化表示TIMECONSUMED特定开发人员为项目投入的时间SUM该开发人员在项目中的活跃时间段CODEQUANTITY特定开发人员为项目贡献的
代码数量SUM该开发人员增加的
代码行数SUM该开发人员改的
代码行数CODEQUALITY特定开发人员为项目编写的
代码质量高低CODEQUANTITY/开发人员引入项目中的违例数目DEFECTIMMUNITY特定开发人员的
代码是否容易为项目引入BUGCODEQUANTITY/开发人员负责的BUG数目 TIMECONSUMED以小时为单位VCSTalk从CVS的日志中获取该指标值。
由于该指标的精确性受到许多外在因素的影响如
开源软件开发人员往往要从事其他工作或同时参与多个软件项目这会带来相当大的偏差。
为了在获取数据时尽量消除对时间估计上的偏差VCSTalk采用了去除非活跃时间的方法。
从CVS日志中可以得到开发者行为的记录当某开发者两次动作的间隔长短超过某一阈值时VCSTalk认为该开发者没有将该时间段投入到该项目中去。
该时间段即为非活跃时间。
CVS日志记录了任意一行
代码是由哪位开发者添加到项目中来的。
通过分析CVS日志能够得到CODEQUANTITY。
该指标表示为增加的
代码行数与修改的
代码行数之和。
值得注意的是删除的
代码行已经不再是项目的一部分因而删除的
代码行数不计入公式。
CODEQUALITY在项目中反映为开发人员编写
代码中违例的数量多少。
违例多则质量低。
在这里违例所指的是
代码中的各种缺陷如在一行中书写多个语句出现定义但未被使用的变量、没有仔细处理的异常等。
这些违例可以通过对源
代码进行自动静态分析得到。
通过结合
代码分析结果和CVS日志可以得到某特定开发人员引入的违例数目。
DEFECTIMMUNITY表现为该开发人员负责的BUG数量和密度。
该指标可从项目的缺陷管理系统中获得。
上述四类指标数据的采集过程完全由程序自动进行避免了手工收集数据的人力开销。
2DEA评价计算在数据采集阶段完成之后VCSTalk使用DEA的CCR模型和BCC模型进行计算。
在计算过程中将每个开发人员作为一个DMU指标TIMECONSUMED作为DMU的输入其余三个指标作为DMU的输出。
实际计算中使用CCR和BCC的对偶规划形式。
采用DEA模型进行计算后得到的量化结果中θ和剩余变量对评价工作最有意义。
θ为DMU在本文的问题中指开??55??第4期童 杰等:VCSTalk:基于DEA的
开源软件开发人员效率评价工具 发人员的效率分值效率分值为1的开发者是相对有效的换言之就是具有较高的效率。
剩余变量表示把DMU从非相对有效变成相对有效所能进行的改进及可能的改进程度。
举例来说如果开发人员A的指标CODEQUALITY对应的剩余变量较大则他/她应该通过提高自己的
代码质量来改进效率。
212 系统架构与实现如前所述VCSTalk的工作流程是一个典型的流水线式的过程。
因此VCSTalk的系统架构被设计成管道结构图1:数据采集组件DCC、中间数据库组件IDB、指标导出组件MEC和DEA分析其DA四个组件各自都将前一个组件的输出作为自己的输入并把自身输出作为后续组件的输入。
控制器组件负责协同四个组件的行为来处理一个给定的效率评价任务。
DCC从软件配置库中收集原始数据输入到IDB中IDB管理原始数据并响应MEC的查询请求MEC根据IDB提供的数据生成四种指标第2章中定义的的指标值并传递给DA。
特别值得一提的是MEC通过调用
代码静态分析工具如PMD12分析项目源
代码来获得CODEQUALITY指标数据。
DA生成最终的评价结果其输入和输出均为表格形式。
VC2STalk系统架构详图如图2所示。
现有版本的VCSTalk实现了三种收集器对象和四种指标对象对应四种指标。
CVSLoCCollector对象从CVS中采集
代码量信息并导入到IDB的CodeRevision对象中。
CVSQoCCol2lector对象结合PMD作源
代码分析和CVS日志分析得到
代码中的各种违例并导入到IDB的CodeViolation对象中。
SourceForgeDefectCollector实现了一个网页爬虫它从Source2Forge13网站上抓取特定项目的BUG信息并导入到IDB的Defect对象中。
VCSTalk的DEA分析器模块用Mathematica14开发其余部分用Java语言实现。
由于目前版本调用PMD进行
代码静态分析而PMD仅支持Java源文件分析尚不能对其他语言类型的项目开发人员进行评价可对CVSQoCController进行扩展以支持其他语言项目。
VCSTalk的源
代码可从地址http://file.ttthree.com/下载。
3 应用实例及结果讨论为了验证VCSTalk的可用性和有效性本文从SourceForge选取了20个Java语言项目。
在参与这些项目的180多位开发人员中选取了22位活跃开发人员使用VCSTalk对他们的开发效率进行评价。
作为开发人员选取的标准活跃意味着频繁参加项目开发从CVS日志中可以统计出参与开发的频度。
VCSTalk运行得到的CCR和BCC模型计算结果如表2、3所示。
受篇幅所限除效率分值和剩余变量外其他数据均被略去DEA计算的原始数据也未在文中给出附于源程序包中可从http://file.ttthree.com/下载。
表2 22位开发人员的CCR模型效率分值及剩余变量数据DMUθs-2s-3DMUθs-2s-310.168819.77414.82120.051844.9394.9320.4901907.73130.05249.0858.9530.0604411.40140.0400.7340.04044.74150.04417.0228.9251.0000160.051009.83133.9060.21395.3248.06171.000070.090308.76180.110080.060514.25191.000090.213257.44155.99200.051671.17104.73100.082175.5397.34210.1204918.32110.33151.780220.531300000表3 22位开发人员的BCC模型效率分值及剩余变量数据DMUθs-2s-3DMUθs-2s-311.0000120.2402.3520.550338.38130.15095705.4230.08914.239331.13140.062126.511458.4340.13095000.2150.13048630.5651.0000160.2501540.7560.712403.14156916171.000070.223858.2439136180.220080.210118421191.000090.71493.20255216200.26011.46100.26244.88178242210.130923.04111.0000221.0000 对上述结果进一步讨论:1在CCR模型的计算结果中开发者5、17、19构成了效率前沿面换言之这三位开发者与其他开发人员相比具有较高的效率。
而在BCC模型计算结果中效率前沿面由开发者1、5、11、17、19、22构成。
该计算结果的合理性可以通过对原始数据的人工分析得到验证:开发人员5、17、19在相对短的时间内为他们所在的项目贡献了较多的
代码且
代码中违例少引入的BUG也相对少。
开发人员22与其他开发人员相比贡献的
代码数量少但其
代码质量特别高且引入的BUG非常少。
开发人员1和11
代码中违例数量较多但他们为项目完成的
代码量特别大所以他们也处于效率前沿面。
2对于那些效率分值低于1的开发人员来说上表中所列的剩余变量表明他们可以通过改进相应的指标来提高效率。
剩余变量的数值大小表示可供改进的余地大小。
表3和4中??65??计算机应用研究 2007年s-2和s-3分别对应CODEQUALITY指标和DEFECTIMMUNI2TY指标。
根据两表结果开发人员可以知道他们应该通过改进哪些方面来提高效率以及相应可改进的幅度。
3VCSTalk的计算结果中各开发人员的效率分值波动较大其根本原因在于TIMECONSUMED指标的精确程度不足在后续研究及开发中有待改进。
4 总结对
开源软件开发人员的效率评价问题具有多变量输入/输出及VRS特性且由于
开源软件的过程数据有其自身特点而较为困难。
本文介绍的基于DEA方法的
开源软件开发人员效率评价工具VCSTalk在相当程度上解决了上述困难。
VCSTalk提供了一种全新的开发人员效率评价方式其优点包括:①自动数据收集机制减少了人工开销②考虑多种指标以及给出直观的量化结果③评价结果可以对开发人员改进效率提供指导。
VCSTalk同样适用于非
开源软件组织。
VCSTalk所能收集到的信息越详细则评价结果越客观和可靠。
由于商业软件组织通常有较为规范的过程数据和严格定义的软件过程
VC2STalk的应用效果会更佳。
后续的研究工作将关注以下方面:①评价结果的可视化以可视化的形式代替目前的表格形式使得评价结果更为直观便于分析。
②更广泛和细粒度的数据采集目前VCSTalk仅引入了四项指标更多指标的引入以及指标数据获取的精确度提高都有助于提高评价的质量。
③评价的实时化。
目前的评价是在事后进行的实现评价的实时化即在项目进行过程中持续地给出评价结果将有助于项目及开发人员的持续改进。
参考文献:1DINGLipingYANGQiusongSUNLiangetal.Evaluationofthecapabilityofpersonalsoftwareprocessbasedondataenvelopmentanalysis:proc.oftheInternationalSoftwareProcessWorkshoponUnif2yingtheSoftwareProcessSpectrum:LectureNotesinComputerScie2nceVol.3840C.Beijing:Springer2VerlagGmbH2005:2352248.2CHARNESACOOPERWRHODESE.MeasuringtheefficiencyofdecisionmakingunitsJ.EuropeanJournalofOperationRe2search197826:4292444.3WEIQuanling.UseDEAtoevaluatetherelativeefficiency:anewfiledofoperationalresearchM.Beijing:ChinaRenminUniversityPress1987:10213.4STENSRUDEMYRTVEITI.IdentifyinghighperformanceERPpro2jectsJ.IEEETransactiononSoftwareEngineering2003295:3872416.5BANKERRDCHARNESACOOPERW.Somemodelsforestima2tingtechnicalandscaleinefficienciesindataenvelopmentanalysisJ.ManagementScience1984309:107821092.6HUANGZhiminLISX.Dominancestochasticmodelindataenvelop2mentanalysisJ.EuropeanJournalofOperationalResearch1996952:3902403.7HUANGZSUNDBWeiQL.TheoriesandapplicationofthecompositivedataenvelopmentanalysismodelwithconestructureJ.SCI2TECHInformationServices19956:57273.8MOSERSNIERSTRASZO.Theeffectofobject2orientedframeworksondeveloperproductivityJ.Computer1996299:45251.9YINGLELENISKENWetal.UsingCVShistoricalinformationtounderstandhowstudentsdevelopsoftware:proc.ofthe1stInterna2tionalWorkshoponMiningSoftwareRepositoriesC.Edinburgh:s.n.2004:32236.10CVS一种使用广泛的版本控制系统用于对管理
代码、文档进行版本控制EB/OL.http://www.cvs.org.11KEIRMKEVINLSAMRetal.MiningstudentCVSrepositoriesforperformanceindicators:proc.ofthe2ndInternationalWorkshoponMiningSoftwareRepositoriesC.SaintLouis:s.n.2005:41247.12PMD程序静态分析工具用于检查Java语言程序
代码中的缺陷EB/OL.http://pmd.sourceforge.net.13SourceForge世界上最大的
开源软件项目集散站点之一EB/OL.http://sourceforge.net.14Mathematica功能强大的数学程序开发环境由Wolfram公司开发EB/OL.http://www.wolfram.com.上接第28页4MALONETWCROWSTONK.Theinterdisciplinarystudyofcoor2dinationJ.ACMComputingSurveys1994261:872119.5THOMPSONJD.Organizationsinaction:socialsciencebasesofad2ministrativetheoryM.NewYork:McGraw2Hill1967.6ALLENJF.TowardsageneraltheoryofactionandtimeJ.Artifi2cialIntelligence1984232:1232154.7MALONETWCROWSTONK.Toolsforinventingorganizations:towardahandbookoforganizationalprocessesJ.ManagementScience1999453:4252443.8VONMF.Multiagentplansrelationships:proceedingsoftheNinthWorkshoponDistributedArtificialIntelligenceC.RosarioResort:s.n.1989:59272.9DECKERKLESSERV.Designingafamilyofcoordinationalgo2rithms:proceedingsoftheFirstInternationalConferenceonMulti2AgentSystemsICMAS’95C.SanFrancisco:s.n.1995.10OMICINIAOSSOWSKIS.ObjectiveversussubjectivecoordinationintheengineeringofagentsystemsC//KLUSCHMBERGAMAS2CHISEDWARDSPetal.Intelligentinformationagents:anagentLinkperspectivevolume2586ofLNAI:state2of2the2artsurvey:S.l.:Springer2Verlag2003:1792202.11RAPOSOABMAGALHAESLPetal.Coordinationofcollabora2tiveactivities:aframeworkforthedefinitionoftasksinterdependen2cies:proceedingsoftheSeventhinternationalWorkshoponGroup2ware2CRIWG2001C.Darmstandt:s.n.2001.12马巧云陈学广洪流.一种基于协调知识水平的协调问题描述方法J.系统工程理论与实践2005257:87292.13范玉顺.工作流管理技术基础M.北京:清华大学出版社2001:1512153.14袁崇义.Petri网原理M.北京:电子工业出版社1998.15RAPOSOABFUKSH.Definingtaskinterdependenciesandcoordi2nationmechanismsforcollaborativesystemsJ.FrontiersinArtifi2cialIntelligenceandApplications200234:882103.??75??第4期童 杰等:VCSTalk:基于DEA的
开源软件开发人员效率评价工具
上一篇:
VC计算机的IP地址自动设置 源程序 论文 可执行程
下一篇:
试题库管理系统毕业论文