JRipples
Encyclopedia
JRipples is a change impact analysis
Change impact analysis
Change impact analysis is defined by Bohner and Arnold as "identifying the potential consequences of a change, or estimating what needs to be modified to accomplish a change", and they focus on IA in terms of scoping changes within the details of a design...

 tool for the Java programming language. It helps a developer calculate the impact of software change. It is an open source Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 plug-in. The tool not only give relevant program analysis, but it also organizes the steps of change propagation.

When a change is made to software, the change will quite often have an undesirable or unintended impact on the software as a whole. During a change, JRipples can be run to assist the developer in identifying the impact of the change. This tool analyzes a program and marks classes which need attention from the developer. The developer will then visit each marked class and decide if the impact requires refactoring or not. This frees the developer from trivial duties, so they can be more effective.

History

JRipples was developed by Maksym Petrenko starting 2005. Petrenko was a member of SEVERE group of the Wayne State University
Wayne State University
Wayne State University is a public research university located in Detroit, Michigan, United States, in the city's Midtown Cultural Center Historic District. Founded in 1868, WSU consists of 13 schools and colleges offering more than 400 major subject areas to over 32,000 graduate and...

 Department of Computer Science in Detroit, Michigan. The research and implementation was done during his doctoral studies. It is maintained by Laurentiu Radu Vanciu

Simple Example

JRipples integrates into the Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 menu toolbar. To start an analysis the user selects JRipples -> Start Analysis.
This will provide a popup window for the developer to select a project. The tool will then analyze the project and present a menu with classes to be inspected. After the analysis a JRipples Hierarchical View will appear. For this example there is only a single class "Main" to be analyzed, which is mark "next" in green.
After the developer visits the Main class, three options are presented by right clicking on the green "Next". They are "Located", "Propagating" and "Unchanged". For this example we shall assume the change propagated to other classes.
After selecting "Propagating" from the right click menu, JRipples identified four more classes which the change may have propagated to, and marked them "Next". The developer will then visit each of those classes to determine if the change has propagated into those classes or not. If the change does not require the class to be modified the class will be marked "Unchanged" and the developer will move on to another class marked "Next".
After the developer has iterated through all marked classes and identified if change is necessary, they are then able to organize their actions to most effectively complete the change request.

Additional Features

JRipples includes two features to make a developers search more direct. They are Lucene
Lucene
Apache Lucene is a free/open source information retrieval software library, originally created in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License....

 and GREP
Grep
grep is a command-line text-search utility originally written for Unix. The name comes from the ed command g/re/p...

analysis. To use these tools, the developer only has to right click in the JRipples Hierarchical View and select either tool in the popup menu.

The GREP tool may be used like a customary GREP tool, however JRipples will rank each class based on the number of hits from the GREP. This information should help the developer, they are able to start with the most or fewest hits, depending on their strategy.

The Lucene tool is more intelligent. The first time the developer uses the Lucene tool the project will need to be indexed, which may take a significant amount of time if the project is large. However, after indexing the tool may be used multiple times. After indexing the tool works in a similar way a word or string of text is entered into the search popup and the tool searches. However, now the tool ranks each class not just by how many times the search query appears in the class, but how it's used. For starters it assumes that if a query is only used once in a class it must be important. However, it also takes other factors into account. The end result is that the classes are given a decimal number rank indicating the most likely to contain the concept.

Bugs

Version 3.2.0 has a known bug, it has a fatal error when run on Eclipse IDE for Java EE for Web Developers, Build id: 20090920-1017. It will however, work with the standard Java Developers version along with many older versions of Eclipse.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK