Introduction Problem Statement Research Goals Conclusion Contact / More Information { shimin, ltahvild Componentizing legacy system.

Slides:



Advertisements
Similar presentations
HL7 V2 Implementation Guide Authoring Tool Proposal
Advertisements

Modeling with SoaML, the Service-Oriented Architecture Modeling Language: Part 1. Service Identification Rohit Goel, Tommy Omen, Ashley Pham.
A metadata-driven approach to context-sensitive composition of collaborations Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Ch 12: Object-Oriented Analysis
The Experience Factory May 2004 Leonardo Vaccaro.
Introduction To System Analysis and Design
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
- 1 - Component Based Development R&D SDM Theo Schouten.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
© Copyright Eliyahu Brutman Programming Techniques Course.
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Database System Development Lifecycle Transparencies
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.
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:
ESCWA SDMX Workshop Session: Role in the Statistical Lifecycle and Relationship with DDI (Data Documentation Initiative)
G RID R ESOURCE BROKER FOR SCHEDULING COMPONENT - BASED APPLICATIONS ON DISTRIBUTED RESOURCES Reporter : Yi-Wei Wu.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Database Planning, Design, and Administration Transparencies
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
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.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
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
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Technical Aspects of SIARD “SIARD under the hood” 10. April 2003 / Stephan Heuscher.
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)
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
1 Introduction to Software Engineering Lecture 1.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Position Paper How should the business logic be developed? As middle-tier application? or as a DBMS stored procedures? Akash Sharma Hiren Nagar.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
CSC480 Software Engineering Lecture 10 September 25, 2002.
ProActive components and legacy code Matthieu MOREL.
QPE A Graphical Editor for Modeling using Queueing Petri Nets Christofer Dutz.
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.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
University of Waterloo
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
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.
Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer.
1 Towards Integrated Tool Support for the User Requirements Notation Jean-François Roy
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
Introduction to Advanced Java Programming
Designing Software for Ease of Extension and Contraction
Reverse Engineering: A Roadmap
Chapter 4 Automated Tools for Systems Development
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Evaluating Compuware OptimalJ as an MDA tool
Software Design Lecture : 14.
An Introduction to Software Architecture
Executable Specifications
The Object Paradigm Classes – Templates for creating objects
Presentation transcript:

Introduction Problem Statement Research Goals Conclusion Contact / More Information { shimin, ltahvild 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 Java Legacy System Componentization Figure 1 – Overview of Java Legacy System Componentization Target System Class … … Java Legacy System Class … … … … … Class or Interface Reusable Component Dependency Java Legacy system (S) = { C, I, R CI, F, F AI } Java Legacy system (S) = { C, I, R CI, F, F AI }  C – the set of all classes of the legacy system.  I – the set of all interfaces of the legacy system.  R CI – 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.  F AI – 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 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. Integrated 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-model FAIM meta-model CIDG, FAIM Decomposition Algorithm Reusable Components Component-Based System  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 Model Componentization Algorithm Class and Interface Dependency Graph (CIDG) 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 = 0 If Realization relationship presents, 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 Class … M1M1 N D H Class … M2M2 N D H Class … MnMn N D H … FAIM = { M 1, M 2, …, M n } M i = { N, D, H }, 1 ≤ i ≤ n N – name of the feature D – description of the feature H – host class/interface set of the feature  Input  A  A Java legacy system  The  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. Abstract  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 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  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. 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 Components Shimin Li and Ladan Tahvildari