TAGDUR: a Tool for Producing UML Sequence, Deployment, and Component Diagrams Through Reengineering of Legacy Systems
Total Page:16
File Type:pdf, Size:1020Kb
TAGDUR: A Tool for Producing UML Sequence, Deployment, and Component Diagrams Through Reengineering of Legacy Systems Richard Millham, Jianjun Pu, Hongji Yang De Montfort University, England [email protected] & [email protected] Abstract: A further introduction of TAGDUR, a documents this transformed system through a reengineering tool that first transforms a series of UML diagrams. This paper focuses on procedural legacy system into an object-oriented, TAGDUR’s generation of sequence, deployment, event-driven system and then models and and component diagrams. Keywords: UML (Unified Modeling Language), Reengineering, WSL This paper is a second installment in a series [4] accommodate a multi-tiered, Web-based that introduces TAGDUR (Transformation and platform. In order to accommodate this Automatic Generation of Documentation in remodeled platform, the original sequential- UML through Reengineering). TAGDUR is a driven, procedurally structured legacy system reengineering tool that transforms a legacy must be transformed to an object-oriented, event- system’s outmoded architecture to a more driven system. Object orientation, because it modern one and then represents this transformed encapsulates variables and procedures into system through a series of UML (Unified modules, is well suited to this new Web Modeling Language) diagrams in order to architecture where pieces of software must be overcome a legacy system’s frequent lack of encapsulated into component modules with documentation. The architectural transformation clearly defined interfaces. A transfer to a Web- is from the legacy system’s original based architecture requires a real-time, event- procedurally-structured to an object-oriented, driven response rather than the legacy system’s event-driven architecture. Once this original procedural invocation. transformation is complete, TAGDUR documents the structure and behavior of the Object orientation offers additional advantages. transformed system through a series of UML Object-oriented systems have lower maintenance diagrams including class, activity, deployment, costs than procedural software. Because object sequence, and component diagrams. oriented systems have encapsulated software modules, modules from different systems can This paper gives a brief overview of the more easily integrated than software that is problems posed by many legacy systems, a procedurally structured with global variables. general description of TAGDUR’s design, and how TAGDUR generates three types of UML Often, the high cost of development and diagrams: sequence, deployment, and component. switchover costs precludes developing replacement systems for these legacy systems. 1.1 Overview of Problem However, in order to integrate disparate systems, Early computer systems, faced with severe developers must fully understand the systems memory constraints, were designed to be both that are being integrated, whether these systems procedurally structured and driven. have been reengineered or not. Developers must . understand the structure of the system, the data In many cases, these systems were designed as and control flows, and the execution of external standalone systems. As time passed and business events. Documentation containing this needs changed, a need arose to integrate these information is often missing or obsolete. disparate systems together and remodel them to Consequently, any reengineering process must incorporate some capability within it to generate information obtained during the transformation documentation pertaining to the structure and process and by parsing the code of the dynamics of this system. transformed system, our tool is able to utilize this acquired information in its generation of Our tool, TAGDUR, was designed with the UML diagrams of the transformed system. purpose of trying to address the problem of lack of system documentation. By utilizing 2. Tool Design COBOL COBOL to Ex: variable data types source code COBOL source code WSL COBOL-specific program information conversion W SL representation of COBOL program WSL-specific program information Database WSL program transformation and analysis Ex: classes, events, messages Generation of UML between classes representation of Results of WSL analysis C++ code Data typing of variables, etc transformed WSL Results of transformation and analysis generation system C++ code UML diagrams C++ program equivalent to UML COBOL representation program Overview of TAGDUR Tool Design transformation step is to evaluate tasks, using The COBOL legacy system is converted into several different algorithms as outlined in [3] and WSL using a set of COBOL to WSL conversion at procedural, program block, and individual rules that were developed using, for its basis, code line level of granularity, for their degree of Martin Ward’s [11] paper, The Syntax and task independence. A task is defined as an Semantics of the Wide Spectrum Language, atomic unit of work; tasks can be defined at which defined the basis of the Wide Spectrum several different levels of granularity such as Language. Because WSL lacks a data typing program block, procedure, and individual code capability, programming language-specific line. Our task evaluation technique consists of information, such as variable data types of the analyzing two normally sequential for the original legacy system, can not be represented in presence of data and control dependencies WSL but, instead, are stored in the database for between them. If a dependency exists, these tasks future use, such as during the C++ code are deemed to be sequential; if no dependency generation phase. exists, these tasks are deemed to be able to execute independently. The last transformation Once this COBOL to WSL conversion phase has step is to identify possible events from source been completed, TAGDUR, via a series of code. The event identification step involves transformation steps, transforms the original constructing a control graph of procedure calls, procedurally structured and sequential legacy I/O calls, system interrupts, and error invocations system to an object-oriented, event-driven by parsing source code. Nodes of this control system. The first of these steps is to use our graph which involve interactions with other clustering technique to identify objects along objects are modeled as events. An example, with their attributes and operations. Our raising an error is modeled as an event technique groups closely coupled procedures and occurrence between the object where the error variables into classes. [2] The second occurred and the object, usually a System object, which handles the error. Once the events are class diagrams, which describe both the static identified, each event is evaluated in terms of its structure and behaviour of the system in terms synchronicity. Synchronicity is determined by that are most useful to developers. UML is a evaluating, at the individual code line level of world-accepted modelling standard with granularity, whether the task where the event significant tool support. UML is also platform occurred and the task immediately successive to and programming language independent. this task share any control or data dependencies. Although use case diagram generation is not a If a dependency exists, the event is deemed to be present feature of UML, TAGDUR provides synchronous; otherwise, if no dependency exists, class and activity diagrams. the event is deemed to be asynchronous. WSL has many advantages which make it ideal Once the transformation process completes, as an intermediate language. WSL was designed TAGDUR documents this transformed system to be easy to analyse and transform. WSL is by representing it through a series of UML supported by several tools, including the Fermat diagrams. These UML diagrams are represented transformation system which provides automatic in UXF textual format. UXF (Uml eXchange transformation and code simplification. WSL is Format) is a XML-based model interchange for programming and platform independent. As a UML models developed by Junichi Suzuki and result, the transformations and modeling that Yoshikazu Yamamoto. [8] Diagrams represented TAGDUR performs on a WSL-represented in UXF can be imported into a UXF-compatible system can be accomplished regardless of graphical tool for viewing. whether the original legacy system was in COBOL or C. The original legacy systems need After the transformation process finishes, the only to be converted into WSL first. [10] WSL intermediate representation is restructured into classes. Each variable that is associated with Fermat provides the ability to convert source a class is modeled as an attribute of the class code of other languages, such as IBM 370 while each procedure that is associated with a assembly language, into WSL and then convert class is modeled as an operation of the class. this WSL code into other programming languages such as C or COBOL.[9] TAGDUR Information, which was obtained during the can utilize Fermat’s language conversion transformation process, is used in the production features by having Fermat translate assembly of UML diagrams. An example, classes that have language into WSL and then transform this WSL been identified during the class identification representation into an object-oriented process become classes in the class diagram. The architecture which then can be translated into independent task evaluation process determines C++. the sequencing order of tasks; each task is given a sequence number, in ascending order