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

Slides:



Advertisements
Similar presentations
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
Advertisements

Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Ch 12: Object-Oriented Analysis
COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
The Experience Factory May 2004 Leonardo Vaccaro.
Introduction To System Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Review 2.
Chapter 8, Object Design Introduction to Design Patterns
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 7 Title : Object Oriented Analysis and Design Reading: I. Sommerville,
- 1 - Component Based Development R&D SDM Theo Schouten.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CSC230 Software Design (Engineering)
1 Software Reuse in Eclipse Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
The Re-engineering and Reuse of Software
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Database Systems: Design, Implementation, and Management Ninth Edition
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Software Engineering Reuse.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
Introduction To System Analysis and Design
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
1 Introduction to Software Engineering Lecture 1.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
ProActive components and legacy code Matthieu MOREL.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
Introduction Problem Statement Research Goals Conclusion Contact / More Information { shimin, ltahvild Componentizing legacy system.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
University of Waterloo
1 Domain Management in a Hierarchical Generic Models Library University Pascal Paoli of Corsica SPE Laboratory Fabrice BERNARDI, Jean-François SANTUCCI.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Enterprise Systems Modeling EGN 5623 Enterprise Systems Optimization Fall, 2012.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
1 Towards Integrated Tool Support for the User Requirements Notation Jean-François Roy
Enterprise Systems Modeling EGN 5621 Enterprise Systems Collaboration (Professional MSEM) Fall, 2012.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
A Semi-Automated Digital Preservation System based on Semantic Web Services Jane Hunter Sharmin Choudhury DSTC PTY LTD, Brisbane, Australia Slides by Ananta.
CIS 375 Bruce R. Maxim UM-Dearborn
Modern Systems Analysis and Design Third Edition
Introduction to Advanced Java Programming
Modern Systems Analysis and Design Third Edition
Designing Software for Ease of Extension and Contraction
Reverse Engineering: A Roadmap
Chapter 4 Automated Tools for Systems Development
Modern Systems Analysis and Design Third Edition
Evaluating Compuware OptimalJ as an MDA tool
Modern Systems Analysis and Design Third Edition
An Introduction to Software Architecture
Executable Specifications
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer Engineering { shimin, ltahvild

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

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

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

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.

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

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).

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

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 …

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.

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)

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

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

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

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

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.