API文档分析 张静宣 大连理工大学 2017年11月3日.

Slides:



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

护理部教学管理 南医大二附院 张淑芬. 护理部主要工作:  培训  质量  教学科研 临床教学的秘诀 What – 需要的、喜欢的 Who – 教师的角色 – 学生的程度、学习方式 How – 教学方法.
信息检索与 Web 搜索 第 1 讲 概述 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )
世界文化與自然遺產 整理: Henry 音樂 : 世界遺產名錄 ( 陳悅 ) 據統計,被聯合國列為世界文化與自然遺產有 850 多處。 這些世界各地的自然文化遺產因其獨特性而各具風情, 但並不是每個人都有機會去親自一探究竟。 有一位旅日的華人攝影家周劍生為了讓大多數人 能認識和了解世界遺產的歷史與文化價值,
黄国文 中山大学 通用型英语人才培养中的 语言学教学 黄国文 中山大学
中三選科— 文科.
户 外 拓 展 游 戏 大 全(二) 资料整理:丁 丁.
軟體工程 -物件導向程式設計與UML系統分析實作
Some theoretical notes on boosting
国家自然科学基金项目申请 经验交流与心得体会
課程地圖 (104年入學-日間部) 校通識核心 專業課程 必修與選修 與管理模組 網路技術 App設計與應用模組 學院通識核心 學院專業核心
95年度工程教育認證 淡江大學資訊工程學系 整體概況簡報
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
长进之路 (8课) 海外校园 目 录 中国学人培训材料 信仰系列 王国显 牧师编著 第一课 重生得救 (3/6/2016)
基督教的生命觀 國立東華大學資訊管理學系 許芳銘.
完成碩士論文的方法- 如果讓我重做一次研究生
蚁族俱乐部 —敢于挑战,永不言弃,友谊与事业并存!.
思维,决定一切 -公司战略、企业文化与人力资源的思辨
用“自言自语法”提高学生 英语口头表达能力 李奉栖.
第八章 信息系统开发概述.
第十三章 银行法律制度 银行法是金融法律体系中的核心,是国家进行宏观调控的重要法律。本章结合我国银行法的法律规定,阐述了中国人民银行的性质和法律地位、中国人民银行的职能、中国人民银行的货币政策与货币政策工具;阐述了商业银行的经营原则、商业银行的设立和组织机构和商业银行的业务等内容.
2014年重点行业分析及新思路、信模式 北京立金银行培训中心
第一节 信息与信息系统 第二节 物业管理信息系统概述 第三节 物业管理信息系统的开发 第四节 物业管理信息系统管理功能
第1章 資訊管理研究概論.
管理系统工程案例 Management systems engineering cases
課程名稱:程式設計 授課老師:________
做最好的自己 ——七(6)班主题班会.
从2008年度时尚先生看我们的时代精神方向.
學習行為觀察與評估 講 師:陳怡華.
第5章 信 息 系 统 上一章内容——信息管理的过程 主要包括四个环节: 4.1 信息需求与服务
課程:高等微處理機設計專題(0309) 授課老師:陳友倫 老師 連絡信箱:
荷福威士顿机器人科技有限公司 上海荷福集团
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
珍惜时间 提高效率 初二1班
韩 焱 中北大学 (原华北工学院、太原机械学院)
服務聯網地政雲.
4-1 電話禮儀的基本觀念 4-2 接聽電話的禮儀 4-3 打電話的禮儀 4-4 打國際電話的禮儀
A Question Answering Approach to Emotion Cause Extraction
Improving classification models with taxonomy information
mashup 林維甫 郭家伶 吳佩珊 蔡小倩 楊士毅 曾仕豪 Marshup起源 何謂Mashup Mashup類型 Mashup架構
ACM简介及使用指南.
軟體原型 (Software Prototyping)
計算方法設計與分析 Design and Analysis of Algorithms 唐傳義
Department of Computer Science & Information Engineering
Knowledge Engineering & Artificial Intelligence Lab (知識工程與人工智慧)
开发者社交网络 张伟强.
文字简化的方法 有时只需简化.
信息检索的评价 哈工大计算机学院 信息检索研究室 2007.
An Introduction to Computer Science (計算機概論)
现代信息检索 Modern Information Retrieval
Data Mining 資料探勘 Introduction to Data Mining Min-Yuh Day 戴敏育
面向对象的分析与设计 教学计划 研究生课程 主讲教师:邵维忠 助教: 朱彬,柳毅,尤朝,张磊,黄艺燕 2009年2月—7月
关键技术 数据库构建 文本处理 声学建模 最优搜索 波形处理.
ACM電腦相關領域全文資料庫 Presentation by iGroup Taiwan.
第二讲 计算机信息检索概述 主要内容: 一 信息检索的基本概念 二 电子资源的概念与类型 三 计算机信息检索系统 四 计算机检索技术.
服務於中國研究的網絡基礎設施 A Cyberinfrastructure for Historical China Studies
結合空間關係之正交基底Multiple-Instance影像擷取方法
先生们,大家好! 尊敬的各位先生,下午好! 西安交通大学理学院 科学计算系 褚蕾蕾
Welcome to Your Library
為什麼要學 OOP?.
107學年度高雄區 實用技能學程輔導分發 五福國中說明會
IEEE Computer Society 長亨文化事業有限公司.
2015 IEEE/ACM 37th IEEE International Conference on Software Engineering Assert Use in GitHub Projects 周星宇.
會計財務資訊系統 吳琮璠 博士.
方格紙上畫正方形.
世界文化與自然遺產 音樂 : 世界遺產名錄 (陳悅) 整理:Henry.
轉換成二進位、八進位及十六進位 = ( ) = ( ) = ( )16.
Some discussions on Entity Identification
Presentation transcript:

API文档分析 张静宣 大连理工大学 2017年11月3日

自我介绍 张静宣(Jingxuan Zhang) 大连理工大学软件学院 软件工程理论与技术研究所 Email: jingxuanzhang@mail.dlut.edu.cn 主页: http://oscar-lab.org/people/~jxzhang/ 2008-2012:大连理工大学本科 2012-2014:大连理工大学硕士,导师:江贺 2014.5-8 :新加坡管理大学研究助理,导师:David Lo 2014-现在 :大连理工大学博士,导师:江贺 研究方向:软件数据分析,软件仓库挖掘 研究内容:bug报告自动摘要,App功能推荐,API文档分析

汇报内容 背景介绍 1 API文档内容分析 2 API文档信息增强 3 API文档参考推荐 4 5 总结

API文档-帮助开发者学习API的正确使用 挑战 API文档-帮助开发者学习API的正确使用

API文档的分类 API 规范 教程 博客 论坛 Maalej W, Robillard M P. Patterns of knowledge in API reference documentation, IEEE Transactions on Software Engineering, 2013, 39(9): 1264-1282.

API文档的内容 既包含有自然语言的描述,又包含少量代码样例。同时自然语言的描述有可能也包含代码元素。 Zhong H, Su Z. Detecting API documentation errors, International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA). ACM, 2013:803-816.

API文档的质量 研究者对API文档的质量做了问卷调查。他们邀请在IBM和微软的开发者参与调研API学习的障碍和API文档失效的原因。 知识不明确 信息(代码)缺失 冗长且碎片化 内容错误 尝试自动发现并理解文档的关键知识 尝试自动填充缺失的关键信息(代码) 尝试自动切分文档并推荐相关片段 尝试自动发现文档的错误并推荐修改 Uddin G, Robillard M P. How API Documentation Fails[J]. IEEE Software, 2015, 32(4):68-75. Robillard M P. What Makes APIs Hard to Learn? Answers from Developers[J]. IEEE Software, 2009, 26(6):27-34.

目标 API文档 内容分析 1 API文档 信息增强 2 API文档 参考推荐 3 知识不明确 信息(代码)缺失 冗长且碎片化

汇报内容 背景介绍 1 API文档内容分析 2 API文档信息增强 3 API文档参考推荐 4 5 总结

API文档的知识 已有研究者对API文档包含的知识进行了人工分析,发现了12中知识类型以及他们的出现模式。 Maalej W, Robillard M P. Patterns of knowledge in API reference documentation, IEEE Transactions on Software Engineering, 2013, 39(9): 1264-1282.

API directive自动发现 定义:API directive是正确调用API所必须遵守的约束和限制 挑战: API directive对不同粒度API(比如类,接口,函数,字段等)的约束的描述很不一样。很难构建统一的模型来很好的度量他们的属性和特征。 API directive在API文档中所占的比例极少(小于5%),导致API directive不容易被自动的发现。

API directive自动发现 解决方案: 带不平衡类别处理的文本分类方法

API directive自动发现 我们提出的方法是否超过对比方法? 我们的方法平均超过对比方法20%。 我们的方法是一个更好的方法。

API directive自动发现 自动的识别高亮directive是否对开发者有利? 自动识别和高亮directive对开发者有利。

汇报内容 背景介绍 1 API文档内容分析 2 API文档信息增强 3 API文档参考推荐 4 5 总结

API文档信息增强 问题: 研究目标:自动的为API文档(API规范)添加高质量的代码样例及其使用场景。 只有11%的Java API规范和6%的Android API规范包含代码样例,远远不能满足开发者的需要。 API规范的代码样例没有与之对应的使用场景,无法快速理解该代码样例的功能。 研究目标:自动的为API文档(API规范)添加高质量的代码样例及其使用场景。 代码来源:Stack Overflow问答对 Kim J, Lee S, Hwang S W, et al. Enriching Documents with Examples: A Corpus Mining Approach, ACM Transactions on Information Systems, 2013, 31(1):157-160.

API文档信息增强 解决方案: 基于群智的代码样例填充方法。

API文档信息增强 方法步骤: 度量指标: 我们方法增强的API文档能否提高开发者效率? 邀请21个参与者,设计问卷调查调研他们的编程背景。根据他们的学习编程的时间和经验,将他们分成技能相等的3组。 给每个参与者提供一个实验教程,介绍整个实验的相关概念,实验流程和注意事项等。确保实验前每个参与者都了解了整个流程。 使用屏幕录像工具来全程记录参与者的编程行为。对于三组参与者,第三组是实验组,前两组是控制组。实验组提供使用我们的方法得到的增强后的API文档。控制组分别提供原始API文档和对比方法得到的增强后的文档。 我们设计了一系列实际的Java编程任务,根据Java教程设计了一系列编程任务,让每组参与者根据手头分配的文档完成编程任务。 每个参与者根据手头分配的文档顺序完成上述编程任务。 通过分析每个参与者的录像,得到结果进行对比。 度量指标: 完成编程任务的数量 完成编程任务的时间

API文档信息增强 我们方法增强的API文档能否提高开发者效率? 我们的人员分组策略有效。

汇报内容 背景介绍 1 API文档内容分析 2 API文档信息增强 3 API文档参考推荐 4 5 总结

API文档参考推荐 问题: 研究目标:自动的发现并推荐解释某个API的文档片段。 单个API文档冗长,不能快速定位想要的内容。 IR GMR FITSEA Input Unfamiliar APIs Output Relevant API tutorial fragments explaining unfamiliar APIs Method Information Retrieval Text Classification Details Cosine similarities are calculated between fragments and API specifications. Twenty features are defined to measure linguistic and structural characteristics between fragments and APIs. It introduces some new sources to extend APIs. Besides, co-occurrence APIs are proposed. Drawbacks Precision is low Different corpora require their corpus-specific annotated data. The effectiveness of supervised approaches depends on the features. 研究目标:自动的发现并推荐解释某个API的文档片段。

API文档参考推荐 现有工作的不足:监督模型需要大量人工标注构建训练集,同时预测效果依赖于提取的特征,在应用中并不准确。 目标:提出一种无监督模型。 相关性识别阶段: 发现API与文档片段的相关性。 片段推荐阶段: 为用户输入的不熟悉的API推荐文档解释片段。

API文档参考推荐 我们提出的无监督方法效果如何? 作为一种无监督方法,我们提 出的方法超过现有监督方法。 Corpus Tutorial Precision (%) Recall (%) F-Measure (%) FRAPT FITSEA GMR IR McGill Corpus JodaTime 85.19 69.00 58.82 73.00 76.67 74.17 50.00 80.70 70.24 54.05 Math Library 84.78 67.89 52.00 67.00 73.58 72.70 49.06 65.00 78.79 61.53 50.49 66.00 Col. Official 62.03 55.74 62.69 30.00 87.50 48.62 31.79 94.00 72.59 48.10 42.18 45.00 Col. Jenkov 61.19 90.44 82.14 33.00 97.62 85.17 58.97 88.00 75.23 68.66 48.00 Smack 77.94 83.38 70.00 74.00 94.64 88.33 93.33 85.48 83.90 80.00 61.00 Android Corpus Graphics 49.21 50.42 45.60 35.80 75.61 42.52 44.50 67.44 59.62 43.73 45.04 46.77 Resources 65.22 75.83 55.00 40.32 66.67 66.17 21.11 55.56 65.93 66.80 30.51 46.73 Data 71.43 56.52 19.29 33.33 14.76 44.00 62.50 54.17 16.72 37.93 Text 57.58 36.19 37.21 76.00 48.33 22.22 57.14 65.52 39.56 45.07 作为一种无监督方法,我们提 出的方法超过现有监督方法。 考虑到无监督方法的优点,用 我们提出的方法来发现解释 API的文档片段是个很好的选 择。

汇报内容 背景介绍 1 API文档内容分析 2 API文档信息增强 3 API文档参考推荐 4 5 总结

总结 作为学习API的最重要的资源,API文档的质量并 不理想。 对API文档进行分析,进而提高API文档的质量是 当前研究热点问题。

谢谢! 张静宣 大连理工大学 2017年11月3日