JRipples

About JRipples

Incremental software change adds new functionality to software. It is the foundation of software evolution, maintenance, iterative development, agile development, and other software processes. Highly interactive tool JRipples provides the programmer with the organizational support that makes the incremental change process easier and more systematic. JRipples supports impact analysis and change propagation, the two most difficult activities of the incremental change.

The JRipples tool is based on the philosophy of “intelligent assistance”, which requires close cooperation between the programmer and the tool. The tool analyzes the program, keeps track of the inconsistencies, and automatically marks the components to be visited by the programmer. It frees the programmer to concentrate on important decisions, rather than on the minutiae of the IC process. The programmer selects, visits, comprehends, and/or modifies the components that appear in the backlog of things to do. The programmer attends to the tasks for which algorithms either do not exist or are difficult to implement, while JRipples covers the algorithmic tasks that are often difficult or error-prone for humans. This interaction allows the user to correct inaccuracies of the JRipples analysis in a timely fashion and avoid accumulation of the analysis error that is inevitable when the whole transitive closure of dependencies is computed.

JRipples is implemented as a plug-in for the Eclipse platform.



A novel feature of JRipples is the monitoring of the status of the components within the IC process. Status of the components changes as IC progresses and more information is available to the programmer. In this way, JRipples provides a methodological guidance to the programmer. This is particularly valuable to novices and students.

Presently, JRipples supports analysis on the granularity of classes and methods. The granularity of classes is a natural granularity for impact analysis and change propagation in object-oriented programs. A well-designed class has a strong internal cohesion and a weak external coupling, and hence is a natural unit of scope for a change. However, there are also disadvantages of working within this granularity. Perhaps, the most significant one is the fact that, while being a high granularity, it lowers the precision of the analysis, particularly during propagation of small changes. On the other hand, granularity of methods allows programmer focusing on a specific block of code. This helps to improve precision of the analysis while, in the same time, it may lower recall and thus introduces a possibility of incomplete analysis.

The current JRipples requires the programmer to correct the imprecision manually. However, as mentioned earlier, the close interaction and alternation of the roles of the programmer and the tool make the corrections of the imprecision immediate and relatively easy thus largely alleviating this concern.

Being modular tool, JRipples provides a possibility of replacing its custom parts (e.g. different presentation modes, parsers etc.). This gives the opportunity of tuning up JRipples for a task a programmer have in hand; it also eases JRipples integration and collaboration with other Software Engineering tools designed by different research groups.


How to install JRipples

To download and install JRipples core together with default modules, please follow the next procedure:

Eclipse 3.4 and higher:

  1. Download jripples_x_y.jar, where x and y - numbering of a version.
  2. Run Eclipse
  3. Choose from the main menu "Help>Software Updates"
  4. Select "Available Software" tab
  5. Click "Add site..."
  6. Click "Archive...", select the JRipples.jar file you downloaded and press "Open"
  7. Put mark into the box next to "JRipples.jar" in the "Available software" list and press "Finish"
  8. Make sure mark "JRipples Main Components" and "JRipples Feature" are also selected
  9. Press "Install..." and follow the instructions of the Install Wizard
  10. Press "Yes" on the popped-up "Restart workbench" window
  11. JRipples menu will appear in Eclipse's menu bar
  12. Follow JRipples's Getting Started to begin the analysis

Eclipse 3.3 and older:

  1. Download jripples_x_y.jar, where x and y - numbering of a version.
  2. Run Eclipse
  3. Choose from the main menu "Help>Software Updates>Find and Install"
  4. Choose "Search for new features to install" and press "Next"
  5. Press "New Archived Site", select the JRipples.jar file you downloaded and press "Open"
  6. Put mark into the box next to "JRipples.jar" in the "Sites to include in search" list and press "Finish"
  7. Put mark into the box next to "JRipples Main Components" in the features list and press "Next"
    (Other features may be selected as well, but are not required)
  8. Select "I accept the terms in the license agreements" and press "Next"
  9. Press "Finish"
  10. Press "Install" in popped-up "Feature verification" window
  11. Press "Yes" on the popped-up "Restart workbench" window
  12. JRipples menu will appear in Eclipse's menu bar
  13. Follow JRipples's Getting Started to begin the analysis

The same procedure may be applied to download additional JRipples modules, listed on the Download page as well.


User manual

Please go to the JRipples user manual for the on-line user manual or to the "Help > Help Contents > JRipples help" for in-Eclipse user manual.


Demo

Please go to the JRipples demo for a short demo on how to use JRipples. This demo was also presented at International Conference on  Program Comprehension at Braga Portugal, June 30 - July 2 2010.


JRipples API

Please go to the JRipples API for the on-line API.

Read more


Credits

This material is based upon work supported by the National Science Foundation under Grant No. CCF-0820133 and CCF-0438970. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF)."


If you have any questions on JRipples tool, please contact Maksym Petrenko: [petrenkomaxim at users.sourceforge.net].


Project Summary | Download

SourceForge Logo