Note


Preliminary instruction has been written by Rui Qiu (ruiqiu@utexas.edu), then updated by Myoungkyu Song (mksong1117@utexas.edu).

Introduction


Chime is a graph-based framework for reasoning about relationships among software modifications. Chime tries to help developers view and search software modifications relevant to their own task or interests. It tries to provide three main features.

First, to help developers easily grasp high-level semantic modifications of source code, Chime decomposes each revision in SVN into a set of semantic change facts. Developers can simply view which and how program elements have been modified in each revision instead of putting significant efforts in investigating line-level syntactic changes. The atomic changes include:

  1. Add and delete a package
  2. Add and delete a class
  3. Add and delete a method
  4. Add and delete a class field
  5. Add and delete a method invocation
  6. Add and delete a field inference
  7. Add and delete a type inheritance
  8. Change a method body
  9. Change a method’s dynamic dispatch behavior
Chime organizes these atomic change facts into a graph-based data structure called ChimeGraph. Each node in ChimeGraph represents one or two atomic change facts. Nodes are connected by different edges that represent different relationships among code changes.

Second, users can search code change facts related to a program element or a developer by inputting keyword queries to Chime. For instance, giving a method’s name to Chime, it will return all code change facts on this method, including add, deletion of the method declaration, modifications to the method body, or any revisions that introduce invocation to this method. This alleviates developers from composing a complicated structured query in existing relational database systems for code change analysis.

Third, Chime can help developers search code modifications that are relevant to a specific change by learning from examples. For example, a programmer may want to search other meaningful code changes related to what the programmer has modified spatially, temporally, or structurally. Composing a query statement with the relevant criteria commonly requires the programmer to spend time and efforts to learn new programming environment.
The Chime framework can help the programmer describe the code changes they want to search based on the programmer's intention by query by example approach. The Chime Inference engine can infer various possible relationships between code changes by learning the given examples. As a result, the programmer can choose one of the desired relationships that can be used to search more meaningful code modifications. Furthermore, the programmer can designate certain code change pattern that will be monitored in the future revisions.

Installation


IDE

Source Version Control Plugin

Check out the related Eclipse Plugin software
  • Open Eclipse => Click "Window" => Click "Open Perspective" => Click "Others" => Click "SVN Repository Exploring" (See the following picture.)
Screen Shot 2013-07-09 at 8.16.44 PM.png
  • Add three SVN repository URL paths after receiving the assembla's invitation email from an project owner (See the following picture):
  1. https://subversion.assembla.com/svn/chimecore_svn
  2. https://subversion.assembla.com/svn/chimegraph
  3. https://subversion.assembla.com/svn/chimeui

Screen Shot 2013-07-09 at 8.20.22 PM.png
  • Click "Check Out" on the related directory (See the following picture):

a.png










Screen Shot 2013-07-09 at 8.32.48 PM.png

Screen Shot 2013-07-09 at 8.33.58 PM.png


Issues Before Running The Eclipse Application


CHIME UI

Update “org.eclipse.jdt.junit;bundle-version="3.7.100"” from MANIFEST.MF.
If you have a compile error on this issue, you need to update the version like (See the following picture) :
  • Select “org.eclipse.jdt.junit (3.7.0).
  • Click “properties”.
  • Click “match” on “Available versions to match”.
Screen Shot 2013-07-09 at 8.42.12 PM.png

CHIME Graph

If you can’t find the PPA plugin file upon installing the implementation on MAC, you might want to install PPA in person by using this URL: http://www.sable.mcgill.ca/ppa/site_1.2.x/.
  • Open Eclipse => Click "Help" => Click "Install New Software" => Paste the copied URL path.


The Step-by-Step Guide to use the Chime Framework


A Simple Scenario

TBD