| Whats New in V1.5.0? |
What's New In Analyst4j V 1.5.0
Version ComparisonGiven that software metrics help us to evaluate various quality aspects of a system, comparing the measurements of two or more versions of the same system gives a new dimension to understand progress in quality. A system under development or maintenance goes through changes continuously, one way to ensure that the quality of code is not been compromised, would be to compare the quality of code, before and after changes. Analyst4j V1.0.0 had several quality analysis definitions with which we where able to judge the current quality of code, with Analyst4j V1.5.0 we can perform the analysis across several versions of the same system and visualize them as graphs. For eg., use SEI Maintainability Index distribution graph to understand whether maintainability of a system has progressed. The following quality analysis graph represents the distribution of Maintainability Index of JFreechart source across three versions.(jfreechart-0.9.15, jfreechart-1.0.1-pre1, jfreechart-1.0.1). View Point: Though there was a drop of "Maintainable Range" of files in jfreechart-1.0.1-pre1 compared to jfreechart-0.9.15, but the number of files in the "Maintainable Range" in jfreechart-1.0.1 release has improved considerably. Another observation is that the number of cases(files) in the other three categories of the analysis have more or less remained the same across the versions. This means that additions and changes have not deterred the quality of the system across these versions and quality of code is progressive. On the other hand comparing the measurements of two or more similar systems would help to benchmark the quality of the systems compared with their peers. For eg, comparing JBoss with JOnAs source code would help to benchmark the quality of similar systems which would be very useful when you are evaluating several open source products providing similar features. With Analyst4j V1.5.0 all quality analysis(distribution, comparison and custom analysis) can be visualized for one or more analyzed projects, be it different versions of the same system or different systems. Change / Regression Analysis using version comparisonAnalyzing regression or change in quality of a system could be a lot easier using software metrics than with any other methods. Measuring regression for a change in the system would justify the quality of work being carried out. Any refactoring or code cleaning effort if preceded and succeeded by such regression analysis would help us to evaluate that the system's progressiveness. For eg., the following is an analysis of "Coupling Between Objects Vs Response of Class" across two version of Jfreechart(jfreechart-1.0.1-pre1 and jfreechart-1.0.1). View Point:In graph the "red squares" represent a pre-release version of Jfreechart(jfreechart-1.0.1-pre1) while the "blue dots" represent a newer release version Jfreechart(jfreechart-1.0.1). To understand change on a higher level, it is enough to analyze that if a color ("blue dots") are prominent than the other colors ("red squares") then the system must have gone through major changes. As we can see in the above case "red squares" are more prominent than the "blue dots", so we can conclude that there has been more minor changes and less major changes in the code. A closer analysis of the above graph reveals the kind of change a class has gone through between version. The following graph attempts to explain the same graph but more in detail.
While the former graph depicts change/regression on a higher level, the later depicts changes/regression at individual class level. With Analyst4jV1.5.0 you can perform such(built-in and custom) analysis to understand change/regression in quality effectively and more accurately. Multi Project Search Results ComparisonAnalyst4j is the first eclipse plugin to provide a metrics based search facility. While it is useful and informative to find objects which match a particular quality attribute threshold, Analyst4jV1.5.0 improves further and allows you to run a search query across projects and provides a comparison graph based on the search results. This helps us to find whether a particular type of objects have increased or decreased across different version of a project. For e.g., a search for the antipattern "Swiss Knife Classes" using the metrics "CBO, WMC and RFC" across four version of Jfreechart generated the following graph. Search Definition Search Results across four version of Jfreechart View Point: We can observe that the number of Swiss Knife Classes had increased from 4 to 7 between (jfreechart-0.9.15 and jfreechart-1.0.1-pre1) and had remained 7 in the release version (jfreechart-1.0.1) and increased again from 7 to 8 in the latest version(jfreechart-1.0.5). While increase in Swiss Knife Classes are not indicators of good quality, the change is minimum compared to the effort/improved functionality. Such graph helps to understand and justify changes in the system. With Analyst4jV1.5.0 you can perform such analysis using 20+ industry standard software metrics and quickly understand the changes across versions of a system. Visualize Problem MarkersAnalyst4j V1.5.0 provides yet another unique feature to visualize and analyze problems reported by various plugins with reference to metrics based search results. The "Problems View" of Eclipse is a centralized and effective problem reporting system for plugin providers, it is also very useful for developers and team leaders to analyze the issues reported by these plugins and Eclipse JDT. However one bottle neck when one attempts to fix the problems reported is that there are too many problems reported and it becomes difficult to plan or prioritize the maintenance activity. Analyst4j introduced the idea of prioritizing maintenance activities using software metrics, form a search query using a standard metric such as SEI Maintainability Index or Cyclomatic Complexity or metric of your choice and then assign priority based on the category, begin by fixing the problems reported in the code (category) of highest priority. For eg., a search for the antipattern "Spaghetti Code" using "Essential Complexity and Cyclomatic Complexity" and visualize the problems reported by various plugins.
Running across several versions of jfreechart
Alternatively the "Problem Marker Visualization" feature can be used to justify the use of software metrics in software development and maintenance. Analyzing the problems reported for good and bad threshold of a metrics would reveal why metrics should be used. For e.g, Comparing the "problems / bugs" reported for maintainable and unmaintainable code using SEI Maintainability Index.
View Point:It appears that there are more problems are reported in "maintainable code" than in "less maintainable code", but taking a second look at the ratio of problems vs cases reveals a fact that code with good SEI Maintainable Index(MI>65) have less problems / bugs than code with less Maintainability Index.
* Problems reported by FindBugs It can be clearly observed that there are more problems / bugs reported for code who's Maintainability Index is less than 65, therefore making sure MI is above 65 not only ensures maintainability but also avoids risk of introducing bugs. Analyst4j V1.5.0 facilitates such quality analysis or metrics usage validation in conjunction with problems reported by various plugin provider. Search View - Manage search queries.Analyst4jV1.5.0 introduces a new 'Search View' to manage saved search queries. The 'Search View' makes it easier to work with search queries, multi project search analysis and marker visualization.
More MetricsEnhance search capabilities with more useful metrics in Analyst4jV1.5.0.
|
|||||||||||||