KR20050062896A - Method for extracting reusable components from legacy systems - Google Patents

Method for extracting reusable components from legacy systems Download PDF

Info

Publication number
KR20050062896A
KR20050062896A KR1020030093893A KR20030093893A KR20050062896A KR 20050062896 A KR20050062896 A KR 20050062896A KR 1020030093893 A KR1020030093893 A KR 1020030093893A KR 20030093893 A KR20030093893 A KR 20030093893A KR 20050062896 A KR20050062896 A KR 20050062896A
Authority
KR
South Korea
Prior art keywords
components
use case
programs
class
legacy
Prior art date
Application number
KR1020030093893A
Other languages
Korean (ko)
Inventor
김철홍
차정은
양영종
김현수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020030093893A priority Critical patent/KR20050062896A/en
Publication of KR20050062896A publication Critical patent/KR20050062896A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 업무의 핵심적인 로직을 포함하고 있는 레거시 시스템들을 새로운 기능적, 환경적 요구를 충족시킬 수 있는 새로운 시스템으로 재공학하기 위해 레거시 시스템으로부터 재사용 할 수 있는 컴포넌트를 추출하기 위한 방법에 관한 것이다. 전형적인 레거시 시스템은 수백 내지 수천 개의 프로그램들로 구성된다. 이들 프로그램들은 다양한 비즈니스 프로세스 흐름의 연결에 묶여 함께 동작한다. 레거시 시스템으로부터 컴포넌트를 추출하고, 이렇게 추출된 컴포넌트를 기반으로 시스템을 재구성하기 위해서는 이들 프로그램들을 독립된 하나의 비즈니스 기능(서비스)을 제공하는 프로그램들의 집합으로 분리해야 한다. 컴포넌트 추출 과정은 소프트웨어 시스템에 실현되어 있는 비즈니스 기능들의 영역을 파악하여 독립된 하나의 비즈니스 기능을 수행하는 프로그램들의 집합을 컴포넌트로 추출하는 것이다. 따라서, 본 발명은 업무 흐름을 중심으로 컴포넌트를 파악함으로써 컴포넌트가 독립적으로 재사용될 가능성을 훨씬 높이고, 컴포넌트가 배치될 목표 플랫폼에 맞게 컴포넌트를 분할 및 배치 할 수 있도록 하는 효과적인 방법을 제시한다.The present invention relates to a method for extracting reusable components from a legacy system to reengineer legacy systems that contain the core logic of the task into a new system that can meet new functional and environmental requirements. A typical legacy system consists of hundreds to thousands of programs. These programs work together tied to various business process flows. In order to extract components from legacy systems and reconfigure the system based on these extracted components, these programs must be separated into a set of programs that provide a single business function (service). The component extraction process is to grasp the area of business functions realized in the software system and extract a set of programs that perform one independent business function as components. Accordingly, the present invention provides an effective method for identifying components based on a work flow, thereby increasing the possibility of the components being independently reused, and dividing and arranging the components according to the target platform on which the components are to be placed.

Description

레거시 시스템으로부터 재사용 가능한 컴포넌트 추출 방법{METHOD FOR EXTRACTING REUSABLE COMPONENTS FROM LEGACY SYSTEMS} How to extract reusable components from legacy systems {METHOD FOR EXTRACTING REUSABLE COMPONENTS FROM LEGACY SYSTEMS}

본 발명은 업무의 핵심적인 로직을 포함하고 있는 레거시(Legacy) 시스템으로부터 새로운 기능적, 환경적 요구를 충족시키는 새로운 시스템으로 변환하기 위해 레거시 시스템으로부터 재사용 가능한 컴포넌트를 추출하기 위한 방법에 관한 것이다.The present invention relates to a method for extracting reusable components from a legacy system to convert from a legacy system that contains the core logic of the task to a new system that meets new functional and environmental needs.

최근 Y2K 문제 해결 이후, 기업들은 레거시 시스템을 자사의 핵심 자산으로 인식하기 시작했다. 금융, 유통 등 기업의 기간 시스템들은 IBM 메인프레임 상에서 운용되고 있으며, 이러한 시스템들은 대부분 COBOL 이나, PL/1 등 3세대 프로그래밍 언어로 작성되어 있다. 그러나, 다양한 웹 상의 서비스 확대 및 컴포넌트 기반 개발 방법(Component Based Development)에 대한 중요성이 점차 증가하면서 과거의 기술로 개발되어진 업무의 중요 지식과 프로세스들을 컴포넌트 기반 웹 환경으로 변환하는 재공학(Reengineering)에 관한 연구가 활발해지고 있다. 레거시(Legacy) 시스템들은 개방성과 표준화 미흡으로 시스템 자체의 융통성이 매우 부족하며, 사용자가 기대하는 친밀한 사용자 인터페이스(User Interface)를 통해 동적인 의사 결정이 가능한 상호 대화적(interactive) 방식을 지원할 수 없다. 따라서, 새로운 환경을 위한 새로운 시스템을 처음부터 새로 개발하는 것보다는 기업의 많은 지원이 투입된 레거시 시스템의 프로그램을 최대한으로 이용함으로써 개발 비용을 절약하고, 기존 자원을 재사용 할 수 있도록 레거시 시스템을 분석하여 재사용 컴포넌트를 추출할 수 있어야 한다.Since the recent Y2K issue, companies have begun to recognize legacy systems as their core assets. Corporate backbone systems such as finance and distribution run on IBM mainframes, most of which are written in third-generation programming languages such as COBOL and PL / 1. However, as the importance of expanding services and component-based development on various webs is gradually increasing, reengineering converts important knowledge and processes of tasks developed with past technologies into component-based web environments. There is a lot of research on this. Legacy systems lack openness and lack of standardization, so the system itself is very inflexible and cannot support interactive ways of making dynamic decisions through the user-expected intimate user interface. . Therefore, rather than developing a new system for the new environment from the beginning, it is possible to save the development cost by maximizing the program of the legacy system with much support from the company and analyze and reuse the legacy system so that the existing resources can be reused. You should be able to extract the component.

종래의 컴포넌트 추출 기술은 특정 기능과 관련된 시스템 구성요소를 클러스터링하여 하나의 컴포넌트로 인식하는 방법을 제시한다. 이 방법에서는 프로그램 코드가 특정 기능과 얼마나 많이 연관되는지를 평가하기 위한 코드 평가 도구를 제공하는 도구가 있다. 어떤 특성과 관련된 기능을 수행하는 컴포넌트를 추출하기 위해 재공학자는 그 특성과 관련된 특성 평가 요소에 높은 가중치를 주고 그것을 바탕으로 시스템 구성요소를 검색한다. 즉, 제어 흐름, 수학적인 계산, 입출력 등과 같은 요소에 가중치를 다르게 부여함으로써 추출하고자 하는 컴포넌트의 특성을 반영할 수 있다. 검색의 결과로 가장 높은 코드 평가 값을 갖는 시스템 구성요소가 발견된다. 검색 후 찾아진 구성요소를 기준 요소로 설정하고 그 요소에 영향을 주거나 혹은 그 요소로부터 영향을 받는 시스템 요소들을 시스템 종속성(dependency) 정보를 적용하여 찾은 다음 클러스터링하여 하나의 컴포넌트로 매핑한다. 이 방법을 적용할 경우, 레거시 시스템에서 특정 목적에 맞는 작은 규모의 컴포넌트(예, 이자계산)를 쉽게 찾을 수 있다는 장점은 있지만, 그 컴포넌트가 단위 비즈니스 업무를 수행한다고 보기 어렵다. 오히려 그것은 단위 비즈니스의 일부분으로 인식하는 것이 올바를 것이다. 결과적으로 이 방법은 레거시 시스템에서 특정 기능의 컴포넌트 추출에만 관심이 있기 때문에 레거시 시스템 전체를 새로운 플랫폼으로 이전하고 배치하기 위한 관점에서의 컴포넌트 추출 기능이 약하다고 할 수 있다. The conventional component extraction technique proposes a method of clustering system components related to a specific function and recognizing them as one component. In this method, there is a tool that provides a code evaluation tool for evaluating how much program code is associated with a particular function. In order to extract components that perform a function related to a characteristic, the reengineer gives a high weight to the characteristic evaluation factors related to the characteristic and searches the system components based on it. That is, by assigning different weights to elements such as control flow, mathematical calculation, input / output, etc., the characteristics of the component to be extracted can be reflected. As a result of the search, the system component with the highest code evaluation value is found. After searching, the found component is set as a reference element, and system elements that affect or are affected by the element are found by applying system dependency information, clustered, and mapped into one component. This approach has the advantage of making it easier for legacy systems to find small components (e.g., interest calculations) for a specific purpose, but they do not seem to do the unit business. Rather, it would be right to recognize it as part of the unit business. As a result, this method is only concerned with extracting components of specific functions from legacy systems, which means that component extraction is weak in terms of moving and deploying the entire legacy system to a new platform.

본 발명은 상기 설명한 종래의 기술적 과제를 해결하기 위한 것으로서, 레거시 시스템으로부터 컴포넌트를 파악하고, 추출한 다음 추출된 컴포넌트를 새로운 플랫폼(J2EE 또는 .NET)에 배치하고자 하는 것을 목적으로 한다. SUMMARY OF THE INVENTION The present invention has been made to solve the above-described technical problem, and aims to identify and extract components from a legacy system and then place the extracted components on a new platform (J2EE or .NET).

이를 위해 레거시 시스템으로부터 컴포넌트를 파악하기 위해 레거시 시스템의 화면 흐름으로부터 유스케이스를 기반으로 시스템의 구성요소를 파악하는 방법을 제시하고, 유사한 목적의 유스케이스를 병합하여, 컴포넌트로 추출하고, 추출된 컴포넌트를 분석하여 공유 컴포넌트를 파악하여 컴포넌트를 재조정하는 방법을 제시한다. 최종적으로 추출된 컴포넌트를 컴포넌트 플랫폼에 맞게 분할하여 배치하는 방법을 제시한다. To this end, we present a method to identify the components of the system based on the use case from the screen flow of the legacy system in order to identify the components from the legacy system, merge the use cases for similar purposes, extract them as components, and extract the extracted components. This paper presents a method for restructuring components by analyzing shared components. Finally, we present a method of dividing and arranging the extracted components according to the component platform.

본 발명은 레거시 시스템의 업무 흐름을 중심으로 컴포넌트를 파악함으로써 컴포넌트가 독립적으로 재사용될 가능성을 더욱 높이고, 컴포넌트가 배치될 목표 플랫폼 환경에 맞게 컴포넌트의 분할 및 배치 방법을 제공한다. The present invention further enhances the possibility of the components being independently reused by identifying components based on the work flow of the legacy system, and provides a method of dividing and arranging components in accordance with a target platform environment in which the components are to be deployed.

이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail.

도 1은 본 발명에서 제시하는 레거시 시스템으로부터 컴포넌트를 추출하는 방법의 전체 흐름도이다. 본 발명에서는 레거시 시스템의 대표적인 COBOL 시스템을 대상으로 설명한다.1 is an overall flowchart of a method of extracting a component from a legacy system according to the present invention. In the present invention, a representative COBOL system of a legacy system will be described.

도면을 참조하면, 유스케이스 관련 시스템 요소 파악 단계(100)에서는 레거시 시스템의 역공학을 통해 파악된 유스케이스에 대해, 그 유스케이스 수행에 참여하는 소프트웨어 시스템의 구성요소들을 파악한다. 이 과정에서 역공학을 통해 추출된 프로그램 분석 정보를 이용한다. 역공학 과정에서 유스케이스를 파악하는데 사용했던 화면 흐름을 기반으로 시작한다. 유스케이스의 화면 흐름을 궁극적으로 그 유스케이스를 통해 달성되는 작업의 흐름(work flow)으로 인식한다. Referring to the drawing, in the use case-related system element identification step 100, for the use case identified through reverse engineering of the legacy system, the components of the software system participating in the use case are identified. In this process, program analysis information extracted through reverse engineering is used. We begin with the screen flow that we used to identify the use case in reverse engineering. The use case's screen flow is ultimately perceived as the work flow achieved through that use case.

화면 흐름 그래프를 기반으로 유스케이스와 관련된 화면 흐름을 추적하면서, 그 유스케이스의 수행에 참여하는 프로그램들, 화면 파일들, 혹은 데이터베이스(또는 파일)들을 파악한다. 이 때 역공을 통해 복구된 시스템 자원 그래프, 변수 관계표를 활용한다. 위 과정에서 파악된 프로그램들 각각에 대해 프로그램 호출 그래프, 변수 관계표 등을 활용하여 호출(call) 관계/링크(link) 관계, 참조 관계 등의 연관 관계를 갖는 시스템 구성 요소들을 파악한다. COBOL 응용 시스템을 구성하는 요소로는 "패러그래프", "프로그램 문장", "전역 변수", "프로그램", "화면 파일", "트랜잭션", "데이터베이스", "라이브러리" 등이 있지만, 여기서는 구성 요소를 "프로그램", "패러그래프", "화면 파일", "데이터베이스", "라이브러리" 등으로 한정한다. 유스케이스 관련 요소를 모두 파악하였으면 연관관계 모델링을 아래의 표 1과 같이 작성한다. Based on the screen flow graph, the screen flow associated with the use case is tracked, identifying the programs, screen files, or databases (or files) that participate in the use case. At this time, use the system resource graph and variable relation table restored through counter attack. For each of the programs identified in the above process, we identify system components that have an association relationship such as call relationship / link relationship and reference relationship by using program call graph and variable relationship table. The elements that make up a COBOL application system include "paragraphs", "program statements", "global variables", "programs", "screen files", "transactions", "databases", and "libraries". The elements are limited to "program", "paragraph", "screen file", "database", "library", and the like. Once all the use case related elements are identified, the relationship modeling is prepared as shown in Table 1 below.

표 1의 연관관계 모델링 표의 행에는 서브 프로그램(sub program), map 파일(map), copy book, 데이터베이스(database)들이 표현된다. 한편, 열에는 각 유스케이스(UseCase,UC)와 유스케이스에 포함된 프로그램(Prog)들이 표현된다. 표에서 x 표시는 열의 프로그램 하나가 행의 서브 프로그램, map 파일, copy book, 혹은 database 등과 연관 관계를 갖고 있음을 의미한다. The rows of the association modeling table in Table 1 represent subprograms, map files, copy books, and databases. In the column, each use case (UseCase, UC) and a program included in the use case (Prog) are represented. The x in the table means that a program in a column is associated with a subprogram in a row, a map file, a copy book, or a database.

유스케이스와 관련하여 파악된 시스템 요소들을 기반으로 하나의 유스케이스를 실현하기 위한 작업 흐름을 재구성해 보면 도 2와 같다. 이 도면은 대부분의 COBOL 시스템에서 하나의 기능을 수행하기 위한 일반적인 작업 흐름을 묘사한 것이다. 도면에서 사각형은 "유스케이스의 작업흐름"을 나타내며, 사각형 내부의 원은 "프로그램"이거나 혹은 프로그램을 구성하는 "패러그래프"이다. 도면에는 "화면 파일", "데이터베이스" 등도 나타나있다.Reconstructing the workflow for realizing one use case based on the system elements identified in relation to the use case is shown in FIG. 2. This figure depicts a general workflow for performing a function in most COBOL systems. In the figure, a rectangle represents a "use case workflow", and a circle inside the rectangle is a "program" or a "paragraph" constituting a program. Also shown in the figure are "screen files", "databases" and the like.

다음으로 유스케이스 분석 단계에서(110)이전 단계에서 파악한 유스케이스 관련 시스템 요소 및 정보들을 바탕으로 각각의 유스케이스를 경계 클래스(boundary class), 제어 클래스(control class), 개체 클래스(entity class)의 관점에서 분석한다. 이렇게 분석하는 이유는 이러한 분석을 통해 유사한 비즈니스 기능 및 책임(responsibility)을 수행하는 유스케이스들을 파악하고, 이들을 통합하여 보다 큰 규모의 컴포넌트를 인식하기 위함이다. 이 단계에서는 역공학을 통해 복구된 응용 유스케이스 다이어그램, 유스케이스 대응표, 기능 관계도를 활용한다. 각각의 유스케이스에 대하여 경계 클래스 관점에서 유스케이스 구성 요소들을 분석한다. 경계 클래스는 시스템과 그것을 둘러싼 환경 사이의 상호작용을 모델링 하는 데 사용되는 클래스이다. 일반적으로 각 액터/유스케이스 쌍에는 적어도 하나의 경계 클래스가 있다. 시스템에는 여러 형태의 경계 클래스가 있는데, 사용자, 외부 시스템 또는 장치와의 상호작용을 나타낸다. 하나의 경계 클래스는 유스케이스와 관련된 여러 화면들에 대한 추상화를 제공한다. 경계 클래스 관점에서의 분석은 사용자 연산 및 작업의 순서와 사용자에게 보여 질 화면의 순서 등의 관점에서 유스케이스를 분석한다. 도 3에서 보는 바와 같이 유스케이스를 실현하는 일반적인 작업 흐름에 대해 경계 클래스 관점에서 유스케이스 구성 요소들을 분석하면 "화면 파일"과 "화면 생성 기능"의 프로그램 또는 패러그래프와 "화면을 통한 데이터 수집 기능"의 프로그램 또는 패러그래프 등이 경계 클래스 관점에서의 요소이다. 즉, 화면 요소와 화면을 제어하는 요소, 화면으로부터의 입력 처리 요소 등이 경계 클래스 관점에서의 유스케이스 구성 요소가 된다. 이들은 J2EE 환경에서JSP(Java Server Page)나 Servlet에 대응될 수 있다. JSP는 화면 요소에 대응되고, Servlet은 화면 제어 기능, 화면으로부터의 입력 처리 기능 등을 담당하게 된다. Next, based on the use case-related system elements and information identified in the previous step in the use case analysis step (110), each use case may be classified into a boundary class, a control class, and an entity class. Analyze from the point of view. The reason for this analysis is to identify use cases that perform similar business functions and responses through this analysis, and integrate them to recognize larger components. This step utilizes application use case diagrams, use case correspondence tables, and functional relationships that have been recovered through reverse engineering. For each use case, we analyze the use case components from the boundary class perspective. A boundary class is a class used to model the interaction between a system and its surroundings. In general, each actor / usecase pair has at least one boundary class. There are several types of boundary classes in a system, representing interactions with users, external systems, or devices. One boundary class provides an abstraction for the various screens associated with the use case. The analysis from the boundary class perspective analyzes the use case in terms of the order of user operations and tasks and the order of the screens to be shown to the user. As shown in FIG. 3, when the use case components are analyzed from the boundary class perspective for the general workflow for realizing the use case, the program or paragraph of the "screen file" and "screen generation function" and the "data collection function through the screen" are shown. "Program or paragraph is an element from the boundary class perspective. In other words, screen elements, elements that control the screen, input processing elements from the screen, and the like become use case components from the boundary class perspective. They can correspond to Java Server Pages or Servlets in a J2EE environment. JSP corresponds to screen element, and servlet is in charge of screen control function, input processing function from screen, etc.

제어 클래스 관점에서 유스케이스를 분석한다. 제어 클래스는 유스케이스에 대한 주요 제어 흐름을 표현한다. 이것은 응용 시스템의 비즈니스 로직을 실현하며, 보통 응용 서비스를 처리하고 제공하기 위한 각종 연산이나 계산을 수행하는 모듈에 대응된다. 도 3의 경우 제어 클래스 관점에서 유스케이스 구성 요소들을 분석하면 "레코드 필드 할당(move to record-field)" 기능의 프로그램/패러그래프와 "계산" 기능의 프로그램/패러그래프가 제어 클래스 관점에서의 요소이다. 도면에서 나타난 형태로는 이 프로그램/패러그래프가 아주 단순한 기능을 수행하는 것 같지만, 실제로 COBOL 시스템에서 응용 서비스를 처리하고 제공하기 위한 여러 연산을 수행하는 중요한 비즈니스 로직을 담당하는 프로그램/패러그래프이다. 예를 들면, 고객에 대한 은행 계좌를 개설하는 "계좌 개설(create account)"의 경우 다음과 같은 구체적인 비즈니스 로직이 구현된다. 여기서, 비즈니스 로직은 밑줄을 그어 표시하였다. 계좌 개설을 위해서는 먼저 고객에 대한 계좌 레코드를 만든다. 이 때에 계좌 번호는 시스템이 계좌의 성격에 따라 자동으로 적절한 계좌 번호를 부여한다. 다음으로, 계좌 레코드에 대한 상세 정보를 화면을 통해 획득한 사용자 정보를 가지고 차례로 채워 넣는다. 이런 정보에는 사용자 이름, 사용자 주민등록번호, 비밀번호, 계좌 잔액 등이 있다. 제어 클래스 관점에서 파악한 시스템 요소들은 차후에 컴포넌트의 인터페이스가 제공하는 연산에 대응될 수 있다. 또한, 이것은 J2EE 환경에서 Session EJB(Enterprise Java Bean)에 대응될 수 있다. Analyze the use case from the control class perspective. The control class represents the main control flow for the use case. It realizes the business logic of an application system and usually corresponds to a module that performs various operations or calculations to process and provide application services. In the case of Fig. 3, when analyzing the use case components from the control class point of view, the program / paragraph of the “move to record-field” function and the program / paragraph of the “calculate” function are elements from the control class point of view. to be. In the form shown, this program / paragraph seems to perform a very simple function, but is actually a program / paragraph that is responsible for the important business logic that performs the various operations to process and provide application services in a COBOL system. For example, in the case of "create account", which opens a bank account for a customer, the following specific business logic is implemented. Here, the business logic is underlined. To open an account, first create an account record for the customer. At this time, the account number is automatically assigned by the system according to the nature of the account. Next, the detailed information about the account record is filled in with the user information obtained through the screen. This information includes your username, your social security number, your password, and your account balance. System elements identified from the control class perspective may correspond to operations provided by the component's interface later. It can also correspond to Session Enterprise Java Beans (JEBs) in a J2EE environment.

개체 클래스 관점에서 유스케이스를 분석한다. 개체 클래스는 모든 속성, 관련 행위와 함께 시스템 안에 표현된 정보를 캡슐화한다. 즉, 유스케이스가 다루는 혹은 접근하는 정보를 캡슐화하여 표현한다. 도 3의 경우 개체 클래스 관점에서 유스케이스 구성 요소들을 분석하면 "DB/파일 출력(write to DB/file)" 기능의 프로그램/패러그래프와 DB/file 등이 개체 클래스 관점에서의 요소이다. 즉, 개체 클래스 관점에서의 요소는 DB나 file에 저장되는 개체 정보와 그런 개체를 저장하기 위한 관련 로직 등이 해당된다. 예를 들어, 고객에 대한 은행 계좌를 개설하는 경우 "계좌" 개체와 "계좌 정보를 저장하기 위한 로직"이 개체 클래스 관점에서의 유스케이스 구성 요소이다. 이것은 J2EE 환경에서 Entity EJB에 대응될 수 있다. Analyze the use case from the object class perspective. An object class encapsulates information represented in the system with all its attributes and associated behavior. In other words, it encapsulates the information handled or accessed by the use case. In the case of FIG. 3, if the use case components are analyzed from the object class perspective, the program / paragraph and DB / file of the “write to DB / file” function are elements from the object class perspective. In other words, the elements from the object class perspective include object information stored in a DB or a file, and related logic for storing such an object. For example, when opening a bank account for a customer, the "account" entity and "logic to store account information" are use case components from an object class perspective. This can correspond to an Entity EJB in a J2EE environment.

각 유스케이스에 대한 분석이 끝났으면 표 2와 같이 유스케이스 분석표를 작성한다. 유스케이스 분석표에는 유스케이스에 대한 경계 클래스, 제어 클래스, 개체 클래스 관점에서의 분석 요약 정보가 기록된다. When the analysis of each use case is finished, prepare a use case analysis table as shown in Table 2. The use case analysis table records the summary of analysis from the boundary class, control class, and entity class perspectives for the use case.

도 2의 작업 흐름에 대하여 경계 클래스, 제어 클래스, 개체 클래스 관점에서 분석하면 도 3과 같이 분석될 수 있다. The workflow of FIG. 2 may be analyzed as shown in FIG. 3 when analyzed in terms of a boundary class, a control class, and an object class.

이와 같이 비즈니스 규칙은 레거시 시스템의 여러 부분에서 여러 형태로 실현되고 있기 때문에 그것들을 효과적으로 파악하기 위해서는 본 연구에서 제안하는 바와 같이 레거시 시스템의 구성 요소를 유스케이스를 기반으로 분해하고, 각 유스케이스를 구성하는 시스템 요소들을 다시 세 개의 클래스 관점으로 분할한 다음 각 클래스 관점에서 실현되어 있는 비즈니스 규칙을 파악하여야 한다. As the business rules are realized in various forms in various parts of the legacy system, in order to effectively understand them, the components of the legacy system are decomposed based on the use case, and each use case is composed, as suggested in this research. We need to divide the system elements into three class perspectives, and then identify the business rules that are implemented in each class perspective.

그 다음으로 컴포넌트 후보 파악 단계에서(120) 유사한 비즈니스 기능 및 책임을 수행하는 유스케이스들을 파악하고, 이들을 그룹핑하여 컴포넌트 후보로 파악한다. 동일한 개체 클래스를 다루는 유스케이스들 중 개체 클래스를 생성(Create)하거나, 수정(Update)하거나 혹은 삭제(Delete)하는 유스케이스들을 그룹핑한다. 여기서, 동일한 개체 클래스를 다루는 유스케이스일지라도 단지 참조(Read)만 하는 경우는 배제한다. 제어 클래스 관점에서 유사한 책임이나 목적을 수행하는 유스케이스들을 그룹에 추가한다. 유스케이스 그룹을 컴포넌트 후보로 인식한다. Next, in the component candidate identification step (120), use cases that perform similar business functions and responsibilities are identified and grouped to identify component candidates. Group use cases that create, update, or delete an object class among use cases that cover the same object class. Here, even the use cases dealing with the same object class, except the case of only referencing (Read). Add use cases to the group that perform similar responsibilities or objectives from the control class perspective. Recognize a use case group as a component candidate.

다음으로는 공유 요소 파악 단계(130)에서 컴포넌트 파악 작업에서 파악된 컴포넌트 후보들을 대상으로 그들 사이에 공유되는 공유 요소를 파악한다. 공유 요소를 파악하는 목적은 재사용성이 높은 요소를 별도의 컴포넌트로 구성하기 위해서다. 기본적으로 재사용성이 높은 컴포넌트는 하나의 소프트웨어 시스템 내에서도 여러 기능들 간에 많이 공유되기 때문이다. 컴포넌트 후보들간에 공유되는 공유 요소를 파악한다. 공유 요소를 파악하는 방법은 표 3에 도시된 연관 관계 모델링을 이용한다. 예를 들어, 다음과 같은 연관 관계 모델링 표를 고려하자. Next, in the identifying a shared element step 130, the shared elements shared between them are identified based on the component candidates identified in the component identification work. The purpose of identifying the shared elements is to organize the highly reusable elements into separate components. Basically, highly reusable components are shared among many functions even within one software system. Identify shared elements shared among component candidates. The method of identifying shared elements uses the association modeling shown in Table 3. For example, consider the following association modeling table:

여기서 컴포넌트 후보 Comp1은 유스케이스 UC1과 UC2로 구성되고 컴포넌트 후보 Comp2는 UC3, UC4와 UC5로 구성된다고 하자. 표 3에서 보는 바와 같이 유스케이스 UC1과 UC2는 서브프로그램 P11, P12, P13, P14를 공유한다. 그렇지만 UC3, UC4, UC5에서는 서브프로그램 P12와 P13만을 공유한다. 따라서, 두 컴포넌트 후보 Comp1과 Comp2간에 공유되는 공유 요소는 P12와 P13이다. 공유 요소들을 파악하고 나면, 다음으로 각 공유 요소들이 서로 통합되어 보다 큰 단위를 구성할 수 있는지 살펴본다. 공유 요소들이 통합되기 위해서는 그것들이 다루는 데이터나 기능이 유사하여야 한다. 예를 들어, 위의 예제에서 공유 요소 P12와 P13이 유사한 기능을 수행한다고 하면 이들을 통합하여 보다 큰 단위의 공유 요소를 구성한다.Assume that component candidate Comp1 consists of use cases UC1 and UC2 and component candidate Comp2 consists of UC3, UC4 and UC5. As shown in Table 3, use cases UC1 and UC2 share subprograms P11, P12, P13, and P14. However, UC3, UC4, and UC5 share only subprograms P12 and P13. Thus, shared elements shared between two component candidates Comp1 and Comp2 are P12 and P13. Once the shared elements are identified, the next step is to see if each shared element can be integrated with each other to form a larger unit. In order for shared elements to be integrated, the data or functions they handle must be similar. For example, in the above example, if shared elements P12 and P13 perform similar functions, they are combined to form a larger unit of shared elements.

다음으로 컴포넌트 추출 단계(140)에서 컴포넌트 파악 작업에서 파악된 각각의 컴포넌트 후보들을 컴포넌트로 추출한다. 이 때 단계 130에서 파악된 공유 요소가 별도의 컴포넌트로 구성될 수 있다면, 그런 공유 컴포넌트를 먼저 구성하고, 다음으로 공유 요소를 제외한 부분에 대해서 컴포넌트를 구성한다. 단계 130에서 파악된 공유 요소가 별도의 컴포넌트로 구성될 수 있는지 파악하기 위하여 공유 요소를 평가한다. 평가의 결과는 다음과 같이 세 가지로 나뉘어진다. 별도의 컴포넌트로 구성(컴포넌트화), 공유 요소를 분할, 공유 요소를 복제 등이다. 평가 결과 별도의 컴포넌트로 구성해야 할 경우에, 단계 130에서 파악된 공유 요소를 공유 컴포넌트로 추출한다. 공유 요소를 평가하는 구체적인 예를 보면 다음의 표 4 및 표 5와 같다.Next, in the component extraction step 140, each component candidate identified in the component identification work is extracted as a component. At this time, if the shared element identified in step 130 can be configured as a separate component, such a shared component is configured first, and then the component is configured for the part except the shared element. The shared element is evaluated to see if the shared element identified in step 130 can be configured as a separate component. The results of the evaluation are divided into three parts. It is composed of separate components (componentization), division of shared elements, and duplication of shared elements. If it is necessary to configure a separate component as a result of the evaluation, the shared element identified in step 130 is extracted as a shared component. Specific examples of evaluating shared elements are shown in Tables 4 and 5 below.

위 표에서 재사용 가능성을 평가하기 위해 평가 기준의 세부 항목(x)이 갖는 결과 값에 대한 재사용 가능성(Rx)를 각 세부항목별로 점수화 하기 위한 참조 표이다. 여기서 x는 fi, fo, ch, cp 이다. 예를 들어, Fan-in(fi)에 대한 값이 4라면 Fan-in 항목 측면에서 해당 모듈의 재사용 가능성(Rfi)에 4점을 부여하고, 응집도 측면에서 모듈이 3개의 슬라이스로 나뉘어 진다면, 재사용 가능성 점수(Rch)를 2점 획득한 다는 것이다. 이런 방식으로 각 세부 항목 측면에서 점수를 부여하고 이런 점수를 모두 합산한 값을 바탕으로 공유 요소를 평가하여 공유 요소를 별도의 컴포넌트로 평가할 것인지, 통합할 것인지, 혹은 공유 요소를 복제하여 각 컴포넌트 후보에 편입시킬 것인지 결정한다. 공유 요소에 대한 평가 결과 및 그 조건에 대해 기술하면 다음의 표 6과 같다.In the above table, it is a reference table for scoring the reusability (Rx) for each detail item for the result value of the detail item (x) of the evaluation criteria to evaluate the reusability. Where x is fi, fo, ch, cp. For example, if the value for Fan-in (fi) is 4, 4 points are given to the reusability (R fi ) of the module in terms of Fan-in item, and if the module is divided into three slices in terms of cohesion, You get two points of reusability score (R ch ). In this way, scores are given in terms of each sub-item, and the shared elements are evaluated based on the sum of these scores, and the shared elements are evaluated as separate components, integrated, or duplicated. Decide if you want to be included in The evaluation results and the conditions of the shared elements are described in Table 6 below.

공유 컴포넌트를 추출하고 나면, 컴포넌트 파악 작업에서 파악된 각각의 컴포넌트 후보들을 컴포넌트로 구성한다. 이 때, 각 컴포넌트 후보들의 구성 요소에서 공유 컴포넌트의 구성 요소들을 제외한다. 평가 결과 공유 요소를 분할하여야 할 경우에는 먼저 공유 요소를 분할한다. 분할의 경우 간단하게는 서브프로그램 단위로 분할될 수 있고, 좀 더 복잡한 경우에는 하나의 서브프로그램을 프로그램 슬라이싱 기법을 적용하여 보다 작은 단위의 서브프로그램(슬라이스)으로 분할하여야 할 경우도 있다. 공유 요소를 분할하고 나면, 컴포넌트 파악 작업에서 파악된 각각의 컴포넌트 후보들을 컴포넌트로 구성한다. 이 때, 분할된 공유 요소들은 적절한 컴포넌트에 편입시킨다. 평가 결과 공유 요소를 복제하여야 할 경우에는 컴포넌트 파악 작업에서 파악된 각각의 컴포넌트 후보들을 컴포넌트로 구성하는 과정에서 필요한 공유 요소들을 복제한다. After extracting the shared component, each component candidate identified in the component identification task is composed of a component. At this time, components of the shared component are excluded from the components of each component candidate. If the result of the evaluation is to divide the shared elements, first divide the shared elements. In the case of division, it may be simply divided into subprogram units. In a more complicated case, one subprogram may be divided into smaller subprograms (slices) by applying a program slicing technique. After dividing the shared elements, each component candidate identified in the component identification work is composed of components. At this time, the divided shared elements are incorporated into an appropriate component. When the shared elements need to be duplicated as a result of the evaluation, the shared elements necessary in the process of composing the component candidates identified in the component identification work as components are duplicated.

도 1의 컴포넌트들간의 연관관계/상호작용 파악 단계(150)에서 컴포넌트의 연관관계나 상호작용을 파악한다.Identifying the association / interaction between the components of FIG. 1 In step 150, the association or interaction of the components is determined.

상기 본 발명의 실시예에 따른 레거시 시스템으로부터 재사용 가능한 컴포넌트 추출 방법은 컴퓨터 프로그램으로 제작되어서 하드디스크, 플로피 디스크, 광자기 디스크, 씨디 롬, 롬, 램 등의 기록매체에 저장될 수 있다.The reusable component extraction method from the legacy system according to the embodiment of the present invention may be manufactured as a computer program and stored in a recording medium such as a hard disk, a floppy disk, a magneto-optical disk, a CD-ROM, a ROM, a RAM, and the like.

현재 금융권 등 IBM 메인프레임 시스템에서 운용되는 중요한 비즈니스 로직을 포함하고 있는 대부분의 프로그램들은 CCOBOL 프로그램 언어로 작성되어 있다. 이러한 시스템을 유지보수 및 운영하는데 정보 시스템 운영예산의 70 - 80%이상 소요되는 것으로 파악되고 있다. 최근 e-비즈니스 기업의 환경이 사용자 지향 시스템으로 변화하고 있으며, 이러한 기업의 요구사항을 만족시키기 위해서는 J2EE, .NET 등 컴포넌트 기반 환경으로 레거시 시스템을 전환해야 할 필요성이 대두되고 있다. 그러나 기존 레거시 시스템을 버리고 처음부터 새로 개발하는 것은 기존에 투자된 자원에 대한 막대한 손실이며, 새로운 투자 비용이 투입되어야 함으로 기존 레거시 자원을 최대한 효율적으로 이용할 수 있는 방안이 제시되어야 한다. 따라서 본 발명은 레거시 시스템의 업무 흐름을 중심으로 컴포넌트를 파악함으로써, 재사용될 가능성이 높은 컴포넌트를 추출하여 제시함으로써, 기존 레거시 지원을 최대한 활용할 수 있는 방법을 제시한다.Most programs that contain significant business logic running on IBM mainframe systems, such as financial institutions, are now written in the CCOBOL programming language. The maintenance and operation of such systems takes up more than 70-80% of the information system budget. Recently, the environment of e-business companies is changing to user-oriented systems, and the necessity of converting legacy systems to component-based environments such as J2EE and .NET is emerging to satisfy these requirements. However, abandoning the existing legacy system and developing a new one from the beginning is a huge loss of the existing invested resources, and a new investment cost must be invested, so a method for utilizing the existing legacy resources as efficiently as possible should be suggested. Accordingly, the present invention proposes a method for maximizing the existing legacy support by identifying components based on the work flow of the legacy system, extracting and presenting components that are likely to be reused.

이상으로 설명한 것은 본 발명에 따른 레거시 시스템으로부터 재사용 가능한 컴포넌트 추출 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 미친다고 할 것이다.What has been described above is only one embodiment for implementing a method for extracting reusable components from a legacy system according to the present invention, and the present invention is not limited to the above-described embodiment, but is claimed in the following claims. Without departing from the gist of the invention, those skilled in the art to which the invention belongs, the technical spirit of the present invention to the extent that various modifications can be made.

도 1은 본 발명에서 제시하는 컴포넌트 추출을 위한 전체 흐름도.1 is an overall flow chart for component extraction proposed in the present invention.

도 2는 대부분이 레거시 시스템(COBOL 프로그램)에서 하나의 기능을 수행하기 위한 일번적인 작업 흐름을 도시한 도면.FIG. 2 illustrates a typical workflow for performing one function, mostly in a legacy system (COBOL program).

도 3은 도 2의 작업 흐름에 대하여 경계 클래스, 제어 클래스, 개체 클래스 관점에서 분석한 정보를 도시한 도면.FIG. 3 is a diagram illustrating information analyzed in terms of a boundary class, a control class, and an object class with respect to the workflow of FIG. 2; FIG.

Claims (3)

(a) 레거시 시스템의 역공학을 통해 파악된 유스케이스에 대해 그 유스케이스의 수행에 참여하는 소프트웨어 구성요소를 파악하는 유스케이스 관련 시스템 요소를 파악하는 단계;(a) identifying use case-related system elements that identify software components that participate in the use case for those use cases identified through reverse engineering of the legacy system; (b) 상기 단계에서 파악된 유스케이스 관련 시스템 요소 및 정보들을 바탕으로 각각의 유스케이스를 경계 클래스(boundary class), 제어 클래스(control class), 개체 클래스(entity class) 관점에서 분석하는 유스케이스 분석 단계;(b) Use case analysis in which each use case is analyzed in terms of a boundary class, a control class, and an entity class based on the use case related system elements and information identified in the above step. step; (c) 유사한 비즈니스 기능 및 책임을 수행하는 유스케이스들을 파악하고, 이들을 그룹핑하는 컴포넌트 후보 파악 단계; 및(c) identifying use cases that perform similar business functions and responsibilities and identifying component candidates that group them; And (d) 컴포넌트 파악 작업에서 파악된 컴포넌트 후보들을 대상으로 그들 사이에 공유요소를 파악하고 최종적으로 컴포넌트를 추출하는 공유요소 파악 및 컴포넌트 추출 단계를 포함하는 것을 특징으로 하는(d) identifying the shared elements among them and finally extracting the components from the component candidates identified in the component identification work, and finally extracting the components. 레거시 시스템으로부터 재사용 가능한 컴포넌트 추출 방법.How to extract reusable components from legacy systems. 제1항에 있어서,The method of claim 1, 상기 (a) 단계는 화면 흐름 그래프를 기반으로 유스케이스와 관련된 화면 흐름을 추적하면서, 그 유스케이스의 수행에 참여하는 프로그램들, 화면 파일들, 혹은 데이터베이스들을 파악하고, 역공학 단계의 프로그램 분석 작업의 산출물인 시스템 자원 그래프, 변수 관계표를 활용하며, 상기 단계에서 파악된 프로그램들 각각에 대해 프로그램 호출 그래프, 변수 관계표 등을 활용하여 호출(call) 관계/링크(link) 관계, 참조 관계 등의 연관 관계를 갖는 시스템 구성 요소들을 파악하는 것을 특징으로 하는 Step (a) tracks the screen flow associated with the use case based on the screen flow graph, identifies programs, screen files, or databases participating in the use case execution, and analyzes the program of the reverse engineering step. The system resource graph and the variable relation table which are outputs of the program are used. For each of the programs identified in the above step, the program call graph and the variable relation table are used to call, link, and reference relations. Identifying system components that have a relationship of 레거시 시스템으로부터 재사용 가능한 컴포넌트 추출 방법.How to extract reusable components from legacy systems. 제1항에 있어서,The method of claim 1, 상기 (b) 단계는 이전 절차에서 파악된 유스케이스 관련 시스템 요소 및 정보들을 바탕으로 각각의 유스케이스를 경계 클래스(boundary class), 제어 클래스(control class), 개체 클래스(entity class)의 관점에서 분석하는 것을 특징으로 하는 Step (b) analyzes each use case in terms of boundary class, control class, and entity class based on the use case related system elements and information identified in the previous procedure. Characterized by 레거시 시스템으로부터 재사용 가능한 컴포넌트 추출 방법.How to extract reusable components from legacy systems.
KR1020030093893A 2003-12-19 2003-12-19 Method for extracting reusable components from legacy systems KR20050062896A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030093893A KR20050062896A (en) 2003-12-19 2003-12-19 Method for extracting reusable components from legacy systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030093893A KR20050062896A (en) 2003-12-19 2003-12-19 Method for extracting reusable components from legacy systems

Publications (1)

Publication Number Publication Date
KR20050062896A true KR20050062896A (en) 2005-06-28

Family

ID=37254802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030093893A KR20050062896A (en) 2003-12-19 2003-12-19 Method for extracting reusable components from legacy systems

Country Status (1)

Country Link
KR (1) KR20050062896A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791303B1 (en) * 2006-08-22 2008-01-04 삼성전자주식회사 Apparatus and method for making component of build block
US9120437B2 (en) 2013-02-27 2015-09-01 Kt Corporation Vehicle component control
US9215551B2 (en) 2013-02-04 2015-12-15 Kt Corporation Resource management in machine to machine networks
US9326126B2 (en) 2013-09-12 2016-04-26 Kt Corporation Transferring operating environment of registered network to unregistered network
WO2020185512A1 (en) * 2019-03-11 2020-09-17 Nec Laboratories America, Inc. Usecase specification and runtime execution
US10868692B2 (en) 2013-10-15 2020-12-15 Kt Corporation Monitoring device using automation network

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791303B1 (en) * 2006-08-22 2008-01-04 삼성전자주식회사 Apparatus and method for making component of build block
US9215551B2 (en) 2013-02-04 2015-12-15 Kt Corporation Resource management in machine to machine networks
US9120437B2 (en) 2013-02-27 2015-09-01 Kt Corporation Vehicle component control
US9326126B2 (en) 2013-09-12 2016-04-26 Kt Corporation Transferring operating environment of registered network to unregistered network
US9798533B2 (en) 2013-09-12 2017-10-24 Kt Corporation Transferring operating environment of registered network to unregistered network
US10169026B2 (en) 2013-09-12 2019-01-01 Kt Corporation Transferring operating environment of registered network to unregistered network
US10868692B2 (en) 2013-10-15 2020-12-15 Kt Corporation Monitoring device using automation network
WO2020185512A1 (en) * 2019-03-11 2020-09-17 Nec Laboratories America, Inc. Usecase specification and runtime execution

Similar Documents

Publication Publication Date Title
CA2690081C (en) Migration of legacy applications
US20170192758A1 (en) Method and apparatus for migration of application source code
Lum et al. 1978 New Orleans data base design workshop report
US20050138603A1 (en) Componentization method for reengineering legacy system
Kraushaar et al. A prototyping method for applications development by end users and information systems specialists
US7505991B2 (en) Semantic model development and deployment
Ghozali et al. Systematic literature review on decision-making of requirement engineering from agile software development
De Alwis et al. Discovering microservices in enterprise systems using a business object containment heuristic
Elam Model management systems: A framework for development
Freitas et al. Refactoring java monoliths into executable microservice-based applications
US20050138039A1 (en) Method and system for tailoring metamodel requirements capture processing to varying users
KR20050062896A (en) Method for extracting reusable components from legacy systems
De Alwis et al. Remodularization analysis for microservice discovery using syntactic and semantic clustering
Tracz Domain analysis working group report: first international workshop on software reusability
Cybulski et al. Reuse of early life-; cycle artifacts: workproducts, methods and tools
KR100943294B1 (en) Data portal service system and method
Heckel et al. Visual smart contracts for DAML
Jarzabek Domain model-driven software reengineering and maintenance
Hallsteinsen et al. Experiences in software evolution and reuse: twelve real world projects
Becker et al. A criteria catalogue for evaluating business process pattern approaches
Paim et al. Towards a methodology for requirements analysis of data warehouse systems
Uno et al. Constructing feature models using goal-oriented analysis
Ardagna et al. A fast and incremental development life cycle for data analytics as a service
Barbic et al. Modeling and integrating procedures in office information systems design
Arcega et al. On the influence of models at run-time traces in dynamic feature location

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application