《开发者网络对软件质量影响研究》由会员分享,可在线阅读,更多相关《开发者网络对软件质量影响研究(29页珍藏版)》请在金锄头文库上搜索。
1、开发者网络对软件质量影响研究开发者网络对软件质量影响研究博士生:李其锋指导老师:李兵 教授武汉大学萍壁胰蒜涝年弛誉而涣宦漂淡源谰锋孔露毅需磺慷店漠悬钳孵吹腕面耐哗开发者网络对软件质量影响研究开发者网络对软件质量影响研究1提纲提纲n研究背景研究背景n已有工作已有工作n实验步骤实验步骤n实验过程实验过程n实验结论实验结论n验证验证娟啃掇堤囱掺挚奥辱可亭莆路命恭轨醇衣傀庄熏编讯骨噎磋绸纠各摈侗工开发者网络对软件质量影响研究开发者网络对软件质量影响研究2研究背景研究背景n软件开发是一项人工参与的复杂的系统软件开发是一项人工参与的复杂的系统工程工程n人的可靠性直接影响到软件质量人的可靠性直接影响到软件质
2、量n软件的开发、使用大都在网络化环境下软件的开发、使用大都在网络化环境下进行,成为网络化软件,网络化软件开进行,成为网络化软件,网络化软件开发发更加关注人的因素更加关注人的因素汗厢逻舟畏融罪煞癌穿治透沼堤支稗誉雷琳粘断嘴虹搅混鸳伯畴乓枉判抒开发者网络对软件质量影响研究开发者网络对软件质量影响研究3网络化软件特征网络化软件特征n软件即服务,软件即服务,software as a service(SaaS),租用服务,按次付费),租用服务,按次付费n需求:创意提供平台,提出者可能是开发者需求:创意提供平台,提出者可能是开发者n开发:群体智慧,大众开发,众包方式,开发:群体智慧,大众开发,众包方式,
3、wikin发展:市场激励,优胜劣汰,软件趋于个性化发展:市场激励,优胜劣汰,软件趋于个性化n软件泛型:面向服务,网络化形态软件泛型:面向服务,网络化形态维蚜瘟狭赫敷网不里稽黑堪测座奏衷炙鹿个毗湾脖鞋厩三碟习舶歪沪眷居开发者网络对软件质量影响研究开发者网络对软件质量影响研究4网络环境下软件开发模式与传统软件网络环境下软件开发模式与传统软件开发模式的区别开发模式的区别网络环境下软件开发网络环境下软件开发网络环境下软件开发网络环境下软件开发n大众参与,分布网络广泛大众参与,分布网络广泛n交流主要通过邮件、论坛等交流主要通过邮件、论坛等网络化手段网络化手段n组织虚拟化,结构相对松散组织虚拟化,结构相对
4、松散n开发模式去中心化开发模式去中心化n强调开发者的个人能力和团强调开发者的个人能力和团队合作精神队合作精神传统软件开发传统软件开发传统软件开发传统软件开发n集中在公司开发集中在公司开发n会议集中讨论会议集中讨论n开发者能实时交流开发者能实时交流n有严密的开发计划有严密的开发计划n组织纪律性强组织纪律性强n以项目经理为核心以项目经理为核心n层状的组织方式层状的组织方式禽约渺惭患挂诺均阶傀脾坞考乓韧慎疽前弗侦攒市杂尚剂涕烂子蝇圆辉宇开发者网络对软件质量影响研究开发者网络对软件质量影响研究5网络化软件开发的基本问题网络化软件开发的基本问题n开发者评价开发者评价n各领域专家专业化开发,网络化制造n如
5、何组织如何组织n专家选择n团队的激励n如何管理如何管理n动态掌握n实时调整煽丁纱图寿厨靖羽盛富误凝泞花电拿宛屹聚耀热错互杠龚殴节查胁论者饿开发者网络对软件质量影响研究开发者网络对软件质量影响研究6已有工作已有工作n已有大量文献对软件缺陷预测、软件质量控制已有大量文献对软件缺陷预测、软件质量控制等问题进行了探讨等问题进行了探讨n基于开发历史信息、过程信息、产品信息等提基于开发历史信息、过程信息、产品信息等提出了一系列预测模型,并取得了较好的预测效出了一系列预测模型,并取得了较好的预测效果果n对软件开发中最重要的因素对软件开发中最重要的因素人的研究开始人的研究开始得到重视得到重视郭威娄鲜钓账皿妆戈
6、矾而擎咱馋校兽鸦冉袄业巴辕杠晦耪替窖平烬绸棒涩开发者网络对软件质量影响研究开发者网络对软件质量影响研究7nICSE 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 Larg
7、e-Scale Software Projects. In Proceedings of the IEEE 32nd International Conference on Software Engi-neering, 2010 (in press)够纱衡厄喳掂笆藕计扛槛冀徒郑耿脯央憎癌筐狂衙矿货骂刨呐芯挚命彤弱开发者网络对软件质量影响研究开发者网络对软件质量影响研究81.预备步骤:从需求文档中确定项目的范围,预备步骤:从需求文档中确定项目的范围,初步确定初步确定stakeholder的范围的范围2.找到初始找到初始stakeholder角色角色3.找到找到stakeholder4.建立他人对
8、建立他人对stakeholder推荐信息推荐信息5.建立网络建立网络6.排序排序枣灿脂色矿洛甸乏测檀刘幢砒雨助驴榷匠晌德笺御甥束余胳青垄弱挨柜瞪开发者网络对软件质量影响研究开发者网络对软件质量影响研究9stakenet蹭费炕陇旦死毋讼休薛腹艾烯喜陡幅旱椭意蝴任锤珍蔼名谢些隧帅图没郁开发者网络对软件质量影响研究开发者网络对软件质量影响研究10n利用利用PageRank算法算法排序排序n并用问卷方式进行了并用问卷方式进行了验证验证拉戴笼镭屏渝氨胖胡蛹袜往慰擎漏刺铺判焰闽痕狗襄笆臼辖竹随勘丢类赐开发者网络对软件质量影响研究开发者网络对软件质量影响研究11我们的研究方法我们的研究方法n从软件的开发过程
9、出发构建开发者网络从软件的开发过程出发构建开发者网络n运用复杂网络理论知识,分析开发者网运用复杂网络理论知识,分析开发者网络,探索开发者在软件开发过程中的协络,探索开发者在软件开发过程中的协作行为、活跃程度、贡献价值,并给予作行为、活跃程度、贡献价值,并给予综合评价,为管理者及其他开发人员的综合评价,为管理者及其他开发人员的开发行为提供决策参考开发行为提供决策参考奠貌爹柄酥遣鬃依催氖炙治柑楚点蜘撑钧晌办符鼻戌矣世蜕蛰侧选纵姚悬开发者网络对软件质量影响研究开发者网络对软件质量影响研究12实验步骤实验步骤开发者网络构建网络参数分析,模型构建结论及验证模型得到的贡献度排序情况,与实际开发情况的比较网
10、络的顶点、边及其权值的计算网络的度分布、聚集系数计算,模型建立,贡献度计算停训炮悍庇宜锄振哎侨泌人渍轴惹锤郭嚷抱撅萍屈琶浮扣轴瞥拉滥郭芍邵开发者网络对软件质量影响研究开发者网络对软件质量影响研究13实验对象:软件开发SVN信息nsubversion(简称svn)是近年来广泛使用的版本管理软件,目前,绝大多数开源软件都使用svn作为代码版本管理软件 nSVN信息包括:作者、操作文件路径及文件名、修改说明、修改时间、版本号临腐街喧随也陛在钧积氯摔盼者焉俘竖砒锭薯玄钻降磋论凄晦丁圆瑞犬垂开发者网络对软件质量影响研究开发者网络对软件质量影响研究14数据集介绍数据集介绍n提取了提取了springFram
11、ework,2005-2010年之间的开发过程信息年之间的开发过程信息n有效数据有效数据118,884条条n有效开发者有效开发者31名名n涉及版本涉及版本12,031个个朋抹待录晃端榴司坎复已挞嫌包令丰渔惶耍释痘侩勉铅镁率睁溃缎恢治盐开发者网络对软件质量影响研究开发者网络对软件质量影响研究15根据提取信息构建开发者网络根据提取信息构建开发者网络n一个具体网络可抽象为一个由节点集一个具体网络可抽象为一个由节点集V和边和边集集E组成的图组成的图G(V,E)。n例如:Internet-Router、 WWW、P2P、电子邮件、科研合作网络。煌轻贫嚷佩弊调浓蛀铆捐望焦徊通泥刘蘑掉霉霜源翌痈壮取颁匆挖窘
12、丈人开发者网络对软件质量影响研究开发者网络对软件质量影响研究16软件开发者网络的构成软件开发者网络的构成n n节点节点:开发者:开发者n n边边:开发者共同修改同一个文件:开发者共同修改同一个文件n n节点权值节点权值:开发者在开发过程中对文件:开发者在开发过程中对文件的操作总次数的操作总次数n n边权边权:开发者共同修改的文件次数:开发者共同修改的文件次数该刀姥乍露凉矣承茎赣滦输宵灰挪胶盟孜诉烟涸抨或瞬酿阵俯走松律谷偶开发者网络对软件质量影响研究开发者网络对软件质量影响研究17开发者网络的几个参数开发者网络的几个参数n度:度:degreein一般而言,值越大代表开发者越活跃n聚集系数:聚集系
13、数:clusterin值越大代表开发者的核心作用越明显n文件操作次数:文件操作次数:commitin值越大代表该开发者对其他开发者和整个项目的贡献越大影掀谱雁告瑚尊流哗扳顾才禄懈盖桂胺荧郴声岸饰效碗仔诞里菜磁院巫渺开发者网络对软件质量影响研究开发者网络对软件质量影响研究18聚集系数的计算聚集系数的计算1n节点聚集系数n网络聚集系数nC1=1/3 C2=1nC3=0C4=0nC5=1/3nC=1/31Watts,D.J.andStrogatz,S.H.,Collectivedynamicsofsmall-worldnetworks,Nature393,440442(1998).32145娜隅翱癣
14、搂恕现破疲亨酣脸飞扳韭肥万制俘相爽肆单视醒替柬派邹谱辑嫂开发者网络对软件质量影响研究开发者网络对软件质量影响研究19带权值的开发者合作网络带权值的开发者合作网络臃忽缺棺棺篆咯碑翁羽墒戴皆牢来菊觅脉舞哲划逆雅宾嗜旭轨滤戳铅午叮开发者网络对软件质量影响研究开发者网络对软件质量影响研究20谷熟森尽鸥畔漳躇男瑶肯监怠先敷以姿那投谎差浸胡溺狠藕辕涉逮售均修开发者网络对软件质量影响研究开发者网络对软件质量影响研究21开发者文件操作频数统计开发者文件操作频数统计俊奶裔富妇照犊啦盲队截娠虚绘寝丢纵裙力又梁辟俯齐翘稻位检距嫂客讨开发者网络对软件质量影响研究开发者网络对软件质量影响研究22贡献度贡献度ncontr
15、i=na* degreei + b*clusteri +c*commitina=b=c=1/3娥莆摊褪顿处扭孺秆东硼戒眷娱狸氟莆撩浓踩提当饭豪馋芋钾苯酿调狐澳开发者网络对软件质量影响研究开发者网络对软件质量影响研究23开发者贡献度计算开发者贡献度计算按贡献度大小排序蜡莽枪腑伶筐摊弄普萄咏升庐亦之剁书危尾碗髓霖凡嚷迹句盒毛叛仁酪芳开发者网络对软件质量影响研究开发者网络对软件质量影响研究24验证验证n结果表明,该模型所确定的核心开发者结果表明,该模型所确定的核心开发者及各开发者对项目的贡献程度与该软件及各开发者对项目的贡献程度与该软件实际软件开发情况是一致的实际软件开发情况是一致的擒而姥矫续挟婴瞎
16、判诀鲜茂惠酶平勘黔爸斑侦恕钥肆刮吐增豆漠耽设癌闲开发者网络对软件质量影响研究开发者网络对软件质量影响研究25SpringFramework 项目信息项目信息泡奇钡跪浦归疟蛮愧牡劳翱闰痢安腺盖夕舷裂矗矩辨塞沏尽浦厂确幢戏衙开发者网络对软件质量影响研究开发者网络对软件质量影响研究26意义意义n开发者贡献度开发者贡献度预测模型预测模型有效揭示并评价了开发有效揭示并评价了开发者在项目开发中的作用,为项目管理者动态掌者在项目开发中的作用,为项目管理者动态掌握开发人员信息,合理配置人力资源,采用合握开发人员信息,合理配置人力资源,采用合适组织方式,提高适组织方式,提高软件质量提供了决策参考软件质量提供了决
17、策参考n软件开发中的人力资源问题,实质通过研究开软件开发中的人力资源问题,实质通过研究开发者网络,分析开发者的活跃度,参与度,团发者网络,分析开发者的活跃度,参与度,团结精神,找出核心人物与核心团队结精神,找出核心人物与核心团队羡片科饿掐茨瓷惑雇戮殃陛笺猎竞万服掀废飘剖磷洛粘辗钥嫌拧趋嗅仲偶开发者网络对软件质量影响研究开发者网络对软件质量影响研究27将来工作将来工作n建立开发者建立开发者工程交互网络,研究路由工程交互网络,研究路由信息与选择信息与选择n软件开发者行为分析软件开发者行为分析n开源社区中的开发组织选择及其机理开源社区中的开发组织选择及其机理n软件质量、开发人员的评价与推荐软件质量、开发人员的评价与推荐n工程随时间、版本演化过程分析工程随时间、版本演化过程分析认促忽誊抒骸涝仕扔柬紫妒结篡每窄锭峡矢昏瑟隙喀杭揭部妄砖睫褐熄悼开发者网络对软件质量影响研究开发者网络对软件质量影响研究28Thanks!悍翻甚惕越纹剿纷畏拳厩齿玛泄梭氟盈级彭皮虐牢苇十投藻着振翟署呈常开发者网络对软件质量影响研究开发者网络对软件质量影响研究29