版管理システムを用いた開発プロセスに適したコードクローン修正支援ツールの検討  [in Japanese] Discussion on Code Clone Modification Tool for Development Process with Version Control System  [in Japanese]

Search this Article

Author(s)

Abstract

コードクローンとはソースコード中に存在する,互いに一致または類似したコード片を指す.コードクローンを変更する際に,対応する全てのコードクローンに対して一貫した修正を行うべきか検討する必要がある.コードクローンに対する修正の一貫性を確認するためには,開発者はソースコードを変更する度にコードクローン検出ツールを起動する必要があり,実装に専念する事が難しくなる.開発環境にコードクローン検出ツールを組み込み,開発者がソースコードを変更する度にコードクローン検出を実施する方法が解決策として考えられる.しかし,ソースコードの修正完了前にコードクローンに対する変更が頻繁に通知されるため,実装を妨げると考えられる.コードクローンに対する変更を通知する頻度として,版管理システムへのコミット単位が考えられる.コミット単位であれば,頻度は小さく,かつ編集作業が完了しているため,実装の妨げにならないと考えられる.本研究では,版管理システムとコードクローン検出ツールとの連携に関する研究について述べ,その後版管理システムを用いた開発プロセスに適したコードクローン修正支援ツールの要件を検討する.最後に,検討した要件を踏まえて開発中のツールを紹介する.

A code clone is a code fragment that has identical or similar code fragments to it in the source code. If developers modify a code clone, they have to determine whether or not to modify the corresponding code clones in source code. To keep the consistency of code clones, developers run a clone detection tool when they modify one of the code clones. This prevents the developers from concentrating on coding. A considerable solution is integrating a code clone detection tool into IDE, and detecting code clones when a developer changes source code. However, if a number of clone changes are notified when a developer complete a modification, this also prevents the developers from concentrating on coding. A commit of a version control system is a considerable timing of notifying clone changes. Because it is not frequent but also means the completion of a modification, commit-level notification does not interrupt implementation. In this study, we describe existing works related with the integration of version control system and code clone detection tool, and then discuss requirements of a clone modification tool for development process with version control. Finally, we introduce a tool satisfying the requirements under development.

Journal

  • IPSJ SIG Notes

    IPSJ SIG Notes 2013-SE-182(30), 1-6, 2013-10-17

    Information Processing Society of Japan (IPSJ)

Codes

  • NII Article ID (NAID)
    110009614022
  • NII NACSIS-CAT ID (NCID)
    AN10112981
  • Text Lang
    JPN
  • Data Source
    NII-ELS 
Page Top