COBOL Legacy Modernization Toolkit
Problems with Maintenance And Development of Legacy Applications
The diminishing pool of COBOL developers, obsolescence of some hardware platforms,
and high financial cost of mainframe licenses provides a compelling business case
for the re-implementation of Legacy Applications in new Languages and Technology.
However, large software engineering projects are risky and expensive.
There are numerous examples in the industry of Software projects being delivered late and over the budget.
SoftwareMining approach offers a significant reduction in Time and Cost associated with Legacy Modernization projects through the use of Artificial Intelligence (AI) Automation: using of AI tools to re-structure the legacy code into highly object oriented structures, before translating into Legible Java or C# code.
Proper restructuring of the legacy code into Object-Oriented Java/C# code, eases the future development and maintenance cycles through
- Reduction in size of the code base: normalize data-structures, Identify duplicate code
- Quick identification of area's of code responsbile for performing a business objective
- Quickly validation of changes via auto-generated of Unit Test scripts
- Reduce complexity of code - through use of various code cleanup pattern such as GOTO removals
- Open Application maintainance to large pool of Java/C# developers
Iterative Approach to Legacy Modernization
|
SoftwareMining Modernization process adheres to Rational Unified Process Model (RUP).
RUP encourages an iterative approach to Software development, breaking the project into quantifiable deliverables.
|
SoftwareMining's Modernization projects encompass the following iterations:
Iteration-1 : Transformation
- Translation to OO Java or C#
- Clean-up of Translated System : Removal of Dead Code
- Data Migration
- Regression and System Testing. Unit Test scripts are automatically genrated and populated with test data.
- Production and Release
Iteration-2 ... Iteration-n : Enhancements
Enhance, Re-Factor and test. For example, During the translation, COBOL Green will be translated to HTML version with the same look and feel. During the 2nd iteration, such screens could benefit from a re-design process which leading to a new look-and-feel.
The iterative process ensures that transformation is completed quickly and the new application can go into production. A fast completion of Iteration-1 maximizes ROI and reduces the project risks.
Separating out the Transformation from enhancement iterations also allows quantifying and measuring of the objectives, deliverables and ROI for each subsequent iteration.
SoftwareMining's Modernization Features
SoftwareMining's translation service reduces the risk and costs associated with Translation of legacy applications,
whilst maintaining a very high standard for the generated code.
The generated code uses the latest Software-Engineering Patterns and adheres to industry coding standards to
produce a highly legible and maintainable code.
Re-architecture into "Object Oriented" code
|
Business-related code is typically distributed within disparate modules in a legacy cobol application, where each module contain code covering some functional and some non-functional areas. This leads to "maintenance" in-efficiences, forcing developers to spend a large part of their time (20-50%) identifying parts system affected by new business requirements. This duration increases with the age of the system: a system which was written yesterday is still quite fresh in developers mind, and can quickly pin-point the exact location for a change. But if the system was written 20 years ago, and the current developer has limited knowledge of the system, then .... .
Software industries response to such maintenance issues has been through Object-Orientation (OO). One of the main concepts in OO is the close organization of related functionality within "Classes". For example, an "Invoice" should know how to "print" or "calculate" itself, and the associated code should reside together, and not be scattered around the application. This OO concepts have proved to be so effective that it has become the standard approach for all new software developments.
SoftwareMining's modernization focus is to re-produce an Object-Oriented architecture for the legacy system. This is done by breaking up large sections of code, finding the most "suitable" (data) object for each piece, automatically moving the code to the appropriate place (re-factoring), and finally translating the code into a modern language such as Java or C# - ie opening up the application language to a vast pool of C# / Java development resources.
|
Identification and Removal of Dead Code
|
Typically legacy applications include many lines code which are no longer used.
The removal of this dead code can significantly improve the maintenance of the system.
SoftwareMining's AI based Tools identify procedures not-referenced through-out the application.
Additionally, Java run time analysis utilities provide detailed reports
on code usage (left). The reports are used to remove dead code and simplify the application.
|
Re-Documentation
|
Two levels of Flowchart diagrams are produced for application level interactions,
and procedure-level interactions. The flowcharts are augmented by detailed Data-structures reports.
All generated documentations is saved as HTML and accessed via standard Web-Browsers.
|
Automatic SOA
|
Business Services are defined programs with no User/Screen Interactions.
SOA enabling of Legacy Applications requires the separation of screens from the business code
and XML enabling of the interfaces.
SoftwareMining's AI based Toolset allows the Automatic Separation of Screens from the business code.
|
Data Migration
|
The translation of VSAM file definitions need to be granular, normalized, and use separate columns for representation of each VSAM field. The migration also needs to account for COBOL REDEFINES keyword, Group access, as well as COMPUTATIONAL values. More importantly this activity needs to be done FAST to provide a good Return On Investment and not to delay the new developments.
|
In a Unique approach - SoftwareMining address all these issues, and goes further by providing specialist Object-Relational Java or C# data-access layer and XML integration layer. These features enable the new developments to start and tested very quickly.
Special Features
Source platforms: VSAM, QSAM and ISAM, Unisys DMS-II, IMS, IDMS
Support for Cobol REDEFINES, and COMPUTATIONAL values
Target platforms: ANSI SQL, DB2, Oracle, MS-SQL Server or MySQL
Java and C# Object-Relational Mapping Data Access layer.
Multiple Java Deployment strategies: J2EE or pure JDBC
Includes auto-generated Java/C# data Object-Relational Data Access Layers.
|
|