유사성평가
프로그램은 여러 가지 형태의 표현이 결합된 것으로 소스코드(source code), 목적코드(object code),
마이크로코드(micro code), 알고리즘(algorithm), 흐름도(flow chart), 스크립트(script) 등의 복합적인 형태로
구성되어 있습니다. 유사성 검토는 두 소프트웨어의 문언적 표현요소인 소스코드 간 유사한 정도를 산술적으로 나타낸
정량적 유사도를 중요한 근거 중 하나로서 실질적인 유사성 평가에 활용하고 있습니다.
유사성 평가를 통하여 컴퓨터프로그램의 소스코드 레벨에서의 유사도, 자료구조의 유사도, 데이터베이스 유사도, 디렉토리 및 주요파일 이름의 유사도 등 다양하게 선정된 항목의 유사도가 각각 백분율로 산출되며, 일반적으로 원본기준 방식을 적용합니다. 산출된 각각의 유사도에 전체 컴퓨터프로그램에서 해당 부분이 차지하는 중요도를 가중치로 반영하여 종합 유사도를 산출하고, 그 결과를 컴퓨터프로그램의 복제여부 판단의 근거로 제시하게 됩니다.
유사성 평가를 통하여 컴퓨터프로그램의 소스코드 레벨에서의 유사도, 자료구조의 유사도, 데이터베이스 유사도, 디렉토리 및 주요파일 이름의 유사도 등 다양하게 선정된 항목의 유사도가 각각 백분율로 산출되며, 일반적으로 원본기준 방식을 적용합니다. 산출된 각각의 유사도에 전체 컴퓨터프로그램에서 해당 부분이 차지하는 중요도를 가중치로 반영하여 종합 유사도를 산출하고, 그 결과를 컴퓨터프로그램의 복제여부 판단의 근거로 제시하게 됩니다.
비교 방법론 | 세부 항목 | 설명 |
---|---|---|
소스 코드 비교 | 코드 라인별 비교 | 프로그램 A와 B의 소스 코드 라인을 직접 비교하여 일치하는 부분을 식별 |
코드 구조 비교 | 함수, 클래스, 모듈 등의 구조적 유사성을 평가 | |
코드 주석 비교 | 주석 내용과 스타일의 유사성을 검토 | |
코드 중복 검사 | 중복된 코드 블록을 찾고, 복제된 코드가 있는지 확인 | |
코드 유사성 도구 사용 | 코드 비교 도구를 사용하여 유사성을 분석 | |
알고리즘 분석 | 알고리즘 일치 여부 | 두 프로그램이 동일한 알고리즘을 사용하는지 확인 |
알고리즘 효율성 비교 | 시간 복잡도와 공간 복잡도를 비교하여 알고리즘의 효율성을 평가 | |
알고리즘 흐름도 비교 | 알고리즘의 흐름도나 의사코드를 비교하여 유사성을 평가 | |
기능 비교 | 기능 목록 비교 | 두 프로그램이 제공하는 기능 목록을 비교하여 공통 기능을 식별 |
기능 구현 비교 | 각 기능이 어떻게 구현되었는지 비교하여 유사성을 평가 | |
기능 테스트 | 동일한 입력에 대해 두 프로그램이 동일한 출력을 생성하는지 테스트 | |
인터페이스 및 사용자 경험 비교 |
UI/UX 디자인 비교 | 사용자 인터페이스 디자인, 레이아웃, 색상, 아이콘 등의 유사성을 평가 |
사용자 흐름 비교 | 사용자가 프로그램을 사용하는 과정에서의 흐름과 인터랙션의 유사성을 분석 | |
디자인 패턴 비교 | 공통 디자인 패턴의 사용 여부를 확인 | |
데이터 구조 및 데이터베이스 비교 |
데이터 모델 비교 | 데이터베이스의 스키마와 데이터 모델의 유사성을 평가 |
데이터 저장 방식 비교 | 데이터 저장 방식과 파일 형식의 유사성을 검토 | |
데이터 무결성 검사 | 두 프로그램의 데이터 무결성 유지 방법을 비교 | |
라이브러리 및 프레임워크 사용 비교 |
사용된 라이브러리 비교 | 두 프로그램에서 사용된 외부 라이브러리와 프레임워크를 비교 |
라이브러리 호출 패턴 비교 | 동일한 라이브러리를 사용하는 방식의 유사성을 평가 | |
문서 및 주석 비교 | 기술 문서 비교 | 두 프로그램의 기술 문서, API 문서 등의 유사성을 평가 |
코드 주석 비교 | 코드 주석의 내용과 스타일을 비교하여 유사성을 확인 | |
특허 및 저작권 문서 비교 |
등록된 특허 비교 | 프로그램과 관련된 특허 문서의 내용을 비교 |
저작권 등록 비교 | 두 프로그램의 저작권 등록 문서와 내용을 검토 | |
실행 및 성능 비교 | 실행 시간 비교 | 동일한 작업에 대한 실행 시간을 비교 |
자원 사용 비교 | 메모리, CPU 사용량 등의 자원 사용을 비교 | |
결과 정확도 비교 | 동일한 입력에 대한 결과의 정확도를 비교 |
초기 상담 | 의뢰 접수 | 예비 분석 |
---|---|---|
문의 접수, 초기 상담, 기본 정보 제공 | 의뢰서 작성, 필요 자료 제출, 계약 체결 | 자료 검토, 분석 계획 수립 |
본 분석 | 보고서 작성 및 제출 | 결과 설명 및 후속 조치 |
소스 코드 비교, 알고리즘 분석, 기능 비교, UI/UX 비교, 법적 검토, 결과 도출 | 보고서 작성, 보고서 검토, 보고서 제출 | 결과 설명 회의, 후속 조치 지원 |