Automatic Documentation Generation via Source Code Summarization of Method Context
Paul "Will" McBurney, Collin McMillan
The resources on this page are designed to help others verify our results and recreate our approach. If
you need additional help further than what is available, please e-mail Paul "Will" McBurney.
SQL Dump file for state-of-the-art comparison
SQL Dump file for human-written summaries comparison
This file can be used to create the SQL structures our survey used, as well as populate the table with
our results. Simply run the file as a script in MySQL to create and load in the data. Additionally, you
can use this excel file to get the data.
Original Survey Link
This is the link to the survey that was used for our paper. All users who took our survey worked with
To use this file, simply open in Eclipse. You can use the existing test in sumsclice/tests/FullTest.java.
Several sample xml files are already in the conf/ folder. You can simply change the file reference in
line 22 of sumslice/tests/FullTest.java
These files are a bit more difficult to setup.
You will need the following before you can generate an XML. Each of these has an example generated for
NanoXML in the folder.
SWUM output file (example: NanoXML.out) - this file can be generated by using the SWUM tool and simply
copying and pasting the output.
Call graph (example: nanograph-less.txt) - this file is the call graph, which we generated using this tool
The file must be modified by removing extraneous infomration (for example, all the (C), (I), pathing infomation, etc.
See the given file for what it should look like.
PageRank file (example: pagerank-nano.txt) - using the call graph, you need a file which lists every method and its
PageRank. Here is an example of a quick and simple Python script that gets the page rank. You can use this,
but will need to install networkx Python package.
Source files (example: data/ folder) - the last thing you need are to have all the source code files you wish to comment
in a subfolder, preferably in the data/ directory. This should be a flattened list of the files. This can be done easily by just
copying and pasting all files of the form *.java over.
If you have any confusion, just use the NanoXML setup already in the zip files as a guide.
Paul "Will" McBurney
Dr. Collin McMillan