• Title/Summary/Keyword: 소스 코드 유사도

Search Result 73, Processing Time 0.023 seconds

Appraisal Method for Similarity of Large File Transfer Software (대용량 파일 전송 소프트웨어의 동일성 감정 방법)

  • Chun, Byung-Tae
    • Journal of Software Assessment and Valuation
    • /
    • v.17 no.1
    • /
    • pp.11-16
    • /
    • 2021
  • The importance of software is increasing due to the development of information and communication, and software copyright disputes are also increasing. In this paper, the source of the submitted programs and the files necessary for the execution of the program were taken as the scope of analysis. The large-capacity file transfer solution program to be analyzed provides additional functions such as confidentiality, integrity, user authentication, and non-repudiation functions through digital signature and encryption of data.In this paper, we analyze the program A, program B, and the program C. In order to calculate the program similarity rate, the following contents are analyzed. Analyze the similarity of the package structure, package name, source file name in each package, variable name in source file, function name, function implementation source code, and product environment variable information. It also calculates the overall similarity rate of the program. In order to check the degree of agreement between the package structure and the package name, the similarity was determined by comparing the folder structure. It also analyzes the extent to which the package structure and package name match and the extent to which the source file (class) name within each package matches.

A Framework for using Design Pattern with the XML (XML을 이용한 디자인 패턴 활용구조)

  • Kim, Woon-Yong;Choi, Young-Keun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2001.10a
    • /
    • pp.335-338
    • /
    • 2001
  • 디자인패턴은 디자인 경험을 표현하기 위한 새로운 메커니즘으로 미래의 유사 상황에서 다시 적용될 수 있는 과거에 잘 정의된 설계에 대한 정보를 기록하는 것이며 소프트웨어 개발 설계에서 재사용성을 증가시킨다. 그러나 광범위한 관심과 활용에도 불구하고, 패턴명세와 활용은 주로 개발자의 수작업을 통해 이루어지기 때문에 일관된 형태의 분석과 활용이 어렵다. 이로 인해 오류 발생 빈도를 높일 뿐 아니라 프로그램 개발이 어렵고 많은 시간을 필요로 한다. 따라서 본 논문에서는 디자인패턴을 구조화된 전자문서로 표현하기 위한 XML 표기방법과 디자인패턴 활용시스템 구조를 제시한다. 또한 이러한 표기법과 활용구조를 통해 소스코드 자동생성 지원 시스템을 제시하고, 적용 예를 보이고자한다. XML을 이용한 구조화된 문서활용은 소스코드 생성시 사용자들에게 더 작은 코드를 작성하게 만들고, 더 안정된 시스템을 구축한 수 있게 한다. 또한 XML의 다양한 기술에 접목함으로써 패턴 활용을 극대화할 수 있다.

  • PDF

Software Similarity Detection Using Highly Credible Dynamic API Sequences (신뢰성 높은 동적 API 시퀀스를 이용한 소프트웨어 유사성 검사)

  • Park, Seongsoo;Han, Hwansoo
    • Journal of KIISE
    • /
    • v.43 no.10
    • /
    • pp.1067-1072
    • /
    • 2016
  • Software birthmarks, which are unique characteristics of the software, are used to detect software plagiarism or software similarity. Generally, software birthmarks are divided into static birthmarks or dynamic birthmarks, which have evident pros and cons depending on the extraction method. In this paper, we propose a method for extracting the API sequence birthmarks using a dynamic analysis and similarity detection between the executable codes. Dynamic birthmarks based on API sequences extract API functions during the execution of programs. The extracted API sequences often include all the API functions called from the start to the end of the program. Meanwhile, our dynamic birthmark scheme extracts the API functions only called directly from the executable code. Then, it uses a sequence alignment algorithm to calculate the similarity metric effectively. We evaluate the birthmark with several open source software programs to verify its reliability and credibility. Our dynamic birthmark scheme based on the extracted API sequence can be utilized in a similarity test of executable codes.

Analogy-based Reuse of Object Model (아날로지를 기반으로 한 객체모델의 재사용)

  • Bae, Je-Min
    • The KIPS Transactions:PartD
    • /
    • v.14D no.6
    • /
    • pp.665-674
    • /
    • 2007
  • Code reuse in software reuse has several limitations such as difficulties of understanding and retrieval of the reuse code written by other developers. To overcome these problems, it should be possible to reuse the analysis/design information than source code itself. Therefore, this paper present analogical matching techniques for the reuse of object models and patterns. And this paper have suggested the object model and the design patterns as reusable components and the representation techniques to store them. Namely, the contents of the paper are as follows. Analogical matching functions to retrieve analogous components from reusable libraries. And the representation of reusable components to be stored in the library in order to support the analogical matching.

Study on Selftest Requirements in Cryptographic Module Validation Program with FIPS-OpenSSL Source Code Analysis (FIPS-OpenSSL 코드 분석을 통한 암호모듈 자가시험 보안요구사항 분석)

  • Seo, Seog Chung
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.29 no.5
    • /
    • pp.985-996
    • /
    • 2019
  • This paper analyzes the source code of FIPS-OpenSSL cryptographic module approved as FIPS cryptographic module in USA and shows how the selftest requirements are implemented as software cryptographic library with respect to pre-operational test and conditional tests. Even though FIPS-OpenSSL follows FIPS 140-2 standard, lots of security requirements are similar between FIPS 140-2 and Korean cryptographic module validation standards. Therefore, analysis from this paper contributes to help Korean cryptographic module vendors develop correct and secure selftest functions on their own cryptographic modules, which results in reducing the test period.

Automatic Generating Technique of Questions about Filling in the Blanks for Programming Education (프로그래밍 교육을 위한 빈 칸 채우기 문항 자동생성 기법)

  • Lee, Sunghee;Kim, Deok Yeop;Lee, Woo Jin
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2018.05a
    • /
    • pp.187-190
    • /
    • 2018
  • 최근 프로그래밍 교육에서 학생들의 학습 성취도를 빠르고 정확하게 평가하기 위하여 자동 채점 시스템을 사용한다. 강의를 통해 습득한 이론적인 지식을 이해하기 위해 직접 코드를 작성하는 실습이 진행되는 프로그래밍 교육에서 효과적이기 때문이다. 현재 실습에 필요한 실습문항의 대부분은 강사가 직접 생성해야 한다. 특히 강의내용을 바탕으로 예제 소스코드를 이해하여 빈 칸에 알맞은 코드를 작성하는 실습은 강사가 직접 빈 칸에 해당되는 부분을 예제 코드에서 지정해줘야 하는 추가적인 작업이 필요하다. 이러한 빈 칸 채우기 문항은 일반적으로 빈 칸이 고정된 행태이기 예문에 학생들이 답안을 공유하기 쉽다. 이를 막기 위해서 강사는 유사한 내용의 빈 칸 채우기 문항을 추가적으로 생성해야 한다. 하지만 대부분의 자동 채점 시스템은 이를 지원하지 않거나 강사에게 빈 칸을 직접 지정하도록 하는 경우가 대부분이다. 따라서 본 논문에서는 이러한 문제를 해결하는 빈 칸 채우기 문항 자동생성기법을 제안하고 적용 사례를 보인다.

A Code Clustering Technique for Unifying Method Full Path of Reusable Cloned Code Sets of a Product Family (제품군의 재사용 가능한 클론 코드의 메소드 경로 통일을 위한 코드 클러스터링 방법)

  • Kim, Taeyoung;Lee, Jihyun;Kim, Eunmi
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.12 no.1
    • /
    • pp.1-18
    • /
    • 2023
  • Similar software is often developed with the Clone-And-Own (CAO) approach that copies and modifies existing artifacts. The CAO approach is considered as a bad practice because it makes maintenance difficult as the number of cloned products increases. Software product line engineering is a methodology that can solve the issue of the CAO approach by developing a product family through systematic reuse. Migrating product families that have been developed with the CAO approach to the product line engineering begins with finding, integrating, and building them as reusable assets. However, cloning occurs at various levels from directories to code lines, and their structures can be changed. This makes it difficult to build product line code base simply by finding clones. Successful migration thus requires unifying the source code's file path, class name, and method signature. This paper proposes a clustering method that identifies a set of similar codes scattered across product variants and some of their method full paths are different, so path unification is necessary. In order to show the effectiveness of the proposed method, we conducted an experiment using the Apo Games product line, which has evolved with the CAO approach. As a result, the average precision of clustering performed without preprocessing was 0.91 and the number of identified common clusters was 0, whereas our method showed 0.98 and 15 respectively.

Research cases and considerations in the field of hydrosystems using ChatGPT (ChatGPT를 활용한 수자원시스템분야 문제해결사례 소개 및 고찰)

  • Do Guen Yoo;Chan Wook Lee
    • Proceedings of the Korea Water Resources Association Conference
    • /
    • 2023.05a
    • /
    • pp.98-98
    • /
    • 2023
  • ChatGPT(Chat과 Generative Pre-trained Transformer의 합성어)는 사용자와 주고받는 대화의 과정을 통해 질문에 답하도록 설계된 대형언어모델로, 지도학습과 강화학습을 모두 사용하여 세밀하게 조정된 인공지능 챗봇이다. ChatGPT는 주고받은 대화와 대화의 문맥을 기억할 수 있으며, 보고서나 실제로 작동하는 파이썬 코드를 비롯한 인간과 유사하게 상세하고 논리적인 글을 만들어 낼 수 있다고 알려져있다. 본 연구에서는 수자원시스템분야의 문제해결에 있어 ChatGPT의 적용가능성을 사례기반으로 확인하고, ChatGPT의 올바른 활용을 위해 필요한 사항에 대해 고찰하였다. 수자원시스템분야의 대표적인 연구주제인 상수관망시스템의 누수인지와 수리해석을 통한 문제해결에 ChatGPT를 활용하였다. 즉, 딥러닝 기반의 데이터분석을 활용한 누수인지와 오픈소스기반의 수리해석 모델을 활용한 관망시스템 적정 분석을 목표로 ChatGPT와 대화를 진행하고, ChatGPT에 의해 제안된 코드를 구동하여 결과를 분석하였다. ChatGPT가 제시한 코드의 구동결과를 사전에 연구자가 직접 구현한 코드구동 결과와 비교분석하였다. 분석결과 ChatGPT가 제시한 코드가 보다 더 간결할 수 있으며, 상대적으로 경쟁력 있는 결과를 도출하는 것을 확인하였다. 다만, 상대적으로 간결한 코드와 우수한 구동결과를 획득하기 위해서는 해당 도메인의 전문적 지식을 바탕으로 적절한 다수의 질문을 해야 하며, ChatGPT에 의해 작성된 코드의 의미를 명확히 해석하거나 비판적 분석을 하기 위해서는 전문가지식이 반드시 필요함을 알 수 있었다.

  • PDF

Applying SeqGAN Algorithm to Software Bug Repair (소프트웨어 버그 정정에 SeqGAN 알고리즘을 적용)

  • Yang, Geunseok;Lee, Byungjeong
    • Journal of Internet Computing and Services
    • /
    • v.21 no.5
    • /
    • pp.129-137
    • /
    • 2020
  • Recently, software size and program code complexity have increased due to application to various fields of software. Accordingly, the existence of program bugs inevitably occurs, and the cost of software maintenance is increasing. In open source projects, developers spend a lot of debugging time when solving a bug report assigned. To solve this problem, in this paper, we apply SeqGAN algorithm to software bug repair. In detail, the SeqGAN model is trained based on the source code. Open similar source codes during the learning process are also used. To evaluate the suitability for the generated candidate patch, a fitness function is applied, and if all test cases are passed, software bug correction is considered successful. To evaluate the efficiency of the proposed model, it was compared with the baseline, and the proposed model showed better repair.

Applying Genomic Sequence Alignment Methodology for Source Codes Plagiarism Detection (유전체 서열의 정렬 기법을 이용한 소스 코드 표절 검사)

  • 강은미;황미녕;조환규
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.9 no.3
    • /
    • pp.352-367
    • /
    • 2003
  • The syntactic and semantic characteristics of a computer program can be represented by the keywords sequence extracted from the source code. Therefore the similarity and the difference between two programs can be clearly figured out by comparing the keyword sequences obtained from the given programs. Various methods for measuring the similarity of two different sequences have been intensively studied already in bioinformatics on biological genetic sequence manipulation. In this paper, we propose a new method for measuring the similarity of two different programs and detecting the partial plagiarism by exploiting the sequence alignment techniques. In order to evaluate the performance of the proposed method, we experimented with the actual Program codes submitted by 70 students attending a Data Structure course )tow 2001. The experimental results show that the proposed method is more effective and powerful than the fingerprint method which is the most commonly used for the Plagiarism detection.