Conversion of Legacy COBOL Systems Into the Unified Modeling Language Using the Wide-Spectrum Language
Total Page:16
File Type:pdf, Size:1020Kb
Evolution of Batch-Oriented COBOL Systems into Object-Oriented Systems through Unified Modelling Language Richard Charles Millham A thesis submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy De Montfort University February, 2005 Abstract Throughout the world, there are many legacy systems that fulfil critical business functions but often require new functionality to comply with new business rules or require redeployment to another platform. Legacy systems vary tremendously in size, functionality, type (such as batch-oriented or real-time), programming language source code, and many other factors. Furthermore, many of these legacy systems have missing or obsolete documentation which makes it difficult for developers to re-develop the system to meet any new functionality. Moreover, the high cost of whole scale redevelopment and high switchover costs preclude any replacement systems for these legacy systems. Reengineering is often proposed as a solution to this dilemma of high re-development and switchover costs. However, reengineering a legacy system often entails restructuring and re-documenting a system. Once these restructuring and re-documentation processes have been completed, the developers are better able to redevelop the parts of the systems that are required to meet any new functionality. This thesis introduces a number of methods to restructure a procedurally-structured, batch-oriented COBOL system into an object-oriented, event-driven system through the use of an intermediate mathematical language, the Wide Spectrum Language (WSL), using system source code as the only documentation artefact. This restructuring process is accomplished through the application of several algorithms of object identification, independent task evaluation, and event identification that are provided in the thesis. Once these transformations are complete, method(s) are specified to extract a series of UML diagrams from this code in order to provide documentation of this system. This thesis outlines which of the UML diagrams, as specified in the UML Specifications version 1.5, can be extracted using the specified methods and under what conditions this extraction, using system source code only, can occur in a batch-oriented system. These UML diagrams are first expressed through a WSL-UML notation; a notation which follows the semantics and structure of UML Specifications version 1.5 in order to ensure compatibility with UML but is written as an extension of WSL in order to enable WSL to represent abstract modelling concepts and diagrams. This WSL-UML notation is then imported into a visual UML diagramming tool for the generation of UML diagrams to represent this system. The variety of legacy systems precludes any universal approach to reengineering. Even if a legacy system shares a common programming language, such as COBOL, the large number of COBOL constructs and the huge number of possible dialects prevents any universal translator of the original program code to another. It is hoped that by focusing on one particular type of legacy system with constraints, in this case a batch-oriented COBOL system with its source code its only surviving artefact, and by providing validated algorithms to restructure and re-document these legacy systems in the Unified Modelling Language, an industry system modelling standard, and by determining which of these Unified Modelling Language can be extracted practically from such a system, some of the parameters and uncertainties, such as program understanding of an undocumented system, in reengineering this type of system can be reduced. 2 Acknowledgments The author wishes to thank principally his first supervisor, Hongji Yang, for all his help, advice, and suggestions during this research process. Thanks must also go to my second supervisors, Professor Hussein Zedan and Mr. Steve McRobb, for all the help and advice that they provided along the way. Additionally, I would like to thank my local supervisor, Dave Shellenberg, for his helpful comments and suggestions as well as lending his expertise with legacy systems. I would like to dedicate this thesis to the memory of Jan Kwiatkowski, a former research student of Hongji Yang, whose arduous task in formulating a tool to translate common COBOL constructs into WSL was tragically cut short by his death in a car accident several years ago. 3 Contents ABSTRACT ............................................................................................................................................................................................................... 2 ACKNOWLEDGMENTS ......................................................................................................................................................................................... 3 CONTENTS ............................................................................................................................................................................................................. 4 LIST OF FIGURES................................................................................................................................................................................................... 9 LIST OF TABLES................................................................................................................................................................................................... 10 CHAPTER 1: INTRODUCTION ................................................................................................................................... 11 1.1 PURPOSE OF RESEARCH AND OVERVIEW OF PROBLEM .................................................................................................................... 11 1.1.1 Motivation ............................................................................................................................................................................................ 12 1.1.1.1 Business Case .......................................................................................................................................................................................................... 12 1.1.1.2 Academic Case ....................................................................................................................................................................................................... 13 1.1 EXISTING RESEARCH AND ITS DEFICIENCIES: COMPARISON OF EXISTING REENGINEERING TOOLS ........................... 16 1.2 PROBLEMS TO BE RESEARCHED.......................................................................................................................................................... 20 1.3 RESEARCH QUESTIONS ......................................................................................................................................................................... 21 1.4 RESEARCH METHODOLOGY ..................................................................................................................................................................... 21 1.4.1 Overview of Research Process ........................................................................................................................................................ 23 1.5 ORIGINAL CONTRIBUTION ....................................................................................................................................................................... 26 1.6 STRUCTURE OF THESIS ............................................................................................................................................................................... 28 CHAPTER 2: BACKGROUND ..................................................................................................................................... 30 2.1 INTRODUCTION ........................................................................................................................................................................................... 30 2.2 HISTORY OF SOFTWARE DEVELOPMENT .............................................................................................................................................. 30 2.3 REVERSE ENGINEERING AND REENGINEERING ................................................................................................................................ 30 2.4 COBOL-BASED SOFTWARE SYSTEMS .................................................................................................................................................... 32 2.5 OBJECT-ORIENTED PROGRAMMING ...................................................................................................................................................... 33 2.6 RESTRUCTURING PROCEDURAL LEGACY SYSTEM TO OBJECT ORIENTED SYSTEMS ................................................................. 34 2.6.1 Background of Program Function Abstraction........................................................................................................................... 34 2.6.2 Background of Object Identification Process.............................................................................................................................. 36 2.6.3 Background of Independent Task Evaluation ............................................................................................................................. 37 2.6.4 Background of Event Identification .............................................................................................................................................