1 |
1
컴퓨팅 장치의 프로세서를 이용한 오픈소스 소프트웨어(Open Source Software: OSS) 구성요소 식별을 위한 방법에 있어서,복수의 오픈소스 소프트웨어 각각에 중복제거를 수행하여, 컴포넌트 데이터베이스를 구축하는 단계; 및상기 컴포넌트 데이터베이스를 이용하여, 타겟 소프트웨어의 구성요소를 식별하는 단계;를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
2 |
2
제 1 항에 있어서,상기 복수의 오픈소스 소프트웨어 각각에 중복제거를 수행하여, 컴포넌트 데이터베이스를 구축하는 단계는,상기 복수의 오픈소스 소프트웨어 중 제 1 오픈소스 소프트웨어에 대한 중복 제거를 수행하는 경우, 상기 제 1 오픈소스 소프트웨어의 적어도 하나의 버전 각각에 등장하는 적어도 하나의 함수를 인식하는 단계; 및상기 적어도 하나의 함수 각각의 해시 값을 키(key)로 설정하고, 상기 적어도 하나의 함수 각각이 등장하는 적어도 하나의 버전을 상기 키에 대한 값(value)으로 설정하여 제 1 오픈소스 소프트웨어에 대한 제 1 딕셔너리(dictionary) 자료구조에 저장하는 단계;를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
3 |
3
제 2 항에 있어서,상기 제 1 딕셔너리(dictionary) 자료구조는,함수가 등장하는 버전의 개수에 따라 서로 다른 그룹으로 구분되는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
4 |
4
제 1 항에 있어서,상기 컴포넌트 데이터베이스를 이용하여, 타겟 소프트웨어의 구성요소를 식별하는 단계는,상기 복수의 오픈소스 소프트웨어 각각에 포함된 소스 코드를 고유한 코드 부분 및 빌려온 코드 부분으로 세분화하는 단계; 및상기 타겟 소프트웨어에 포함된 타겟 소스 코드 및 상기 복수의 오픈소스 소프트웨어 각각에 포함된 상기 고유한 코드 부분을 비교하여, 상기 복수의 오픈소스 소프트웨어 중 상기 타겟 소프트웨어 작성 시 사용된 적어도 하나의 제 2 오픈소스 소프트웨어를 추출하는 단계;를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
5 |
5
제 4 항에 있어서,상기 복수의 오픈소스 소프트웨어 각각에 포함된 소스 코드를 고유한 코드 부분 및 빌려온 코드 부분으로 세분화하는 단계는,상기 복수의 오픈소스 소프트웨어 중 코드 세분화를 수행할 제 3 오픈소스 소프트웨어에 포함된 제 1 소스 코드에 등장하는 하나 이상의 제 1 함수를 인식하는 단계;상기 복수의 오픈소스 소프트웨어 중 상기 제 3 오픈소스 소프트웨어와 비교 분석할 제 4 오픈소스 소프트웨어를 선정하는 단계;상기 제 4 오픈소스 소프트웨어에 포함된 제 2 소스 코드에 등장하는 하나 이상의 제 2 함수를 인식하는 단계;상기 하나 이상의 제 1 함수와 상기 하나 이상의 제 2 함수를 비교하여 동일하다고 인식되는 하나 이상의 공통 함수를 추출하는 단계;상기 하나 이상의 공통 함수 중 상기 제 4 오픈소스 소프트웨어에 먼저 등장한 하나 이상의 제 3 함수를 인식하는 단계; 및상기 컴포넌트 데이터베이스 내의 상기 제 3 오픈소스 소프트웨어와 관련된 제 2 딕셔너리 자료구조에서 상기 하나 이상의 제 3 함수를 제거하는 단계;를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
6 |
6
제 5 항에 있어서,상기 컴포넌트 데이터베이스 내의 상기 제 3 오픈소스 소프트웨어와 관련된 제 2 딕셔너리(dictionary) 자료구조에서 상기 하나 이상의 제 3 함수를 제거하는 단계는,상기 하나 이상의 제 2 함수의 제 1 개수와 상기 하나 이상의 제 3 함수의 제 2 개수에 기초하여 산출된 값이 기 설정된 값 이상인 경우, 상기 제 2 딕셔너리 자료구조에 포함된 상기 하나 이상의 제 1 함수에서 상기 하나 이상의 제 3 함수를 제거하는 단계;를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
7 |
7
제 4 항에 있어서,상기 타겟 소프트웨어에 포함된 타겟 소스 코드 및 상기 복수의 오픈소스 소프트웨어 각각에 포함된 상기 고유한 코드 부분을 비교하여, 상기 복수의 오픈소스 소프트웨어 중 상기 타겟 소프트웨어 작성 시 사용된 적어도 하나의 제 2 오픈소스 소프트웨어를 추출하는 단계는,상기 타겟 소스 코드에 포함된 함수와 코드 세분화를 수행한 복수의 오픈소스 소프트웨어 각각의 상기 고유한 코드 부분의 함수에 공통적으로 포함되는 함수의 제 3 개수 및 상기 코드 세분화를 수행한 복수의 오픈소스 소프트웨어 각각의 상기 고유한 코드 부분의 함수의 제 4 개수에 기초하여 상기 복수의 오픈소스 소프트웨어 각각과 상기 타겟 소프트웨어 사이의 코드 유사도 값 각각을 인식하는 단계; 및상기 코드 세분화를 수행한 복수의 오픈소스 소프트웨어 중 상기 코드 유사도 값이 기 설정된 값 이상인 적어도 하나의 제 2 오픈소스 소프트웨어를 추출하는 단계;를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
8 |
8
제 7 항에 있어서,상기 코드 유사도 값은 제 1 수학식에 기초하여 결정되고,상기 제 1 수학식은, 이고,상기 Φ는 코드유사도 값이고, 상기 T는 타겟 소프트웨어의 함수이고, 상기 S는 코드 세분화를 수행한 복수의 오픈소스 소프트웨어의 고유한 코드 부분의 함수인,오픈소스 소프트웨어 구성요소 식별을 위한 방법
|
9 |
9
복수의 오픈소스 소프트웨어 각각에 중복제거를 수행하는 프로세서; 및상기 중복제거를 수행한 결과를 저장하는 컴포넌트 데이터베이스부;를 포함하고,상기 프로세서는,상기 컴포넌트 데이터베이스부를 이용하여, 타겟 소프트웨어의 구성요소를 식별하는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
10 |
10
제 9 항에 있어서,상기 프로세서는,상기 복수의 오픈소스 소프트웨어 중 제 1 오픈소스 소프트웨어에 대한 중복 제거를 수행하는 경우, 상기 제 1 오픈소스 소프트웨어의 적어도 하나의 버전 각각에 등장하는 적어도 하나의 함수를 인식하고,상기 적어도 하나의 함수 각각의 해시 값을 키(key)로 설정하고, 상기 적어도 하나의 함수 각각이 등장하는 적어도 하나의 버전을 상기 키에 대한 값(value)으로 설정하여 제 1 오픈소스 소프트웨어에 대한 제 1 딕셔너리(dictionary) 자료구조로 상기 컴포넌트 데이터베이스부에 저장하는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
11 |
11
제 10 항에 있어서,상기 제 1 딕셔너리(dictionary) 자료구조는,함수가 등장하는 버전의 개수에 따라 서로 다른 그룹으로 구분되는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
12 |
12
제 9 항에 있어서,상기 프로세서는,상기 복수의 오픈소스 소프트웨어 각각에 포함된 소스 코드를 고유한 코드 부분 및 빌려온 코드 부분으로 세분화하고,상기 타겟 소프트웨어에 포함된 타겟 소스 코드 및 상기 복수의 오픈소스 소프트웨어 각각에 포함된 상기 고유한 코드 부분을 비교하여, 상기 복수의 오픈소스 소프트웨어 중 상기 타겟 소프트웨어 작성 시 사용된 적어도 하나의 제 2 오픈소스 소프트웨어를 추출하는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
13 |
13
제 12 항에 있어서,상기 프로세서는,상기 복수의 오픈소스 소프트웨어 중 코드 세분화를 수행할 제 3 오픈소스 소프트웨어에 포함된 제 1 소스 코드에 등장하는 하나 이상의 제 1 함수를 인식하고,상기 복수의 오픈소스 소프트웨어 중 상기 제 3 오픈소스 소프트웨어와 비교 분석할 제 4 오픈소스 소프트웨어를 선정하고,상기 제 4 오픈소스 소프트웨어에 포함된 제 2 소스 코드에 등장하는 하나 이상의 제 2 함수를 인식하고,상기 하나 이상의 제 1 함수와 상기 하나 이상의 제 2 함수를 비교하여 동일하다고 인식되는 하나 이상의 공통 함수를 추출하고,상기 하나 이상의 공통 함수 중 상기 제 4 오픈소스 소프트웨어에 먼저 등장한 하나 이상의 제 3 함수를 인식하고,상기 컴포넌트 데이터베이스부 내의 상기 제 3 오픈소스 소프트웨어와 관련된 제 2 딕셔너리 자료구조에서 상기 하나 이상의 제 3 함수를 제거하는,를 포함하는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
14 |
14
제 13 항에 있어서,상기 프로세서는,상기 하나 이상의 제 2 함수의 제 1 개수와 상기 하나 이상의 제 3 함수의 제 2 개수에 기초하여 산출된 값이 기 설정된 값 이상인 경우, 상기 제 2 딕셔너리 자료구조에 포함된 상기 하나 이상의 제 1 함수에서 상기 하나 이상의 제 3 함수를 제거하는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
15 |
15
제 12 항에 있어서,상기 프로세서는,상기 타겟 소스 코드에 포함된 함수와 코드 세분화를 수행한 복수의 오픈소스 소프트웨어 각각의 상기 고유한 코드 부분의 함수에 공통적으로 포함되는 함수의 제 3 개수 및 상기 코드 세분화를 수행한 복수의 오픈소스 소프트웨어 각각의 상기 고유한 코드 부분의 함수의 제 4 개수에 기초하여 상기 복수의 오픈소스 소프트웨어 각각과 상기 타겟 소프트웨어 사이의 코드 유사도 값 각각을 인식하고,상기 코드 세분화를 수행한 복수의 오픈소스 소프트웨어 중 상기 코드 유사도 값이 기 설정된 값 이상인 적어도 하나의 제 2 오픈소스 소프트웨어를 추출하는,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|
16 |
16
제 15 항에 있어서,상기 코드 유사도 값은 제 1 수학식에 기초하여 결정되고, 이고,상기 Φ는 코드유사도 값이고, 상기 T는 타겟 소프트웨어의 함수이고, 상기 S는 코드 세분화를 수행한 복수의 오픈소스 소프트웨어의 고유한 코드 부분의 함수인,오픈소스 소프트웨어 구성요소 식별을 위한 장치
|