Upload
percival-ryan
View
213
Download
0
Embed Size (px)
Citation preview
IntroductionIntroduction
Problem StatementProblem Statement
Research Goals Research Goals
ConclusionConclusion
Contact / More InformationContact / More Information
{ shimin, ltahvild }@swen.uwaterloo.ca
Componentizing legacy system is essential for the Componentizing legacy system is essential for the maintenance and the reuse. However, the major problem maintenance and the reuse. However, the major problem against the widespread introduction of componentization is against the widespread introduction of componentization is the lack of cost-effectively identifying and extracting the lack of cost-effectively identifying and extracting reusable components from legacy systems.reusable components from legacy systems.
Research FocusResearch Focus
Java Legacy System ComponentizationJava Legacy System Componentization
Figure 1 – Overview of Java Legacy System Componentization
Target System
Class
Class
Class
Class…
…
Java Legacy System
Class
Class
ClassClass
Class Class
…
…
…
…
ClassClassClass
Class
Class
Class
Class
Class
…
Class Class or Interface
Reusable Component
Dependency
Java Legacy system (S) = { C, I, RJava Legacy system (S) = { C, I, RCICI , F, F , F, FAI AI } }
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 among classes 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).
Proposed a framework for extracting reusable components from Proposed a framework for extracting reusable components from a Java legacy system and migrating from the legacy system to a a Java legacy system and migrating from the legacy system to a component-based system in a cost-effectively manner by component-based system in a cost-effectively manner by analyzing the static system structure and identifying and analyzing the static system structure and identifying and encapsulating the functional features.encapsulating the functional features.
Developed an integrated componentization environment to Developed an integrated componentization environment to perform information retrieving, system modeling, component perform information retrieving, system modeling, component extracting, and system migrating.extracting, and system migrating.
Integrated Componentization EnvironmentIntegrated Componentization Environment
Legacy Systems
(.java files)
Parser
System Models
(XML Doc)
Modeler
Decomposer
Decomposition Rule(XML Doc)
Raw Data(XML Doc)
Meta-models(XML Schema)
CIDG meta-modelFAIM meta-model
CIDG, FAIM
DecompositionAlgorithmReusable
Components
Component-Based System
An Eclipse Rich Client Platform (RCP) applicationAn Eclipse Rich Client Platform (RCP) application
Provide Provide three perspectives:three perspectives: Parser Modeler Decomposer
Easily extensible to other perspectives such as:Easily extensible to other perspectives such as: Evaluation Integration
Java Legacy System ModelJava Legacy System Model
Componentization AlgorithmComponentization Algorithm
Class and Interface Dependency Graph (CIDG)Class and Interface Dependency Graph (CIDG)
Feature Abstract Implementation Model (FAIM)Feature Abstract Implementation Model (FAIM)
Class Class or Interface
DI (Dependency Indicator) = (IH, RZ, AS, AG, CO, US)If Inheritance relationship presents, IH = 1; otherwise IH = 0If Realization relationship presents, RZ = 1; otherwise RZ = 0If Association relationship presents, AS = 1; otherwise AS = 0If Aggregation relationship presents, AG = 1; otherwise AG = 0If Composition relationship presents, CO = 1; otherwise CO = 0If Usage relationship presents, US = 1; otherwise US = 0
Class
ClassClass Class Class
Class
Class
ClassClass
…DI
DIDI
DI
DI
DI
DI DI
DI
DI
DIDI
Class Class…
M1
N<feature name>
D<description>
H
Class Class…
M2
N<feature name>
D<description>
H
Class Class…
Mn
N<feature name>
D<description>
H
…
FAIM = { M1, M2, … , Mn }
Mi = { N, D, H }, 1 ≤ i ≤ nN – name of the featureD – description of the featureH – host class/interface set of the
feature
InputInput A A Java legacy system The The Class and Interface Dependency Graph (CIDG) The Feature Abstract Implementation Model (FAIM)
OutputOutput 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.
AbstractAbstract
Design and develop a methodology for migrating from a Design and develop a methodology for migrating from a Java legacy system into a component-based system and Java legacy system into a component-based system and extracting all reusable components from the system byextracting all reusable components from the system by retrieving static structure of the legacy systemretrieving static structure of the legacy system extracting functional features that are scattered across multiple methods andextracting functional features that are scattered across multiple methods and classesclasses encapsulating the extracted features to change into reusable componentsencapsulating the extracted features to change into reusable components
Minimize the componentization cost byMinimize 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
Design a modeling paradigm to identify static structures of a Design a modeling paradigm to identify static structures of a legacy system.legacy system.
Design a modeling paradigm to identify the features of a Design a modeling paradigm to identify the features of a legacy systems based on some user requirements.legacy systems based on some user requirements.
Develop a componentization algorithm to migrate from a Develop a componentization algorithm to migrate from a legacy system to a component-based system and extract all legacy system to a component-based system and extract all reusable components using the above modeling paradigms.reusable components using the above modeling paradigms.
Design and develop an integrated componentization Design and develop an integrated componentization environment to perform information retrieval, system environment to perform information retrieval, system modeling, component extracting, and system migrating.modeling, component extracting, and system migrating.
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.
Figure 2 – Overview of Integrated Componentization Environment
Figure 3 – A Screenshot of the Integrated Componentization Environment
Decomposing Java Legacy Systems into ComponentsDecomposing Java Legacy Systems into Components
Shimin Li and Ladan TahvildariShimin Li and Ladan Tahvildari