Posted by Tocea in Business Cases on August 7, 2012 with Comments Off
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.
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:
In summary, impacts on performance and reliability were important for the applications that used this framework:
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:
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.
Tocea’s consultants specified tasks of the migration, within a goal of automation in the following steps:
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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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) |
|
1 2 3 4 5 |
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) ; |
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.
| Manual Migration | Automated Migration with Scertify™ |
|
|
| Estimate Workload | Real Workload |
|
39 000 x 5 minutes = 440 days / man
|
3 weeks including:
|
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.
Comments are closed.