KR101975272B1 - System and method for recommending component reuse based on collaboration dependency - Google Patents

System and method for recommending component reuse based on collaboration dependency Download PDF

Info

Publication number
KR101975272B1
KR101975272B1 KR1020170066685A KR20170066685A KR101975272B1 KR 101975272 B1 KR101975272 B1 KR 101975272B1 KR 1020170066685 A KR1020170066685 A KR 1020170066685A KR 20170066685 A KR20170066685 A KR 20170066685A KR 101975272 B1 KR101975272 B1 KR 101975272B1
Authority
KR
South Korea
Prior art keywords
component
collaboration
reuse
components
information
Prior art date
Application number
KR1020170066685A
Other languages
Korean (ko)
Other versions
KR20180130733A (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 KR1020170066685A priority Critical patent/KR101975272B1/en
Publication of KR20180130733A publication Critical patent/KR20180130733A/en
Application granted granted Critical
Publication of KR101975272B1 publication Critical patent/KR101975272B1/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/35Creation or generation of source code model driven
    • 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/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Abstract

본 발명의 컴포넌트 재사용 추천 시스템은 소프트웨어 아키텍처를 모델링하고, 아키텍처의 구성 컴포넌트들을 배치하는 소프트웨어 아키텍처 모델링 서브 시스템, 컴포넌트 및 컴포넌트의 메타 정보가 저장되어 있을 뿐만 아니라, 컴포넌트들의 협업 정보를 포함하는 컴포넌트 협업 프로파일 및 컴포넌트의 재사용 이력 정보가 저장되어 있는 컴포넌트 라이브러리 및 상기 소프트웨어 아키텍처 모델링 서브 시스템의 컴포넌트 리스트에서 선택된 컴포넌트 대하여, 상기 컴포넌트 라이브러리에 저장된 컴포넌트 협업 프로파일 및 재사용 이력 정보를 기반으로, 상기 선택된 컴포넌트와 협업할 가능성이 있는 컴포넌트의 협업 우선 순위를 산출하여 상기 소프트웨어 아키텍처 모델링 서브 시스템에 전달하는 컴포넌트 재사용 추천 서브 시스템을 포함하며, 상기 소프트웨어 아키텍처 모델링 서브 시스템은 전달받은 컴포넌트의 협업 우선 순위를 기반으로 컴포넌트 재사용 추천 기능을 제공한다. 본 발명에 의하면, 컴포넌트 기반 소프트웨어 개발 방법론에서 재사용 컴포넌트 검색에 대한 효율을 향상시킬 수 있다는 효과가 있다.The component reuse recommendation system of the present invention not only stores meta information of a software architecture modeling subsystem, components and components for modeling a software architecture, arranging components of the architecture, but also includes a component collaboration profile And a possibility to collaborate with the selected component based on the component collaboration profile stored in the component library and the reuse history information for the component selected from the component list of the software architecture modeling subsystem and the component library storing the reuse history information of the component, And a component reuse recommendation sub-system for calculating the collaboration priority of the component having the highest priority and delivering it to the software architecture modeling subsystem The software architecture modeling subsystem provides component reuse recommendation function based on the priorities of the collaboration received component. According to the present invention, there is an effect that efficiency in searching for a reused component can be improved in a component-based software development methodology.

Description

협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법 {System and method for recommending component reuse based on collaboration dependency}[0001] The present invention relates to a system and method for recommending a component reuse based on collaboration dependency,

본 발명은 재사용 가능한 컴포넌트를 이용하여 소프트웨어를 개발하는 과정에 관한 것으로서, 더욱 상세하게는 재사용 가능한 컴포넌트를 이용하여 소프트웨어를 개발하는 과정에서 재사용을 위해 특정 컴포넌트가 선택되었을 때, 해당 컴포넌트를 이용하여 소프트웨어를 구현하는 것을 지원하는 것에 추가하여, 선택한 컴포넌트와 협업이 가능한 컴포넌트를 추가적으로 추천함으로써, 보다 신속하고 편리하게 소프트웨어 개발을 진행할 수 있도록 하기 위한 방법 및 시스템에 관한 것이다. The present invention relates to a process for developing software using a reusable component, and more particularly, to a process for developing software using a reusable component. More particularly, when a specific component is selected for reuse in the process of developing software using reusable components, To a method and a system for making software development more quickly and conveniently by further recommending a component capable of collaborating with a selected component.

소프트웨어의 개발은 소프트웨어 공학의 관점에서 볼 때 요구사항 분석 단계, 요구사항 명세서 작성 / 설계 단계, 설계 문서 작성 / 구현 단계, 소스 코드 작성 / 테스트 단계, 테스트 계획 / 결과 문서 작성 단계 등으로 구성된다. Software development consists of requirements analysis stage, requirements specification / design stage, design document creation / implementation stage, source code development / test stage, test plan / result document creation stage from the viewpoint of software engineering.

소프트웨어 개발자들은 이러한 일련의 과정을 통해 단지 클라이언트의 요구사항을 구현하기 위한 실행 코드를 생성하는 것뿐만 아니라, 다양한 부대 업무를 수반하게 되며, 실행 코드의 테스트와 같은 것은 물론 클라이언트의 요구사항을 반영하기 위한 각종 문서화 작업(documentation)이 수반된다. Through this series of steps, software developers not only generate executable code to implement the client's requirements, but also carry out a variety of other tasks, such as testing executable code, Which is accompanied by various documentation.

문서화 작업은 개발 초기의 요구사항 명세서 작성, 설계 문서의 작성이나 개발 완료 단계의 결과 문서의 작성 등 거의 모든 과정에서 기록화되는 작업이다. 이처럼 문서화 작업이 전반적으로 수반되는 이유는 클라이언트의 요구사항을 반영하기 위한 알고리즘의 생성이나 그 결과 문서가 이후에 그 소프트웨어를 재사용할 수 있도록 도움을 주기 때문이다. 물론, 소스 코딩을 위해서는 알고리즘의 생성 등을 위한 요구사항 명세서 작성이 필연적으로 수반될 수밖에 없음은 자명하다. Documentation is a process that is recorded in almost every process, such as the creation of a requirements specification at the beginning of development, the creation of a design document, or the creation of a result document at the completion of development. The reason for this overall documentation is that it allows the creation of algorithms to reflect the client's requirements and the subsequent reuse of the document as a result. Of course, it is clear that for source coding, it is inevitable that the specification of the requirements for generating the algorithm and the like will necessarily accompany.

시스템상으로 볼 때 소프트웨어가 하드웨어에 비하여 비중이 높아지는 경향이 있으므로, 소프트웨어의 규모나 양이 매우 방대해지고 있다. 이에, 소프트웨어 개발자들은 소프트웨어를 그 기능별로 구분하여 소프트웨어 컴포넌트별로 구현하여 병합(merge)하게 된다. 기능별로 구분된 소프트웨어 컴포넌트는 재사용의 관점에서 볼 때, 더욱 그 이용 가치가 높을 수밖에 없다.Since the software tends to have a larger weight in terms of the system than the hardware, the size and the amount of the software are becoming very large. Software developers divide their software into functions and merge them by software components. In terms of reuse, software components that are classified by function are more valuable.

컴포넌트 기반 개발의 주요 장점은 개발시간 단축, 비용 절감 및 노력 감소 등이 있다. 실제로 이러한 장점을 활용하기 위해서는 조직적 차원에서 사용 가능한 컴포넌트들이 관리되고 있어야 한다. 하지만 개발 상황에 따라 사용 가능한 컴포넌트의 목록이 상이하기 때문에 조직에서는 방대한 양의 컴포넌트들을 획득하고 관리할 수밖에 없어진다. 결국 이와 같이 많은 컴포넌트들 중에 현재 구현하고자 하는 기능에 적합한 컴포넌트를 검색하고 조립하는 일은 적절한 컴포넌트 검색에 있어서 과도한 시간을 소요하게 되는 부작용으로 작용하여 개발시간 단축 등의 장점을 충분히 누릴 수 없게 되는 문제가 발생한다.The main advantages of component-based development include reduced development time, cost savings and reduced effort. In order to take advantage of these advantages, the components available at the organizational level must be managed. However, because the list of available components differs depending on the development situation, organizations are forced to acquire and manage vast amounts of components. As a result, searching for and assembling a component suitable for the function to be implemented currently among the many components is a side effect which takes an excessive amount of time for searching for an appropriate component, Occurs.

이와 같은 문제를 해결하기 위해 다양한 연구나 발명이 수행되었지만, 대부분이 검색 방법에 대한 효율성을 높이거나 미들웨어 및 표준 인터페이스를 정의하는 방식이며, 이들 두 가지 요소가 모두 충족 되어야만 재사용이 적용 가능하도록 하는 접근방법들로 구성된다는 한계가 있다.In order to solve such problems, various researches and inventions have been carried out. However, most of them are methods for improving the efficiency of search methods or defining middleware and standard interfaces. In order to apply reuse only when both of these factors are satisfied, There is a limitation that it consists of methods.

대한민국 등록특허 10-1311515Korean Patent No. 10-1311515

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 컴포넌트 기반 소프트웨어 개발에서 사전에 정의된 컴포넌트 협업 프로파일과 프로젝트 별로 함께 이용되는 컴포넌트 목록에 대한 가중치를 관리하고 활용함으로써, 적합한 컴포넌트 선택을 위한 검색 시간을 줄이고 효율적인 컴포넌트 선택을 지원하도록 하는 컴포넌트 재사용 추천 시스템 및 방법을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been conceived to solve the problems as described above, and it is an object of the present invention to provide a method and apparatus for managing a component collaboration profile defined in a component-based software development, The present invention provides a component reuse recommendation system and method for reducing time and supporting efficient component selection.

본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

이와 같은 목적을 달성하기 위한 본 발명의 컴포넌트 재사용 추천 시스템은 소프트웨어 아키텍처를 모델링하고, 아키텍처의 구성 컴포넌트들을 배치하는 소프트웨어 아키텍처 모델링 서브 시스템, 컴포넌트 및 컴포넌트의 메타 정보가 저장되어 있을 뿐만 아니라, 컴포넌트들의 협업 정보를 포함하는 컴포넌트 협업 프로파일 및 컴포넌트의 재사용 이력 정보가 저장되어 있는 컴포넌트 라이브러리 및 상기 소프트웨어 아키텍처 모델링 서브 시스템의 컴포넌트 리스트에서 선택된 컴포넌트 대하여, 상기 컴포넌트 라이브러리에 저장된 컴포넌트 협업 프로파일 및 재사용 이력 정보를 기반으로, 상기 선택된 컴포넌트와 협업할 가능성이 있는 컴포넌트의 협업 우선 순위를 산출하여 상기 소프트웨어 아키텍처 모델링 서브 시스템에 전달하는 컴포넌트 재사용 추천 서브 시스템을 포함하며, 상기 소프트웨어 아키텍처 모델링 서브 시스템은 전달받은 컴포넌트의 협업 우선 순위를 기반으로 컴포넌트 재사용 추천 기능을 제공한다. To achieve the above object, the present invention provides a component reuse recommendation system for modeling a software architecture, storing meta information of a software architecture modeling subsystem, components and components for arranging components of an architecture, Based on the component collaboration profile stored in the component library and the reuse history information stored in the component library for the component library in which the reuse history information of the component collaboration profile including the information and the reuse history information of the component are stored, And a component component for calculating a collaboration priority of a component likely to collaborate with the selected component and delivering the priority to the software architecture modeling subsystem Including a recommendation for the sub-system, and the software architecture modeling subsystem provides component reuse recommendation function based on the priorities of the collaboration received component.

상기 컴포넌트 협업 프로파일에는 사용이 기대되는 도메인, 해당 프로파일을 정의한 저자 및 협업이 기대되는 컴포넌트의 리스트가 정의되어 있다. The component collaboration profile defines a domain to be used, an author that defines the profile, and a list of components for which collaboration is expected.

상기 재사용 이력 정보는 어느 프로젝트를 통해 이력이 작성되었는지를 참조할 수 있도록 프로젝트 이름, 해당 프로젝트의 도메인을 나타내기 위한 도메인 정보, 이력이 작성된 날짜 및 협업 그래프를 포함할 수 있다. The reuse history information may include a project name, domain information for indicating a domain of the project, a date when the history was created, and a collaboration graph so that the history of the project can be referred to.

상기 협업 그래프는 컴포넌트의 id를 기반으로 프로젝트를 구성하고 있는 모든 컴포넌트들의 협업 관계를 그래프로 나타낸 것일 수 있다. The collaboration graph may be a graphical representation of the collaboration relationships of all the components that make up the project based on the id of the component.

상기 컴포넌트 재사용 추천 서브 시스템은 상기 재사용 이력 정보를 이용하여 컴포넌트가 어떤 컴포넌트와 협업하였는지를 판별하고, 상기 협업 그래프에 도시된 컴포넌트의 협업 거리를 이용하여 가중치를 산출하고, 산출된 가중치를 반영하여 컴포넌트의 협업 우선 순위를 업데이트할 수 있다. The component reuse recommendation subsystem determines whether a component collaborates with a component using the reuse history information, calculates a weight using a collaboration distance of the component shown in the collaboration graph, and reflects the calculated weight, You can update the collaboration priority.

상기 컴포넌트 재사용 추천 서브 시스템은 상기 협업 그래프를 이용하여 컴포넌트의 협업 거리를 계산하되, 선택된 컴포넌트와 다른 컴포넌트 간의 거리를 계산하며, 선택된 컴포넌트와 직접 연결되어 있는지 아니면 다른 컴포넌트를 통하여 연결되어 있는지를 확인하고, 다른 컴포넌트를 통하여 연결되어 있으면, 두 컴포넌트 사이에 존재하는 컴포넌트의 수를 계산하는 방식으로 컴포넌트의 협업 거리를 계산할 수 있다. The component reuse recommendation subsystem calculates a collaboration distance of a component using the collaboration graph, calculates a distance between the selected component and another component, checks whether the selected component is directly connected to the selected component or is connected through another component , And if it is connected through other components, the collaboration distance of the component can be calculated by calculating the number of components existing between the two components.

본 발명의 컴포넌트 재사용 추천 시스템에서의 컴포넌트 재사용 추천 방법에서, 상기 컴포넌트 재사용 추천 시스템은 소프트웨어 아키텍처를 모델링하고, 아키텍처의 구성 컴포넌트들을 배치하는 단계, 컴포넌트 리스트에서 컴포넌트가 선택되면, 아키텍처를 구성하고 있는 노드에 선택된 컴포넌트를 바인딩하는 단계, 컴포넌트 협업 프로파일 및 재사용 이력 정보를 기반으로, 상기 선택된 컴포넌트와 협업할 가능성이 있는 컴포넌트의 협업 우선 순위를 산출하는 단계 및 상기 컴포넌트이 협업 우선 순위를 기반으로 컴포넌트 재사용 추천 기능을 제공하는 단계를 포함한다. In the component reuse recommendation method in the component reuse recommendation system of the present invention, the component reuse recommendation system models the software architecture and arranges the components of the architecture, and when a component is selected in the component list, Based on the component collaboration profile and the reuse history information, calculating a collaboration priority of a component likely to collaborate with the selected component based on the component collaboration profile and the reuse history information, .

상기 재사용 이력 정보는 어느 프로젝트를 통해 이력이 작성되었는지를 참조할 수 있도록 프로젝트 이름, 해당 프로젝트의 도메인을 나타내기 위한 도메인 정보, 이력이 작성된 날짜 및 협업 그래프를 포함할 수 있다. The reuse history information may include a project name, domain information for indicating a domain of the project, a date when the history was created, and a collaboration graph so that the history of the project can be referred to.

상기 협업 그래프는 컴포넌트의 id를 기반으로 프로젝트를 구성하고 있는 모든 컴포넌트들의 협업 관계를 그래프로 나타낸 것일 수 있다. The collaboration graph may be a graphical representation of the collaboration relationships of all the components that make up the project based on the id of the component.

상기 컴포넌트 재사용 추천 시스템은 상기 재사용 이력 정보를 이용하여 컴포넌트가 어떤 컴포넌트와 협업하였는지를 판별하고, 상기 협업 그래프에 도시된 컴포넌트의 협업 거리를 이용하여 가중치를 산출하고, 산출된 가중치를 반영하여 컴포넌트의 협업 우선 순위를 업데이트할 수 있다. The component reuse recommendation system identifies which component has collaborated with a component using the reuse history information, calculates a weight using the collaboration distance of the component shown in the collaboration graph, You can update the priority.

상기 컴포넌트 재사용 추천 시스템은 상기 협업 그래프를 이용하여 컴포넌트의 협업 거리를 계산하되, 선택된 컴포넌트와 다른 컴포넌트 간의 거리를 계산하며, 선택된 컴포넌트와 직접 연결되어 있는지 아니면 다른 컴포넌트를 통하여 연결되어 있는지를 확인하고, 다른 컴포넌트를 통하여 연결되어 있으면, 두 컴포넌트 사이에 존재하는 컴포넌트의 수를 계산하는 방식으로 컴포넌트의 협업 거리를 계산할 수 있다. The component reuse recommendation system calculates a collaboration distance of a component using the collaboration graph, calculates a distance between the selected component and another component, confirms whether the selected component is directly connected to the selected component or is connected through another component, When connected through other components, the collaboration distance of the component can be calculated by calculating the number of components existing between the two components.

본 발명에 의하면, 컴포넌트 기반 소프트웨어 개발에서 이미 선택된 컴포넌트의 정보를 통해 미리 작성된 협업 프로파일 및 재사용 이력을 기반으로, 재사용이 기대되는 추가적인 컴포넌트 목록을 산출하고, 이에 대한 우선순위를 부여함으로써, 컴포넌트 기반 소프트웨어 개발 방법론에서 재사용 컴포넌트 검색에 대한 효율을 향상시키고 편의성을 증대시킬 수 있다는 효과가 있다. According to the present invention, a list of additional components expected to be reused is calculated based on a collaboration profile and a reuse history created in advance through information on components already selected in the component-based software development, In the development methodology, there is an effect that the efficiency of searching for reusable components can be improved and convenience can be increased.

도 1은 본 발명의 일 실시예에 따른 협업 의존성 기반 컴포넌트 재사용 추천 시스템의 정적 구조를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 전체 제어 기능을 나타낸 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 컴포넌트 라이브러리의 메타모델을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 아키텍처 모델링 서브 시스템의 상세 구조를 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 컴포넌트 재사용 추천 서브 시스템의 상세 구조를 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 가중치 기반의 컴포넌트 재사용 추천 순위 산출 방법을 보여주는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어 툴을 실행한 모습을 예시한 화면예이다.
도 8은 본 발명의 일 실시예에 따른 컴포넌트 협업 이력 그래프를 예시한 도면이다.
도 9 내지 도 11은 본 발명의 일 실시예에 따른 컴포넌트 협업 프로파일을 예시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 통합된 협업 프로파일 리스트를 예시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 협업 후보 컴포넌트의 가중치 값을 나타낸 도면이다.
도 14는 본 발명의 일 실시예에 따른 협업 후보 컴포넌트의 가중치를 업데이트하는 것을 예시한 도면이다.
도 15는 본 발명의 일 실시예에 따른 협업 거리를 예시한 도면이다.
1 is a diagram illustrating a static structure of a collaboration dependency-based component reuse recommendation system according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating an overall control function according to an embodiment of the present invention.
3 is a diagram illustrating a metamodel of a component library according to an embodiment of the present invention.
4 is a block diagram illustrating a detailed structure of a software architecture modeling subsystem according to an embodiment of the present invention.
5 is a block diagram illustrating a detailed structure of a component reuse recommendation subsystem according to an embodiment of the present invention.
6 is a flowchart illustrating a weighted component reuse recommendation ranking calculation method according to an embodiment of the present invention.
FIG. 7 is a view illustrating an example of execution of a software tool according to an embodiment of the present invention.
FIG. 8 is a diagram illustrating a component collaboration history graph according to an exemplary embodiment of the present invention.
9-11 illustrate component collaboration profiles according to an embodiment of the present invention.
Figure 12 is an illustration of an integrated collaboration profile list according to an embodiment of the present invention.
13 is a diagram illustrating weight values of a collaboration candidate component according to an exemplary embodiment of the present invention.
FIG. 14 is a diagram illustrating updating of weights of a collaboration candidate component according to an exemplary embodiment of the present invention.
15 is a diagram illustrating a collaboration distance according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 갖는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted in an ideal or overly formal sense unless expressly defined in the present application Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.

본 발명은 컴포넌트 기반 개발을 지원하는 컴포넌트 저장소에서 컴포넌트 및 이에 대한 메타정보 뿐만 아니라, 협업이 용이한 컴포넌트들 간의 그룹에 대한 정보 및 실제 개발 활동 중에서 사용되는 컴포넌트들의 집합에서 같이 사용되는지 여부 및 협업 거리 등을 기반으로 하는 정보를 바탕으로, 현재 선택된 컴포넌트와 협업이 기대되는 컴포넌트를 사용자에게 함께 추천해줌으로써, 효과적인 컴포넌트 선택 및 재사용을 수행할 수 있도록 한다.The present invention can be applied not only to components and meta information in a component repository supporting component-based development, but also to information about a group between components that are easy to collaborate, whether or not they are used together in a set of components used in actual development activities, Based on the information on the basis of the currently selected components and collaborative components are expected to recommend to the user together, effective component selection and reuse can be done.

도 1은 본 발명의 일 실시예에 따른 협업 의존성 기반 컴포넌트 재사용 추천 시스템의 정적 구조를 나타내는 도면이다. 1 is a diagram illustrating a static structure of a collaboration dependency-based component reuse recommendation system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 협업 의존성 기반 컴포넌트 재사용 추천 시스템은 소프트웨어 아키텍처 모델링 서브 시스템(Software architecture modeling sub-system)(100), 컴포넌트 재사용 추천 서브 시스템(Component reuse recommendation sub-system)(200), 컴포넌트 라이브러리(Component library)(300)를 포함한다.Referring to FIG. 1, a collaboration dependency-based component reuse recommendation system according to an embodiment of the present invention includes a software architecture modeling sub-system 100, a component reuse recommendation sub- system 200, and a component library 300.

소프트웨어 아키텍처 모델링 서브 시스템(100)은 소프트웨어 아키텍처를 모델링하고, 해당 아키텍처의 구성 컴포넌트들을 배치한다. 해당 기능을 제공하기 위해 컴포넌트 라이브러리(300)에 존재하는 컴포넌트 목록과 컴포넌트 재사용 추천 서브 시스템(200)에서 제공하는 우선순위를 참조한다.The software architecture modeling subsystem 100 models the software architecture and deploys the components of the architecture. In order to provide the corresponding function, the component list existing in the component library 300 and the priority provided by the component reuse recommending subsystem 200 are referred to.

컴포넌트 재사용 추천 서브 시스템(200)은 소프트웨어 아키텍처 모델링 서브 시스템(100)에서 선택한 컴포넌트를 모니터링 한 후, 컴포넌트 라이브러리(300)에서 관리되고 있는 컴포넌트 협업 프로파일 및 재사용 이력 정보를 기반으로 협업 추천 컴포넌트의 우선순위를 산출하여, 소프트웨어 아키텍처 모델링 서브 시스템(100)에 전달한다.The component reuse recommendation subsystem 200 monitors a component selected in the software architecture modeling subsystem 100 and determines a priority of a collaboration recommendation component based on the component collaboration profile and reuse history information managed in the component library 300 And delivers it to the software architecture modeling subsystem 100.

컴포넌트 라이브러리(300)는 해당 구성 요소는 실질적으로 컴포넌트들을 관리한다. 또한, 컴포넌트 라이브러리(300)는 컴포넌트와 이에 대한 메타 정보 외에도 별도로 컴포넌트 협업 프로파일 및 컴포넌트 재사용 이력 정보를 관리하고 있으며, 소프트웨어 아키텍처 모델링 서브 시스템(100)과 컴포넌트 재사용 추천 서브 시스템(200)의 요청에 의해 관리하고 있는 정보를 전달한다.The component library 300 actually manages the components. The component library 300 separately manages the component collaboration profile and the component reuse history information in addition to the components and the meta information therefrom. The component library 300 manages the component collaboration profile and the component reuse history information at the request of the software architecture modeling subsystem 100 and the component reuse recommending subsystem 200 Communicate the information you are managing.

도 2는 본 발명의 일 실시예에 따른 전체 제어 기능을 나타낸 흐름도이다. FIG. 2 is a flowchart illustrating an overall control function according to an embodiment of the present invention.

도 2를 참조하면, 사용자가 소프트웨어 아키텍처 모델링을 수행한 후(S210), 컴포넌트 리스트에서 컴포넌트를 검색하고(S220), 특정 컴포넌트를 선택하여 아키텍처를 구성하고 있는 노드에 바인딩(binding)을 수행한다(S230). Referring to FIG. 2, after a user performs software architecture modeling (S210), a component is searched in a component list (S220), and a specific component is selected to perform binding to a node constituting the architecture S230).

그리고, 노드가 특정 컴포넌트와 바인딩 되면, 컴포넌트 재사용 추천 시스템은 즉시 해당 컴포넌트와 협업할 가능성이 높은 다른 컴포넌트들을 자동으로 찾는다. 이를 통해 협업 우선순위가 결정되면(S240), 컴포넌트 목록에서 해당 우선순위를 반영하여 재정렬을 하고 강조하는 업데이트(update)를 수행한다(S250).And, when a node is bound to a specific component, the component reuse recommendation system automatically finds other components that are likely to collaborate with the component. If the collaborative priority is determined (S240), the component list is updated to emphasize and emphasize the corresponding priority in operation S250.

그리고, 사용자는 해당 목록을 참조하여 현재 바인딩된 노드와 인접한 노드에 바인딩할 컴포넌트를 선택하게 된다. 이와 같은 과정은 아키텍처 상에서 바인딩되지 않은 노드가 존재하지 않을 때까지 반복한다(S260).Then, the user selects a component to be bound to the node adjacent to the currently bound node by referring to the corresponding list. This process is repeated until there is no unbound node in the architecture (S260).

그리고, 이미 소프트웨어 아키텍처 상에서 바인딩된 컴포넌트가 선택되면, 해당 컴포넌트와 협업이 기대되는 컴포넌트 리스트를 산출하여 표시한다.If a component bound to the software architecture is selected, a list of components expected to collaborate with the component is calculated and displayed.

도 3은 본 발명의 일 실시예에 따른 컴포넌트 라이브러리의 메타모델을 나타내는 도면이다. 3 is a diagram illustrating a metamodel of a component library according to an embodiment of the present invention.

도 3을 참조하면, 본 발명에서 컴포넌트 라이브러리(300)는 크게 네 가지 분류로 자료를 관리하는데, 실제 프로젝트에서 사용가능한 프로젝트들을 나타낸다. 해당 컴포넌트들은 코드 또는 바이너리 파일로 관리되며, 해당 분류만으로는 재사용을 위한 정보 제공이 불가능하므로, 다른 정보들을 참조하여 해당 컴포넌트에 접근할 수 있다. Referring to FIG. 3, in the present invention, the component library 300 manages data in four categories, and shows projects that can be used in a real project. These components are managed as code or binary files, and because the classification alone can not provide information for reuse, they can access other components by referring to other information.

다음, 컴포넌트 메타 정보는 해당 컴포넌트의 이름(String name), id(String ID), 위치(URI) 및 간단한 설명(String Description) 등이 포함되어 있으며, 컴포넌트 재사용을 위한 정보들이 관리되고 있다. Next, the component meta information includes the name of the corresponding component (String name), id (String ID), location (URI), and short description (String Description), and information for component reuse is managed.

다음, 컴포넌트의 협업 프로파일(Collaboration profile)이 정의된다. Next, the Collaboration profile of the component is defined.

도 3에서 보는 바와 같이, 협업 프로파일은 사용이 기대되는 도메인(domain), 해당 프로파일을 정의한 저자(author) 및 협업이 기대되는 컴포넌트의 목록(list)이 정의된다. As shown in FIG. 3, a collaboration profile defines a domain in which a use is expected, an author who defines the profile, and a list of components for which collaboration is expected.

마지막 구성 요소는 컴포넌트 재사용 이력(Component reuse history)이다.The last component is the component reuse history.

본 발명에서 컴포넌트 재사용 이력은 단순하게 컴포넌트가 재사용된 정보를 기록하기 위한 것이 아니며, 컴포넌트가 사용될 때 어떠한 컴포넌트와 협업하였는지를 판별하고, 컴포넌트의 협업 거리를 이용한 가중치 산출을 위해 사용되며, 하나의 프로젝트가 완료되면 해당 프로젝트에 대해 하나의 이력 정보가 생성된다. In the present invention, the component reuse history is not simply for recording the reused information of the component, but it is used for determining which component has been collaborated with the component when the component is used, calculating the weight using the collaboration distance of the component, Once completed, one history information is generated for the project.

따라서, 해당 이력 정보는 어느 프로젝트를 통해 이력이 작성되었는지를 참조할 수 있도록 프로젝트 이름(prjName), 해당 프로젝트의 도메인을 나타내기 위한 도메인 정보(domain), 이력이 작성된 날짜(createdDate) 및 협업 그래프(collaboGraph)를 포함하고 있다. 여기서, 가장 핵심적인 역할을 수행하는 협업 그래프는 컴포넌트의 id를 기반으로 하여, 해당 프로젝트를 구성하고 있는 모든 컴포넌트들의 협업 관계를 그래프 형태로 나타낸 것이다. 즉, 협업 그래프는 특정 컴포넌트와 직결되었는지 여부를 식별하기 위해 사용되고, 간접적으로 컴포넌트와 연결되어 있다면 두 컴포넌트 사이에 존재하는 다른 컴포넌트의 개수를 식별하고, 그 거리를 계산에 활용할 수 있도록 사용된다. Accordingly, the history information includes a project name (prjName), a domain information (domain) for indicating a domain of the project, a createdDate, and a collaboration graph collaboGraph). Here, the collaborative graph that plays the most important role is a graphical representation of the collaboration relationships of all the components constituting the project based on the id of the component. In other words, a collaboration graph is used to identify whether a specific component is directly connected to the component. If the component is indirectly connected to the component, it is used to identify the number of other components existing between the two components and utilize the distance in calculation.

도 4는 본 발명의 일 실시예에 따른 소프트웨어 아키텍처 모델링 서브 시스템의 상세 구조를 나타내는 블록도이다. 4 is a block diagram illustrating a detailed structure of a software architecture modeling subsystem according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 소프트웨어 아키텍처 모델링 서브 시스템(100)은 아키텍처 모델러(Architecture modeler)(110), 컴포넌트 리스트 뷰어(Component list viewer)(120), 컴포넌트 바인더(Component Binder)(130), 컴포넌트 셀렉션 리스너(Component selection listener)(140), 추천 요청기(Recommendation requester)(150)를 포함하여 이루어진다. 4, the software architecture modeling subsystem 100 of the present invention includes an architecture modeler 110, a component list viewer 120, a component binder 130, A component selection listener 140, and a recommendation requester 150, as shown in FIG.

아키텍처 모델러(110)는 사용자로 하여금 소프트웨어의 아키텍처를 설계할 수 있도록 하는 기능을 수행한다. The architecture modeler 110 performs functions that allow the user to design the architecture of the software.

컴포넌트 리스트 뷰어(120)는 아키텍처가 완성되면, 아키텍처를 구성하고 있는 특정 컴포넌트를 선택하여 바인딩하는 역할을 한다. 이때, 컴포넌트 리스트 뷰어(120)는 컴포넌트 라이브러리(Component library)(300)에서 관리되고 있는 컴포넌트들의 리스트를 보여준다. When the architecture is completed, the component list viewer 120 selects and binds the specific components constituting the architecture. At this time, the component list viewer 120 displays a list of components managed in the component library 300.

컴포넌트 바인더(130)는 아키텍처를 구성하고 있는 컴포넌트와 실제 라이브러리에서 관리되고 있는 컴포넌트 간의 바인딩 관계를 관리한다. The component binder 130 manages a binding relationship between a component constituting the architecture and a component managed by the actual library.

컴포넌트 바인더(130)는 바인딩이 수행되면 컴포넌트 셀렉션 리스너(140)에게 바인딩된 컴포넌트의 정보를 넘겨주게 된다. When the binding is performed, the component binder 130 delivers the information of the bound component to the component selection listener 140.

컴포넌트 셀렉션 리스너(140)는 컴포넌트 바인더(130)에 의해 전달된 컴포넌트 정보 또는 컴포넌트 바인더(130)에서 이미 바인딩이 완료된 컴포넌트에 한하여, 현 시점에서 선택되는 컴포넌트에 대한 정보를 즉시 추천 요청기(150)에 전달한다. The component selection listener 140 sends the information about the component selected at the current time to the recommendation requesting unit 150 only for the component information delivered by the component binder 130 or for the component for which the binding is already completed in the component binder 130. [ .

추천 요청기(150)는 전달받은 컴포넌트 정보를 기반으로 컴포넌트 재사용 추천 서브시스템(200)에 재사용 우선순위 정보를 요청한다. The recommendation requester 150 requests reuse priority information from the component reuse recommendation subsystem 200 based on the received component information.

컴포넌트 재사용 추천 서브시스템(200)은 산출된 우선순위 정보를 다시 컴포넌트 리스트 뷰어에 전달하고, 해당 자료를 기반으로 컴포넌트 노출 순위 및 강조(High light) 효과 등을 통해 사용자에게 추천 내용을 알린다.The component reuse recommending subsystem 200 transmits the calculated priority information to the component list viewer again, and notifies the user of recommendation contents through a component exposure ranking and a highlight effect based on the corresponding data.

도 5는 본 발명의 일 실시예에 따른 컴포넌트 재사용 추천 서브 시스템의 상세 구조를 나타내는 블록도이다. 5 is a block diagram illustrating a detailed structure of a component reuse recommendation subsystem according to an embodiment of the present invention.

도 5를 참조하면, 컴포넌트 재사용 추천 서브 시스템(200)은 컴포넌트 협업 프로파일 콜렉터(Component collaboration information collector)(210), 컴포넌트 라이브러리 인터페이스 매니저(component library interface manager)(220), 가중치 기반 우선순위 산출기(Weight-based priority calculator)(230), 재사용 이력 그래프 분석기(Reuse history graph analyzer)(240)를 포함한다. Referring to FIG. 5, the component reuse recommendation subsystem 200 includes a component collaboration information collector 210, a component library interface manager 220, a weight based priority estimator A weight-based priority calculator 230, and a reuse history graph analyzer 240.

컴포넌트 협업 프로파일 콜렉터(210)는 특정 컴포넌트에 대한 정보를 전달받으면, 우선적으로 컴포넌트 라이브러리 인터페이스 매니저(220)를 통해 라이브러리에서 관리중인 사용자 정의 협업 프로파일을 추출한다. 해당 프로파일은 관리중인 모든 프로파일을 전달 받는 것이 아니며, 소프트웨어 아키텍처 모델링 서브 시스템(100)에서 선택되고, 해당 서브 시스템으로 전달된 컴포넌트가 포함되어 있는 프로파일만을 전달 받는다. The component collaboration profile collector 210 extracts a user-defined collaborative profile managed by the library through the component library interface manager 220 when the component collaboration profile collector 210 receives the information about the specific component. The profile does not receive all the profiles under management, but is selected in the software architecture modeling subsystem 100, and receives only the profile including the components delivered to the subsystem.

컴포넌트 협업 프로파일 콜렉터(210)는 전달 받은 정보를 기반으로 대상 컴포넌트와 협업이 기대되는 컴포넌트의 리스트를 작성하여 가중치 기반 우선순위 산출기(230)에 전달한다. The component collaboration profile collector 210 generates a list of components expected to collaborate with the target component based on the received information, and transmits the list to the weight-based priority calculator 230.

가중치 기반 우선순위 산출기(230)는 재사용 이력 그래프 분석기(240)의 재사용 이력 그래프로부터 추출 가능한 가중치 값을 얻어, 전달된 컴포넌트 리스트를 보완한다. The weight-based priority calculator 230 obtains weight values that can be extracted from the reuse history graph of the reuse history graph analyzer 240, and complements the delivered component list.

재사용 이력 그래프 분석기(240)는 이 과정에서 컴포넌트 라이브러리에서 관리되는 재사용 이력 그래프 정보를 컴포넌트 라이브러리 인터페이스 매니저(220)를 통해 획득하고, 대상 컴포넌트와 같이 사용된 컴포넌트들의 거리를 기반으로 가중치를 분석한다. 이때, 컴포넌트의 거리는 같이 사용된 컴포넌트가 대상 컴포넌트와 직결되어 있는지 또는 다른 컴포넌트를 통하여 연결되어 있는지, 만약 다른 컴포넌트를 통하여 연결되어 있다면 두 컴포넌트 사이에 존재하는 컴포넌트의 개수는 몇 개 인지를 기준으로 결정하게 된다. 재사용 이력 그래프 분석기(240)는 그래프 분석을 통해 전달받은 정보에 컴포넌트 협업 프로파일에 기재되어 있지 않은 컴포넌트가 있으면, 이를 협업 컴포넌트 목록에 추가한 후 가중치 산출을 수행한다.The reuse history graph analyzer 240 acquires the reuse history graph information managed in the component library through the component library interface manager 220 and analyzes the weight based on the distance of the components used together with the target component. In this case, the distance of the component is determined based on whether the used component is directly connected to the target component or whether it is connected through another component, and if there is a connection through another component, how many components exist between the two components . The reuse history graph analyzer 240 adds the components that are not described in the component collaboration profile to the information received through the graph analysis, and adds the components to the list of collaboration components, and performs weight calculation.

도 6은 본 발명의 일 실시예에 따른 가중치 기반의 컴포넌트 재사용 추천 순위 산출 방법을 보여주는 흐름도이다. 6 is a flowchart illustrating a weighted component reuse recommendation ranking calculation method according to an embodiment of the present invention.

도 6을 참조하면, 컴포넌트 재사용 추천 서브 시스템(200)은 선택된 컴포넌트를 포함하는 협업 프로파일로부터 협업 컴포넌트를 획득한다(S610). Referring to FIG. 6, the component reuse recommendation subsystem 200 obtains a collaboration component from a collaboration profile including a selected component (S610).

그리고, 선택된 컴포넌트를 포함하는 모든 그래프를 획득한다(S620). Then, all the graphs including the selected component are acquired (S620).

그리고, 선택된 컴포넌트를 기반으로 각 컴포넌트 간의 거리를 계산한다(S630). The distance between the components is calculated based on the selected component (S630).

그리고, 각 컴포넌트의 가중치를 업데이트한다(S640). 이때, 협업 프로파일에 존재하는 컴포넌트가 아니면, 리스트에 해당 컴포넌트를 추가한다(S670). Then, the weight of each component is updated (S640). At this time, if the component does not exist in the collaboration profile, the corresponding component is added to the list (S670).

그리고, 더 이상 그래프가 존재하지 않을 때까지, 상기 과정(S640, S650, S670)을 반복하며 가중치 협업 컴포넌트 리스트를 업데이트한다(S660). Then, the process repeats the steps S640, S650, and S670 until the graph is no longer present, and updates the weighted collaboration component list (S660).

도 7은 본 발명의 일 실시예에 따른 소프트웨어 툴을 실행한 모습을 예시한 화면예이다. FIG. 7 is a view illustrating an example of execution of a software tool according to an embodiment of the present invention.

도 7에서 보는 바와 같이, 본 발명에서 수행하고자 하는 협업 정보를 활용한 컴포넌트 재사용 방법은 아키텍처(architecture) 설계 도구와 연동하여 사용된다. As shown in FIG. 7, a component reuse method using collaboration information to be performed in the present invention is used in conjunction with an architecture design tool.

도 7의 화면예에서 가운데에 아키텍처를 설계할 수 있는 화면이 예시되어 있다. 여기서 아키텍처는 소프트웨어가 어떠한 구성을 갖고 어떠한 컴포넌트들을 통해 구성 될 것인지를 나타낸다.In the screen example of FIG. 7, a screen for designing an architecture in the center is illustrated. The architecture here indicates what configuration the software will have and which components it will be configured with.

화면상에서의 노드(node)는 컴포넌트(component)를 의미하며, 색이 칠해지지 않은 노드는 어떠한 기능을 갖는 컴포넌트가 필요한지 아키텍처 설계 수준에서 식별되었을 뿐, 실질적인 컴포넌트와의 바인딩(binding)이 진행되지 않은 상태를 나타낸다. 그리고, 파란색으로 표시된 노드(710)는 실질적인 컴포넌트 바인딩이 수행된 것이다.A node on the screen means a component. A node that is not painted has only a functionally identified component at the level of the architectural design, and the binding with the actual component is not performed State. And, the node 710 indicated in blue is a substantial component binding performed.

도 7에서 화면 좌측의 컴포넌트 리스트(Component List)로 표시된 부분은 컴포넌트(Component) 저장소에서 관리되고 있는 컴포넌트 리스트가 표시되어 있다. 이 리스트는 선택된 컴포넌트(710)에 대하여 해당 컴포넌트와의 협업 정보 분석을 통해 가장 높은 가중치를 갖는 컴포넌트를 기준으로 재 정렬이 수행된다.In FIG. 7, a component list displayed on the left side of the screen shows a list of components managed in a component storage. This list is rearranged on the basis of the component having the highest weight through the analysis of the collaboration information with the selected component 710 with respect to the selected component 710.

컴포넌트 리스트에서 녹색으로 음영 표시된 컴포넌트들(D, F)은 높은 확률로 협업이 기대되는 컴포넌트를 나타낸다. 예를 들어, 이는 전체 협업이 기대되는 컴포넌트들 중에서 가중치 기준 상위 10%에 해당하는 컴포넌트들을 나타낼 수 있다. The components shaded in green (D, F) in the component list represent the components for which collaboration is expected with high probability. For example, this may represent the top 10 percent of the components for which total collaboration is expected.

현재 선택된 컴포넌트가 없는 경우, 컴포넌트 리스트는 컴포넌트의 id 값을 기준으로 정렬될 수 있다. If there is no currently selected component, the component list can be sorted based on the id value of the component.

도 8은 본 발명의 일 실시예에 따른 컴포넌트 협업 이력 그래프를 예시한 도면이다. 도 8은 도 7의 화면예를 기준으로 하였을 때, 컴포넌트 협업 이력 그래프를 예시한 것이다. FIG. 8 is a diagram illustrating a component collaboration history graph according to an exemplary embodiment of the present invention. FIG. 8 illustrates a component collaboration history graph based on the screen example of FIG.

도 8에서 보는 바와 같이, 협업 이력 그래프는 실제로 구성된 아키텍처와 동일한 모습을 보인다. 다만, 각 노드에는 어떤 컴포넌트가 사용되었는지를 나타내기 위해, 컴포넌트의 id값을 저장한다. 도 8에서 각 노드에 나타나는 숫자는 아키텍처 구성에서 사용된 컴포넌트의 id 값을 나타낸다. 그리고, 협업 이력 그래프는 하나의 소프트웨어에 하나씩 생성될 수 있다. As shown in FIG. 8, the collaboration history graph has the same appearance as the actually configured architecture. However, each node stores the id value of the component to indicate which component is used. In FIG. 8, the numbers appearing at each node represent the id values of the components used in the architecture configuration. And, the collaboration history graph can be generated one by one in one software.

도 7 및 도 8을 통해 현재 선택된 컴포넌트가 7번이라고 가정할 경우, 7번 컴포넌트가 포함되어있는 협업 프로파일을 예시하면 다음과 같다. Assuming that the currently selected component is 7 through FIG. 7 and FIG. 8, the collaboration profile including the component # 7 will be described as follows.

도 9 내지 도 11은 본 발명의 일 실시예에 따른 컴포넌트 협업 프로파일을 예시한 도면이다. 도 9 내지 도 11의 도표에 도시된 컴포넌트 협업 프로파일은 사용자가 직접 기재한 예시이다. 9-11 illustrate component collaboration profiles according to an embodiment of the present invention. The component collaboration profile shown in the diagrams of Figs. 9 to 11 is an example directly described by the user.

도 9에서 협업 프로파일은 특정 컴포넌트와 협업이 기대되는 컴포넌트의 단순 목록을 나타내며, 사용자에 의해 작성된다.In FIG. 9, a collaboration profile represents a simple list of components expected to collaborate with a specific component, and is created by the user.

도 9 및 도 10에서 보는 바와 같이, 컴포넌트 협업 프로파일이 여러 개 존재할 수 있다. 그리고, 도 12에서 보는 바와 같이, 다른 컴포넌트 협업 프로파일에서 7번 컴포넌트가 존재하는 경우, 이에 대한 통합을 수행한다.As shown in FIGS. 9 and 10, there may be several component collaboration profiles. As shown in FIG. 12, if component 7 exists in another component collaboration profile, integration is performed.

도 12는 본 발명의 일 실시예에 따른 통합된 협업 프로파일 리스트를 예시한 도면이다. Figure 12 is an illustration of an integrated collaboration profile list according to an embodiment of the present invention.

이와 같이 본 발명에서는 1차적으로 프로파일에 대한 분석이 수행된 후에는 협업 히스토리를 통한 가중치 업데이트가 진행될 수 있다.As described above, according to the present invention, after the analysis of the profile is performed first, weight updating can be performed through the collaboration history.

도 13은 본 발명의 일 실시예에 따른 협업 후보 컴포넌트의 가중치 값을 나타낸 도면이다. 도 13의 도표는 도 12의 항목에서 최상단에 있는 인덱스를 제거하고 가중치 값을 추가한 것이며, 가중치 값은 임의의 값을 예시한 것이다. 13 is a diagram illustrating weight values of a collaboration candidate component according to an exemplary embodiment of the present invention. The chart of FIG. 13 is obtained by removing the index at the top of the item of FIG. 12 and adding the weight value, and the weight value is an arbitrary value.

도 13에서 보는 바와 같이, 가중치 값은 협업 히스토리 분석을 통해 산출된 가중치 값에 대한 단순 합으로 수행된다. 이처럼 본 발명에서는 가중치를 단순 합산으로 구함으로써, 해당 컴포넌트가 얼마나 자주 협업을 수행하였는가를 반영할 수 있다. As shown in FIG. 13, the weight value is performed as a simple sum of the weight values calculated through the collaboration history analysis. As described above, in the present invention, it is possible to reflect how frequently the component performs the collaboration by obtaining the weight by simply summing.

도 14는 본 발명의 일 실시예에 따른 협업 후보 컴포넌트의 가중치를 업데이트하는 것을 예시한 도면이다. FIG. 14 is a diagram illustrating updating of weights of a collaboration candidate component according to an exemplary embodiment of the present invention.

본 발명에서는 가중치 업데이트 도중에 협업 프로파일에서 도출한 컴포넌트 리스트 상에서 존재하지 않는 컴포넌트를 만나면 해당 컴포넌트를 추가한다. 예를 들어 도 14에서 컴포넌트 2의 경우, 도 13의 도표에 존재하지 않으므로, 우측 상단과 같이 해당 필드를 추가한다. 그리고, 컴포넌트 3의 가중치 0.5를 단순 합산하면, 컴포넌트 3의 가중치 값은 1.7로 변경된다. In the present invention, when a component that does not exist on the component list derived from the collaboration profile is encountered during weight updating, the corresponding component is added. For example, in the case of component 2 in Fig. 14, since it does not exist in the diagram of Fig. 13, the corresponding field is added as shown at the upper right. Then, when the weight 0.5 of the component 3 is simply summed, the weight value of the component 3 is changed to 1.7.

본 발명에서 협업 이력 그래프는 도 8과 같이 구성되어 있으며, 각 컴포넌트에 대한 협업 거리를 이용하여 가중치 산출을 수행한다. In the present invention, the collaboration history graph is constructed as shown in FIG. 8, and the weight calculation is performed using the collaboration distance for each component.

가중치 산출은 다음과 같은 수식으로 구할 수 있다.The weight calculation can be obtained by the following equation.

Figure 112017051462819-pat00001
Figure 112017051462819-pat00001

여기서, Wij는 i와 j의 협업 거리 가중치를 의미하고, Dist(i, j)는 i와 j 사이의 거리를 의미하며, 얼마나 많은 노드를 거쳐 해당 컴포넌트들이 협업하였는지를 나타낸다. 그리고, n은 해당 그래프에 존재하는 노드의 개수를 나타낸다. 수학식 1에서 중간에 분자와 분모의 n이 소거되므로, 결과적으로 우측의 수식이 산출된다. Here, W ij denotes a collaboration distance weight of i and j, Dist (i, j) denotes a distance between i and j, and indicates how many nodes have collaborated with the corresponding components. And n represents the number of nodes existing in the graph. Since the numerator and n of the denominator are erased in the middle of the equation (1), the right-hand side of the equation is calculated as a result.

수학식 1에서 Wij는 0보다 크고 1보다 작은 값을 갖게 된다.In Equation (1), W ij is greater than 0 and less than 1.

수학식 1에서 Dist(i, j)는 협업 거리를 의미하며, 얼마나 많은 컴포넌트들을 거쳐 협업하였는가에 대한 정보를 포함하고 있다. 여기서 Dist(i, j)의 값은 최소값으로 1의 값을 가지며, i와 j 사이의 협업 관계가 여러 경로로 결정될 수 있다면 그 중 최단경로를 선택하여 산출한다. In Equation (1), Dist (i, j) denotes a collaboration distance and includes information on how many components are used to collaborate. Here, the value of Dist (i, j) has a minimum value of 1, and if the collaboration relationship between i and j can be determined by several paths, the shortest path is selected and calculated.

도 15는 본 발명의 일 실시예에 따른 협업 거리를 예시한 도면이다. 도 15는 도 8에서 컴포넌트 7과의 협업 거리를 나타내며, 경로 산출에 사용되지 않은 엣지(edge)는 삭제하였고, 나머지를 빨간색으로 표시하였다. 도 15에서 7은 컴포넌트 7을 나타내고, 컴포넌트 7을 제외한 모든 숫자는 협업 거리를 나타낸다.15 is a diagram illustrating a collaboration distance according to an embodiment of the present invention. Fig. 15 shows the collaboration distance with the component 7 in Fig. 8, and the edge not used for the path calculation is deleted, and the rest is indicated in red. In Fig. 15, 7 represents component 7, and all but the component 7 represents the collaboration distance.

본 발명에서는 컴포넌트 재사용 추천 시스템에서 협업 가중치 산출 및 이에 대한 업데이트 방법을 제안한다. 기존 연구들이 협업 정보보다 온톨로지를 이용한 의미적 상관관계 또는 그룹화 등의 방법으로 컴포넌트들을 분류한 것에 반해, 본 발명에서는 어떠한 컴포넌트가 선택되었을 때, 과거의 이력을 이용하여 선택된 컴포넌트가 다른 컴포넌트와 얼마나 자주, 얼마나 밀접한 관계로 협업하였는지를 나타냄으로써, 이와 협업하는 컴포넌트 선택 문제를 간편하게 해결할 수 있다. 예를 들어, 데이터 전송을 위한 컴포넌트는 암호화 컴포넌트와 자주 협업을 수행하게 되며, 컴포넌트 저장소에 존재하는 컴포넌트 중 기능적 요구사항을 만족시키고 인터페이스가 가장 잘 맞는 컴포넌트가 협업 이력에 자주 동반 출현할 것이며, 둘 사이의 협업 거리도 짧을 것이다. 이처럼 본 발명에 의하면, 두 개의 컴포넌트의 자세한 사양 비교를 수행하지 않고도, 사용자는 해당 컴포넌트들이 협업에 용이하다는 점을 인지할 수 있다.In the present invention, a collaborative weight calculation and an updating method therefor are proposed in a component reuse recommendation system. Whereas existing studies classify components in terms of semantic correlation or grouping using ontology rather than collaboration information, in the present invention, when a component is selected, it is possible to select a component using the past history, By showing how closely they work together, you can easily solve the component selection problem that they collaborate with. For example, a component for data transmission frequently collaborates with a cryptographic component, a component that satisfies the functional requirements among the components existing in the component repository and the interface best suits the cooperative history frequently, The collaboration distance between them will be short. As described above, according to the present invention, the user can recognize that the components are easy to collaborate without performing detailed specification comparison of the two components.

이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.While the present invention has been described with reference to several preferred embodiments, these embodiments are illustrative and not restrictive. It will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit of the invention and the scope of the appended claims.

100 소프트웨어 아키텍처 모델링 서브 시스템
200 컴포넌트 재사용 추천 서브 시스템
300 컴포넌트 라이브러리
110 아키텍처 모델러
120 컴포넌트 리스트 뷰어
130 컴포넌트 바인더
140 컴포넌트 셀렉션 리스너
150 추천 요청기
210 컴포넌트 협업 프로파일 콜렉터
220 컴포넌트 라이브러리 인터페이스 매니저
230 가중치 기반 우선순위 산출기
240 재사용 이력 그래프 분석기
100 Software Architecture Modeling Subsystem
200 Component reuse recommendation subsystem
300 component library
110 Architecture Modeler
120 Component List Viewer
130 Component Binders
140 Component Selection Listeners
150 Referrers
210 Component Collaboration Profile Collector
220 Component Library Interface Manager
230 weight-based priority calculator
240 Re-use history graph analyzer

Claims (11)

소프트웨어 아키텍처를 모델링하고, 아키텍처의 구성 컴포넌트들을 배치하는 소프트웨어 아키텍처 모델링 서브 시스템;
컴포넌트 및 컴포넌트의 메타 정보가 저장되어 있을 뿐만 아니라, 컴포넌트들의 협업 정보를 포함하는 컴포넌트 협업 프로파일 및 컴포넌트의 재사용 이력 정보가 저장되어 있는 컴포넌트 라이브러리; 및
상기 소프트웨어 아키텍처 모델링 서브 시스템의 컴포넌트 리스트에서 선택된 컴포넌트 대하여, 상기 컴포넌트 라이브러리에 저장된 컴포넌트 협업 프로파일 및 재사용 이력 정보를 기반으로, 상기 선택된 컴포넌트와 협업할 가능성이 있는 컴포넌트의 협업 우선 순위를 산출하여 상기 소프트웨어 아키텍처 모델링 서브 시스템에 전달하는 컴포넌트 재사용 추천 서브 시스템을 포함하며,
상기 소프트웨어 아키텍처 모델링 서브 시스템은 전달받은 컴포넌트의 협업 우선 순위를 기반으로 컴포넌트 재사용 추천 기능을 제공하고,
상기 컴포넌트 협업 프로파일에는 사용이 기대되는 도메인, 해당 프로파일을 정의한 저자 및 협업이 기대되는 컴포넌트의 리스트가 정의되어 있고,
상기 재사용 이력 정보는 어느 프로젝트를 통해 이력이 작성되었는지를 참조할 수 있도록 프로젝트 이름, 해당 프로젝트의 도메인을 나타내기 위한 도메인 정보, 이력이 작성된 날짜 및 협업 그래프를 포함하고 있으며,
상기 협업 그래프는 컴포넌트의 id를 기반으로 프로젝트를 구성하고 있는 모든 컴포넌트들의 협업 관계를 그래프로 나타낸 것이고,
상기 컴포넌트 재사용 추천 서브 시스템은 상기 재사용 이력 정보를 이용하여 컴포넌트가 어떤 컴포넌트와 협업하였는지를 판별하고, 상기 협업 그래프에 도시된 컴포넌트의 협업 거리를 이용하여 가중치를 산출하고, 산출된 가중치를 반영하여 컴포넌트의 협업 우선 순위를 업데이트하며,
상기 컴포넌트 재사용 추천 서브 시스템은 상기 협업 그래프를 이용하여 컴포넌트의 협업 거리를 계산하되, 선택된 컴포넌트와 다른 컴포넌트 간의 거리를 계산하며, 선택된 컴포넌트와 직접 연결되어 있는지 아니면 다른 컴포넌트를 통하여 연결되어 있는지를 확인하고, 다른 컴포넌트를 통하여 연결되어 있으면, 두 컴포넌트 사이에 존재하는 컴포넌트의 수를 계산하는 방식으로 컴포넌트의 협업 거리를 계산하며,
상기 소프트웨어 아키텍처 모델링 서브 시스템은,
사용자로 하여금 소프트웨어의 아키텍처를 설계할 수 있도록 하는 기능을 제공하기 위한 아키텍처 모델러;
아키텍처가 완성되면, 아키텍처를 구성하고 있는 특정 컴포넌트를 선택하여 바인딩하며, 상기 컴포넌트 라이브러리에서 관리되고 있는 컴포넌트들의 리스트를 보여주는 컴포넌트 리스트 뷰어;
아키텍처를 구성하고 있는 컴포넌트와 상기 컴포넌트 라이브러리에서 관리되고 있는 컴포넌트 간의 바인딩 관계를 관리하고, 바인딩이 수행되면 컴포넌트 셀렉션 리스너에게 바인딩된 컴포넌트의 정보를 넘겨주는 컴포넌트 바인더;
상기 컴포넌트 바인더에 의해 전달된 컴포넌트 정보 또는 상기 컴포넌트 바인더에서 이미 바인딩이 완료된 컴포넌트에 대하여, 현 시점에서 선택되는 컴포넌트에 대한 정보를 추천 요청기에 전달하기 위한 컴포넌트 셀렉션 리스너; 및
상기 컴포넌트 셀렉션 리스너로부터 전달받은 컴포넌트 정보를 기반으로 상기 컴포넌트 재사용 추천 서브시스템에 재사용 우선순위 정보를 요청하는 추천 요청기를 포함하여 이루어지며,
상기 컴포넌트 재사용 추천 서브 시스템은,
특정 컴포넌트에 대한 정보를 전달받으면, 컴포넌트 라이브러리 인터페이스 매니저를 통해 상기 컴포넌트 라이브러리에서 관리중인 사용자 정의 협업 프로파일을 추출하고, 전달받은 정보를 기반으로 대상 컴포넌트와 협업이 기대되는 컴포넌트의 리스트를 작성하여 가중치 기반 우선순위 산출기에 전달하기 위한 컴포넌트 협업 프로파일 콜렉터;
상기 컴포넌트 라이브러리에서 관리되는 재사용 이력 그래프 정보를 상기 컴포넌트 라이브러리 인터페이스 매니저를 통해 획득하고, 획득한 재사용 이력 그래프를 분석하여, 대상 컴포넌트와 같이 사용된 컴포넌트들의 거리를 기반으로 가중치를 분석하기 위한 재사용 이력 그래프 분석기; 및
상기 재사용 이력 그래프 분석기에서 분석한 재사용 이력 그래프로부터의 추출 가능한 가중치 값을 기반으로 우선순위를 산출하여, 상기 컴포넌트 협업 프로파일 콜렉터로부터 전달된 컴포넌트 리스트를 보완하기 위한 가중치 기반 우선순위 산출기를 포함하여 이루어지며,
상기 컴포넌트 재사용 추천 서브 시스템은, Wij는 협업 그래프에 도시된 컴포넌트 i, j에 대한 협업 거리를 이용한 가중치이고, Dist(i, j)는 i와 j 사이의 거리이고, n은 해당 협업 그래프에 존재하는 노드의 개수라고 할 때,
Figure 112018115349815-pat00017

의 수학식으로 가중치를 산출할 수 있는 것을 특징으로 하는 컴포넌트 재사용 추천 시스템.
A software architecture modeling subsystem that models the software architecture and deploys the components of the architecture;
A component library in which meta information of components and components is stored as well as a component collaboration profile including collaboration information of components and reuse history information of components is stored; And
The collaboration priority of a component likely to collaborate with the selected component is calculated based on the component collaboration profile and the reuse history information stored in the component library with respect to the component selected from the component list of the software architecture modeling subsystem, A component reuse recommendation subsystem for delivering to a modeling subsystem,
The software architecture modeling subsystem provides a component reuse recommendation function based on the priority of cooperation of delivered components,
The component collaboration profile defines a domain to be used, an author that defines the profile, and a list of components for which collaboration is expected,
The reuse history information includes a project name, domain information for indicating a domain of the project, a date when the history is created, and a collaboration graph so that the history of the project can be referred to.
The collaboration graph is a graph showing the collaboration relationships of all the components constituting the project based on the id of the component,
The component reuse recommendation subsystem determines whether a component collaborates with a component using the reuse history information, calculates a weight using a collaboration distance of the component shown in the collaboration graph, and reflects the calculated weight, Update collaborative priorities,
The component reuse recommendation subsystem calculates a collaboration distance of a component using the collaboration graph, calculates a distance between the selected component and another component, checks whether the selected component is directly connected to the selected component or is connected through another component , Calculates the collaboration distance of the component by calculating the number of components existing between the two components if the connection is made through other components,
The software architecture modeling sub-
An architectural modeler for providing functions that allow a user to design an architecture of software;
A component list viewer for selecting and binding a specific component constituting the architecture when the architecture is completed, and displaying a list of components managed in the component library;
A component binder for managing a binding relationship between a component constituting an architecture and a component managed by the component library, and for passing information of a component bound to the component selection listener when binding is performed;
A component selection listener for delivering, to the recommendation requestor, information about a component selected at the present time, with respect to the component information delivered by the component binder or the component already bound in the component binder; And
And a recommendation requestor for requesting reuse priority information to the component reuse recommendation subsystem based on the component information received from the component selection listener,
The component reuse recommendation sub-
When receiving the information about the specific component, the user-defined collaboration profile managed by the component library is extracted through the component library interface manager, and a list of components expected to collaborate with the target component is generated based on the received information, A component collaboration profile collector for communicating to a priority calculator;
A reuse history graph for acquiring reuse history graph information managed by the component library through the component library interface manager, analyzing the obtained reuse history graph, and analyzing weights based on distances of used components such as a target component, Analyzer; And
And a weight based priority calculator for calculating a priority based on extractable weight values from the reuse history graph analyzed by the reuse history graph analyzer and supplementing the component list delivered from the component collaboration profile collector ,
A distance between the component reuse like subsystem, W ij is the component i, weighted by the collaboration distance to j shown in collaboration graph, Dist (i, j) are i and j, n is in the collaboration graph If we say the number of existing nodes,
Figure 112018115349815-pat00017

Wherein the weights can be calculated using Equation (1).
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020170066685A 2017-05-30 2017-05-30 System and method for recommending component reuse based on collaboration dependency KR101975272B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170066685A KR101975272B1 (en) 2017-05-30 2017-05-30 System and method for recommending component reuse based on collaboration dependency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170066685A KR101975272B1 (en) 2017-05-30 2017-05-30 System and method for recommending component reuse based on collaboration dependency

Publications (2)

Publication Number Publication Date
KR20180130733A KR20180130733A (en) 2018-12-10
KR101975272B1 true KR101975272B1 (en) 2019-05-07

Family

ID=64670788

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170066685A KR101975272B1 (en) 2017-05-30 2017-05-30 System and method for recommending component reuse based on collaboration dependency

Country Status (1)

Country Link
KR (1) KR101975272B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021116471A1 (en) * 2019-12-13 2021-06-17 Engineer.Ai Global Limited Application development involving instant prototyping
US11086599B2 (en) 2016-10-17 2021-08-10 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102478964B1 (en) * 2022-09-02 2022-12-21 (주)아이티소프트 Method and apparatus for transmitting a configuration diagram for software architecture determined based on information related to a software architecture to a user terminal using a pluarality of neural networks by a server

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049397A (en) * 2008-08-20 2010-03-04 Nippon Telegr & Teleph Corp <Ntt> Integrated development environment providing system for component cooperation scenario, scenario creation support method, and program
JP2014106719A (en) * 2012-11-27 2014-06-09 Toshiba Corp Influence relation analyzer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100460536B1 (en) * 2002-12-20 2004-12-08 한국전자통신연구원 Apparatus and method for recommending associated components based on performance measurement of components
KR101311515B1 (en) 2006-12-15 2013-09-25 주식회사 케이티 Apparatus and Method for Enhancing Reusability of Software Componentand and its Method for Processing Using the Same
KR101363177B1 (en) * 2012-03-21 2014-02-14 충북대학교 산학협력단 System and method for retrieval software component based on power consumption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049397A (en) * 2008-08-20 2010-03-04 Nippon Telegr & Teleph Corp <Ntt> Integrated development environment providing system for component cooperation scenario, scenario creation support method, and program
JP2014106719A (en) * 2012-11-27 2014-06-09 Toshiba Corp Influence relation analyzer

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086599B2 (en) 2016-10-17 2021-08-10 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
US11816454B2 (en) 2016-10-17 2023-11-14 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11886840B2 (en) 2016-10-17 2024-01-30 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11922139B2 (en) 2016-10-17 2024-03-05 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
WO2021116471A1 (en) * 2019-12-13 2021-06-17 Engineer.Ai Global Limited Application development involving instant prototyping

Also Published As

Publication number Publication date
KR20180130733A (en) 2018-12-10

Similar Documents

Publication Publication Date Title
US11106626B2 (en) Managing changes to one or more files via linked mapping records
US7886028B2 (en) Method and system for system migration
CA2937017C (en) Integrated design application
US8225302B2 (en) System and method for managing source code and acquiring metrics in software development
KR101975272B1 (en) System and method for recommending component reuse based on collaboration dependency
US8285660B2 (en) Semi-automatic evaluation and prioritization of architectural alternatives for data integration
US9032360B1 (en) Selecting a test scenario template based on similarity of testing profiles belonging to different organizations
US9348735B1 (en) Selecting transactions based on similarity of profiles of users belonging to different organizations
CN101171571A (en) Apparatus for analysing and organizing artifacts in a software application
US10942840B2 (en) System and method for managing a code repository
US20160011868A1 (en) Software documentation generation with automated sample inclusion
US9104811B1 (en) Utilizing testing data collected from different organizations to generate test scenario templates that suit a user profile
US20140298286A1 (en) Systems and Methods for Automatically Associating Software Elements and Automatic Gantt Chart Creation
US9239777B1 (en) Generating test scenario templates from clusters of test steps utilized by different organizations
US20140122505A1 (en) Information processing apparatus, control method for the same, and computer-readable recording medium
US20070233532A1 (en) Business process analysis apparatus
US9201776B1 (en) Updating a test scenario template according to divergent routes
US20090013305A1 (en) Generating a subset model from a model
US20150169379A1 (en) Information processing method, information processing device, and recording medium
US20150007126A1 (en) Generating an Improved Development Infrastructure
CN110069455B (en) File merging method and device
US9311224B1 (en) Manipulating a test based on a subset of similar divergent routes from different organizations
US9201775B1 (en) Manipulating a test scenario template based on divergent routes found in test runs from different organizations
US9201772B1 (en) Sharing test scenarios among organizations while protecting proprietary data
KR101104739B1 (en) Semantic tagging server for supporting reuse of software artifacts, and methods thereof

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