KR20030059504A - 컴포넌트 자동 변환 시스템 및 방법 - Google Patents

컴포넌트 자동 변환 시스템 및 방법 Download PDF

Info

Publication number
KR20030059504A
KR20030059504A KR1020010088367A KR20010088367A KR20030059504A KR 20030059504 A KR20030059504 A KR 20030059504A KR 1020010088367 A KR1020010088367 A KR 1020010088367A KR 20010088367 A KR20010088367 A KR 20010088367A KR 20030059504 A KR20030059504 A KR 20030059504A
Authority
KR
South Korea
Prior art keywords
class
component
source code
extracted
classes
Prior art date
Application number
KR1020010088367A
Other languages
English (en)
Other versions
KR100463833B1 (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 KR10-2001-0088367A priority Critical patent/KR100463833B1/ko
Publication of KR20030059504A publication Critical patent/KR20030059504A/ko
Application granted granted Critical
Publication of KR100463833B1 publication Critical patent/KR100463833B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 객체지향 형식의 컴퓨팅 시스템에서 시스템의 소스 코드를 자동으로 분석하고 분석한 정보를 이용하여 상기 소스 코드를 컴포넌트로 변환시키는 컴포넌트 자동 변환 시스템 및 방법에 관한 것이다. 즉, 본 발명은 객체지향 언어로 작성된 대규모의 소스코드를 자동으로 컴포넌트로 변환시킴으로써, 시스템을 쉽게 분할할 수 있게 해주며, 컴포넌트로 사용되는 변환 코드를 쉽게 생성할 수 있는 이점이 있으며, 자동화된 과정으로 컴포넌트 변환이 수행되도록 하여 수작업으로 해야만 하는 부분들을 줄임으로써, 빠른 시간 안에 기존의 소스코드를 컴포넌트로 변환시킬 수 있게 되는 이점이 있다. 또한 각 클래스들간의 의존도를 이용하여 시스템을 활용도가 제일 높은 순서대로 분할하여 각각의 분할된 부분들이 약간의 변환과정을 거쳐 스스로 작동할 수 있는 개별적인 컴포넌트로 사용될 수 있도록 하는 이점이 있다.

Description

컴포넌트 자동 변환 시스템 및 방법{SYSTEM FOR TRANSFORMING SOURCE CODE INTO COMPONENT AUTOMATICALLY AND METHOD THEREOF}
본 발명은 객체지향 형식의 컴퓨팅 시스템에 관한 것으로, 특히 객체지향 형식의 컴퓨팅 시스템에서 시스템의 소스 코드를 자동으로 분석하고 분석한 정보를이용하여 상기 소스 코드를 컴포넌트로 변환시키는 컴포넌트 자동 변환 시스템 및 방법에 관한 것이다.
객체 지향 시스템은 클래스라는 개념을 사용하는 프로그래밍 방식으로 구현되는 시스템을 말하는 것으로, 상기 클래스는 클래스의 행위를 의미하는 메소드(Method)와 애트리뷰트(Attribute)로 이루어져 있다. 각 메소드와 애트리뷰트는 다른 클래스와 호출하거나 사용하는 관계를 가지고 있으며, 클래스들간의 관계는 각각의 메소드와 애트리뷰트간의 관계를 통해서 이루어지도록 되어 있다.
컴포넌트는 컴퓨팅 시스템을 용이하게 구축하기 위해서 사용하는 소프트웨어 모듈로서 각각 독립적으로 사용될 수 있는 단위를 말하며, 기존의 컴퓨팅 시스템에서 독립적으로 재사용할만한 가치가 있는 부분을 찾아내어 이를 컴포넌트로 변환하여 사용할 경우 컴포넌트의 제작비용을 줄일 수 있는 장점이 있다.
그러나 종래 분석 시스템에서는 객체지향 언어로 구축된 시스템을 분석하여 이를 다이어그램 형태로 시각화하는데 치중되어 있고, 클래스들간의 연관관계를 분석하여 시스템을 분할하지는 않고 있다. 따라서 종래 분석 시스템을 사용하는 사용자는 일일이 수작업으로 소스코드를 이해하여 재 사용 가능하고 독립적으로 분할시킬 수 있는 부분을 찾아내어야 하는 문제점이 있었다.
한편, 상기와 같은 컴포넌트 변환 방법으로는 1995년 9월에 출판된 "Fifth European Software Engineering Conference"지 499∼519페이지에 개시된 "Object-Oriented Re-Architecturing"과 1994년 7월에 출판된 "5thInternationalconference on Information Processing and Management of Uncertainty in Knowledge-Based Systems, IPMU'9"와 일본특허등록번호 1997-204300호에 개시된 "오브젝트 지향 애플리케이션용 패키지화 알고리즘" 등과 같은 컴포넌트 변환 방법이 개시되어 있다. 그러나 상기 "Object-Oriented Re-Architecturing"은 단지 절차적인 프로그램에서 클래스를 추출하는 것을 개시하고 있을 뿐이고, 상기 "5thInternational conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems, IPMU'9"에는 객체 복구 절차의 기본적인 개념에 대한 내용을 기재하고 있을 뿐이며, 또한 상기 "오브젝트 지향 애플리케이션용 패키지화 알고리즘"은 단지 클래스와 메소드와의 관계만을 개시하고 있을 뿐이어서 종래 분석 시스템에서 사용자가 일일이 수작업으로 소스코드를 이해하여 재 사용 가능하고 독립적으로 분할시킬 수 있는 부분을 찾아내어야 하였던 문제점이 여전히 해결되지 않고 있었다.
따라서, 본 발명의 목적은 종래 객체지향 컴퓨팅 시스템이 클래스 7개 이하의 소규모 시스템일 경우에는 수작업과 직관적인 판단으로 작업하는 것이 가능하지만, 시스템의 규모가 커질수록 수작업에 의존하는 방법으로는 컴포넌트를 용이하게 식별해내기 어려웠던 종래 분석 시스템에서의 문제점을 해결하고자 함에 있으며, 이를 위해 기존 소스코드로부터 컴포넌트로의 변환을 보다 용이하게 하기 위해 사용자의 직관적인 판단에 의존하지 않고 자동적으로 컴포넌트로 변환될 수 있는 부분을 찾아내고 찾아낸 부분을 수작업을 거치지 않고 바로 EJB 컴포넌트 형식으로 변환시키는 컴포넌트 자동 변환 시스템 및 방법을 제공함에 있다.
상기 객체지향 컴퓨팅 시스템을 구성하는 각각의 클래스들을 분석해보면 다른 클래스들에 대해 비의존적이며, 다른 클래스들의 호출이나 사용을 통해서 서비스를 제공하는 클래스들이 있다. 프로그램 속에 존재하는 이러한 클래스를 구별해내어 이를 재사용성이 높은 컴포넌트로 변환하게 되면 해당 모듈에 대한 활용도를 높일 수 있다. 따라서 본 발명의 다른 목적은 상기한 과정을 수작업으로 하지 않고 자동으로 재 사용성이 높은 컴포넌트를 추출할 수 있는 컴포넌트 자동 변환 시스템 및 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명은 객체지향 언어로 작성된 소스코드를 자동으로 컴포넌트로 변환시키는 시스템 및 방법에 있어서, 상기 객체지향 언어로 작성된 소스코드로부터 객체모델을 추출시키는 코드 분석기와; 상기 추출된 객체모델을 재사용 가능한 단위로 분할하고 상기 분할된 단위로부터 컴포넌트를 추출하는 컴포넌트 추출기와; 상기 추출된 컴포넌트를 소스코드 변환하여 컴포넌트 소스코드로 변환시키는 컴포넌트 변환기;를 포함하는 자동 컴포넌트 변환 시스템을 구현하며, (a)상기 객체지향 언어로 작성된 소스코드로부터 객체모델을 추출시키는 단계와; (b)상기 추출된 객체모델을 재사용 가능한 단위로 분할하고 상기 분할된 단위로부터 컴포넌트를 추출하는 단계와; (c)상기 추출된 컴포넌트를 소스코드 변환하여 컴포넌트 소스코드로 생성시키는 단계;를 포함하여 진행하는 컴포넌트 변환 방법을 구현하는 것을 특징으로 한다.
도 1은 본 발명의 실시 예에 따른 컴포넌트 자동 변환 시스템의 구성도.
도 2는 상기 도 1의 코드 분석기를 통해 추출되는 객체 모델의 예시도.
도 3은 본 발명의 실시 예에 따른 클래스들간 의존성의 구체적인 예를 도시한 예시도.
도 4는 본 발명의 실시 예에 따른 클래스간 의존성과 객체 정보를 이용한 시스템 분할 처리 흐름도.
도 5는 상기 도 4의 분할 과정을 통해 클래스별로 분류된 객체모델의 예시도.
도 6은 본 발명의 실시 예에 따른 컴포넌트 코드 생성 처리 흐름도.
도 7은 본 발명의 실시 예에 따른 Bean 클래스 코드 생성 처리 흐름도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예의 동작을 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 컴포넌트 자동 변환 시스템의 블록 구성을 도시한 것이다. 상기 도 1을 참조하여 상기 컴포넌트 자동 변환 시스템의 동작을 살펴보면, 먼저 객체지향 언어로 작성된 소스코드(100)들은 코드 분석기(102)를 통하여 객체모듈(104)로 변환된다. 그리고 상기 코드 분석기(102)로부터 자동 추출된 객체모듈(104)은 컴포넌트 추출기(106)를 통해서 재사용 가능한 단위로 분할된다. 이때 상기 컴포넌트 추출기(106)는 각각의 분할된 단위 중 컴포넌트로 만들기에 적합한 부분을 찾아서 컴포넌트를 추출하며, 상기 추출된 컴포넌트는 컴포넌트 변환기(108)에서 소스코드 변환과정을 거쳐 사용할 수 있는 컴포넌트로 변환된다.
도 2는 상기 도 1의 코드 분석기(102)를 통해서 추출되는 객체 모델의 일 예를 도시한 것이다. 상기 도 2에서 각각의 박스(box)는 클래스를 의미하며, 각 클래스를 연결하는 화살표는 클래스간의 의존관계가 있음을 표시한 것이다.
상기 추출된 정보에서 클래스의 메소드내의 구문 분석 정보와 애트리뷰트 정보들을 이용하여 클래스들간의 의존관계를 구한다. 이때 클래스간의 의존성은 소스코드 상에 아래와 같은 형식의 문장이 나타날 경우 의존성이 있다고 정의된다.
1. 다른 클래스의 메소드를 호출하는 경우
2. 다른 클래스의 애트리뷰트를 사용하는 경우
3. 다른 클래스의 인스턴스를 생성하는 경우
본 발명에서는 상기와 같은 세 가지 경우를 의존성이 있는 경우로 정의한다.
도 3은 상기한 클래스들간의 의존성이 있는 일 예를 도시한 것이다. 상기 도 3에서 보여지는 바와 같이 클래스 B의 소스코드 상에서 클래스 A에 의존적인 부분이 나타날 경우 클래스 B는 클래스 A에 대해서 의존성이 있다고 정의되는 것이다.
상기 도 2는 상기 도 3에서 보여진 바와 같은 클래스간의 의존성과 객체지향 시스템의 클래스를 이용해서 그려진 것으로, 상기 도 2에서 보여지는 바와 같이 객체지향 시스템의 각 클래스(A)를 노드로 하고 의존성은 방향성이 있는 에지(Edge)로 표현된다. 이러한 클래스들간의 의존관계를 표현한 그래프를 이용하여 시스템을 분할하는 알고리즘을 통해 시스템을 분할해 나간다.
도 4는 본 발명의 실시 예에 따른 컴포넌트 자동 변환 시스템에서 객체지향 언어로 작성된 소스코드를 클래스로 분할하는 처리 흐름을 도시한 것이다.
즉, 상기 자동 변환 시스템의 컴포넌트 추출기(106)는 (S400)단계에서 상기 코드 분석기(102)를 통해 추출된 객체모델 중 비의존 클래스를 검색한다. 상기 비의존 클래스는 다른 클래스에 대한 의존성이 없는 클래스를 말한다. 만약 이러한 의존성이 없는 경우 서로 의존성을 갖는 클래스들간의 최초로 발견되는 환형 구조(Cyclic)를 묶어서 이 클래스들을 하나의 커다란 비의존 클래스로 정의한다. 상기 환형 구조는 일련의 클래스들의 의존관계가 서로 향하고 있어서 원형 구조를 이루고 있는 것을 말한다. 환형구조를 인식하기 위한 절차는 일반적으로 사용되는 기존의 알고리즘을 사용한다. 컴포넌트 추출기(106)는 (S402)단계에서 이러한 방식으로 제일 처음에 찾아낸 비의존 클래스를 레벨(Level) 1 비의존 클래스로 정의한다. 상기에서 레벨은 시스템을 분할하기 위한 단위로서 사용된다. 시스템은 그 의존 정도에 따라 레벨 1부터 N까지 나뉘어 질 수 있다.
이어 컴포넌트 추출기(106)는 상기와 같이 레벨 1 클래스가 정해지면 (S404)단계에서 레벨 1 비의존 클래스에 의존적인 클래스들을 검색한다. 상기 레벨 1 클래스에 의존적이라는 것은 레벨 1 클래스들을 사용하는 클래스들을 의미한다. 상기 클래스들은 상기 도 2에서 보여지는 바와 같이 그래프 상에서 레벨 1에 대해서 화살표가 들어오는 방향으로 되어 있는 클래스들을 검색함으로써 찾을 수 있다. 이어 컴포넌트 추출기(106)는 (S406)단계에서 상기 찾아낸 클래스가 의존하고 있는 레벨 1 비의존 클래스를 제외한 다른 클래스들을 검색하고, (S408)단계로 진행해서 상기 (S404)∼(S406)단계에서 찾아낸 클래스들을 합쳐서 이를 레벨 2 클래스로 지정한다. 그런 후 컴포넌트 추출기(106)는 (S410)단계에서 남은 클래스가 메인(main) 함수가 포함된 main 클래스밖에 없는지 검사한다. 이때 만일 main 클래스가 아닌 다른 남은 클래스들이 있을 경우에는 (S412)단계로 진행해서 레벨을 하나 증가시켜서 다음 레벨에 대해서 (S404)∼(S408)단계를 반복 수행하면서 클래스들의 레벨을 분류한다. 이러한 과정을 시스템의 시작점인 메인(main) 메소드가 포함된 클래스가 포함될 때까지 반복 수행한다. 객체지향 언어의 특성에 따라 다르지만, 최초의 시스템을 구동하기 위한 절차가 정의되어 있는 부분을 메인 메소드라고 정의한다. 이러한 메소드는 분할하기 위한 절차를 시행하기 이전에 식별한다.
도 5는 상기 도 4의 클래스 분류 과정을 통해 클래스별로 분류된 객체모델의일 예를 도시한 것으로, 상기 분할된 각각의 단위들은 개별적인 소프트웨어 컴포넌트로 구성 가능하다. 개별적인 소프트웨어 컴포넌트는 사용자가 선택한 인터페이스 메소드 정보를 이용해서 컴포넌트의 구성요소인 Bean 소스 코드와 Home 인터페이스 클래스 소스코드와 Remote 인터페이스 클래스 소스코드를 생성한다.
도 6은 본 발명의 실시 예에 따른 상기 Bean 클래스 소스 코드, Home 인터페이스 클래스 소스코드, Remote 인터페이스 클래스 소스코드를 생성하는 처리 흐름을 도시한 것이다. 상기 도 6을 참조하면, 먼저 사용자가 인터페이스로 사용할 메소드를 선택하는 경우 상기 자동 변환 시스템의 컴포넌트 변환기(108)는 (S600)단계에서 상기 사용자로부터의 메소드 선택을 인식하고, (S602)단계에서 상기 선택한 메소드 정보를 모두 포함하는 Bean 클래스를 생성한다. 이하 상기 Bean 클래스를 생성하는 처리 흐름을 도시한 도 7을 참조하여 상기 Bean 클래스 생성과정을 좀더 자세히 설명하기로 한다. 컴포넌트 변환기(108)는 (S700)단계에서 상기 인터페이스로 선택된 메소드를 검색하고, (S702)단계에서 해당 메소드가 선언된 클래스를 찾는다. 이어 컴포넌트 변환기(108)는 (S704)단계에서 상기 찾은 클래스를 Bean 클래스에서 인스턴스를 생성하는 코드를 생성해낸 후, (S706)단계에서 상기 생성된 인스턴스의 메소드를 호출하는 소스코드를 생성하여 Bean 클래스의 메소드 바디(body)에 넣는다. 이어 컴포넌트 변환기(108)는 (S708)단계에서 인터페이스로 선택된 메소드가 더 존재하는지 여부를 검사하고, 인터페이스로 선택된 메소드가 더 존재하는 경우 인터페이스로 선택된 모든 메소드에 대해 상기 (S702)∼(S706)단계를 반복 수행한다.
상기한 바와 같이 Bean 클래스를 생성한 후, 컴포넌트 변환기(108)는 (S604)∼(S606)단계에서 Bean 클래스의 메소드를 포함하는 Home 인터페이스 클래스와 Remote 클래스를 생성한다. 이렇게 생성된 소스코드는 컴파일 과정을 거쳐서 패키징 되어 웹 애플리케이션 서버에 등록되어 사용될 수 있게 된다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
이상에서 설명한 바와 같이, 본 발명은 객체지향 언어로 작성된 대규모의 소스코드를 자동으로 컴포넌트로 변환시킴으로써, 시스템을 쉽게 분할할 수 있게 해주며, 컴포넌트로 사용되는 변환 코드를 쉽게 생성할 수 있는 이점이 있으며, 자동화된 과정으로 컴포넌트 변환이 수행되도록 하여 수작업으로 해야만 하는 부분들을 줄임으로써, 빠른 시간 안에 기존의 소스코드를 컴포넌트로 변환시킬 수 있게 되는 이점이 있다. 또한 각 클래스들간의 의존도를 이용하여 시스템을 활용도가 제일 높은 순서대로 분할하여 각각의 분할된 부분들이 약간의 변환과정을 거쳐 스스로 작동할 수 있는 개별적인 컴포넌트로 사용될 수 있도록 하는 이점이 있다.

Claims (17)

  1. 객체지향 언어로 작성된 소스코드를 자동으로 컴포넌트로 변환시키는 시스템에 있어서,
    상기 객체지향 언어로 작성된 소스코드로부터 객체모델을 추출시키는 코드 분석기와;
    상기 추출된 객체모델을 재사용 가능한 단위로 분할하고 상기 분할된 단위로부터 컴포넌트를 추출하는 컴포넌트 추출기와;
    상기 추출된 컴포넌트를 소스코드 변환하여 컴포넌트 소스코드로 변환시키는 컴포넌트 변환기;를 포함하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  2. 제1항에 있어서,
    상기 컴포넌트 추출기는, 상기 추출된 객체모델의 클래스간 의존성을 검사하여 클래스 레벨을 분류하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  3. 제2항에 있어서,
    상기 컴포넌트 추출기는, 각 클래스의 메소드내 구문 분석 정보와 애트리뷰트 정보 등을 이용하여 상기 클래스간 의존성을 검사하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  4. 제3항에 있어서,
    상기 컴포넌트 추출기는, 상기 추출된 클래스들 중 소스코드상에 다른 클래스의 메소드를 호출하는 구문이 있는 해당 클래스를 의존성이 있는 클래스로 인식하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  5. 제3항에 있어서,
    상기 컴포넌트 추출기는, 상기 추출된 클래스들 중 소스코드상에 다른 클래스의 애트리뷰트를 사용하는 구문이 있는 해당 클래스를 의존성이 있는 클래스로 인식하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  6. 제3항에 있어서,
    상기 컴포넌트 추출기는, 상기 추출된 클래스들 중 소스코드상에 다른 클래스의 인스턴스를 생성하는 구문이 있는 해당 클래스를 의존성이 있는 클래스로 인식하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  7. 제2항에 있어서,
    상기 컴포넌트 추출기는, 상기 추출된 클래스들을 클래스간 의존성에 따라 미리 설정된 레벨 단위로 분류하여 시스템을 분할하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  8. 제2항에 있어서,
    상기 컴포넌트 추출기는, 상기 추출된 클래스들 중 클래스간 의존성 검사를 통해 의존성이 없는 것으로 검사되는 비의존 클래스를 레벨 1의 클래스로 지정하고, 상기 비의존 클래스를 시작으로 의존성이 클래스들을 순차적으로 검사하여 다음 순번의 레벨 클래스로 지정하여 모든 클래스를 지정된 레벨로 분류하여 시스템을 분할하는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  9. 제1항에 있어서,
    상기 컴포넌트 변환기는, 상기 추출된 컴포넌트를 EJB 컴포넌트 소스코드로 변환시키는 것을 특징으로 하는 컴포넌트 자동 변환 시스템.
  10. 코드 분석기, 컴포넌트 추출기 및 컴포넌트 변환기를 포함하는 컴포넌트 자동 변환 시스템에서 객체지향 언어로 작성된 소스코드를 자동으로 컴포넌트를 변환시키는 방법에 있어서,
    (a)상기 객체지향 언어로 작성된 소스코드로부터 객체모델을 추출시키는 단계와;
    (b)상기 추출된 객체모델을 재사용 가능한 단위로 분할하고 상기 분할된 단위로부터 컴포넌트를 추출하는 단계와;
    (c)상기 추출된 컴포넌트를 소스코드 변환하여 컴포넌트 소스코드로 생성시키는 단계;를 포함하여 진행하는 것을 특징으로 하는 컴포넌트 변환 방법.
  11. 제10항에 있어서,
    상기 (b)단계는, (b1)상기 추출된 객체모델의 클래스간 의존성 검사를 통해 의존성이 없는 비의존 클래스를 검색하는 단계와;
    (b2)상기 비의존 클래스를 레벨 1의 클래스로 지정하는 단계와;
    (b3)상기 비의존 클래스와 의존성이 클래스들을 순차적으로 검사하여 다음 순번의 레벨 클래스로 지정하는 단계와;
    (b4)상기 클래스들을 지정된 레벨에 따라 분류하여 시스템을 분할하는 단계;를 포함하여 진행하는 것을 특징으로 하는 컴포넌트 변환 방법.
  12. 제11항에 있어서,
    상기 클래스간 의존성은, 각 클래스의 메소드내 구문 분석 정보와 애트리뷰트 정보 등을 이용하여 검사되는 것을 특징으로 하는 컴포넌트 변환 방법.
  13. 제12항에 있어서,
    상기 각 클래스는, 소스코드상에 다른 클래스의 메소드를 호출하는 구문이 존재하는 경우 의존성 있는 클래스로 인식되는 것을 특징으로 하는 컴포넌트 변환 방법.
  14. 제12항에 있어서,
    상기 각 클래스는, 소스코드상에 다른 클래스의 애트리뷰트를 사용하는 구문이 존재하는 경우 의존성 있는 클래스로 인식되는 것을 특징으로 하는 컴포넌트 변환 방법.
  15. 제12항에 있어서,
    상기 각 클래스는, 소스코드상에 다른 클래스의 인스턴스를 생성하는 구문이 존재하는 경우 의존성 있는 클래스로 인식되는 것을 특징으로 하는 컴포넌트 변환 방법.
  16. 제10항에 있어서,
    상기 (c)단계는, (c1)인터페이스로 사용할 메소드를 선택하는 단계와;
    (c2)상기 선택된 메소드 정보를 모두 포함하는 Bean 클래스를 생성하는 단계와;
    (c3)상기 Bean 클래스의 메소드를 포함하는 Home 인터페이스 클래스를 생성하는 단계와;
    (c4)상기 Bean 클래스의 메소드를 포함하는 Remote 인터페이스 클래스를 생성하는 단계;를 포함하여 진행하는 것을 특징으로 하는 컴포넌트 변환 방법.
  17. 제16항에 있어서,
    상기 (c2)단계는, (c21)인터페이스로 선택된 메소드를 검색하는 단계와;
    (c22)상기 메소드가 선언된 Bean 클래스를 검색하는 단계와;
    (c23)상기 Bean 클래스 선언부에 인스턴스 생성코드를 생성하는 단계와;
    (c24)상기 인스턴스 생성코드를 상기 Bean 클래스 바디부에 포함시키는 단계;를 포함하여 진행하는 것을 특징으로 하는 컴포넌트 변환 방법.
KR10-2001-0088367A 2001-12-29 2001-12-29 컴포넌트 자동 변환 시스템 및 방법 KR100463833B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0088367A KR100463833B1 (ko) 2001-12-29 2001-12-29 컴포넌트 자동 변환 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0088367A KR100463833B1 (ko) 2001-12-29 2001-12-29 컴포넌트 자동 변환 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20030059504A true KR20030059504A (ko) 2003-07-10
KR100463833B1 KR100463833B1 (ko) 2004-12-29

Family

ID=32215936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0088367A KR100463833B1 (ko) 2001-12-29 2001-12-29 컴포넌트 자동 변환 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100463833B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791303B1 (ko) * 2006-08-22 2008-01-04 삼성전자주식회사 빌드 단위의 컴포넌트 생성 장치 및 방법
KR100871563B1 (ko) * 2007-02-14 2008-12-02 삼성전자주식회사 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법
US8429608B2 (en) 2007-09-07 2013-04-23 Samsung Electronics Co., Ltd. Method and apparatus for providing implicit variability rules for component model and architecture design

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101770292B1 (ko) 2014-11-27 2017-08-22 주식회사 엘지씨엔에스 컴퓨터 수행 가능한 모델 역공학 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026237A (en) * 1997-11-03 2000-02-15 International Business Machines Corporation System and method for dynamic modification of class files
KR19990047339A (ko) * 1997-12-03 1999-07-05 정선종 자동 객체 추출방법
KR100280828B1 (ko) * 1998-11-06 2001-02-01 정선종 절차지향 프로그램을 객체지향 프로그램으로 변환하기 위한분석 방법
JP2001100986A (ja) * 1999-09-28 2001-04-13 Kawasaki Steel Systems R & D Corp ソフトウェア開発支援システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791303B1 (ko) * 2006-08-22 2008-01-04 삼성전자주식회사 빌드 단위의 컴포넌트 생성 장치 및 방법
KR100871563B1 (ko) * 2007-02-14 2008-12-02 삼성전자주식회사 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법
US8429608B2 (en) 2007-09-07 2013-04-23 Samsung Electronics Co., Ltd. Method and apparatus for providing implicit variability rules for component model and architecture design

Also Published As

Publication number Publication date
KR100463833B1 (ko) 2004-12-29

Similar Documents

Publication Publication Date Title
CN106843840B (zh) 一种基于相似度分析的源代码版本演化注释复用方法
WO2006062620A2 (en) Method and system for generating input grammars for multi-modal dialog systems
CN110502227B (zh) 代码补全的方法及装置、存储介质、电子设备
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
US6346945B1 (en) Method and apparatus for pattern-based flowcharting of source code
CN108376544B (zh) 一种信息处理方法、装置、设备及计算机可读存储介质
EP0520708B1 (en) Method and apparatus for converting high level form abstract syntaxes into an intermediate form
JP2000029674A (ja) アプリケ―ションソフトウェア構成方法
KR100463833B1 (ko) 컴포넌트 자동 변환 시스템 및 방법
CN113885880A (zh) 一种多规则匹配方法、装置及设备
US8458668B1 (en) Ignoring output arguments of functions in programming environments
CN111158667B (zh) 代码注入方法和装置、电子设备及存储介质
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN114706592B (zh) 面向对象及面向过程语言的Modelica仿真组件生成方法
CN111831288B (zh) 一种自动生成Thrift IDL数据结构及自动转换函数的方法及系统
JPH04286029A (ja) ソースプログラム・コンバータ
Gall et al. Reuse engineering: software construction from reusable components
CN112306470B (zh) 一种复杂同步语言程序的化简转化和自动验证方法
KR100607462B1 (ko) 컴포넌트 추출을 위한 시스템 분할 방법
CN116560667B (zh) 一种基于预编译延迟执行的拆分调度系统及方法
KR19990047339A (ko) 자동 객체 추출방법
CN109814869B (zh) 应用于机器人的解析方法、系统及计算机可读存储介质
KR100519698B1 (ko) 객체 모델에서 단어 정보를 활용한 클래스간의 유사성 측정방법
CN117971236A (zh) 基于词法和语法分析的算子解析方法、装置、设备及介质
CN117492753A (zh) 一种实现数据可视化的前端开发方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee