• Title/Summary/Keyword: 코드 변경

Search Result 363, Processing Time 0.029 seconds

Predicting Program Code Changes Using a CNN Model (CNN 모델을 이용한 프로그램 코드 변경 예측)

  • Kim, Dong Kwan
    • Journal of the Korea Convergence Society
    • /
    • v.12 no.9
    • /
    • pp.11-19
    • /
    • 2021
  • A software system is required to change during its life cycle due to various requirements such as adding functionalities, fixing bugs, and adjusting to new computing environments. Such program code modification should be considered as carefully as a new system development becase unexpected software errors could be introduced. In addition, when reusing open source programs, we can expect higher quality software if code changes of the open source program are predicted in advance. This paper proposes a Convolutional Neural Network (CNN)-based deep learning model to predict source code changes. In this paper, the prediction of code changes is considered as a kind of a binary classification problem in deep learning and labeled datasets are used for supervised learning. Java projects and code change logs are collected from GitHub for training and testing datasets. Software metrics are computed from the collected Java source code and they are used as input data for the proposed model to detect code changes. The performance of the proposed model has been measured by using evaluation metrics such as precision, recall, F1-score, and accuracy. The experimental results show the proposed CNN model has achieved 95% in terms of F1-Score and outperformed the multilayer percept-based DNN model whose F1-Score is 92%.

A Class Diagramming Tool for Visualizing the Latest Revision of Software Change History (소프트웨어 변경 이력의 최근 변경을 클래스 다이어그램으로 가시화하는 도구)

  • Sim, Jaekyeong;Cho, HeeTae;Park, Jongyeol;Lee, Seonah
    • Journal of KIISE
    • /
    • v.45 no.2
    • /
    • pp.150-156
    • /
    • 2018
  • Software visualization can assist developers to understand a software system and change its code. The recent development of bottom-up visualization tools demonstrates the advantages by revealing the code that is directly related to a software evolution task. However, the information provided by these tools is limited to the code already investigated by the developers in that task session. To broaden the scope and provide the code information that developers should explore, we propose to present the latest revision of a software system via a class diagram. When a developer clicks on a button, the proposed tool reveals the code changes committed to a configuration management system, and facilitates the understanding of code changes. We also conduct case studies illustrating the advantages of the proposed tool.

Study on automated version information management using code history (코드 이력을 이용한 버전 정보 관리 자동화에 관한 연구)

  • Kim, Eun-Young;Cho, Hyun;Choi, Soon-Kew;Lee, Sang-Hoon
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04c
    • /
    • pp.82-84
    • /
    • 2003
  • 소프트웨어는 개발단계에서부터 유지/보수단계에 이르기까지 끊임없이 변경되며 하드웨어와 달리“변하기 쉬운 특성”과“눈에 보이지 않는 특성”을 가지고 있어 소프트웨어의 형상관리를 어렵게 한다. 소프트웨어 형상 관리를 용이하게 하고 이를 통해 개발 생산성을 높이기 위해 많은 소프트웨어 하우스에서는 형상 관리 도구를 도입하여 소프트웨어 개발에 이용하고 있다. 그러나 도입된 형상 관리 도구의 활용 형태를 보면 대부분 버전 관리 부분인데 이는 개발자들이 변경 정보를 충실히 작성하지 않으면 형상 아이템의 버전만 관리될 뿐 실질적인 변경 정보는 각 버전의 비교를 통해서만 알 수 있다. 따라서 본 논문은 형상 관리 아이템 중 코딩 표준에 따라 작성되는 소스 코드를 대상으로 새로운 버전이 생성될 때마다, 변경 정보를 소스 코드로부터 추출하여 자동으로 형상 관리 도구의 버전 관리 정보로 등록하여 관리함으로써 소스 코드와 형상 관리 도구의 버전 정보를 통합하여 관리하는 방안을 제시하고자한다.

  • PDF

A Technique to Detect Change-Coupled Files Using the Similarity of Change Types and Commit Time (변경 유형의 유사도 및 커밋 시간을 이용한 파일 변경 결합도)

  • Kim, Jung Il;Lee, Eun Joo
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.3 no.2
    • /
    • pp.65-72
    • /
    • 2014
  • Change coupling is a measure to show how strongly change-related two entities are. When two source files have been frequently changed together, they are regarded as change-coupled files and they will probably be changed together in the near future. In the previous studies, the change coupling between two files is defined with the number of common changed time, that is, common commit time of the files. However, the frequency-based technique has limitations because of 'tangled changes', which frequently happens in the development environments with version control systems. The tangled change means that several code hunks have been changed at the same time, though they have no relation with each other. In this paper, the change types of the code hunks are also used to define change coupling, in addition to the common commit time of target files. First, the frequency vector based on change types are defined with the extracted change types, and then, the similarity of change patterns are calculated using the cosine similarity measure. We conducted experiments on open source project Eclipse JDT and CDT for case studies. The result shows that the applicability of the proposed method, compared to the previous studies.

Building a Code Visualization Process to Extract Bad Smell Codes (배드 스멜 코드 추출을 위한 코드 가시화 프로세스 구축)

  • Park, Jihoon;Park, Bo Kyung;Kim, Ki Du;Kim, R. Young Chul
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.8 no.12
    • /
    • pp.465-472
    • /
    • 2019
  • Today, in many area the rise of software necessity there has been increasing the issue of the impotance of Good Software. Our reality in software industrial world has been happening to frequently change requirements at any stage of software life cycle. Furthermore this frequent changing will be increasing the design complexity, which will result in being the lower quality of software against our purpose the original design goals. To solve this problem, we suggest how to improve software design through refactoring based on reverse engineering. This is our way of diverse approaches to visually identify bad smell patterns in source code. We expect to improve software quality through refactoring on even frequently changing requirements.

Re-engineering framework for improving reusability of embedded software (임베디드 소프트웨어의 재사용성 향상을 위한 리엔지니어링 프레임워크)

  • Kim, Kang-Tae
    • Journal of the Korea Society of Computer and Information
    • /
    • v.13 no.4
    • /
    • pp.1-9
    • /
    • 2008
  • Most consumer electronics companies hold numerous line-ups to cope with divergent customer's needs. To cope with current situation, most products are derived from the 'base product' which is developed for brand new features with respect to the change requests. That is called derivation. After 'base code' is developed for newly introduced products, some modification will occur corresponding to the derivative product models. So, quality attributes of 'base code' affects quality and productivity of 'derived code'. But in the middle of continuous modification to 'base code', violation of architectural design decision and unauthorized or maybe unsophisticated change to source code willing to happen and thus it cause critical problem. Those code has 'aging symptom' both architectural and code level in nature. In this paper, we introduced reengineering framework which guide the procedure and tactics to find and fix 'aging symptom' for improvement on quality attribute of 'base code'.

  • PDF

Software Attack Detection Method by Validation of Flow Control Instruction’s Target Address (실행 제어 명령어의 목적 주소 검증을 통한 소프트웨어 공격 탐지 기법)

  • Choi Myeong-Ryeol;Park Sang-Seo;Park Jong-Wook;Lee Kyoon-Ha
    • The KIPS Transactions:PartC
    • /
    • v.13C no.4 s.107
    • /
    • pp.397-404
    • /
    • 2006
  • Successful software attacks require both injecting malicious code into a program's address space and altering the program's flow control to the injected code. Code section can not be changed at program's runtime, so malicious code must be injected into data section. Detoured flow control into data section is a signal of software attack. We propose a new software attack detection method which verify the target address of CALL, JMP, RET instructions, which alter program's flow control, and detect a software attack when the address is not in code section. Proposed method can detect all change of flow control related data, not only program's return address but also function pointer, buffer of longjmp() function and old base pointer, so it can detect the more attacks.

Tamper-Resistance of Watermark for Java Class Protect inn (자바 클래스 보호를 위한 워터마크 변경방지)

  • Cho, Ik;Lee, Su-Hyun
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2002.04b
    • /
    • pp.346-348
    • /
    • 2002
  • 자바는 플랫폼 독립적이라는 장점을 가지고 있지만, 쉽게 역-컴파일 하여 소스코드를 얻을 수 있기 때문에 악의 있는 사용자가 개발자의 모듈과 알고리즘, 데이터 구조를 쉽게 얻을 수 있고 불법 사공이 가능하다. 본 논문에서는 자바 클래스를 보호하기 위하여 소프트웨어에 저작권을 삽입하는 워터마킹 기술과 소스코드 변경을 방지하는 변경확인 기술 및 역-컴파일을 어렵게 하는 난독 기술을 적용한 클래스 단위의 자바 클래스 보호 시스템을 제안한다. 제안 시스템은 워터마크에 대만 왜곡 공격에 강하고, 워터마크에 변경확인 기술을 적용하여 워터마크의 변경을 방지하였다.

  • PDF

Analyzing Developer's Share of Code Based on Abstract Syntax Tree (추상 구문 트리 기반의 개발자별 소스 코드 지분 분석)

  • Lee, Yong-hyeon;Kim, KiSub;Jung, Woosung
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2015.07a
    • /
    • pp.23-24
    • /
    • 2015
  • 소프트웨어 프로젝트에서 발생하는 버그의 수가 증가함에 따라 이를 수정할 적합한 개발자를 효과적으로 찾기 위한 연구들이 진행되었다. 하지만, 대부분의 연구들이 텍스트 기반의 라인 변경을 통해 얻은 정보만을 활용하기 때문에 정확도가 떨어지며, 파일, 클래스, 함수와 같은 다양한 계층 단위에 대한 처리가 어렵다. 본 논문은 개발자의 코드 변경 정보를 추적함으로써 기여도를 보다 정확하게 계산하고, 다양한 코드 수준에서의 분석을 효과적으로 지원하는 AST기반의 지분 계산 접근법을 제안한다.

  • PDF

A WEB TOOL FOR SOURCE CODE COMPARING AND CODE MANAGEMENT (프로그램 소스코드 비교 및 소스코드 관리를 위한 웹툴)

  • Choi, Gyu-Hyun;Han, Deok-Hee;Park, Mi-So;Ryu, Keun-Ho
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2014.11a
    • /
    • pp.994-997
    • /
    • 2014
  • 소프트웨어 형상관리는 소스코드제어, 변경 관리 및 버전제어를 하는 행위를 가리키는 것이다. 여러 개발자가 공통 파일 세트에서 동시에 작업 중인 소프트웨어 개발에 주요 사용된다. 이 논문에서는 소프트웨어 형상관리를 위한 소스코드 비교기능, 변경 및 수정 내역 기록, 개발자를 위한 소스코드 공유 공간을 제공하는 등의 기능에 대한 설명과 기대효과에 대해 설명한다.