Presentation is loading. Please wait.

Presentation is loading. Please wait.

Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer.

Similar presentations


Presentation on theme: "Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer."— Presentation transcript:

1 Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer Engineering { shimin, ltahvild }@swen.uwaterloo.ca

2 October 2005CASCON Technology Showcase 2 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. Abstract

3 October 2005CASCON Technology Showcase 3 Problem Definition  Componentizing legacy system is essential for system maintenance and reuse.  Major problem against the widespread introduction of componentization is the lack of cost-effectively identifying components from legacy systems extracting reusable components from legacy systems

4 October 2005CASCON Technology Showcase 4 Research Focus  Design and develop a methodology to migrate a Java legacy system into a component-based 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 the system static structure automatically  Identifying and encapsulating the features based on user requirements  Applying an reengineering process to produce the target system semi- automatically

5 October 2005CASCON Technology Showcase 5 Research Goals  Design a modeling paradigm to extract static structures of a legacy system.  Design a modeling paradigm to identify and extract the features of a legacy systems based on some user requirements.  Develop a componentization algorithm to migrate a Java 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.

6 October 2005CASCON Technology Showcase 6 Java Legacy System Componentization Target System (The component-based system) Class … … Source System (A Java legacy system) Class … … … … … Class or Interface Reusable Component Dependency Legacy System Component

7 October 2005CASCON Technology Showcase 7 Java Legacy System Model Java Legacy System (S) = { C, I, R CI, F, F AI }  C – A set of all classes of the legacy system  I – A set of all interfaces of the legacy system  R CI – A static structure relationship set among classes and interfaces. It is modeled as a Class and Interface Dependency Graph (CIDG).  F – A set of functional features existed in the system  F AI – A set of abstract implementation of features. It is modeled as a Feature Abstract Implementation Model (FAIM).

8 October 2005CASCON Technology Showcase 8 Class and Interface Dependency Graph Class Class or Interface DI (Dependency Indicator) = (IH, RZ, AS, AG, CO, US) If InHeritance relation then IH = 1; otherwise IH = 0 If RealiZation relation then, RZ = 1; otherwise RZ = 0 If ASsociation relationship presents, AS = 1; otherwise AS = 0 If AGgregation relationship presents, AG = 1; otherwise AG = 0 If COmposition relationship presents, CO = 1; otherwise CO = 0 If USage relationship presents, US = 1; otherwise US = 0 Class … DI

9 October 2005CASCON Technology Showcase 9 Feature Abstract Implementation Model FAIM = { M 1, M 2, …, M n }  M i = { N i, D i, H i }, 1 ≤ i ≤ n, the FAIM of the i th feature  N i – name of the i th feature  D i – description of the i th feature  H i – host class/interface set of the i th feature Class … M1M1 N 1 D 1 H1H1 Class … M2M2 N 2 D 2 H2H2 Class … MnMn N n D n HnHn …

10 October 2005CASCON Technology Showcase 10 Componentization Algorithm  Input  A Java legacy system  The Class and Interface Dependency Graph (CIDG) of the legacy system  The Feature Abstract Implementation Model (FAIM) of the legacy system  Output  A list of potential 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.  A Target System (Component-Based System) It is a set of classes, interfaces, and reusable components. Each component in the target system does not have any dependency upon the artifacts which are outside of the component. Hence the component can be reused or replaced individually.

11 October 2005CASCON Technology Showcase 11 Integrated Componentization Environment (1) Legacy Systems (.java files) Parser System Models (XML Doc) Modeler Decomposer Decomposition Rule (XML Doc) Raw Data (XML Doc) CIDG meta-model FAIM meta-model CIDG, FAIM Decomposition Algorithm Reusable Components Component-Based System User requirements (XML Doc) Meta-models (XML Schema)

12 October 2005CASCON Technology Showcase 12 Integrated Componentization Environment (2)  An Eclipse Rich Client Platform (RCP) application  Three main entities:  A Parser  A Modeler  A Decomposer  Easily extensible to other perspectives such as:  Evaluation  Integration

13 October 2005CASCON Technology Showcase 13 Integrated Componentization Environment (3)

14 October 2005CASCON Technology Showcase 14 Case Study (1)  Source system (Java legacy system) - LOCC  A Java program measurement tool  Version 2, 2001  104 classes/interface

15 October 2005CASCON Technology Showcase 15 Case Study (2)  Target system (componentized system)  Reusable components  14 reusable components: MethodMeasure, ClassMeasure, ClassDifferent, TextPrinter, XMLPrinter, LineCount, ….

16 October 2005CASCON Technology Showcase 16 Conclusions  Analyzed the static system structure, identified and encapsulated the functional features in a legacy system.  Proposed a framework for extracting reusable components from a Java legacy system and migrating the legacy system to a component-based system in a cost-effectively manner.  Developed an integrated componentization environment to perform information retrieving, system modeling, component extracting, and system migrating.


Download ppt "Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer."

Similar presentations


Ads by Google