Software Re-Engineering - Componentisation

Componentisation

This leads to complete re-design of the legacy system by logically decomposing the existing application into a number of modules / components with well-defined interfaces to be deployed in an entirely new architecture. A legacy application system's objects function together in complex ways. To reengineer a large, complex system, the objects must first be segregated into clearly identified collections, each of which aligns with a business process function or business area.

 

Legacy systems and their process flows are mapped into each of the business areas. The key areas of the systems are identified to provide a detailed analysis of the applications, how they're structured, and how they interact with other applications. From the larger application, components along with their interdependencies are then identified, creating a structure of versatile, functionally specific components that can then be easily maintained and deployed.

 

Component Modelling

Performing a dependency analysis, data flow analysis, structural analysis and I/O analysis of the files or the database system and developing flow charts and interaction diagrams based on these analyses.

 

·         Component Identification - Extracting code that represents a unit of work. This unit of work is then defined as a component. The analysis process provides the insight into the definition of a unit of work and is critical for obtaining domain knowledge of the business processes.

·         Component Design - The detail design of the components that have been identified within the files or the database system. Each component represents a chunk of work extracted from the existing source code. Specifications for data structures and methods associated with each component are prepared.

·         Component Interfacing – It involves specifying the relationships between existing code and how it calls or interacts with a component. It also depicts the relationships between components and how they interact and link to other components. All the dependencies for each component identified and the existing code are defined in detail in this document.

Component Integration

Reusable components are recovered from the existing system and adapted for use in the reengineered system. Automated tools like SEEC Mosaic Studio provides facility for building components from existing legacy code. Component integration involves building the new components as needed and creating relationships between the newly built and existing reusable components.

 

Testing

This addresses linking the test requirements back to the business requirements and securing the project resources needed for testing. Componentisation approach requires extensive testing of the new system to ensure retention of functional processes of the legacy application. This process includes the following different types of testing:

 

·         Unit testing of each component

·         Integration testing for component interfaces

·         System testing for functionality

·         Performance testing for operational readiness

·         Pre-production evaluation in parallel with existing system

 

Summary

Componentisation approach is the most difficult and effort-intensive process. However, using a proper tool can reduce the time and cost for such exercise considerably. It provides the maximum benefit for progressing to the new technology environment.

 

 

 

 

 

Back to the LinksMultiple eBay Auction | eBay Shopping home page

Copyright 2005 LinksMultiple - all rights reserved. No part of this information may be copied or reproduced without prior written permission.