开发者社交网络 张伟强.

Slides:



Advertisements
Similar presentations
迪士尼公主裙衫变化记. 《白雪公主和七个小孩人》 《白雪公主和七个小矮人》,是世界电影史上第一部长动 画片,也是迪士尼的第一部。《白雪公主》不仅为迪斯尼 带来了第一尊奥斯卡小人,更是拯救迪斯尼于水火的贵 人 —— 在经济大萧条的 1937 年的美国,《白雪公主》为迪 斯尼赚到了 850 万美元,这约等于现在的数亿美元!
Advertisements

何仕仁 主任. 國立彰化高中數理資優班 柯承翰、柯宗賢、曾品祥 國立彰化高中數理實驗班 柯宗逸、辛百弘 國立彰化女中數理資優班 姚彤錦 國立彰化女中語文資優班 陳思穎 國立彰化女中數理實驗班 姚曉蓉.
口試準備及口語表達技巧 民國 98 年 2 月 26 日 12:00pm 國立三重高中 陸芳瑜老師 1.
新闻写作基础知识 一. 新闻导语 二.新闻主体 三.新闻结构 四.角度选择.
中三選科— 文科.
對於學習不力學生的學習輔導經驗分享 張其清 新北市立新北高工 主任輔導教師.
第三章及第四章資產負債表的重點整理 取材自1.課本 2.鄭丁旺中會第九版 3.營業員題庫重點.
老地方・新記憶 在地書寫與故事行銷 透南風工作室 余嘉榮.
国家自然科学基金项目申请 经验交流与心得体会
網站「開外掛」 優化營業人員的戰鬥力 介紹 Web365行動展售網站系統的10大特色
高考主题讲座 高考语文 董 腾.
如何幫助兒童情緒管理- 一般兒童及情緒障礙兒童
質性研究資料分析電腦軟體在質性研究中的應用
簡報大綱 臺北健全房市策略簡介 臺北房市交易量大哉問 臺北房市成交價大彙集 臺北市交易違規大現形 預售屋契約預審制推行
推論與自我提問 閱讀教學師資培訓研習營.
管理学院励合社 学生干部培训 如何做好一名干部.
学校心理危机干预 ___学校心理危机的干预系统、 干预过程、干预技巧 浙江省学校心理健康教育指导中心 周红五
大家好!.
心理健康教育 高职校学生心里健康教育.
舊高等農林學校作業室.
數學解題王 ~從閱讀策略談起 分享者:吳祥銘老師.
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
从“阿拉伯之春” 看新媒体的政治传播能力.
閔肖蔓 諮商心理師 中央大學專任心理師 交通大學+中原大學兼任心理師 八方文教、杏陵醫學基金會特約講師 精贊學習公司特約講師
12年國教前哨站 談適性輔導及免試入學 12年國教前哨站 談適性輔導及免試入學 主講人:龍門國中王意蘭 校長 輔導主任 潘姿伶.
(讲座幻灯课件请在网上下载,让我们一起思考!)
加强学生党性修养 人文科学系第一学生党支部 朱青玲 绍兴文理学院元培学院学生入党积极分子党课
贵阳医学院神奇民族医药学院 社会科学部 谭宗扬
(讲座幻灯课件请在网上下载,让我们一起思考!)
现代教育管理专题 4
从2008年度时尚先生看我们的时代精神方向.
學習行為觀察與評估 講 師:陳怡華.
罗湖区第二届智慧杯中学政治学科小课题研究
离职流程精细化标准推进材料 人事行政处.
珍惜时间 提高效率 初二1班
服務聯網地政雲.
新聞報導 一、什麼是新聞? 1、狗咬人不是新聞,人咬狗才是新聞 2、大眾關切的事 3、讀者有興趣知道的事 4、接近性.
單元 1 政府、公民與社會 政治參與.
優質教育基金研究計劃研討會: 經驗分享 - 透過Web 2.0推動高小程度 探究式專題研習的協作教學模式
教案名稱: 社群網站的益處 本教案製作者:毛俞婷
Activities in 2004/5 2004/5年度活动 ETI conference- May 2004
Podcasting & Chinese Teaching and Learning 网播和中文教学
Decision Support System (靜宜資管楊子青)
INNOVATION FOR CHINA’s STRATEGIC TRANSFORMATION 为推动中国环境与发展战略转型而创新
Cross cultural communication in college english
Data Mining 資料探勘 Introduction to Data Mining Min-Yuh Day 戴敏育
971研究方法課程第九次上課 認識、理解及選擇一項適當的研究策略
Decision Support System (靜宜資管楊子青)
Towards Emotional Awareness in Software Development Teams
Developer Social Network
Github已有工作调研 邹卫琴 南京大学 , 南京.
GitHub挖掘已有工作调研 邹卫琴 南京大学 , 南京.
第一章 組織行為概論.
API文档分析 张静宣 大连理工大学 2017年11月3日.
Version Control System Based DSNs
Identity Linkage 学习、分享与交流 陈凯 2016/5/9.
Service Desk 中央大學電算中心 簡宏傑.
Introduction to Operating Systems 作業系統 (上)
國立清華大學台灣研究 教師在職進修碩士學位班 陳韻如 繪圖者:趙祐瑜.
The Promise of Research on Open Source Software
Case study: a manager’s dilemma 組別:3-7 組員:資財 黃姿瑋 資財 林宛璇
系统科学与复杂网络初探 刘建国 上海理工大学管理学院
工數報告 球球與彈簧的華爾滋 河工2B 黃亭嘉 郭宛棋 林于凱 黃乙玲 張舒茹.
PBL的核心目標與實例分享 國立台南大學 蔣佳玲.
2.1 高職與私立學校註冊操作說明 (2015/9/15上線)
李允中教授-軟體工程實驗室研究方向 觀點導向之軟體發展(Aspect-Oriented Software Development): 觀點導向軟體開發方法主要源自於重新思考軟體系統的模組化(Modularization)以及關注點分離的概念(Separation of Concerns)。當建構軟體系統功能時,往往會發現到除該功能本身之外,必須還要在這些功能上特別關注其他面向的考量,例如執行效能的面向、元件或模組的再利用性、系統的可靠程度等等。因此,一個軟體系統內,往往存在著這些錯綜交織的面向於軟體開發的
(二)盲信号分离.
第三章 市场购买行为分析 一、消费者市场购买行为分析 二、产业市场购买行为分析 三、政府市场购买行为分析 2019/9/21.
社会的角度: 自然的角度 艺术的角度 出卖肉体的妓女 ——是“美”还是“丑”? 风烛残年、浑身皱纹等 ——是“美”还是“丑”? 《欧米哀尔》,青铜, 罗丹 1885年,又名《老娼妓》 社会的角度: 出卖肉体的妓女 ——是“美”还是“丑”? 自然的角度 风烛残年、浑身皱纹等.
CAI-Asia China, CATNet-Asia
Presentation transcript:

开发者社交网络 张伟强

What? 开发者 社交网络 以开发者为节点, 以开发者间的特定关系为边, 所形成的网络结构 什么是开发者社交网络? 开发者 社交网络 什么是开发者社交网络? 我们这门研讨班,题目是开发者社交网络,大家了解这个是什么吗? 什么印象? 分解一下,两个词 意思我们都懂 合起来呢? Facebook, Twitter,微博,豆瓣,知乎,百度贴吧 stack overflow,github,sourceforge,linked in 显式 以开发者为节点, 以开发者间的特定关系为边, 所形成的网络结构

Why? 代码  人 开发者的交流协作关系 在软件工程中至关重要 社交网络 开源项目平台 首先介绍一下为什么我选择了这个研究问题? 代码  人 社交网络 开源项目平台 首先介绍一下为什么我选择了这个研究问题? 其实我们都知道,人的因素在软件开发中至关重要。开发团队成员中每个人的水平、专业技能、行为特征、协作方式等都可能影响软件质量和开发效率,从而最终影响软件的成败。 但在以往的学术研究中主要关注的是程序代码,很少考虑人的因素。 因为代码是可见的,可以去分析它的结构;而人的行为和特征难以度量。 人的各种活动在开发中是必不可少的,比如说开发团队的协作和交流,一起讨论问题。这些信息很重要却很难保留下来。 要研究这样的问题,就要获得这方面的数据,开源软件提供了这样的机会。 参加到开源项目中的人通过互联网进行讨论和协作开发,很多信息保留了下来。 而且可以获得一个开发者在多个项目中的活动情况。这样就可以更准确地衡量开发者的经验特征 有了数据支持,对这些数据的处理和分析方法,就是社交网络。 刻画人与人之间的关系,放到软件开发中就是开发者之间的交流协作关系, 对于大规模的项目,或者整个开源社区,使用社交网络分析可能会发现一些有意思的结果。 开源软件的流行同时为我们提出了新的问题,什么样的开源软件更容易成功,尤其是从人的角度出发,哪些与人有关的因素影响开源软件的成功。 总的来说,研究人的活动首先是因为人很重要但缺乏关注,开源软件可以提供数据保证研究的可行性,同时引出新的研究问题,而社交网络可以作为研究这样问题的方法。 而现在 以前关注代码,现在关注人! 开源项目提供数据,记录了人的活动 可以使用开发者社交网络进行研究 同时带来研究问题:影响开源项目成功的因素 开发者的交流协作关系 在软件工程中至关重要

How? 构建方式 分析方法 为了研究这样的问题,14年我对开发者社交网络的文献进行了整理总结,写了一篇综述,在中国科学英文版上发表。 从3个角度来总结了软件工程研究中用到的DSN 如何构建DSN,DSN描述的是开发者间的关系,但从不同的角度来确立开发者间的关系,比如说 在整个开源社区中,两个人参与到同一个项目中,有过协作 在一个项目中,修改过同一个模块的代码;或者有过email交流;或者在缺陷跟踪中有过交集,讨论过同一个bug等等 如何分析DSN,可以用社交网络分析的度量局部特性和全局特性,分析开发者的角色(核心,边缘),社团挖掘(在一个团队中挖出小团队),社交网络中讨论的幂律分布或者六度分隔的特性,等等 如何应用DSN,这个其实还很少,目前主要用在软件维护这个环节,大部分是在缺陷预测中,可以用网络分析度量指标作为预测模型的输入 应用场景

网络构建 数据获取:采访/问卷 VS 过程数据 构建方式: 交流关系——Email,留言,Bug报告评论 协作关系——开发代码,领取任务,参与项目 管理学开始

抽取方式1:根据项目参与情况 建立社交连接的方式: 数据来源: 2个开发者参与过同一个项目,则在他们间建立联系 SourceForge.net(一个基于Web的项目支持网站,为开源项目提供项目管理工具、Bug跟踪、邮件列表服务、论坛、版本控制软件) 39000个项目,33000个开发者(2001.1~2002.3) 《The open source software development phenomenon: An analysis based on social network theory》2002 - Eighth Americas Conference on Information Systems

抽取方法2:根据文件提交行为 建立社交连接的方式 数据来源 在某个项目里,如果2个开发者修改过同一个模块/文件,则在他们间建立联系 源代码版本控制工具(CVS、SVN、Git) 《 Seeking the source: software source code as a social and technical artifact》 2005 - GROUP

抽取方法3:根据电子邮件往来 建立社交连接的方式 数据来源 如果2个开发者之间发送过email,则在他们间建立联系 public mailing list archive 《 Mining Email Social Networks》2006- MSR

抽取方法4:根据Bug报告评论 建立社交连接的方式 数据来源 以该方式建立DSN的原因 2个开发者评论过同一个Bug报告,则在他们间建立联系 Bug tracking system(Bugzilla、Jira) 以该方式建立DSN的原因 大部分Bug生存期短,意味着强烈的临时关系 Bug关注于具体的技术问题,在局部代码进行修改 《 Understanding a Developer Social Network and its Evolution》2011- ICSM

网络分析 社交分析: SNA度量——中心度,网络大小,聚集系数… 角色分析——核心成员,边缘成员,中介 社团挖掘——小团体 网络特性——幂律分布,六度分隔 模式挖掘——子图挖掘 演化特征——以上特性的演化特点 可视化 管理学开始 软工相关: 社交分析特性和软工活动的相关性

网络特性分析及演化分析 ICSM 2011 从静态和动态角度考察GSN的特点在DSN中适用情况

提出问题

识别DSN和Communities 抽取DSN 识别社区及验证 Louvain algorithm 1、度数大的结点是关键开发者 2、使用真实社区birds-of-a-feather (BOF) meetings in the Mozilla Summit 2010进行验证

DSN vs GSN (1/4) Power Law

DSN vs GSN (2/4) Degree of Separation

DSN vs GSN (3/4) Modularity Higher modularity indicates that there are clearly defined communities (teams) within the network.

DSN vs GSN (4/4) Community Size

DSN vs GSN Summary

DSN Evolution (1/5) Developer Changes

DSN Evolution (2/5) Degree Distrubution

DSN Evolution (3/5) Degree of Separation

DSN Evolution (4/5) Modularity

DSN Evolution (5/5) Community Size Distribution

Community Evolution 计算2个连续时间段的社区之间的相似度,如果达到一定阈值,则认为后面的社区是由前面的社区演化而来 5种演化模式:derivation (expand or shrink), merge, split, extinct, emerge 社区演化的结论如下:

网络应用 改善软件工程任务: 预测——缺陷预测——加入网络度量作为特征 推荐——Bug推荐——加入开发者优先级 管理学开始

论文套路 提出问题  设计模型/方法  实验验证 分析现象 VS 改善过程 管理学开始

论文阅读 How Developers’ Collaborations Identified from Different Sources Tell us About Code Changes (ICSME 2014) Building It Together: Synchronous Development in OSS (ICSE 2014) From Developer Networks to Verified Communities: A Fine-Grained Approach (ICSE 2015) Facilitating Coordination between Software Developers: A Study and Techniques for Timely and Efficient Recommendations (TSE 2015) Understanding and Improving Software Build Teams (ICSE 2014) 管理学开始