资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,开发者网络对软件质量影响研究,指导老师:李兵 教授,1,提纲,研究背景,已有工作,实验步骤,实验过程,实验结论,验证,2,研究背景,软件开发是一项人工参与的复杂的系统工程,人的可靠性直接影响到软件质量,软件的开发、使用大都在网络化环境下进行,成为网络化软件,网络化软件开发,更加关注人的因素,3,网络化软件特征,软件即服务,,software as a service,(,SaaS,),租用服务,按次付费,需求:创意提供平台,提出者可能是开发者,开发:群体智慧,大众开发,众包方式,,wiki,发展:市场激励,优胜劣汰,软件趋于个性化,软件泛型:面向服务,网络化形态,4,网络环境下软件开发模式与传统软件开发模式的区别,网络环境下软件开发,大众参与,分布网络广泛,交流主要通过邮件、论坛等网络化手段,组织虚拟化,结构相对松散,开发模式去中心化,强调开发者的个人能力和团队合作精神,传统软件开发,集中在公司开发,会议集中讨论,开发者能实时交流,有严密的开发计划,组织纪律性强,以项目经理为核心,层状的组织方式,5,网络化软件开发的基本问题,开发者评价,各领域专家专业化开发,网络化制造,如何组织,专家选择,团队的激励,如何管理,动态掌握,实时调整,6,已有工作,已有大量文献对软件缺陷预测、软件质量控制等问题进行了探讨,基于开发历史信息、过程信息、产品信息等提出了一系列预测模型,并取得了较好的预测效果,对软件开发中最重要的因素,人的研究开始得到重视,7,ICSE 2010,,,lim,1,等人指出:忽视了软件的,StakeHolder,,将他们等同对待是导致软件失败的主要原因,,lim,构建了,StakeNet,,用于,StakeHolder,重要性排序。,1,S. L. Lim, D. Quercia, and A. Finkelstein.,StakeNet: Using Social Networks to Analyse the Stakeholders of Large-Scale Software Projects. In Proceedings of the IEEE 32nd International Conference on Software Engi-neering, 2010 (in press),8,预备步骤:从需求文档中确定项目的范围,初步确定,stakeholder,的范围,找到初始,stakeholder,角色,找到,stakeholder,建立他人对,stakeholder,推荐信息,建立网络,排序,9,stakenet,10,利用PageRank算法排序,并用问卷方式进行了验证,11,我们的研究方法,从软件的开发过程出发构建开发者网络,运用复杂网络理论知识,分析开发者网络,探索开发者在软件开发过程中的协作行为、活跃程度、贡献价值,并给予综合评价,为管理者及其他开发人员的开发行为提供决策参考,12,实验步骤,开发者网络构建,网络参数分析,模型构建,结论及验证,模型得到的贡献度排序情况,与实际开发情况的比较,网络的顶点、边及其权值的计算,网络的度分布、聚集系数计算,模型建立,贡献度计算,13,实验对象:软件开发,SVN,信息,subversion,(,简称,svn,),是近年来广泛使用的版本管理软件,目前,绝大多数开源软件都使用,svn,作为代码版本管理软件,SVN,信息包括:作者、操作文件路径及文件名、修改说明、修改时间、版本号,14,数据集介绍,提取了,springFramework,,,2005-2010,年之间的开发过程信息,有效数据,118,884,条,有效开发者,31,名,涉及版本,12,031,个,15,根据提取信息构建开发者网络,一个具体网络可抽象为一个由节点集,V,和边集,E,组成的图,G(V,E),。,例如:,Internet-Router,、,WWW,、,P2P,、电子邮件、科研合作网络。,16,软件开发者网络的构成,节点,:开发者,边,:开发者共同修改同一个文件,节点权值,:开发者在开发过程中对文件的操作总次数,边权,:开发者共同修改的文件次数,17,开发者网络的几个参数,度:,degree,i,一般而言,值越大代表开发者越活跃,聚集系数:,cluster,i,值越大代表开发者的核心作用越明显,文件操作次数:,commit,i,值越大代表该开发者对其他开发者和整个项目的贡献越大,18,聚集系数的计算,1,节点聚集系数,网络聚集系数,C,1,=1/3C,2,=1,C,3,=0C,4,=0,C,5,=1/3,C=1/3,1,Watts, D. J. and Strogatz, S. H., Collective dynamics of small-world networks, Nature 393, 440442 (1998).,3,2,1,4,5,聚集系数描述了节点和网络的聚集程度,19,带权值的开发者合作网络,20,21,开发者文件操作频数统计,22,贡献度,contr,i,=,a,*,degree,i,+ b,*,cluster,i,+c*commit,i,a=b=c=1/3,23,开发者贡献度计算,按贡献度大小排序,24,验证,结果表明,该模型所确定的核心开发者及各开发者对项目的贡献程度与该软件实际软件开发情况是一致的,25,SpringFramework 项目信息,26,意义,开发者贡献度,预测模型,有效揭示并评价了开发者在项目开发中的作用,为项目管理者动态掌握开发人员信息,合理配置人力资源,采用合适组织方式,提高,软件质量提供了决策参考,软件开发中的人力资源问题,实质通过研究开发者网络,分析开发者的活跃度,参与度,团结精神,找出核心人物与核心团队,27,将来工作,建立开发者,工程交互网络,研究路由信息与选择,软件开发者行为分析,开源社区中的开发组织选择及其机理,软件质量、开发人员的评价与推荐,工程随时间、版本演化过程分析,28,Thanks,!,29,
展开阅读全文