codes: mining source code descriptions from developeers discussions - icpc 2014

7

Click here to load reader

Upload: sebastiano-panichella

Post on 02-Jul-2015

239 views

Category:

Presentations & Public Speaking


1 download

DESCRIPTION

Program comprehension is a crucial activity, preliminary to any software maintenance task. Such an activity can be diffcult when the source code is not adequately documented, or the documentation is outdated. Di fferently from the many existing software re-documentation approaches, based on diff erent kinds of code analysis, this paper describes CODES (mining sourCe cOde Descriptions from developErs diScussions), a tool which applies a \social" approach to software re-documentation. Speci cally, CODES extracts candidate method documentation from StackOver ow discussions, and creates Javadoc descriptions from it. We evaluated CODES to mine Lucene and Hibernate method descriptions. The results indicate that CODES is able to extract descriptions for 20% and 28% of the Lucene and Hibernate methods with a precision of 84% and 91% respectively. Demo URL: http://youtu.be/Rnc5ni1AAzc Demo Web Page: www.ing.unisannio.it/spanichella/pages/tools/CODES

TRANSCRIPT

Page 1: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014

CODES: mining sourCecOde Descriptions from developeErs diScussions

Carmine Sebastiano Massimiliano GerardoVassallo Panichella Di Penta Canfora

Page 2: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014

S. Panichella, J. Aponte, M. Di Penta, A. Marcus, G. Canfora - ICPC 2012

Page 3: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014

Such communications are… unstructured usually not explicitly meant to describe specific parts of the

source code.

Example: Eclipse (Java System)

METHOD: searchMainMethods

..........................

Problem seems to come from

in org.eclipse.jdt.internal.debug.ui.launcher.

,there's a to

addSubTypes(List, IProgressMonitor,

IJavaSearchScope) if includesSubtypes flag

is ON. This add all types sub-types as soon

as the given scope encloses them without testing

if sub-types have a main !

..........................

CLASS: MainMethodSearchEngine Parameters: “ORANGE”

Keywords: “GREEN”

searchMainMethods

MainMethodSearchEngine

(IProgressMonitor,

IJavaSearchScope, boolean) cal

l

method

method

method

Method

Bug Report and Mailing List

Page 4: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014

• Step 1: Downloading SO discussions relying on

its REST interface and tracing them onto classes

• Step 2: Extracting paragraphs

• Step 3: Tracing paragraphs onto methods( Discards Paragraphs of discussions with 0 Votes)

• Step 4: Heuristic based Filtering

• Step 5: Similarity based Filtering

CODES:

Approach for Mining Method Descriptions

Page 5: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014

DEMO

http://youtu.be/Rnc5ni1AAzc

Page 6: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014

CODES Results:

System MinedDescriptions

True Positives

False Positives

Apache Lucene2.9.0

9,343(about 20% of the

Methods)

84 16

Hibernate3.5.0

10,608(about 28% of the

Methods)

91 9

We sampled 100 descriptions from each project

Page 7: CODES: mining sourCe cOde Descriptions from developeErs diScussions - ICPC 2014