A Metric for Software Readability

 

Concept

We know that readability is a critical component of software quality, but the determining factors of readability are not well understood.

We can use data from human annotators obtained through SnippetSniper to extract local source code features (like line length) that are predicative of readability. Using that, we can construct an automated metric that can quickly "score" software on its readability in a way similar to Flesh-Kincaid in the natural language domain.

Papers

readability.pdf (ISSTA 2008)

readability_tse.pdf (TSE : submitted)

Presentations

readability_issta.pdf

Data Sets

votes (html) (csv)

snippets

Software

Readability Applet (source, required lib: weka)

SnippetSniper

External Software Resources

weka (API) - "a collection of machine learning algorithms for data mining tasks"

Find Bugs - Looks for errors in java byte code.