3 research outputs found

    Reengineering Standalone C++ Legacy Systems into the J2EE Partition Distributed Environment

    Get PDF
    ABSTRACT Many enterprise systems are developed in C++ language and most of them are standalone. Because the standalone software can not follow the new market environment, reengineering the standalone legacy systems into distributed environment becomes a critical problem. Some methods have been proposed on related topics such as design recovery, the identification of the component, modeling the interfaces of components and components allocation. Up to now, there does not exist a reengineering process for partition distributed environment, which will offer distinct advantages on horizontal scalability and performance over normal distributed solutions. This paper presents a new process to reengineer C++ legacy systems into the J2EE partition distributed environment. The process consists of four steps: translation from C++ to Java code; extraction of components using the cluster technology; modeling component interfaces and partition of the components in J2EE distribute environment. It has been applied to a large equity-trading legacy system which has proved to be successful

    A method for re-modularising legacy code

    Get PDF
    This thesis proposes a method for the re-modularisation of legacy COBOL. Legacy code often performs a number of functions that if split, would improve software maintainability. For instance, program comprehension would benefit from a reduction in the size of the code modules. The method aims to identify potential reuse candidates from the functions re-modularised, and to ensure clear interfaces are present between the new modules. Furthermore, functionality is often replicated across applications and so the re-modularisation process can also seek to reduce commonality and hence the overall amount of a company's code requiring maintenance. A 10 step method is devised which assembles a number of new and existing techniques into an approach suitable for use by staff not having significant reengineering experience. Three main approaches are used throughout the method; that is the analysis of the PERFORM structure, the analysis of the data, and the use of graphical representations. Both top-down and bottom-up strategies to program comprehension are incorporated within the method as are automatable, and user controlled processes to reuse candidate selection. Three industrial case studies are used to demonstrate and evaluate the method. The case studies range in size to gain an indication of the scalability of the method. The case studies are used to evaluate the method on a step by step basis; both strong points and deficiencies are identified, as well as potential solutions to the deficiencies. A review is also presented to assesses the three main approaches of the methods; the analysis of the PERFORM and data structures, and the use of graphical representations. The review uses the process of software evolution for its evaluation using successive versions of COBOL software. The method is retrospectively applied to the earliest version and the known changes identified from the following versions are used to evaluate the re-modularisations. Within the evaluation chapters a new link within the dominance tree is proposed as is an approach for dealing with multiple dominance trees. The results show that «ach approach provides an important contribution to the method as well as giving a useful insight (in the form of graphical representations) of the process of software evolution

    FORM: The FORTRAN Object Recovery Model. A Methodology to Extract Object-Oriented Designs From Imperative Code.

    Get PDF
    A majority of legacy systems in use in the scientific and engineering application domains are coded in imperative languages, specifically, COBOL or FORTRAN-77. These systems have an average age of 15 years or more and have undergone years of extensive maintenance. They suffer from either poor documentation or no documentation, and antiquated coding practices and paradigms (Chik94) (Osbo90). The purpose of this research is to develop a reverse-engineering methodology to extract an object-oriented design from legacy systems written in imperative languages. This research defines a three-phase methodology that inputs source code and outputs an object-oriented design. The three phases of the methodology include: Object Extraction, Class Abstraction, and Formation of the Inheritance Hierarchy. Additionally, there is a pre-processing phase that involves code structuring, alias resolution, and resolution of the COMMON block. Object Extraction is divided into two stages: Attribute Identification and Method Identification. The output of phase one is a set of candidate objects that will serve as input for phase two, Class Abstraction. The Class Abstraction phase uses clustering techniques to form classes and define the concept of identical objects. The output of phase two is a set of classes that will serve as input to the third phase, Formation of the Inheritance Hierarchy. The Formation of the Inheritance Hierarchy phase defines a similarity measure which determines class similarity and further refines the clustering performed in phase two, Class Abstraction. The result of the methodology is an object-oriented design including hierarchy diagrams and interaction diagrams. Additionally, the results of applying the methodology in two case studies are presented. The research has resulted in the development of a unique methodology to extract object-oriented designs from imperative legacy systems. The benefits of using the methodology include: the ability to capture system functionality which may not be apparent due to poor system structure, and the reduction of future maintenance costs of the system as a direct effect of accurate system documentation and updated programming technologies
    corecore