KR20030044959A - 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 - Google Patents

클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 Download PDF

Info

Publication number
KR20030044959A
KR20030044959A KR1020030029704A KR20030029704A KR20030044959A KR 20030044959 A KR20030044959 A KR 20030044959A KR 1020030029704 A KR1020030029704 A KR 1020030029704A KR 20030029704 A KR20030029704 A KR 20030029704A KR 20030044959 A KR20030044959 A KR 20030044959A
Authority
KR
South Korea
Prior art keywords
component
glue
client
components
code
Prior art date
Application number
KR1020030029704A
Other languages
English (en)
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 KR1020030029704A priority Critical patent/KR20030044959A/ko
Publication of KR20030044959A publication Critical patent/KR20030044959A/ko
Priority to PCT/KR2004/001099 priority patent/WO2004099896A2/en
Priority to KR1020040033449A priority patent/KR100697246B1/ko
Priority to US10/546,805 priority patent/US20070150855A1/en
Priority to JP2006507841A priority patent/JP2006526209A/ja
Priority to JP2009102295A priority patent/JP2009238229A/ja
Priority to JP2009102299A priority patent/JP2009238230A/ja
Priority to JP2009102297A priority patent/JP2009245441A/ja
Priority to JP2009102300A priority patent/JP2009238231A/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

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

Abstract

본 발명은 컴포넌트 기반 소프트웨어 개발 프로세스 중 컴포넌트 구현 및 조립에 관한 것으로 더욱 상세하게는 가상의 하위 컴포넌트가 제공하는 서비스 호출에 관한 클라이언트 측 메타데이터를 포함하는 컴포넌트 구현 방법과, 이 메타데이터를 이용하여 글루 컴포넌트 템플릿 코드를 자동 생성하는 방법 및 컴포넌트 간 메시지를 자동 생성된 글루 컴포넌트를 통하여 전달하게 함으로써 유연한 메시지 흐름 조절이 가능한 컴포넌트 조립 방법에 관한 것이다.
이를 위하여 본 발명은 컴포넌트 개발자로부터 호출하고자 하는 가상의 하위 컴포넌트가 제공하는 서비스(오퍼레이션 혹은 메서드) 시그너처와 주석을 임의로 입력받는 단계; 입력받은 시그너처를 기반으로, 하위 컴포넌트 서비스 호출을 중재할 글루 컴포넌트의 서비스를 동적으로 바인드하여 호출하는 보조 함수 코드를 생성하는 단계; 하위 컴포넌트 서비스를 호출하고자 하는 부분에 새로 만들어진 보조 함수 호출 코드를 입력하는 단계; 컴포넌트 조립에 이용되는 글루 컴포넌트의 템플릿 코드를 자동 생성하는데 필요한 클라이언트 측 메타데이터를 생성하여 컴포넌트에 포함시키는 단계로 이루어진 것을 특징으로 하는 컴포넌트 구현 방법을 제공하고, 그래픽 도구를 이용하여 조립할 컴포넌트들을 선택하고 도면에 배치하는 단계; 그래픽 도구를 사용하여 클라이언트 컴포넌트와 서버 컴포넌트를 선택하고 연결하므로 써 컴포넌트 간 메시지 흐름을 자유롭게 설정하는 단계; 컴포넌트 간 메시지 흐름을 처리(조립)하는데 있어서 클라이언트 컴포넌트가 서버 컴포넌트의 서비스를직접 호출하게 하는 방법 대신, 중재를 위한 글루 컴포넌트를 거치게 하는 단계; 글루 컴포넌트의 템플릿 코드를 자동 생성하고, 클라이언트 컴포넌트가 호출하는 서비스 시그너처와 서버 컴포넌트가 제공하는 서비스의 시그너처가 다르거나 의미론적 불일치가 있을 경우 이를 처리하는 중재코드를 입력받아 글루 컴포넌트를 생성하는 단계를 통해 글루 컴포넌트들을 만들고 이 들을 컴포넌트들과 함께 배치하여 소프트웨어 시스템을 구현하는 것을 특징으로 하는 컴포넌트 조립 방법을 제공한다.
본 발명에 따르면, 컴포넌트에 포함된 클라이언트 및 서버 측 메타데이터를 이용하여, 컴포넌트 조립에 필요한 글루 컴포넌트 템플릿 코드의 자동 생성이 가능해지고, 이 글루 코드에 중재 코드를 삽입함으로써 컴포넌트 코드 수정 없이 시그너처 정합문제와 의미론적 불일치 문제를 간단하게 해결할 수 있어 컴포넌트의 재사용성을 높일 수 있고, 컴포넌트를 조립하는데 소요되는 작업 시간과 비용을 현저하게 절감할 수 있다.

Description

클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 {A Method for Implementing and Assembling Software Components using Client-Side Metadata and Glue Codes}
본 발명은 컴포넌트 기반 소프트웨어 개발(CBD, Component-Based SoftwareDevelopment) 프로세스 중 컴포넌트 구현 및 조립에 관한 것으로 더욱 상세하게는 가상의 하위 컴포넌트가 제공하는 서비스 호출에 관한 클라이언트 측 메타데이터(Client-Side Metadata)를 포함하는 컴포넌트 구현 방법과 이 메타데이터를 이용하여 글루 컴포넌트 템플릿 코드(Glue Component Template Code)를 자동 생성하는 방법 및 컴포넌트 간 메시지를 자동 생성된 글루 컴포넌트를 통하여 전달하게 함으로써 유연한 메시지 흐름 조절(Message Flow Control)이 가능한 컴포넌트 조립 방법에 관한 것이다.
현대 경영이 요구하는 정보시스템은 그 복잡도와 규모가 점점 커지고 있으며, 경쟁이 심화되면서 시스템의 신속한 구축(Time-to-Market)과, 변경 및 확장의 용이성(Flexibility), 구축 비용의 절감 등의 필요성이 더욱 절실해졌다. 이에 대한 최적의 대안으로써 등장한 컴포넌트 기반 소프트웨어 개발 방법론은 분할 정복의 원리와 객체 지향 개발의 이점을 계승하여, 시스템을 구성하는 단위 업무 기능과 관련 데이터를 묶어(Encapsulating) 작은 조각들로 분할하되, 이를 컴포넌트 표준 규격을 만족하도록 부품화시켜 재사용을 가능하게 하고, 소프트웨어 개발을 조립 개념으로 발전시켰다.
통상적으로 대규모 기업용 소프트웨어들은 대부분 3계층(3-tier) 혹은 다 계층(n-tier) 구조로 개발되는데, 종단의 컴포넌트들을 제외한 대부분의 컴포넌트들은 하위 계층의 컴포넌트(들)와 결합되어 있으며, 기본적으로 하위 계층 컴포넌트의 서비스를 바탕으로 자신의 서비스를 상위 계층의 컴포넌트에게 제공한다. 이 때, 하위 컴포넌트에 대한 서비스 호출은 정적으로 코딩(Static Coding)된 채 컴파일되어 블랙 박스(Black Box - Binary Code) 형태로 배포된다. 이와 같은 구조를 갖는 현재의 컴포넌트 기반 소프트웨어 개발 기술은 아직 다음과 같은 문제들을 해결하지 못하고 있는 실정이다.
컴포넌트가 재사용되려면 필요한 기능을 제공할 뿐만 아니라 클라이언트와 서버간 시그너처(Signature - 오퍼레이션 이름, 매개변수 타입 및 순서)가 완벽하게 정합되어야만 한다. 독립적으로 개발된 컴포넌트 간의 시그너처 정합 문제를 해결하기 위해서는 컴포넌트 소스 코드를 수정한다거나 수동으로 글루 코드를 개발해야 하는 부담이 따른다. 더군다나 현재의 컴포넌트 기술은 배포 시 제공되는 메타데이터에 하위 컴포넌트가 제공하는 서비스 호출에 관한 클라이언트 측 정보를 포함하지 않기 때문에 재사용하려는 컴포넌트가 다른 컴포넌트에 의존하는 경우 그 컴포넌트를 개발할 당시 작성된 시스템의 설계 정보(Component Architecture)등을 구하여 참조해야만 한다.
컴포넌트들 간의 메시지 흐름이 높게 결합되고 정적으로 코드화되어 있기 때문에 비즈니스 프로세스 중 하나의 컴포넌트를 삭제하거나 추가할 경우 프로세스 내의 다른 컴포넌트에 많은 영향을 준다. 또한 조립을 통한 다른 소프트웨어 개발에서의 메시지 흐름은 전혀 새로운 것이기 때문에 이러한 정적인 결합은 컴포넌트의 재사용성을 현저히 떨어뜨린다.
이러한 이유로 다른 컴포넌트의 서비스에 의존하지 않는 ActiveX Control, JavaBean 등의 간단한 GUI 용 컴포넌트들이 주로 재사용되고 있으며 컴포넌트 기반 소프트웨어 개발 방법에 의해 설계되고 구현된 비즈니스 계층의 컴포넌트들은 거의재사용되지 않고 있다.
이에 대한 대안으로 모든 컴포넌트간의 메시지 흐름을 중앙에서 관리하는 방안이 제시되었다. 그 대표적 예는 워크플로우(Workflow)를 사용하는 컴포넌트 조립 방법이다. 워크플로우 방식은 모든 컴포넌트를 다른 컴포넌트에 의존하지 않는 독립적인 컴포넌트로 디자인하고, 워크플로우를 이용하여 컴포넌트 사이의 메시지 흐름을 중앙에서 관리한다.
그러나 워크플로우 방식에서는 컴포넌트가 다른 컴포넌트를 직접 호출할 수 없기 때문에, 컴포넌트의 서비스(메서드)들은 단위 업무 처리에 필요한 모든 정보를 매개변수로 받아 자주적으로 결과를 내도록 디자인되어야 한다. 이것은 소프트웨어 공학이 추구해온 분할 정복 및 구조적 방법이 아니므로 설계 방법부터 매우 부자연스러우며, 일반성과 재사용성이 떨어지는 거대한 컴포넌트를 개발하도록 만든다.
또한 컴포넌트 간의 모든 메시지 흐름이 워크플로우를 거쳐서 전달되기 때문에 컴포넌트 간 직접 호출에 비해 네트워크와 시스템에 과중한 부담(Overhead)을 주고, 워크플로우에 이상이 생길 경우 전체 시스템 동작에 영향을 주게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 클라이언트 측 메타데이터 생성기술, 글루 코드로 컴포넌트 결합을 중재하는 기술, 글루 코드를 자동 생성하는 기술을 활용하여, 컴포넌트 간 결합(조립)에 엄격하게 요구되는 시그너처와 의미론적 정합 문제를 극복하므로 써 컴포넌트의 재사용율을 높이고, 자연스런 컴포넌트 기반 개발 방법에 따라 개발된 컴포넌트들 간 메시지 흐름을 컴포넌트 코드 수정 없이도 유연하게 조절할 수 있는 방법을 제공하는 데 그 목적이 있다.
도 1은 본 발명에 따른 글루 컴포넌트를 매개로 하는 컴포넌트 간 메시지 전달 구조도
도 2는 기존의 컴포넌트 간 결합 방법과 본 발명에 따른 조립 방법의 비교도
도 3은 본 발명에 따른 컴포넌트 구현 및 조립 방법의 전체 흐름도.
도 4는 본 발명에 따른 가상의 하위 컴포넌트가 제공하는 서비스 호출에 관한 클라이언트 측 메타데이터를 포함하는 컴포넌트 구현 방법의 상세 흐름도.
도 5는 본 발명에 따른 컴포넌트들을 조립하는 방법의 상세 흐름도.
도 6은 본 발명에 따른 글루 컴포넌트 자동 생성 방법의 상세 흐름도
상기 목적을 달성하기 위한 본 발명은, 컴포넌트 기반 개발 방법의 컴포넌트 구현과 조립에 있어서, 컴포넌트 개발자로부터 호출하고자 하는 하위 컴포넌트의 서비스의 시그너처와 주석을 임의로 입력받는 처리수단; 입력받은 시그너처를 기반으로, 글루 컴포넌트의 서비스를 동적으로 바인딩하고(Late Binding) 호출하는 헬퍼 함수(Helper Function) 코드를 생성하는 처리수단; 하위 서비스 호출 부분에 새로 만들어진 헬퍼 함수 호출 코드를 생성하는 처리수단; 나중의 메시지 흐름 조절 및 조립 시 호출 서비스를 선택하고, 글루 컴포넌트의 템플릿 코드를 자동 생성하는데 이용되는 클라이언트 측 메타데이터를 생성하는 처리수단; 테스트용 임시 글루 컴포넌트를 만들어 독립적으로 컴포넌트 기능을 테스트하는 처리수단으로 이루어진 것을 특징으로 하는 컴포넌트 구현 방법을 제공하고, GUI Tool을 이용하여 조립할 컴포넌트들을 선택하여 도면에 배치하는 처리수단; GUI Tool을 이용하여 도면에 배치된 컴포넌트 중에서 클라이언트 컴포넌트와 서버 컴포넌트를 선택하여 컴포넌트 간 메시지 흐름을 자유롭게 설정하는 처리수단; 글루 컴포넌트의 템플릿 코드를 자동 생성하고 중재코드를 입력받는 처리수단; 글루 코드들을 컴파일하여 글루컴포넌트를 생성하는 처리수단으로 이루어진 것을 특징으로 하는 컴포넌트 조립 방법을 포함하여 이루어진 것을 특징으로 한다.
본 발명에서는 기존의 문제점을 보완하기 위해 컴포넌트를 다른 컴포넌트에 독립적으로 개발 가능하게 하도록 하며, 유연한 컴포넌트 조립을 위해 필요한 모든 정보를 메타데이터로 포함하도록 기존의 메타데이터를 확장하고, 이 메타데이터를 이용하여 자동으로 글루 탬플릿을 생성하며, 글루 메커니즘을 적용하여 컴포넌트간 메시지 흐름을 유연하게 조절하는 컴포넌트 구현 및 조립 장치를 제공하고자 한다.
본 발명은 컴포넌트의 조립을 위한 중재 컴포넌트인 글루 컴포넌트의 탬플릿을 자동으로 생성해줌으로써 컴포넌트의 조립에 걸리는 시간과 비용을 현저하게 줄여주며 다른 컴포넌트에 종속적인 컴포넌트들의 재사용율을 극적으로 향상시키며 컴포넌트 메시지 흐름 조절을 유연하게 하고 컴포넌트간의 정합도의 엄밀성을 완화시킴으로써 새로운 시스템의 개발 및 유지보수를 매우 용이하게 한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
각각의 도면은 다음과 같은 내용을 도시하고 있다.
도 1은 본 발명에 따른 글루 컴포넌트를 매개로 하는 컴포넌트 간 메시지 전달 구조도이며, 도 2는 기존의 컴포넌트 간 결합 방법과 본 발명에 따른 조립 방법의 메커니즘을 비교하는 논리도이고, 도 3은 본 발명의 대표도가 되는 컴포넌트 구현 및 조립 방법의 전체 흐름도이고, 도 4는 본 발명에 따른 하위 컴포넌트가 제공하는 서비스 호출에 관한 클라이언트 측 메타데이터를 포함하는 컴포넌트 구현 방법의 일실시예 처리 흐름도이고, 도 5는 본 발명에 따른 컴포넌트들을 조립하는 방법의 일실시예 처리 흐름도이며, 도 6은 본 발명에 따른 글루 컴포넌트 자동 생성 방법의 일실시예 처리 흐름도이다. 각각의 도면에 대해 보다 상세하게 살펴보면 다음과 같다.
도 1은 본 발명에 따른 확장 메타데이터와 글루 메커니즘을 이용한 컴포넌트간 메시지 전달에 대한 구조도이다. 도 1을 참조하면 블랙박스 형태로 제공되는 컴포넌트들간의 유연한 메시지 흐름 조절을 위해, 본 발명에 따른 클라이언트 컴포넌트(Client Component)가 특정 기능을 제공하기 위해서 하위 컴포넌트로부터 어떠한 시그너처를 가진 서비스를 이용하는지에 관해 명세한 메타데이터와 서버 컴포넌트(Server Component)의 서비스를 이용하기 위한 사용 계약인 인터페이스에 해당하는 메타데이터를 사용하여 아교(Glue) 계념을 적용한 중재자인 글루 컴포넌트를 구현함으로써 두 컴포넌트를 조립한다. 글루 컴포넌트가 호출 정보를 가지고 동적으로 메시지 흐름을 제어하도록 하여, 클라이언트 컴포넌트와 서버 컴포넌트는 서로의 호출 정보를 가지고 있지 않아도 서로 호출하고 호출될 수 있다. 이러한 동적인 메시지 흐름 제어를 통해 컴포넌트 개발 및 조립 효율성을 증가시키며 컴포넌트 팀 단위의 프로젝트가 가능해진다.
도 2는 기존의 컴포넌트 간 결합 방법과 본 발명에 따른 조립 방법의 메커니즘을 비교하는 논리도이다. 도 2-1은 기존 컴포넌트 기반 소프트웨어 개발 기법의 컴포넌트간 결합 방법을 나타낸다. 기존의 컴포넌트 기반 소프트웨어 개발에서는클라이언트 컴포넌트 A가 서버 컴포넌트 B의 서비스를 b1()이라는 인터페이스를 사용하여 호출하고 있다면 그 호출 내용이 클라이언트 컴포넌트 A 안에 정적으로 코드화되고 컴파일되어 바이너리 형태로 배포되게 된다. 즉, 컴포넌트간의 통합을 통한 메시지 흐름이 높게 결합되어 있으며 정적으로 코드화 되어있으므로 변경하기에 많은 부하가 걸리며 재사용성도 많이 떨어진다. 또한 전체 시스템 중에 하나의 컴포넌트 서비스를 삭제하거나 추가할 경우 프로세스 내의 다른 컴포넌트에 많은 영향을 주게 된다. 이와 같은 변경의 부하는 컴포넌트를 이용하여 새로운 제품을 개발하기 위한 Time-To-Market을 이루지 못하는 원인이 된다.
도 2-2는 본 발명에 따른 글루 컴포넌트를 통한 컴포넌트 조립에 관한 논리도이다. 도 2-2에 따르면, 클라이언트 컴포넌트 A가 서버 컴포넌트 B의 인터페이스 b1()을 통해 제공되는 서비스를 호출해야하는 경우, 클라이언트 컴포넌트 A가 서버 컴포넌트 B에 관한 사용자 계약을 모르더라도, 클라이언트 컴포넌트 A가 하위 컴포넌트를 호출하는 부분에서 정의한 (컴포넌트ID=컴포넌트X, 인터페이스ID=x1(), 그리고 오퍼레이션 시그너처들에 대한) 정보를 메타데이터로 구축하고 이를 컴포넌트에 포함시킴으로서, 이 메타데이터를 이용하여 메타데이터에서 정의된 속성을 만족하는 (컴포넌트 ID=컴포넌트X, 인터페이스 ID=x1(), 호출된 오퍼레이션과 시그너처가 같은 오퍼레이션을 가지고 있는) 글루 컴포넌트를 만들고 글루 컴포넌트 안에서 서버 컴포넌트 B의 인터페이스 b1()를 호출하여 결과 값을 클라이언트 컴포넌트 A로 전달하게 함으로써, 서버 컴포넌트 B의 서비스를 클라이언트 컴포넌트 A가 호출하여 사용할 수 있다. 본 발명에 의한 컴포넌트 조립 방법은 서로의 정확한 호출정보를 알지 못하더라도 컴포넌트들 간의 호출 및 피호출이 가능해져 컴포넌트간의 메시지 흐름이 매우 유연해 진다. 글루 컴포넌트를 사용함으로써 완벽하게 일치하지 않는 컴포넌트들도 커스터마이징하여 연결할 수 있으며, 컴포넌트간 메시지 흐름의 생성, 변경 및 삭제 작업을 매우 쉽게 수행할 수 있어 전체 시스템의 구축 및 유지보수에 따른 부하를 현저하게 줄여준다.
도 3는 본 발명에 따른 도 1과 도 2의 메커니즘을 이용하여 유연한 조립을 가능하게 하는 컴포넌트 구현 및 조립 장치의 일실시예 처리 흐름도이다. 도 3을 참조하면, 본 발명에 따른 컴포넌트 구현 및 조립 장치는, 크게 컴포넌트 구현 단계(1)와 컴포넌트 조립 단계(2)의 2개 단계로 이루어지고 이 중 컴포넌트 구현 단계(1)는 컴포넌트를 상호작용하는 다른 컴포넌트들에 독립적으로 구현하기 위해 하위 컴포넌트로부터 제공받아야하는 서비스의 시그너처와 주석을 입력받는 단계(11), 입력받은 정보를 바탕으로 글루 컴포넌트의 서비스를 동적으로 바인딩하고 호출하는 헬퍼 함수 코드를 생성하는 단계(12), 하위 서비스 호출 부분에 헬퍼 함수 호출 코드를 삽입하는 단계(13), 하위 컴포넌트 호출에 관한 정보를 메타데이터로 생성하는 단계(14), 테스트용 임시 글루 컴포넌트를 만들어 독립적인 컴포넌트 기능 테스트를 수행하는 단계(15) 등 5개의 단계로 이루어져 있으며, 컴포넌트 조립 단계(2)는 GUI Tool을 이용하여 조립할 컴포넌트들을 선택하여 도면에 배치하는 단계(21), 도면에 배치된 컴포넌트들 간 메시지 흐름을 설정하는 단계(22), 두 컴포넌트를 연결할 글루 컴포넌트의 템플릿을 자동으로 생성하며 중재 코드를 삽입하는 단계(23), 클루 코드들을 컴파일하여 글루 컴포넌트를 생성하는 단계(24) 등4개의 단계로 이루어 진다.
즉, 본 발명에 따른 컴포넌트 구현 및 조립 장치는 모든 컴포넌트들을 근본적으로 다른 컴포넌트들과 독립적으로 구현(11~13)하고 기능을 테스트(15)할 수 있게하게 하며, 독립적인 컴포넌트들 사이의 유연한 메시지 흐름을 위해 기존 메타데이터를 확장하여 자신이 필요로 하는 서비스에 대한 정보도 메타데이터에 포함(14)시킴으로써 컴포넌트를 구현한다. 또한 컴포넌트 메시지 흐름을 GUI 환경에서 유연하게 커스터마이징(21,22)하고, 컴포넌트 조립 시 호출자 컴포넌트와 피호출자 컴포넌트의 메타데이터를 이용하여 둘 사이의 메시지 흐름을 연결해 주는 글루 컴포넌트의 템플릿을 자동으로 생성하고 컴포넌트 메시지 흐름의 무결성을 맞춰주는 중재 코드를 편집(23)하고, 글루 코드들을 컴파일하여 글루 컴포넌트를 생성(24)함으로써 컴포넌트 조립 오류를 최소화하면서도 신속한 컴포넌트 조립을 가능하게 한다.
도 4는 본 발명에 따른 하위 컴포넌트가 제공하는 서비스 호출에 관한 클라이언트 측 메타데이터를 포함하는 컴포넌트 구현 방법의 일실시예 처리 흐름도이다. 이 과정은 기존 컴포넌트 기반 개발 방법론의 문제점들의 근본 원인인 컴포넌트간 메시지 흐름의 강한 결합도를 완화시키기 위해 컴포넌트 구현시에 하위 컴포넌트 호출에 관한 부분을 컴포넌트 내부적으로 처리하고 이 정보를 메타데이터 형태로 컴포넌트에 포함시킴으로써 컴포넌트를 독립적으로 개발하도록 하고 컴포넌트의 재사용성을 향상시키는 단계이다.
본 발명에서는 표준 규격에 맞게 컴포넌트를 개발(111)하다가 하위 컴포넌트의 서비스 호출이 요구(112)되는 시점에서 하위 컴포넌트의 존재 유무에 관계 없이 독립적으로 이를 컴포넌트 내부적으로 처리하도록 제공 받을 서비스 즉 오퍼레이션의 임의의 이름과 그 서비스를 이용하기 위해 넘겨주어야하는 파라미터들과 반환 받을 리턴값들에 관한 시그너처와 이를 설명하는 주석 정보를 사용자로부터 입력받고(113), 이를 기반으로 입력받은 시그너처를 만족하는 컴포넌트 해당 클래스의 맴버 함수인 헬퍼 함수를 정의하고, 헬퍼 함수 안에 하위 컴포넌트의 서비스를 동적 바인딩 방법으로 호출하는 코드(임의의 하위 컴포넌트 및 인터페이스의 ID 정의 및 객체 생성, 입력받은 시그너처를 만족하는 오퍼레이션 호출)를 자동 생성(12)하고, 하위 컴포넌트의 오퍼레이션을 호출하는 부분을 새로 생성한 헬퍼 함수 호출로 대체하는 코드를 자동 생성(13)하는 과정을 통해 다른 컴포넌트와의 종속성을 근본적으로 제거하여 독립적으로 구현한다. 위와 같은 호출하고자 하는 하위 컴포넌트 서비스의 시그너처와 주석 입력을 통한 서비스 호출 부분을 컴포넌트 내부적으로 처리하는 일련의 과정은 마법사(Wizard)를 이용하여 자동으로 처리하도록 구현하면, 하위 컴포넌트 호출 부분의 오류를 최소화하며 보다 손쉽게 여러 단계의 과정을 처리할 수 있다.
하위 컴포넌트와의 조립을 위해 컴포넌트 내부 헬퍼 함수에서 정의한 서비스 호출에 관한 정보를 컴포넌트 메타데이터로 생성하여 컴포넌트 내부에 포함시킴으로써 기존의 메타데이터를 확장(14)시킨다. 이 메타데이터 정보는 기본적으로 포함되어있는 자신이 제공하는 서비스에 대한 메타데이터뿐만 아니라 자신이 제공받아야하는 하위 컴포넌트의 서비스에 대한 메타데이터도 스스로 포함하게 하는 부분으로, 컴포넌트 조립시에 자신이 어떠한 서비스를 제공받아야하는지에 관한 명세를 제공한다. 이 클라이언트 측 메타데이터는 소스코드 컴파일 시에 소스 코드 바이너리 이외의 리소스(Resource) 부분이나 .Net의 사용자 애트리뷰트(Custom Attribute) 부분 등을 이용하여 컴포넌트 내부에 생성한다. 클라이언트 측 메타데이터는 컴포넌트 자체적으로 가지고 있는 메타데이터를 확장시킴으로써 글루 메커니즘을 사용하여 두 개의 컴포넌트를 연결하는 중재자(Mediator)를 자동으로 생성(23)하는 것이 가능해진다. 또한 컴포넌트 구현시에 생성된 클라이언트 측 메타데이터를 그대로 글루 컴포넌트 템플릿을 만드는데 사용하므로, 시스템 조립시에 생성되는 수 많은 글루 컴포넌트와 해당 클레스 혹은 인터페이스의 식별자들을 자동으로 생성함으로써 개발자가 하나하나 고유한 식별자를 만드는 번거로움을 제거한다.
개발하고 있는 컴포넌트를 단독으로 오류 및 기능 테스트를 수행(15)하기 위해 서버 컴포넌트와의 연결을 담당하는 글루 컴포넌트를 임시 대체하는 스터브(Stub) 컴포넌트들을 생성한다. 컴포넌트 단위 테스트를 위해 컴포넌트가 포함하고 있는 클라이언트 측 메타데이터를 사용하여 자신이 호출하는 서버 컴포넌트 ID, 인터페이스 ID, 오퍼레이션 시그너처 등을 만족하하는 스터브 컴포넌트의 템플릿을 자동으로 생성(151)하고, 개발자가 서버 컴포넌트로부터 제공받고 싶은 서비스의 리턴값 등을 편집(152)하고 컴파일하여 스터브 컴포넌트를 개발하고 스터브 컴포넌트를 호출함으로써 개발한 컴포넌트의 독립적인 오류 및 기능 테스트를 수행(153)한다. 스터브 컴포넌트와 리플렉션(Reflection) 등을 이용한 동적바인딩(Dynamic Binding) 기법을 이용하여 컴포넌트의 오류 및 기능 검사를 수행함으로써 근본적으로 모든 컴포넌트를 다른 컴포넌트에 독립적으로 개발하고 기능 테스트를 수행할 수 있다.
도 5는 본 발명에 따른 컴포넌트들을 조립하는 방법의 일실시예 처리 흐름도이다. 컴포넌트 조립 과정은 컴포넌트 메시지 흐름을 그래픽 환경에서 커스터마이징하는 단계(21,22), 글루 컴포넌트 템플릿을 자동 생성하며 컴포넌트 중재 코드를 편집하는 단계(23), 글루 코드들을 컴파일하여 글루 컴포넌트를 생성하는 단계(24)로 구성되고 이 단계를 필요한 만큼 반복함으로써 소프트웨어 시스템을 구현한다.
각 컴포넌트를 단일 기능을 수행하는 하나의 명령문처럼 다루며 컴포넌트의 실행순서를 유연하게 배치하기위해 글루 컴포넌트의 생성 전에 컴포넌트간의 메시지 흐름을 커스터마이징하는 단계를 거친다. 시스템 설계시에 사용하는 순차도(Sequence Diagram)를 그대로 이용한 GUI Tool을 사용하여 조립할 컴포넌트의 인스턴스들을 도면에 배치(21)하고 이들 중 연결할 클라이언트 컴포넌트와 서버 컴포넌트를 선택하여 컴포넌트 간 메시지 흐름을 설정(22)한다. 컴포넌트 메시지 흐름의 유연한 커스터마이징을 위해 순차도 GUI Tool을 사용하는 것은 컴포넌트 배치와 시계열에 따른 메시지 흐름을 자유롭게 설정할 수 있다는 큰 장점을 가진다. 두 컴포넌트를 연결하기 위해 클라이언트 측의 메타데이터와 서버 컴포넌트측의 인터페이스에 해당하는 메타데이터를 사용하여 글루 컴포넌트 템플릿을 자동으로 생성하고 컴포넌트 간 시그너처 및 의미론적 불일치 해소를 위한 중재 코드를 삽입(23)하고 생성 및 삽입된 글루 코드들을 컴파일함으로써 글루 컴포넌트를생성(24)한다. 이러한 조립 과정을 거침으로써 대규모 시스템을 한번에 조립하지 않고 분할 정복 방법을 적용하여, 여러 개의 순차도를 이용하여 조립 하고 각각을 독립적으로 테스트 한 후 전체적으로 시스템을 통합할 수 있다. 궁국적으로 컴포넌트를 단일 기능을 수행하는 명령문처럼 다루며 순서도를 사용하여 컴포넌트의 실행순서를 유연하게 배치하고 글루 컴포넌트를 손쉽게 구현하도록 하여 대규모 시스템을 정교하면서도 보다 빠르고 신속하게 개발할 수 있다.
도 6은 본 발명에 따른 컴포넌트간 메시지 전달을 중재하는 글루 컴포넌트를 자동 생성 방법의 일실시예 처리 흐름도이다. 두 컴포넌트간의 특정 서비스들을 서로 연결하기 위하여, 클라이언트 컴포넌트의 하위 컴포넌트들의 서비스 호출에 관련된 메타데이터를 조사(2311)하여 개발자에게 클라이언트 컴포넌트가 호출할 서비스 리스트를 보여주고 연결을 원하는 서비스 호출을 선택(2312)하는 과정과 서버 컴포넌트의 인터페이스에 해당하는 메타데이터를 조사(2321)하여 개발자에게 서버 컴포넌트가 제공하는 서비스 리스트를 보여주고 호출될 서비스를 선택(2322)하게 하는 과정을 거친다. 그리고 선택된 서비스 즉, 클라이언트 컴포넌트의 선택된 호출에 관한 클라이언트 측 메타데이터와 서버 컴포넌트 제공 서비스의 메타데이터를 이용하여 글루 컴포넌트 템플릿 코드를 자동 생성(233)한다. 이 때 클라이언트 측 메타데이터를 사용하여 원하는 서버 컴포넌트, 클래스 혹은 인터페이스의 식별자와 오퍼레이션의 시그너처 등의 정보를 읽어 이 정보와 일치하는 글루 컴포넌트와 인터페이스, 클래스, 그리고 해당 오퍼레이션을 정의해주는 소스코드를 자동으로 생성함으로써 글루 컴포넌트의 템플릿을 자동으로 생성한다. 그 후 자동으로 생성된글루 컴포넌트 템플릿 코드에 개발자가 간단한 중재 코드를 삽입함으로써 컴포넌트 간 시그너처의 문법적 정합문제와 매개변수의 의미론적 불일치를 해결하여 두 컴포넌트가 정확하게 통신할 수 있도록 무결성(Integrity)를 보장하는 중재 코드를 삽입(234)한다. 위와 같이 클라이언트와 서버 측 주석과 시그너처를 글루 컴포넌트 템플릿 안에 삽입함으로써 개발자가 중재코드를 작성하는 과정을 매우 용이하게 한다. 또한, 글루 컴포넌트 템플릿을 만들 때 컴포넌트 사이에 주고받는 메시지 내용과 서비스 호출에 소요되는 시간을 로깅(Logging)하는 코드를 자동으로 삽입하고 로깅된 테이터들을 조사함으로써 시스템 통합 테스트를 수행할 수 있다.
컴포넌트 조립과 조립 테스트에 관한 모든 작업을 GUI 환경에서 수행하고 자동으로 글루 컴포넌트의 템플릿과 일부 소스코드를 자동 생성함으로써, 소스 코드 수정 없이 컴포넌트들간의 메시지 흐름을 손쉽게 생성하고 변경할 수 있으며, 복잡하고 시간이 많이 소요되는 컴포넌트 조립 및 테스트 과정을 매우 직관화, 단순화시켜 빠르게 새로운 시스템을 구축하며, 손쉽게 유지보수할 수 있도록 한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
이상에서 설명한 바와 같이 본 발명에 따르면, 클라이언트 측 메타데이터를포함한 컴포넌트를 용이하게 구현할 수 있고, 이 메타데이터를 이용하여 글루 컴포넌트 템플릿 코드의 자동 생성이 가능해진다. 컴포넌트 조립 시 신속하고 저렴하게 만들어진 글루 컴포넌트로 하여금 중재 역할을 담당케 하면, 컴포넌트 자체 코드를 수정하지 않고도 컴포넌트 간 시그너처 정합문제와 의미론적 불일치 문제를 간단하게 해결할 수 있어, 막대한 비용을 들여 개발한 컴포넌트들의 재사용이 용이해진다. 또한 본 발명의 컴포넌트 조립 방법을 이용하면, 네트워크와 시스템에 과중한 부하를 초래하는 중앙 집중 방식의 워크플로우를 사용하지 않고도 유연한 메시지 흐름 조절이 가능하여 구축된 시스템의 변경 및 확장이 용이하고, 새로운 분산 소프트웨어 시스템을 신속하게 구축할 수 있게 된다.

Claims (13)

  1. 가상의 하위 컴포넌트가 제공하는 서비스를 호출하는 코드와 이와 관련된 클라이언트 측 메타데이터를 자동 생성하고, 이를 포함하는 컴포넌트 구현 방법에 있어서,
    컴포넌트 개발자로부터 호출하고자 하는 가상의 하위 컴포넌트가 제공하는 서비스(오퍼레이션 혹은 메서드) 시그너처와 주석을 임의로 입력받는 제 1단계;
    입력받은 시그너처를 기반으로, 하위 컴포넌트 서비스 호출을 중재할 글루 컴포넌트의 서비스를 동적으로 바인드(Late Binding)하여 호출하는 헬퍼 함수(Helper Function) 코드를 생성하는 제 2단계;
    하위 컴포넌트 서비스를 호출하고자 하는 부분에 새로 만들어진 헬퍼 함수 호출 코드를 입력하는 제 3단계;
    컴포넌트 조립에 이용되는 글루 컴포넌트의 템플릿 코드를 자동 생성하는데 필요한 클라이언트 측 메타데이터를 생성하여 컴포넌트에 포함시키는 제 4단계;
    를 포함하여 이루어지는 것을 특징으로 하는 컴포넌트 구현 방법
  2. 제 1항에 있어서,
    컴포넌트 개발자로부터 호출하고자 하는 가상의 하위 컴포넌트 서비스 시그너처와 주석을 입력받는 제 1단계를 마법사(Wizard)를 이용하여 처리하는 것을 특징으로 하는 컴포넌트 구현 방법
  3. 제 1항에 있어서,
    클라이언트 측 메타데이터를 생성하고 컴포넌트에 포함시키는 제 4단계에서, 사용자 속성(Custom Attribute)을 이용하여 클라이언트 측 메타데이터를 생성하는 것을 특징으로 하는 컴포넌트 구현 방법
  4. 제 1항에 있어서,
    클라이언트 측 메타데이터를 생성하고 컴포넌트에 포함시키는 제 4단계에서, 컴포넌트에 포함되거나 컴포넌트와 같이 배포되는 리소스에 클라이언트 측 메타데이터를 포함시키는 것을 특징으로 하는 컴포넌트 구현 방법
  5. 제 1항에 있어서,
    클라이언트 측 메타데이터를 생성하고 컴포넌트에 포함시키는 제 4단계에서, 글루 컴포넌트 식별자와, 클래스 혹은 인터페이스 식별자를 자동 생성하여, 개발자로부터 입력 받은 오퍼레이션 시그너처와 함께 클라이언트 측 메타데이터로 만드는 것을 특징으로 하는 컴포넌트 구현 방법
  6. 제 1항에 있어서,
    컴포넌트에 포함된 클라이언트 측 메타데이터를 이용하여, 가상의 하위 컴포넌트에 대응하는 시험용 간이(스터브) 컴포넌트 템플릿 코드를 자동 생성한 다음, 간단한 편집과 컴파일을 거쳐 만들어진 스터브 컴포넌트를 활용하여 개발중인 컴포넌트의 독립적인 기능 테스트를 실시하는 것을 특징으로 하는 컴포넌트 구현 방법.
  7. 클라이언트 측 메타데이터와 서버 측 메타데이터(혹은 인터페이스 정보)를 이용하여 글루 컴포넌트를 자동 생성하고, 자동 생성된 글루 컴포넌트를 이용하여 컴포넌트를 조립하는 방법에 있어서,
    그래픽 도구를 이용하여 조립할 컴포넌트들을 선택하여 도면에 배치하는 제 1단계;
    그래픽 도구를 사용하여 클라이언트 컴포넌트와 서버 컴포넌트를 선택하고 연결하므로 써 컴포넌트 간 메시지 흐름을 자유롭게 설정하는 제 2단계;
    컴포넌트 간 메시지 흐름을 처리(조립)하는데 있어서 클라이언트 컴포넌트가 서버 컴포넌트의 서비스를 직접 호출하게 하는 방법 대신, 중재를 위한 글루 컴포넌트를 거치게 하는 제 3단계;
    글루 컴포넌트의 템플릿 코드를 자동 생성하고, 클라이언트 컴포넌트가 호출하는 서비스 시그너처와 서버 컴포넌트가 제공하는 서비스의 시그너처가 다르거나 의미론적 불일치가 있을 경우 이를 처리하는 중재코드를 입력받아 글루 컴포넌트를 생성하는 제 4단계;
    제 1단계부터 제 4단계까지를 필요한 만큼 반복하여 필요한 글루 컴포넌트들을 만들고 이 들을 컴포넌트들과 함께 배치하여 소프트웨어 시스템을 구현하는 것을 특징으로 하는 컴포넌트 조립 방법.
  8. 제 7항에 있어서,
    제 1단계와 2단계를 처리할 때 순차도(Sequence Diagram)을 이용하여 컴포넌트 배치와 시계열에 따른 메시지 흐름을 자유롭게 설정할 수 있는 것을 특징으로 하는 컴포넌트 조립방법.
  9. 제 7항에 있어서,
    시스템을 한번에 조립하지 않고 여러 장의 순차도(Sequence Diagram)을 이용하여 조립함으로써 각각을 독립적으로 테스트할 수 있는 것을 특징으로 하는 컴포넌트 조립방법.
  10. 컴포넌트 간 메시지 전달을 중재하는 글루 컴포넌트를 자동 생성하는 방법에 있어서,
    개발자에게 클라이언트 컴포넌트가 호출할 서비스 리스트를 보여주고 그 중 하나를 선택하게 하는 제 1단계;
    개발자에게 서버 컴포넌트가 제공하는 서비스 리스트를 보여주고 호출될 서비스를 선택하게 하는 제 2단계;
    선택된 클라이언트와 서버 측 서비스에 대한 메타데이터를 이용하여 글루 컴포넌트를 만들기 위한 템플릿 코드를 자동으로 생성하는 제 3단계;
    자동으로 생성된 글루 컴포넌트 템플릿 코드에 개발자가 간단한 중재 코드를 삽입함으로써 컴포넌트 간 시그너처 정합문제와 매개변수의 의미론적 불일치를 해결하는 제 4단계;
    를 포함하여 컴포넌트 재사용성을 높이는 것을 특징으로 하는 글루 컴포넌트 자동 생성 방법
  11. 제 10항에 있어서,
    컴포넌트에 포함된 클라이언트 측 메타데이터를 조사하여 그 컴포넌트가 호출할 서비스의 시그너처와 주석 리스트를 개발자에게 보여주는 것을 특징으로 하는 글루 컴포넌트 자동 생성 방법
  12. 제 10항에 있어서,
    선택된 클라이언트와 서버 측 서비스에 대한 메타데이터를 이용하여 글루 컴포넌트를 만들기 위한 템플릿 코드를 생성하는 제 3단계에서, 클라이언트와 서버 측 주석과 시그너처를 글루 컴포넌트 템플릿 안에 삽입하여 개발자로 하여금 중재코드를 용이하게 작성하게 하는 것을 특징으로 하는 글루 코드 자동 생성 방법.
  13. 제 10항에 있어서,
    선택된 클라이언트와 서버 측 서비스에 대한 메타데이터를 이용하여 글루 컴포넌트를 만들기 위한 템플릿 코드를 생성하는 제 3단계에서, 매개 변수 값들과 되돌려지는 값 및 서비스 호출에 소요되는 시간 등을 기록하는(Logging) 코드를 자동으로 삽입하여, 기록된 데이터들을 테스트에 이용하는 것을 특징으로 하는 글루 코드 자동 생성 및 소프트웨어 시스템 통합 테스트 방법.
KR1020030029704A 2003-05-12 2003-05-12 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 KR20030044959A (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020030029704A KR20030044959A (ko) 2003-05-12 2003-05-12 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법
PCT/KR2004/001099 WO2004099896A2 (en) 2003-05-12 2004-05-12 Method and system of developing a software with utilizing extented metadata of component under component-based development environment
KR1020040033449A KR100697246B1 (ko) 2003-05-12 2004-05-12 컴포넌트 기반 환경 하에서 확장된 메타데이터를 이용한 소프트웨어 개발 방법 및 시스템
US10/546,805 US20070150855A1 (en) 2003-05-12 2004-05-12 Method and system of developing a software with utilizing extended metadata of component under component-based development environment
JP2006507841A JP2006526209A (ja) 2003-05-12 2004-05-12 コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
JP2009102295A JP2009238229A (ja) 2003-05-12 2009-04-20 コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
JP2009102299A JP2009238230A (ja) 2003-05-12 2009-04-20 コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
JP2009102297A JP2009245441A (ja) 2003-05-12 2009-04-20 コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
JP2009102300A JP2009238231A (ja) 2003-05-12 2009-04-20 コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030029704A KR20030044959A (ko) 2003-05-12 2003-05-12 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법

Publications (1)

Publication Number Publication Date
KR20030044959A true KR20030044959A (ko) 2003-06-09

Family

ID=29579678

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020030029704A KR20030044959A (ko) 2003-05-12 2003-05-12 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법
KR1020040033449A KR100697246B1 (ko) 2003-05-12 2004-05-12 컴포넌트 기반 환경 하에서 확장된 메타데이터를 이용한 소프트웨어 개발 방법 및 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020040033449A KR100697246B1 (ko) 2003-05-12 2004-05-12 컴포넌트 기반 환경 하에서 확장된 메타데이터를 이용한 소프트웨어 개발 방법 및 시스템

Country Status (2)

Country Link
JP (4) JP2009238230A (ko)
KR (2) KR20030044959A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100884435B1 (ko) * 2007-12-05 2009-02-19 정안모 객체지향 기반 서비스 컴포넌트의 특정 애플리케이션비즈니스 엔티티에 대한 종속성 제거 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060070611A (ko) * 2004-12-21 2006-06-26 한국전자통신연구원 제품 계열 분석을 통한 자산/제품 생성 장치 및 그 방법
KR100777103B1 (ko) * 2005-08-19 2007-11-19 한국전자통신연구원 테스트 드라이버 생성 장치 및 방법
US7895575B2 (en) 2005-08-19 2011-02-22 Electronics And Telecommunications Research Institute Apparatus and method for generating test driver
KR100791303B1 (ko) * 2006-08-22 2008-01-04 삼성전자주식회사 빌드 단위의 컴포넌트 생성 장치 및 방법
KR100860963B1 (ko) * 2007-03-08 2008-09-30 삼성전자주식회사 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법
KR100828302B1 (ko) * 2007-11-07 2008-05-08 정안모 컴포넌트 재사용과 의존성 주입 기술을 이용한 소프트웨어개발 및 실행 방법
KR101470319B1 (ko) 2008-02-15 2014-12-08 삼성전자주식회사 컴포넌트 모델 기반의 가상 소프트웨어 플랫폼을 생성하는방법, 이를 이용하여 소프트웨어 플랫폼 아키텍처를검증하는 방법 및 그 장치
KR100887105B1 (ko) * 2008-09-09 2009-03-04 김진만 Windows CE가 탑재된 산업용 임베디드 컨트롤러에서 주변장치의 제어를 위한 닷넷 컴포넌트의 구현 방법
US9158504B2 (en) 2012-10-12 2015-10-13 Baker Hughes Incorporated Method and system to automatically generate use case sequence diagrams and class diagrams
US11244090B2 (en) * 2016-06-01 2022-02-08 The Mathworks, Inc. Systems and methods for extracting adjustable attributes of model components
CN109933326B (zh) * 2017-12-15 2023-03-17 北京奇虎科技有限公司 改写代码的编译方法、装置及相应终端
CN115082058B (zh) * 2022-07-25 2022-11-18 上海富友支付服务股份有限公司 一种基于动态控制的虚拟账户交易管理方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314702A (ja) * 1995-05-19 1996-11-29 Nec Corp 視覚プログラミングシステムおよび図形プログラム編集方法
JPH09120357A (ja) * 1995-10-26 1997-05-06 Hitachi Ltd オブジェクト指向アプリケーション構築方法
JPH11353168A (ja) * 1998-06-10 1999-12-24 Nippon Telegr & Teleph Corp <Ntt> インタフェースマッチング方法およびインタフェースマッチングプログラムを記録した記録媒体
JP2000089944A (ja) * 1998-07-15 2000-03-31 Hitachi Software Eng Co Ltd 接続ガイドマ―カ表示方法およびシステム、記録媒体
KR100426311B1 (ko) * 2001-12-28 2004-04-08 한국전자통신연구원 Ejb 컴포넌트 조립 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100884435B1 (ko) * 2007-12-05 2009-02-19 정안모 객체지향 기반 서비스 컴포넌트의 특정 애플리케이션비즈니스 엔티티에 대한 종속성 제거 방법
WO2009072809A2 (en) * 2007-12-05 2009-06-11 An-Mo Jeong A method for decoupling service components from application-specific business entities
WO2009072809A3 (en) * 2007-12-05 2009-09-17 An-Mo Jeong A method for decoupling service components from application-specific business entities

Also Published As

Publication number Publication date
KR100697246B1 (ko) 2007-03-21
KR20040097941A (ko) 2004-11-18
JP2009245441A (ja) 2009-10-22
JP2009238230A (ja) 2009-10-15
JP2009238229A (ja) 2009-10-15
JP2009238231A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
US8495559B2 (en) Extracting platform independent models from composite applications
US20070150855A1 (en) Method and system of developing a software with utilizing extended metadata of component under component-based development environment
US20100077386A1 (en) System and a method for cross-platform porting of business applications and making them contexually-aware on target platforms
WO2009140154A1 (en) Methods and systems for developing, debugging, and executing data integration applications
CN109254905B (zh) 基于工作流的分布式并行自动化测试系统
JP2009238229A (ja) コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
Sorgalla et al. Applying model-driven engineering to stimulate the adoption of devops processes in small and medium-sized development organizations: the case for microservice architecture
Cooper et al. Model-based development of engine control systems: Experiences and lessons learnt
KR100994070B1 (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
Balogh et al. Workflow-driven tool integration using model transformations
Geppert et al. The SDL pattern approach–a reuse-driven SDL design methodology
Dellarocas The SYNTHESIS environment for component-based software development
Cao et al. A component assembly approach based on aspect-oriented generative domain modeling
CN112363700A (zh) 智能合约的协同创建方法、装置、计算机设备和存储介质
Signoles Software architecture of code analysis frameworks matters: the Frama-C example
Geppert et al. Combining SDL Patterns with Continuous Quality Improvement: An Experience Factory Tailored to SDL Patterns
Selway et al. Integration of visual contracts and model transformation for enhanced MDE development
KR101061326B1 (ko) 응용서버 개발시스템
Bercovici et al. From business architecture to SOA realization using MDD
Merilinna et al. A stylebase as a tool for modelling of quality-driven software architecture
Zhang et al. Research on reusability of software connector based on AOP
Wang et al. Scenario based Generative component Adaptation in. NET framework
Toresson Documenting and Improving the Design of a Large-scale System
Al-Agtash et al. Re-Engineering BLUE Financial System Using Round-Trip Engineering and Java Language Conversion Assistant.
Eixelsberger Software Architecture Recovery of Product Lines

Legal Events

Date Code Title Description
A201 Request for examination