KR102354808B1 - Apparatus and method for developing component - Google Patents

Apparatus and method for developing component Download PDF

Info

Publication number
KR102354808B1
KR102354808B1 KR1020190034573A KR20190034573A KR102354808B1 KR 102354808 B1 KR102354808 B1 KR 102354808B1 KR 1020190034573 A KR1020190034573 A KR 1020190034573A KR 20190034573 A KR20190034573 A KR 20190034573A KR 102354808 B1 KR102354808 B1 KR 102354808B1
Authority
KR
South Korea
Prior art keywords
component
test
development
meaning
interface
Prior art date
Application number
KR1020190034573A
Other languages
Korean (ko)
Other versions
KR20200113831A (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 KR1020190034573A priority Critical patent/KR102354808B1/en
Publication of KR20200113831A publication Critical patent/KR20200113831A/en
Application granted granted Critical
Publication of KR102354808B1 publication Critical patent/KR102354808B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

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

Abstract

컴포넌트 개발 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 컴포넌트 개발 장치는 기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의하고, 정의된 컴포넌트 기능에 기반하여 컴포넌트의 인터페이스의 의미와 형식을 정의하여 인터페이스 테스트케이스에 기반한 컴포넌트를 개발하는 컴포넌트 개발부; 및
상기 컴포넌트를 검색하여 상기 컴포넌트의 인터페이스 형식과 의미를 검사하고, 개발된 컴포넌트를 실행하는 컴포넌트 조립부를 포함한다.
A component development apparatus and method are disclosed. A component development apparatus according to an embodiment of the present invention defines a function of a component according to a preset architecture establishment setting, and defines the meaning and form of an interface of a component based on the defined component function to develop a component based on an interface test case. Component development department to develop; and
and a component assembly unit that searches for the component, examines the interface form and meaning of the component, and executes the developed component.

Description

컴포넌트 개발 장치 및 방법 {APPARATUS AND METHOD FOR DEVELOPING COMPONENT}Apparatus and method for component development {APPARATUS AND METHOD FOR DEVELOPING COMPONENT}

본 발명은 어플리케이션 개발 기술에 관한 것으로, 보다 상세하게는 컴포넌트 개발 및 조합을 통한 어플리케이션 개발 기술에 관한 것이다.The present invention relates to application development technology, and more particularly, to application development technology through component development and combination.

소프트웨어 제품은 점점 규모가 커지고 복잡해지고 있으며 이에 따라 개발 비용이 점점 증대되고 있다. 이에 대한 표현으로 소프트웨어 위기라는 용어가 1968년부터 사용되고 있으며, 다양한 방법으로 소프트웨어 위기를 극복하고자 하지만 일반적으로 모든 문제를 해결할 수 있는 방법은 없는 것으로 여겨지고 있다. Software products are getting larger and more complex, which leads to higher development costs. As an expression for this, the term software crisis has been used since 1968, and although there are various ways to overcome the software crisis, it is generally considered that there is no way to solve all problems.

컴포넌트 기반 개발 방법(Component based Development, CBD)은 정보공학 및 객체지향 방법 등의 개발 방범의 한계를 극복하기 위하여 제시된 방법으로 하드웨어의 조립 공정과 동일한 방법으로 양질의 소프트웨어 부품 컴포넌트를 조립하여 정보시스템을 신속하게 구축할 수 있도록 하는 방법으로 개발 생산성과 품질을 획기적으로 향상시키기 위한 목적으로 만들어졌다. 또한 CBD에서는 레거시 시스템을 컴포넌트화 하여 새로운 기술환경과 연동하여 사용할 수 있는 장점도 있다. Component based Development (CBD) is a method proposed to overcome the limitations of development crime prevention such as information engineering and object-oriented methods. It was created with the purpose of dramatically improving development productivity and quality in a way that enables rapid deployment. In addition, CBD has the advantage that legacy systems can be componentized and used in conjunction with a new technology environment.

그러나, 컴포넌트를 재활용하기 위해서는 컴포넌트 사이의 인터페이스 형식 및 전달 데이터의 의미가 의미상 동일해야 하며 컴포넌트 구현 방법에 따라 예상하지 못한 상호 영향 등 다양한 문제를 해결해야 한다. 이에 따라 컴포넌트의 재사용을 위해서는 컴포넌트 사이의 명확한 상호작용이 필요하다. 단순 API의 형식 비교나 컴포넌트에 대한 기능 설명만으로 컴포넌트를 재사용할 경우 재사용에 대한 확신이 어렵고 실제 동작할 때 예상하지 못한 부작용이 나올 수 있는 문제점이 있다.However, in order to recycle components, the interface format between components and the meaning of transmitted data must be semantically identical, and various problems such as unexpected mutual influence must be resolved depending on the component implementation method. Accordingly, clear interaction between components is required for component reuse. If a component is reused only by comparing the format of a simple API or by explaining the function of the component, it is difficult to be sure of reuse, and there is a problem that unexpected side effects may occur during actual operation.

한편, 한국공개특허 제 10-2009-0122898 호“온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템 및 그 방법”는 독립적으로 개발한 컴포넌트들을 조립하여 애플리케이션을 개발하는 시스템에서 컴포넌트의 소스 코드 수정 없이 바이너리 수준에 서 조립할 수 있는 소프트웨어 개발 시스템 및 방법에 관하여 개시하고 있다.On the other hand, Korean Patent Application Laid-Open No. 10-2009-0122898 “Software development system and method using ontology-based component assembly technology” is a system that develops applications by assembling independently developed components at a binary level without modifying the source code of the components. Disclosed is a software development system and method that can be assembled in

본 발명은 컴포넌트 기반 개발 방법에 있어서 필요한 컴포넌트를 검색할 때, 형식 비교, 행위 비교, 품질 속성 등의 다양한 측면에서 검색하여 적합한 컴포넌트를 제시하는 것을 목적으로 한다.An object of the present invention is to present suitable components by searching in various aspects such as format comparison, behavior comparison, and quality attribute when searching for a necessary component in a component-based development method.

또한, 본 발명은 컴포넌트의 재사용성과 품질을 획기적으로 높이는 것을 목적으로 한다.In addition, an object of the present invention is to dramatically increase the reusability and quality of components.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 컴포넌트 개발 장치는 기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의하고, 정의된 컴포넌트 기능에 기반하여 컴포넌트의 인터페이스의 의미와 형식을 정의하여 인터페이스 테스트케이스에 기반한 컴포넌트를 개발하는 컴포넌트 개발부 및 상기 컴포넌트를 검색하여 상기 컴포넌트의 인터페이스 형식과 의미를 검사하고, 개발된 컴포넌트를 실행하는 컴포넌트 조립부를 포함한다.The component development apparatus according to an embodiment of the present invention for achieving the above object defines the function of a component according to a preset architecture establishment setting, and defines the meaning and form of the interface of the component based on the defined component function. It includes a component development unit that develops a component based on an interface test case, and a component assembly unit that searches for the component, examines the interface form and meaning of the component, and executes the developed component.

본 발명은 컴포넌트 기반 개발 방법에 있어서 필요한 컴포넌트를 검색할 때, 형식 비교, 행위 비교, 품질 속성 등의 다양한 측면에서 검색하여 적합한 컴포넌트를 제시할 수 있다.In the present invention, when searching for a necessary component in a component-based development method, it is possible to present a suitable component by searching in various aspects such as format comparison, behavior comparison, and quality attribute.

또한, 본 발명은 컴포넌트의 재사용성과 품질을 획기적으로 높일 수 있다.In addition, the present invention can dramatically increase the reusability and quality of components.

도 1은 본 발명의 일실시예에 따른 컴포넌트 개발 장치를 나타낸 블록도이다.
도 2는 도 1에 도시된 컴포넌트 개발부의 일 예를 세부적으로 나타낸 블록도이다.
도 3은 도 1에 도시된 컴포넌트 조립부의 일 예를 세부적으로 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 컴포넌트의 구조를 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 컴포넌트 개발 방법을 나타낸 동작흐름도이다.
도 6은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
1 is a block diagram illustrating an apparatus for developing a component according to an embodiment of the present invention.
FIG. 2 is a detailed block diagram illustrating an example of the component development unit illustrated in FIG. 1 .
FIG. 3 is a detailed block diagram illustrating an example of a component assembly unit illustrated in FIG. 1 .
4 is a block diagram showing the structure of a component according to an embodiment of the present invention.
5 is an operation flowchart illustrating a component development method according to an embodiment of the present invention.
6 is a diagram illustrating a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the accompanying drawings as follows. Here, repeated descriptions, well-known functions that may unnecessarily obscure the gist of the present invention, and detailed descriptions of configurations will be omitted. The embodiments of the present invention are provided in order to more completely explain the present invention to those of ordinary skill in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer description.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part "includes" a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

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

도 1은 본 발명의 일실시예에 따른 컴포넌트 개발 장치를 나타낸 블록도이다.1 is a block diagram illustrating an apparatus for developing a component according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 컴포넌트 개발 장치는 컴포넌트 개발부(110), 컴포넌트 조립부(120) 및 컴포넌트 저장부(130)를 포함한다.Referring to FIG. 1 , a component development apparatus according to an embodiment of the present invention includes a component development unit 110 , a component assembly unit 120 , and a component storage unit 130 .

컴포넌트 개발부(110)는 컴포넌트 기능 정의부(111), 컴포넌트 인터페이스 정의부(112), 인터페이스 테스트케이스부(113) 및 컴포넌트 구현부(114)를 포함한다.The component development unit 110 includes a component function definition unit 111 , a component interface definition unit 112 , an interface test case unit 113 , and a component implementation unit 114 .

컴포넌트 기능 정의부(111)는 전체 기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의할 수 있다.The component function definition unit 111 may define a function of a component according to an entire pre-set architecture establishment setting.

컴포넌트 인터페이스 정의부(112)는 정의된 컴포넌트 기능에 기반하여 컴포넌트의 인터페이스의 의미와 형식을 정의할 수 있다.The component interface definition unit 112 may define the meaning and form of the interface of the component based on the defined component function.

인터페이스의 의미는 UML 다이어그램이나 정형 언어(Formal Method)로 정의될 수 있다.The meaning of the interface can be defined in a UML diagram or a formal method.

인터페이스 테스트케이스부(113)는 인터페이스의 의미와 형식을 정의하기 위한 테스트케이스를 제공할 수 있다.The interface test case unit 113 may provide a test case for defining the meaning and format of the interface.

컴포넌트 구현부(114)는 정의된 컴포넌트의 기능과 컴포넌트의 인터페이스의 의미와 형식을 이용하여 컴포넌트를 구현할 수 있다.The component implementation unit 114 may implement the component by using the defined function of the component and the meaning and form of the interface of the component.

이 때, 컴포넌트 구현부(114)는 테스트 기반 방법론(TDD, Test Driven Development)을 이용하여 컴포넌트를 시험하기 위한 테스트 코드를 먼저 작성한 이후 컴포넌트 내부를 시험할 수 있다.In this case, the component implementation unit 114 may test the inside of the component after first writing a test code for testing the component using a test driven development (TDD) method.

TDD에서는 동작 가능한 테스트 코드로 컴포넌트의 인터페이스의 기능과 역할을 구체화할 수 있다. 이러한 테스트 코드를 컴포넌트 구성에 포함하여 전술한 컴포넌트의 행위에 대해 명확한 명세를 가능하도록 할 수 있다. In TDD, the function and role of the component's interface can be specified with the actionable test code. By including such a test code in the component configuration, it is possible to make it possible to clearly specify the behavior of the above-described component.

컴포넌트 조립부(120)는 컴포넌트 검색부(121), 컴포넌트 형식 검사부(122), 컴포넌트 의미 검사부(123) 및 컴포넌트 실행부(124)를 포함한다.The component assembly unit 120 includes a component search unit 121 , a component type inspection unit 122 , a component meaning inspection unit 123 , and a component execution unit 124 .

컴포넌트 검색부(121)는 어플리케이션을 통합 개발하기 위한 컴포넌트를 검색할 수 있다.The component search unit 121 may search for a component for integrated development of an application.

컴포넌트 형식 검사부(122)는 컴포넌트 인터페이스의 형식을 검사할 수 있다.The component format checker 122 may check the format of the component interface.

컴포넌트 의미 검사부(123)는 컴포넌트 인터페이스의 의미를 검사할 수 있다.The component meaning checker 123 may check the meaning of the component interface.

컴포넌트 실행부(124)는 컴포넌트와 함께 테스트 케이스를 함께 제공하여 상호 연동이 가능한 컴포넌트를 검색할 때 컴포넌트의 API 정보를 통한 형식 검사를 먼저 수행하고, 테스트 케이스를 통해 실제 컴포넌트를 동작 시험하여 컴포넌트의 행위 및 의미를 시험할 수 있다.The component execution unit 124 provides a test case together with the component to first perform a type check through API information of the component when searching for a component capable of interworking by providing a test case together with the component, and operates the actual component through the test case to test the component. It can test behavior and meaning.

이 때, 컴포넌트 실행부(124)는 테스트 코드 및 테스트 케이스를 작성한 후, 검색/실행 등의 과정에서 테스트 케이스를 확장할 수 있다.In this case, the component execution unit 124 may expand the test case in the process of searching/executing after writing the test code and the test case.

이 때, 컴포넌트 실행부(124)는 별도의 컴포넌트 실행 에이전트를 이용하여 실행 과정의 정보(예, 디버깅 정보, 변수 정보 등)파악하여 컴포넌트의 테스트 케이스를 확장할 수 있다.In this case, the component execution unit 124 may extend the test case of the component by identifying information (eg, debugging information, variable information, etc.) of the execution process using a separate component execution agent.

컴포넌트 저장부(130)는 생성된 컴포넌트를 저장할 수 있다.The component storage unit 130 may store the generated component.

도 2는 도 1에 도시된 컴포넌트 개발부의 일 예를 세부적으로 나타낸 블록도이다.FIG. 2 is a detailed block diagram illustrating an example of the component development unit illustrated in FIG. 1 .

도 2를 참조하면, 컴포넌트 개발부(110)는 컴포넌트 기능 정의부(111), 컴포넌트 인터페이스 정의부(112), 인터페이스 테스트케이스부(113) 및 컴포넌트 구현부(114)를 포함한다.Referring to FIG. 2 , the component development unit 110 includes a component function definition unit 111 , a component interface definition unit 112 , an interface test case unit 113 , and a component implementation unit 114 .

컴포넌트 기능 정의부(111)는 전체 기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의할 수 있다.The component function definition unit 111 may define a function of a component according to an entire pre-set architecture establishment setting.

컴포넌트 인터페이스 정의부(112)는 정의된 컴포넌트 기능에 기반하여 컴포넌트의 인터페이스의 의미와 형식을 정의할 수 있다.The component interface definition unit 112 may define the meaning and format of the interface of the component based on the defined component function.

인터페이스의 의미는 UML 다이어그램이나 정형 언어(Formal Method)로 정의될 수 있다.The meaning of the interface can be defined in a UML diagram or a formal method.

인터페이스 테스트케이스부(113)는 인터페이스의 의미와 형식을 정의하기 위한 테스트케이스를 제공할 수 있다.The interface test case unit 113 may provide a test case for defining the meaning and format of the interface.

컴포넌트 구현부(114)는 정의된 컴포넌트의 기능과 컴포넌트의 인터페이스의 의미와 형식을 이용하여 컴포넌트를 구현할 수 있다.The component implementation unit 114 may implement the component by using the defined function of the component and the meaning and form of the interface of the component.

이 때, 컴포넌트 구현부(114)는 테스트 기반 방법론(TDD, Test Driven Development)을 이용하여 컴포넌트를 시험하기 위한 테스트 코드를 먼저 작성한 이후 컴포넌트 내부를 시험할 수 있다.In this case, the component implementation unit 114 may test the inside of the component after first writing a test code for testing the component using a test driven development (TDD) method.

TDD에서는 동작 가능한 테스트 코드로 컴포넌트의 인터페이스의 기능과 역할을 구체화할 수 있다. 이러한 테스트 코드를 컴포넌트 구성에 포함하여 전술한 컴포넌트의 행위에 대해 명확한 명세를 가능하도록 할 수 있다. In TDD, the function and role of the component's interface can be specified with the actionable test code. By including such a test code in the component configuration, it is possible to make it possible to clearly specify the behavior of the above-described component.

도 3은 도 1에 도시된 컴포넌트 조립부의 일 예를 세부적으로 나타낸 블록도이다.FIG. 3 is a detailed block diagram illustrating an example of a component assembly unit illustrated in FIG. 1 .

도 3을 참조하면, 컴포넌트 조립부(120)는 컴포넌트 검색부(121), 컴포넌트 형식 검사부(122), 컴포넌트 의미 검사부(123) 및 컴포넌트 실행부(124)를 포함한다.Referring to FIG. 3 , the component assembly unit 120 includes a component search unit 121 , a component type checker 122 , a component meaning checker 123 , and a component execution unit 124 .

컴포넌트 검색부(121)는 어플리케이션을 통합 개발하기 위한 컴포넌트를 검색할 수 있다.The component search unit 121 may search for a component for integrated development of an application.

컴포넌트 형식 검사부(122)는 컴포넌트 인터페이스의 형식을 검사할 수 있다.The component format checker 122 may check the format of the component interface.

컴포넌트 의미 검사부(123)는 컴포넌트 인터페이스의 의미를 검사할 수 있다.The component meaning checker 123 may check the meaning of the component interface.

컴포넌트 실행부(124)는 컴포넌트와 함께 테스트 케이스를 함께 제공하여 상호 연동이 가능한 컴포넌트를 검색할 때 컴포넌트의 API 정보를 통한 형식 검사를 먼저 수행하고, 테스트 케이스를 통해 실제 컴포넌트를 동작 시험하여 컴포넌트의 행위 및 의미를 시험할 수 있다.The component execution unit 124 provides a test case together with the component to first perform a type check through API information of the component when searching for a component capable of interworking by providing a test case together with the component, and operates the actual component through the test case to test the component. It can test behavior and meaning.

이 때, 컴포넌트 실행부(124)는 테스트 코드 및 테스트 케이스를 작성한 후, 검색/실행 등의 과정에서 테스트 케이스를 확장할 수 있다.In this case, the component execution unit 124 may expand the test case in the process of searching/executing after writing the test code and the test case.

이 때, 컴포넌트 실행부(124)는 별도의 컴포넌트 실행 에이전트를 이용하여 실행 과정의 정보(예, 디버깅 정보, 변수 정보 등)파악하여 컴포넌트의 테스트 케이스를 확장할 수 있다.In this case, the component execution unit 124 may extend the test case of the component by identifying information (eg, debugging information, variable information, etc.) of the execution process using a separate component execution agent.

도 4는 본 발명의 일실시예에 따른 컴포넌트의 구조를 나타낸 블록도이다.4 is a block diagram illustrating the structure of a component according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일실시예에 따른 컴포넌트(10)는 컴포넌트 소스코드 또는 실행 파일을 포함하고, 추가적인 명세서와 인터페이스 테스트케이스를 포함할 수 있다.Referring to FIG. 4 , the component 10 according to an embodiment of the present invention may include a component source code or an executable file, and may include an additional specification and an interface test case.

도 5는 본 발명의 일실시예에 따른 컴포넌트 개발 방법을 나타낸 동작흐름도이다.5 is an operation flowchart illustrating a component development method according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 컴포넌트 개발 방법은 먼저 컴포넌트 개발을 수행할 수 있다(S210).Referring to FIG. 5 , the component development method according to an embodiment of the present invention may first perform component development ( S210 ).

즉, 단계(S210)는 전체 기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의할 수 있다.That is, in step S210, the function of the component may be defined according to the entire pre-set architecture establishment setting.

이 때, 단계(S210)는 정의된 컴포넌트 기능에 기반하여 컴포넌트의 인터페이스의 의미와 형식을 정의할 수 있다.In this case, in step S210, the meaning and form of the interface of the component may be defined based on the defined component function.

인터페이스의 의미는 UML 다이어그램이나 정형 언어(Formal Method)로 정의될 수 있다.The meaning of the interface can be defined in a UML diagram or a formal method.

이 때, 단계(S210)는 인터페이스의 의미와 형식을 정의하기 위한 테스트케이스를 제공할 수 있다.In this case, step S210 may provide a test case for defining the meaning and format of the interface.

이 때, 단계(S210)는 정의된 컴포넌트의 기능과 컴포넌트의 인터페이스의 의미와 형식을 이용하여 컴포넌트를 구현할 수 있다.In this case, in step S210, the component may be implemented using the defined function of the component and the meaning and form of the interface of the component.

이 때, 단계(S210)는 테스트 기반 방법론(TDD, Test Driven Development)을 이용하여 컴포넌트를 시험하기 위한 테스트 코드를 먼저 작성한 이후 컴포넌트 내부를 시험할 수 있다.In this case, in step S210, a test code for testing a component may be first written using a test-based methodology (TDD, Test Driven Development), and then the inside of the component may be tested.

TDD에서는 동작 가능한 테스트 코드로 컴포넌트의 인터페이스의 기능과 역할을 구체화할 수 있다. 이러한 테스트 코드를 컴포넌트 구성에 포함하여 전술한 컴포넌트의 행위에 대해 명확한 명세를 가능하도록 할 수 있다. In TDD, the function and role of the component's interface can be specified with the actionable test code. By including such a test code in the component configuration, it is possible to make it possible to clearly specify the behavior of the above-described component.

또한, 본 발명의 일실시예에 따른 컴포넌트 개발 방법은 컴포넌트 조립을 수행할 수 있다(S220).In addition, the component development method according to an embodiment of the present invention may perform component assembly ( S220 ).

즉, 단계(S220)는 어플리케이션을 통합 개발하기 위한 컴포넌트를 검색할 수 있다.That is, in step S220, a component for integrated development of an application may be searched.

이 때, 단계(S220)는 컴포넌트 인터페이스의 형식을 검사할 수 있다.In this case, step S220 may check the format of the component interface.

이 때, 단계(S220)는 컴포넌트 인터페이스의 의미를 검사할 수 있다.In this case, step S220 may check the meaning of the component interface.

또한, 본 발명의 일실시예에 따른 컴포넌트 개발 방법은 컴포넌트를 실행할 수 있다(S230).In addition, the component development method according to an embodiment of the present invention may execute the component (S230).

즉, 단계(S230)는 컴포넌트와 함께 테스트 케이스를 함께 제공하여 상호 연동이 가능한 컴포넌트를 검색할 때 컴포넌트의 API 정보를 통한 형식 검사를 먼저 수행하고, 테스트 케이스를 통해 실제 컴포넌트를 동작 시험하여 컴포넌트의 행위 및 의미를 시험할 수 있다.That is, step S230 provides a test case together with a component to first perform a type check through API information of the component when searching for an interoperable component, and then operates the actual component through the test case to test the component. It can test behavior and meaning.

이 때, 단계(S230)는 테스트 코드 및 테스트 케이스를 작성한 후, 검색/실행 등의 과정에서 테스트 케이스를 확장할 수 있다.In this case, in step S230, after writing the test code and the test case, the test case may be expanded in the process of searching/executing the test case.

이 때, 단계(S230)는 별도의 컴포넌트 실행 에이전트를 이용하여 실행 과정의 정보(예, 디버깅 정보, 변수 정보 등)파악하여 컴포넌트의 테스트 케이스를 확장할 수 있다.In this case, in step S230, information (eg, debugging information, variable information, etc.) of the execution process may be grasped using a separate component execution agent, and the test case of the component may be extended.

이 때, 단계(S230)는 생성된 컴포넌트를 실행하고, 저장할 수 있다.In this case, in step S230, the generated component may be executed and stored.

도 6은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.6 is a diagram illustrating a computer system according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 인증 서버(10) 및 생체 인증 제공 장치(100)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 6에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 6 , the authentication server 10 and the biometric authentication providing apparatus 100 according to an embodiment of the present invention may be implemented in a computer system 1100 such as a computer-readable recording medium. As shown in FIG. 6 , the computer system 1100 includes one or more processors 1110 , a memory 1130 , a user interface input device 1140 , and a user interface output device 1150 that communicate with each other via a bus 1120 . and storage 1160 . In addition, the computer system 1100 may further include a network interface 1170 coupled to the network 1180 . The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or the storage 1160 . The memory 1130 and the storage 1160 may be various types of volatile or non-volatile storage media. For example, the memory may include a ROM 1131 or a RAM 1132 .

이상에서와 같이 본 발명의 일실시예에 따른 컴포넌트 개발 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, in the component development apparatus and method according to an embodiment of the present invention, the configuration and method of the described embodiments are not limitedly applicable, but the embodiments are each so that various modifications can be made. All or some of the embodiments may be selectively combined and configured.

110: 컴포넌트 개발부 111: 컴포넌트 기능 정의부
112: 컴포넌트 인터페이스 정의부 113: 인터페이스 테스트케이스부
114: 컴포넌트 구현부 120: 컴포넌트 조립부
121: 컴포넌트 검색부 122: 컴포넌트 형식 검사부
123: 컴포넌트 의미 검사부 124: 컴포넌트 실행부
130: 컴포넌트 저장부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크
110: component development unit 111: component function definition unit
112: component interface definition unit 113: interface test case unit
114: component implementation unit 120: component assembly unit
121: component search unit 122: component type check unit
123: component meaning check unit 124: component execution unit
130: component storage unit
1100: computer system 1110: processor
1120: bus 1130: memory
1131: rom 1132: ram
1140: user interface input device
1150: user interface output device
1160: storage 1170: network interface
1180: network

Claims (10)

기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의하고, 정의된 컴포넌트 기능에 기반하여 컴포넌트의 행위, 의미 및 형식을 정의하여 컴포넌트를 구현하는 컴포넌트 개발부; 및
상기 컴포넌트의 행위, 의미 및 형식을 시험하고, 개발된 컴포넌트를 실행하는 컴포넌트 조립부;
를 포함하고,
상기 컴포넌트 개발부는
테스트 기반 방법론(Test Driven Development)을 이용하여 테스트 코드를 작성하고, 상기 테스트 코드를 이용하여 상기 컴포넌트를 시험하고,
상기 컴포넌트 조립부는
상기 컴포넌트의 API 정보를 통해 상기 컴포넌트의 형식을 검사하고, 상기 테스트 코드에 의해 확장된 테스트케이스를 이용한 상기 컴포넌트의 동작으로부터 상기 컴포넌트의 행위 및 의미를 시험하고,
상기 컴포넌트의 동작을 시험하는 과정에서, 컴포넌트 실행 에이전트를 이용하여 상기 컴포넌트의 디버깅 정보 및 변수 정보를 포함하는 실행과정의 정보를 확인하고, 상기 실행과정의 정보를 이용하여 상기 테스트케이스를 확장하는 것을 특징으로 하는 컴포넌트 개발 장치.
a component development unit that defines a function of a component according to a preset architecture establishment setting, and implements a component by defining an action, meaning, and form of the component based on the defined component function; and
a component assembly unit that tests the behavior, meaning and form of the component and executes the developed component;
including,
The component development department
Write test code using Test Driven Development, test the component using the test code,
The component assembly
Examine the form of the component through the API information of the component, and test the behavior and meaning of the component from the operation of the component using a test case extended by the test code,
In the process of testing the operation of the component, using the component execution agent to check information on the execution process including debugging information and variable information of the component, and to expand the test case using the information on the execution process A component development device that features.
삭제delete 청구항 1에 있어서,
상기 컴포넌트 개발부는
상기 테스트 코드를 이용하여 상기 컴포넌트의 인터페이스의 기능과 역할을 구체화하고, 상기 컴포넌트에 상기 테스트 코드를 포함시켜 상기 컴포넌트의 행위에 대한 명세를 제공하는 것을 특징으로 하는 컴포넌트 개발 장치.
The method according to claim 1,
The component development department
Component development apparatus, characterized in that the function and role of the interface of the component are specified by using the test code, and a specification of the behavior of the component is provided by including the test code in the component.
삭제delete 삭제delete 컴포넌트 개발 장치의 컴포넌트 개발 방법에 있어서,
기설정된 아키텍처 수립 설정에 따라 컴포넌트의 기능을 정의하고, 정의된 컴포넌트 기능에 기반하여 컴포넌트의 행위, 의미 및 형식을 정의하여 컴포넌트를 구현하는 단계; 및
상기 컴포넌트의 행위, 의미 및 형식을 시험하고, 개발된 컴포넌트를 실행하는 단계;
를 포함하고,
상기 컴포넌트를 구현하는 단계는
테스트 기반 방법론(Test Driven Development)을 이용하여 테스트 코드를 작성하고, 상기 테스트 코드를 이용하여 상기 컴포넌트를 시험하고,
상기 컴포넌트를 실행하는 단계는
상기 컴포넌트의 API 정보를 통해 상기 컴포넌트의 형식을 검사하고, 상기 테스트 코드에 의해 확장된 테스트케이스를 이용한 상기 컴포넌트의 동작으로부터 상기 컴포넌트의 행위 및 의미를 시험하고,
상기 컴포넌트의 동작을 시험하는 과정에서, 컴포넌트 실행 에이전트를 이용하여 상기 컴포넌트의 디버깅 정보 및 변수 정보를 포함하는 실행과정의 정보를 확인하고, 상기 실행과정의 정보를 이용하여 상기 테스트케이스를 확장하는 것을 특징으로 하는 컴포넌트 개발 방법.
In the component development method of the component development apparatus,
defining a function of a component according to a preset architecture establishment setting, and implementing a component by defining an action, meaning, and form of the component based on the defined component function; and
testing the behavior, meaning and form of the component, and executing the developed component;
including,
The step of implementing the component is
Write test code using Test Driven Development, test the component using the test code,
The step of executing the component is
Examine the form of the component through the API information of the component, and test the behavior and meaning of the component from the operation of the component using a test case extended by the test code,
In the process of testing the operation of the component, using the component execution agent to check information on the execution process including debugging information and variable information of the component, and to expand the test case using the information on the execution process A method for developing a component.
삭제delete 청구항 6에 있어서,
상기 컴포넌트를 구현하는 단계는
상기 테스트 코드를 이용하여 상기 컴포넌트의 인터페이스의 기능과 역할을 구체화하고, 상기 컴포넌트에 상기 테스트 코드를 포함시켜 상기 컴포넌트의 행위에 대한 명세를 제공하는 것을 특징으로 하는 컴포넌트 개발 방법.
7. The method of claim 6,
The step of implementing the component is
A component development method, characterized in that the function and role of the interface of the component are specified using the test code, and a specification of the behavior of the component is provided by including the test code in the component.
삭제delete 삭제delete
KR1020190034573A 2019-03-26 2019-03-26 Apparatus and method for developing component KR102354808B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190034573A KR102354808B1 (en) 2019-03-26 2019-03-26 Apparatus and method for developing component

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190034573A KR102354808B1 (en) 2019-03-26 2019-03-26 Apparatus and method for developing component

Publications (2)

Publication Number Publication Date
KR20200113831A KR20200113831A (en) 2020-10-07
KR102354808B1 true KR102354808B1 (en) 2022-01-25

Family

ID=72884129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190034573A KR102354808B1 (en) 2019-03-26 2019-03-26 Apparatus and method for developing component

Country Status (1)

Country Link
KR (1) KR102354808B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102449580B1 (en) * 2021-02-15 2022-09-30 (주)아이브릭스 The unstructured data analysis method using component network based analysis system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101134735B1 (en) * 2010-11-03 2012-04-13 재단법인대구경북과학기술원 Software testing method and system using software component design information

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100935685B1 (en) * 2007-12-18 2010-01-08 한국전자통신연구원 Apparatus and Method for Developing Software

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101134735B1 (en) * 2010-11-03 2012-04-13 재단법인대구경북과학기술원 Software testing method and system using software component design information

Also Published As

Publication number Publication date
KR20200113831A (en) 2020-10-07

Similar Documents

Publication Publication Date Title
US10146532B2 (en) Apparatus and method for detecting code cloning of software
EP3234851B1 (en) A system and method for facilitating static analysis of software applications
CN106909498B (en) Method and system for injecting fault into Java program
CN107766130B (en) Method and device for migrating virtual machine to container
WO2018161509A1 (en) Conditional compilation preprocessing method, terminal and storage medium
CN111124870A (en) Interface testing method and device
CN109614107B (en) Integration method and device of software development kit
US11347500B2 (en) Software code converter for resolving conflicts during code development
US20210397423A1 (en) Software code converter for resolving redundancy during code development
KR102354808B1 (en) Apparatus and method for developing component
JP7131277B2 (en) System migration support device, system migration support method and program
CN110716866A (en) Code quality scanning method and device, computer equipment and storage medium
US11782685B2 (en) Software code vectorization converter
CN117009248A (en) Machine learning model testing method and device, electronic equipment and storage medium
EP3605353B1 (en) Method and system for data transfer between databases
US8819645B2 (en) Application analysis device
CN107291436B (en) SDK packet generation method, device and terminal
JP6878707B2 (en) Test equipment, test methods and test programs
US20220318005A1 (en) Generation of software program repair explanations
JP2015146178A (en) Creation of test context
CN112860552A (en) Key word system operation method and device
CN110554867B (en) Application processing method and device
JP2017167899A (en) Simulation system, simulation method, and simulation program
US10515029B2 (en) Conversion tool for moving from block-based persistence to byte-based persistence
US20230350792A1 (en) System, method, and computer program for development driven test automation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right