:: Client List

:: Latest News

 

     
     JAKS Re-Engineering Methodology

Overview

JAKS defines software reverse engineering as the process in which the existing legacy system is re-implemented to make it more understandable and maintainable. Reverse engineering a subject system involves three distinct phases i.e. the identification of current components and their dependencies, the extraction of design information and system abstractions, and redevelopment of system. As part of this re-engineering process, the system may be re-documented and /or re-structured. The system may be translated to more modern programming language, implemented on distributed platform rather than a mainframe or the system data may be migrated to a different database management system. Inputs to the reengineering process may include source code files, database files, screen-generation files, and similar system-related files. When the process is complete, it generates all system documentation, including specification and design, and new source code. Since fully automatic reengineering is unlikely in the near future, the process must involve a combination of transformation and human interaction.

Software re-engineering is not the same as software reverse engineering. The objective of reverse engineering is to derive the design or specifications of a system from its source (or executable) code. Reverse engineering develops a better understanding of a system and it is often part of software re-engineering. Software re-engineering produces a new and more-maintainable code. JAKS uses reverse engineering tools to automate the process. Reverse Engineering process produces some designs and specifications documents.. The information extracted by reverse engineering is not necessarily complete.

Since fully automatic reengineering is unlikely in the near future, the process must involve a combination of transformation and human interaction. JAKS approach to reverse engineering is semi automatic. JAKS can complete incomplete representations manually and with use of tools, and experienced designer enhance designs before the new system is generated. Of course, there are always practical limits to the extent that a system can be improved by re-engineering. JAKS provide tool based legacy software system reengineering engineering and prepare legacy systems for potential re--engineering and migration to new platforms and operating systems. The JAKS methodology captures the implied design of the system in a design repository (CASE tool), adds narrative information describing the system functionality and purpose, and produces appropriate documentation. This allows increased maintenance effectiveness, postures the system for any necessary re-engineering, and provides the information to allow for migration.

Approach

The technical approach for legacy system reverse engineering involves understanding of the customer environment and selection of appropriate Commercial Off-The-Shelf tools to extract the design from the source code, existing documentation, and system control language.

The first step of JAKS approach assures an understanding of the customer environment. This includes determining the system attributes such as the computer languages involved, the number of lines of code, the presence and accuracy of documentation, the experience level of personnel, and other system sizing information such as number of user interfaces, data files, data elements, and programs. We have found it is also important to know what existing tools are being used by the organization, the current software maintenance processes, and future plans for the system, any development process, time should be set aside to revise the methodology based on actual experience in executing it the first time or two.

The next step involves selecting the appropriate toolset. These tools change constantly and are fast becoming more robust as the marketplace addresses legacy transformation. Once the tools have been selected, the methodology must be reviewed and updated depending on the specific tools selected and the desired results. The last step is to execute the methodology. As in any development process, time should be set aside to revise the methodology based on actual experience in executing it the first time or two.

Methodology
The JAKS reengineering methodology defines five distinct phases for reengineering projects. These are as follows:-

•  Impact Study

•  Preparation

•  Proof of Concept

•  Reengineering & Unit Testing

•  System & Integration Testing

 
 
 
Copyright Jak Software 2005, All Rights Reserved