How Can I Use This Method? 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING HOW.

Slides:



Advertisements
Similar presentations
Usage of the memoQ web service API by LSP – a case study
Advertisements

Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
Utilities (Part 3) Implementing static features 1.
Software Practices Lab. -- The University of British Columbia 1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De.
DT211/3 Internet Application Development JSP: Processing User input.
Practical project in software engineering Feed reader project (Feedr) by Michael, Søren, Jonas and Therese.
Improving UML Class Diagrams using Design Patterns Semantics Shahar Maoz Work in Progress.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Doxygen and Javadoc By Derzsy Noemi.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
1 Documenting with Javadoc CS 3331 Fall 2009 How to Write Doc Comments for the Javadoc TM Tool available from java.sun.com.
CSE 403 Lecture 11 Static Code Analysis Reading: IEEE Xplore, "Using Static Analysis to Find Bugs" slides created by Marty Stepp
DEVELOPMENT QA REPORTS A Series of Reports to Enforce Compliance with Your PeopleSoft Development Standards Leandro Baca.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Multi-agent Research Tool (MART) A proposal for MSE project Madhukar Kumar.
Javadoc. The Plan ● What is Javadoc? ● Writing Javadoc comments ● Using the Javadoc tool ● Demo ● Practice.
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
JavaDoc1 JavaDoc DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY July 24, 2006 by Emil Vassev & Joey Paquet revision 1.2 –
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Writing JavaDocs Mimi Opkins CECS 274 Copyright (c) Pearson All rights reserved.
The Basics of Javadoc Presented By: Wes Toland. Outline  Overview  Background  Environment  Features Javadoc Comment Format Javadoc Program HTML API.
A brief introduction to javadoc and doxygen Cont’d.
Program documentation Using the Doxygen tool Program documentation1.
Program documentation using the Javadoc tool 1 Program documentation Using the Javadoc tool.
1 3. Computing System Fundamentals 3.1 Language Translators.
1 Documenting with Javadoc. 2 Motivation  Why document programs? To make it easy to understand, e.g., for reuse and maintenance  What to document? Interface:
2006 Adobe Systems Incorporated. All Rights Reserved. Designing & Building Structured Business Reports with ColdFusion MX 7 Adam Lehman ColdFusion Specialist.
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Aspect Mining Eclipse Plug-in Provide the integrated aspect mining environment in the Eclipse IDE. Consists of the following functional components –Flexible.
Javadoc: Advanced Features & Limitations Presented By: Wes Toland.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
Javadoc Comments.  Java API has a documentation tool called javadoc  The javadoc tool is used on the source code embedded with javadoc-style comments.
Software Documentation Section 5.5 ALBING’s Section JIA’s Appendix B JIA’s.
Javadoc A very short tutorial. What is it A program that automatically generates documentation of your Java classes in a standard format For each X.java.
Documentation Dr. Andrew Wallace PhD BEng(hons) EurIng
Querying Web Data – The WebQA Approach Author: Sunny K.S.Lam and M.Tamer Özsu CSI5311 Presentation Dongmei Jiang and Zhiping Duan.
Rainbow: XML and Relational Database Design, Implementation, Test, and Evaluation Project Members: Tien Vu, Mirek Cymer, John Lee Advisor:
JavaDoc and Contracts Spring Documenting Contracts with JavaDoc Contract model for methods Preconditions Postconditions JavaDoc Industry standard.
© 2006 Intland Software1 Aron Gombas Architect, Intland Software Extending & customizing CodeBeamer.
Development with Eclipse Software Engineering Prof. Werner Krandick.
Testing and Evaluating Software Solutions Reporting on the Testing Process.
Automatically detecting and describing high level actions within methods Presented by: Gayani Samaraweera.
Page 1 – Autumn 2009Steffen Vissing Andersen SDJ I1, Autumn 2009 Agenda: Java API Documentation Code Documenting (in javadoc format) Debugging.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
1 Documenting with Javadoc CS 3331 Section and Appendix B of [Jia03] How to Write Doc Comments for the Javadoc TM Tool available from
ASSOCIATIVE BROWSING Evaluating 1 Jinyoung Kim / W. Bruce Croft / David Smith for Personal Information.
Recent Enhancements to Quality Assurance and Case Management within the Emissions Modeling Framework Alison Eyth, R. Partheepan, Q. He Carolina Environmental.
Documentation Javadocs. Design/Documentation An essential ingredient of good Object Oriented programming is known as design by contract. This means that.
Software Deployment & Release 26/03/2015 1EN-ICE.
Presented by: Dardan Xhymshiti Fall  Authors: Eli Cortez, Philip A.Bernstein, Yeye He, Lev Novik (Microsoft Corporation)  Conference: VLDB  Type:
------TAO, MARKUS Project IT. JavaDoc ‣ JavaDoc is a standard method of commenting source code (interfaces, classes, methods, instances variables). ‣
Eclipse Basics Create projects Debug Import/Export: s/import_export/
DataGrid is a project funded by the European Commission under contract IST EDG Baseline API Document Document build description and current.
1 Documenting with Javadoc How to Write Doc Comments for the Javadoc TM Tool available from java.sun.com.
Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
Shuang Wu REU-DIMACS, 2010 Mentor: James Abello. Project description Our research project Input: time data recorded from the ‘Name That Cluster’ web page.
Review for Eclipse Release Review | © 2012 by Review for Eclipse Committers, made available under the EPL v1.0 1 Review for Eclipse (R4E) 0.11 Release.
Migrating CSS to Preprocessors by Introducing Mixins
Too Long; Didn’t Watch! Extracting Relevant Fragments from Software Development Video Tutorials Manali Shimpi.
Advanced Programing practices
Development with Eclipse
JavaDoc CECS277 Mimi Opkins.
Software Documentation
JavaDoc and Contracts Fall 2008.
Secure Coding Practices in Java: Challenges and Vulnerabilities1
By Rajanikanth B Eclipse IDE Overview By Rajanikanth B
Precise Condition Synthesis for Program Repair
MAPO: Mining and Recommending API Usage Patterns
Presentation transcript:

How Can I Use This Method? 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING HOW

Using New Methods Developers frequently need to use methods : They are not familiar with They do not remember how to use them

Learn About New Methods To learn about such methods: Reference manual (e.g. Javadoc)Q&A forums (e.g. Stack Overflow) Other information sources

Learn About New Methods Code Examples Short code fragments presenting actual, practical uses of the method Automatically generate code examples, given a specific method

Finding Code Examples Existing Approaches: Matching a query to an existing code base Matching a query to discussions in Q&A forums Providing abstract code examples Selected approach Concrete code examples

MUSE Method USage Example Client Downloader Download the source code of client projects Example Extractor Extract public methods Extract Calls to such method (raw usage example) Example Evaluator Ranks raw usage example Example Injector Add informative comments Create HTML page containing code examples Inject that HTML to official Javadoc HTML

MUSE Client Downloader Find Clients From its Maven page Not integrated Download Download compressed versions Build Using eclipse Java development tools Output: Set of Built Client Projects

MUSE Example Extractor Extraction Slice client program using JDeodorant Output : Set of raw code examples

MUSE Example Evaluator RankingSelection Output: Ranked code examples

MUSE Example Injector Textual Description Extracts the textual descriptions of parameters from its Javadoc (identified with the Inline Comments Add inline comments Injection Inject ranked list code examples to Javadoc

Muse Example

Evaluation Evaluated in three studies: VALIDATION OF RANKING AND SELECTION PERCEIVED USEFULNESS OF EXAMPLES EXTRINSIC EVALUATION

Study 1 VALIDATION OF RANKING AND SELECTION RQ Ranking between code examples Selection between clones Study Evaluate ranking Usefulness of code example Participant 9 developers MUSE Ranking is correlated with user ranking Muse Selection is most user selected clones

Study 2 PERCEIVED USEFULNESS OF EXAMPLES RQ Usefulness of examples Study Evaluate usefulness of 10 code examples Participant 119 developers Very useful 69% Useful 13% Slightly useful 18% Not useful at all 0%

Study 3 EXTRINSIC EVALUATION RQ Does it help to complete programming tasks Study Implementing 2 tasks one with and another without Muse Participant 12 developers No Code Example 53% progress Code Example 73% progress

Conclusion MUSE: ◦Concrete method usage example ◦3 study,140 developer ◦MUSE ranks and selects code examples close to how developers do ◦Useful code examples 82% ◦Improve coding quality

Question?