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.
To download and install JRipples core together with default modules, please follow the next procedure:
Eclipse 3.4 and higher:
Eclipse 3.3 and older:
The same procedure may be applied to download additional JRipples modules, listed on the Download page as well.
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.
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.
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].