Improve Software Quality with Echidna!

This Wizard integrates two tasks into echidna: Problem detection and Problem Solving through Trasformations.

Advanced Refactoring in Five Easy Steps

Using this Wizard to improve your software works as follows:
  1. Select the context where your application fits in best.
  2. Set how important each of the software quality criterias is for your project.
  3. All defined problems are sorted by their importance for your project. This rating value is calculated out of the settings you made in the first two steps and additional data. Select one or more problems from the list or the tree and start searching.
  4. When the search process is finished, you can see locations where the problem was detected according to the problem definition. Select a location at which you want to solve the problem and let the program show you solutions.
  5. After selecting a solution (many problems may have only one solution defined), go to the transformation tab and let the program Take Result + Solution from the previous tabs. Doubleclick on the transformation elements and fill out the table below. When you're finished, you can start the transformation.

Detailed Description

For the ones who don't have a software project to test with at the moment, here are some screenshots of the Advanced Refactoring Wizard at work. BTW, there is demo sourcecode in the advancedrefactoring/sample directory you can test with.


Select a context.


Set the importance of quality criteria. 2 means that the criteria is twice important for you as a criteria with importance 1. Entering 0 means the criteria doesn't matter you at all.


Select one or more problems to search for and start searching. Before starting the search, or to tweak the search process, you can change the thresholds for a search pattern. The complexity shows you how complex a search is. 1 means that searching for this problem will be done very quickly (some seconds), while higher values indicate that searching for the problem takes more time. Please note that the actual time it takes to search for a problem depends highly on the complexity of your software project you are analyzing currently.


In the result panel, you can browse through the occurrences where the problem was detected according to the problem definition. You can look into the sourcecode (if the program could assign a sourcecode file to the location). It is also possible to show a location in the graph in the Echidna main window if a node with the name of the location exists. To sort out bunch of occurrences that you aren't interested to consider any further, search with a regular expression for them or select some occurrences in the tree. You can then delete the selected items pressing the delete button. If you want to save the results to look into this data in the future, do so with the save button. If you decided at which location you want to solve a problem, select this location and let the program show you solutions.


The solution description tells you what the corresponding transformation would do. The transformation elements the transformation accepts are listed with a minimum and maximum count.


In the transformation tab, fill out the table at the bottom with transformation elements. You can also insert the name of the selected item in the Graphpad into a table cell at the right column with pressing the appropriate button. If you haven't filled out the name of an element, the cell is displayed in red. Before the transformation starts, the program checks if the numbers of the transformation elements are correctly according to the constraints in the upper left table.