1 / 1

Introduction

Class. Meta-models (XML Schema). CIDG meta-model FAIM meta-model. Decomposing Java Legacy Systems into Components. DI. DI. Class. …. DI. DI. …. Class. Class. Class. Class. Class. Class. …. DI. …. System Models (XML Doc). Legacy Systems (.java files). Class. Class.

adia
Download Presentation

Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Class Meta-models (XML Schema) CIDG meta-model FAIM meta-model Decomposing Java Legacy Systems into Components DI DI Class … DI DI … Class Class Class Class Class Class … DI … System Models (XML Doc) Legacy Systems (.java files) Class Class Raw Data (XML Doc) Class Parser Modeler DI DI DI DI … DI Shimin Li and Ladan Tahvildari Class Class … Class … Class Class Class DI DI Class Class Class Class Class … Java Legacy System CIDG, FAIM N<feature name> N<feature name> N<feature name> Class Class or Interface D<description> D<description> D<description> Reusable Components Class Component-Based System Class or Interface Class Class DI (Dependency Indicator) = (IH, RZ, AS, AG, CO, US) If Inheritance relationship presents, IH = 1; otherwise IH = 0 IfRealization relationship presents, RZ = 1; otherwise RZ = 0 IfAssociation relationship presents, AS = 1; otherwise AS = 0 IfAggregation relationship presents, AG = 1; otherwise AG = 0 IfComposition relationship presents, CO = 1; otherwise CO = 0 IfUsage relationship presents, US = 1; otherwise US = 0 H H H Class Decomposer … Reusable Component Class Class Class Class Class Class Class … … … Class Decomposition Algorithm Decomposition Rule (XML Doc) Dependency Mn M2 M1 Target System Abstract Java Legacy System Componentization Integrated Componentization Environment Evolving over a number of years, object-oriented legacy systems embody substantial corporate knowledge, including requirements, design decisions, and business rules. In order to reuse these assets in a cost-effective manner, it is important to develop a systematic strategy for reengineering the object-oriented legacy system. This research proposes a framework for extracting reusable components from a Java legacy system and migrating them to a component-based system by encapsulating reusable features. Such features may be used as reusable components in a cost-effective way. An integrated experimental environment for performing the extraction and migration processes has been designed and developed as an Eclipse RCP application. Java Legacy System Model • An Eclipse Rich Client Platform (RCP) application • Provide three perspectives: • Parser • Modeler • Decomposer • Easily extensible to other perspectives such as: • Evaluation • Integration Java Legacy system (S) = { C, I, RCI , F, FAI } • C – the set of all classes of the legacy system. • I – the set of all interfaces of the legacy system. • RCI – the static structure relationship set amongclasses and interfaces. It is modeled as a Class and Interface Dependency Graph (CIDG). • F – the set of functional features provided by the system. • FAI– the set of abstract implementation of features. It is modeled as a Feature Abstract Implementation Model (FAIM). Introduction Class and Interface Dependency Graph (CIDG) Problem Statement Componentizing legacy system is essential for the maintenance and the reuse. However, the major problem against the widespread introduction of componentization is the lack of cost-effectively identifying and extracting reusable components from legacy systems. Research Focus • Design and develop a methodology for migrating from a Java legacy system into a component-based system and extracting all reusable components from the system by • retrieving static structure of the legacy system • extracting functional features that are scattered across multiple methods and classes • encapsulating the extracted features to change into reusable components • Minimize the componentization cost by • retrieving automatically the system static structure • identifying and encapsulating the feature as automatically as possible • performing the reengineering process with a low level of source code modification which may be done automatically Figure 2 – Overview of Integrated Componentization Environment Feature Abstract Implementation Model (FAIM) Research Goals Design a modeling paradigm to identify static structures of a legacy system. Design a modeling paradigm to identify the features of a legacy systems based on some user requirements. Develop a componentization algorithm to migrate from a legacy system to a component-based system and extract all reusable components using the above modeling paradigms. Design and develop an integrated componentization environment to perform information retrieval, system modeling, component extracting, and system migrating. FAIM = { M1, M2, … , Mn } Mi = { N, D, H }, 1 ≤ i ≤ n N – name of the feature D – description of the feature H – host class/interface set of the feature Figure 3 – A Screenshot of the Integrated Componentization Environment Conclusion Componentization Algorithm Proposed a framework for extracting reusable components from a Java legacy system and migrating from the legacy system to a component-based system in a cost-effectively manner by analyzing the static system structure and identifying and encapsulating the functional features. Developed an integrated componentization environment to perform information retrieving, system modeling, component extracting, and system migrating. • Input • A Java legacy system • The Class and Interface Dependency Graph (CIDG) • The Feature Abstract Implementation Model (FAIM) • Output • Target system (Component-based system) • It is a set of classes, interfaces, and reusable components. • Each component in the set does not have any dependency upon the artifacts which are outside of the component. Hence the component can be reused individually. • A list of reusable components • Each component provides a well-defined interface as the entry into the component from outside. • Each component can be packaged into a Java Archive (JAR) file. Contact / More Information { shimin, ltahvild }@swen.uwaterloo.ca Figure 1 – Overview of Java Legacy System Componentization

More Related