Release Date: 08.28.2012
Scertify™ Refactoring Assessment 1.1.21 is available. This new version brings new features by extending the benchmark analysis to other technologies than Java, providing a user-friendly overview on your project’s health, and improving the usability of action plans & quality profile in a professional context.
Download the plugin
A new page displays a quick overview of your project’s health, according to several metrics (public documented API density, code coverage, rules compliance, cyclomatic complexity density, duplicated lines density)
All information visible in tables (ie. action plans) can be saved in CSV format
The quality profile which is generated by the plugin can now be exported as an XML file (and then directly imported into Sonar)
For correction time, 1 day is now equal to 7 hours (not 24 hours as before)
The used version of the plugin is now stored in the analysis
The plugin now works with all types of Sonar projects. In previous versions, the plugin was working only for Java projects
What are the rules you should activate in order to track efficiently your technical debt? What is the correct priority for each PMD, Checkstyle or FindBugs rules? Find out in this second video tutorial how to improve your Sonar’s quality profile with Scertify™ Refactoring Assessment, a free & open source plugin to manage & benchmark your technical debt. Read more…
Watch our first video tutorial dedicated to Scertify™ Refactoring Assessment, our free and open source plugin for Sonar. Find out how to generate a smart action plan that lists violations to be corrected, depending on: Read more…
Release Date: 06.04.2012
Scertify™ Refactoring Assessment 1.1.18 is available. This new version enhances the benchmarking capabilities on software quality, makes easier the optimization of your Sonar quality profiles and adds some user-friendly features.
Download the plugin
Filters: In Quality Profile, you’re now able to filter rules by plugin (PMD, Checkstyle, Findbugs…) or by priority
In Quality Profile, you can now generate a Sonar-ready quality profile containing the changes and improvements suggested by Tocea
A notification is now displayed when a new release of the plugin is available
A new bar displays the percentage of time that can be saved by using the computer-aided refactoring features of Scertify
Possibility to print information from Quality Profile and Refactoring pages
From the homepage, a click on repartition bars of Quality Profile leads to a filtered Quality Profile page.
Overhaul of the statistical page, with a new distribution chart that shows minimum, maximum and median values for each metric.
Metrics are now classified within 7 tabs: Size, Documentation, Complexity, Tests, Duplication, Rules and Design
The time of display has been improved for projects with a large amount of violations
Charts are now animated
Tooltips have been added for statistical positions
Bug: Images are no longer hidden with custom Sonar context
Bug: Fix NPE during analysis of some projects when source extensions files are listed
- Industry: Telecommuncation
- Project: Migration of an application event logger framework
- 850 KLOC Java
- 12 Maven modules
- 39 000 traces
- 800 declarations
ROI of the project
- Manual migration: 1.8 year / man
- Automation with Tocea: 3 weeks / man
- Benefits: 1,74 year / man
- Over 96% of savings, based on the initial workload estimate
- Ease of use of the new framework
- Reliability and performance
- Enhancement of the application’s evolutivity
The context of
The customer, a major actor of the telecommunication industry, develops and maintains an application based on an applicative trace management system (logs). This framework, which relies on 850,000 lines of code written in Java, ensures traceability of code execution and facilitates maintenance and correction activities of development teams.
In order to improve evolutivity and reliability, the customer needed to regain control of this outsourced framework, which was unmaintained. The company called Tocea to determinate the opportunity of a migration from the actual framework to a standard and open trace management system and, if opportune, to support this transformation project on technical and operational aspects.
An obsolete system penalizing the agility and the reliability of the maintenance operations
The historical log system manages 39,000 logs, part of which is interconnected with external applications of the customer information system.
Originally developed by an external provider, this framework had some consequent technical constraint and weaknesses:
- The outsourcer in charge of development and maintenance had changed.
- The framework did not meet the standard of log management (ie. commons-http-client, CXF, Log4J or SLF4J).
- The system was complex of use and was suffering of performance issues.
- Activation/Deactivation of log was no longer possible due to non portable scripts (bash/sed).
- No build management tool (such as Maven) was used to produce the application from source files.
- Lack of unit tests increased risks of functional regressions and made very hard, if not impossible, every evolution of the framework.
In summary, impacts on performance and reliability were important for the applications that used this framework:
- Significant increase of time needed to correct bugs in production (logs are one of the main tool used for debugging and provide developers with useful clues on how to find and correct an error).
- Agility of developments penalized by the absence of a build management system.
- High risk of regressions and potential security flaws, due to possible deactivation of logs without warning.
- Inability to extend the current system.
In this sharp and complex context, the customer called Tocea’s expert consultants to cover the points below. A pilot project, covering a range of 10% of the overall application would validate the technical and functional solution proposed by Tocea:
- Support for specification of the migration of the log management system toward a simpler, more reliable and extendable framework.
- Feasability and estimation for an automation of such a migration.
- Configuration of Scertify™ in order to automate the migration of the application
- Functional and technical validation, based on a migration of 10% of the application
- Manual migration for the components that could not have been migrated automatically
The results of the pilot were successful and full migration of the framework was conducted by Tocea’s consultants. Only the acceptance phases (implementation and validation of tests) and integration into the source manager remained at the charge of the customer.
The solution implemented by Tocea
Tocea’s consultants specified tasks of the migration, within a goal of automation in the following steps:
- Definition of the migration’s scenarios.
- Automated detection of application logs.
- Transformations needed to perform the migration.
- Technical optimization.
After 3 weeks of migration assisted with the Scertify™ tools, the framework had been refactored and simplified into 5 methods. The older version counted 17 different methods, as shown below.
Old framework : 17 methods to call the log management system
void printLog(String userId, DebugLevel gravite, String message)
void printLog(long userId, DebugLevel gravite, String message)
void printLog(String userId, DebugLevel gravite, String message, Throwable throwable)
void printLog(DebugLevel gravite, String message, String userId, String sessionId)
void printLog(DebugLevel gravite, String message, long userId, String sessionId)
void printLog(DebugLevel gravite, String message)
void printStackTrace(DebugLevel gravite, Throwable throwable)
void printStackTrace(DebugLevel gravite, String message, long userId, Throwable throwable)
void printStackTrace(DebugLevel gravite, String message, long userId, String sessionId, Throwable throwable)
void printStackTrace2FirstLines(Throwable e, String label)
void printStat(String userId, String type, String message)
void printStat(String userId, Date date, String type, String message)
void printStatPolling(long id, String message)
void printStatPolling(long id, Date date, String message)
void printStatNotif(String userId, String typeNotif, String message)
void printStatNotif(String userId, Date date, String typeNotif, String message)
New framework : 5 methods
void info(String _message, Object... _args) ;
void warn(String _message, Object... _args) ;
void error(String _message, Object... _args) ;
void trace(String _message, Object... _args) ;
void debug(String _message, Object... _args) ;
Refactoring with Scertify™ : tangible and important gains
Beyond the benefits of the solution proposed by Tocea, the automation of the migration of the system -made possible through the refactoring features provided by the Scertify™ range of tools- brought out considerable gains compared to a manual migration.
Overall, more than 99.4% of the migration was automated thanks to the Scertify™ refactoring technology. Thus, a saving of 96% was generated, compared to the initial workload estimate of the project.
||Automated Migration with Scertify™
- 39,000 logs to be migrated
- 17 combinations to consider for each log
- 800 logger declarations, several thousands of string optimizations
- Pooling of the strings used in the application
- Twenty custom rules developed for Scertify™
- 5 minutes to migrate each module
- 99.4% of the migration is automatable
39 000 x 5 minutes = 440 days / man
3 weeks including:
- 1 week for specification
- 2 weeks for development & test
Scertify™ is a suite of tools dedicated to development teams, designed to continuously track and eliminate software-related risks, through code quality & architecture compliance monitoring associated with computer-aided refactoring capabilities.
- Scertify™ Refactoring Assessment is dedicated to development & QA teams that provides exclusive benchmark data on Software Quality. It automatically detects the portions of an application that can be refactored, gives valuable information on refactoring strategies, and costs.
- Scertify™ Code is a static code analysis solution that detects and reduces risks related to Software Development (uncontrolled growth of the Technical Debt, low maintainability, performance issues, lack of agility, security flaws, etc.), thanks to a unique and powerful computer-aided refactoring technology. These unique features are directly availalbe on the fly in the development environment as well as in Continuous Integration environments.
- Scertify™ Architecture is a solution for Software Architects and Development Teams. It preserves the software architectures from any inappropriate modification through a continuous control of components and a unique set of refactoring capabilities.