著者
山中 裕樹 崔 恩瀞 吉田 則裕 井上 克郎 佐野 建樹
雑誌
ソフトウェアエンジニアリングシンポジウム2012論文集
巻号頁・発行日
vol.2012, pp.1-8, 2012-08-21

ソフトウェア保守における大きな問題の一つとしてコードクローンが指摘されている.コードクローンとは,ソースコード中に,互いに一致または類似した部分を持つコード片のことである.コードクローンに対する主な保守作業として,クローンセット(互いにコードクローンとなっているコード片の集合)に含まれる全てのコード片を一貫して編集する同時修正と,クローンセットを1つのサブルーチンにまとめる集約が挙げられる.本研究では,コードクローンに対する保守作業を支援することを目的としたコードクローン変更管理システムの開発を行った.そして,企業で行われているソフトウェア開発に適用することによって,本システムの有用性を確かめることができた.
著者
瀬村 雄一 吉田 則裕 崔 恩瀞 井上 克郎
出版者
The Institute of Electronics, Information and Communication Engineers
雑誌
電子情報通信学会論文誌 D (ISSN:18804535)
巻号頁・発行日
vol.J103-D, no.4, pp.215-227, 2020-04-01

近年実務に使用されるプログラミング言語は多様化し,ある一つのプログラミング言語においてもその文法はバージョンごとに差異をもつ.字句単位のコードクローン検出ツールCCFinderXは,多様な言語に対応するためのシンプルな仕組みをもたない.提案ツールとして,構文解析器生成系の一つであるANTLRの構文定義記述を入力として与えることで,新たな言語の字句解析が可能になるコードクローン検出ツールCCFinderSWを開発した.評価実験では,42言語の構文定義記述からコメントや予約語,文字列リテラルの情報を抽出し,81%の言語でこれら3種類の情報が抽出可能であることを示した.また,C++で記述されたソースコードに対するコードクローン検出においてCCFinderXと出力を比較し,ほぼ同等の検出能力をもつことを示した.
著者
崔 恩瀞 藤原 賢二 吉田 則裕 林 晋平
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.32, no.1, pp.1_47-1_59, 2015-01-26 (Released:2015-03-26)

リファクタリングとは,ソフトウェアの外部的振る舞いを変化させることなく,内部の構造を改善するプロセスを指す.研究者・実務者ともに,開発プロジェクトにおいて過去に実施されたリファクタリングを知りたいという要求がある.そこで,リファクタリングの実施を自動的に検出する手法(リファクタリング検出手法)が数多く提案されている.これらの手法は,多様な国際会議や論文誌において発表されており,研究者や実務者にとって研究成果を概観することは容易ではない.本稿では,リファクタリング検出手法の中でも,盛んに研究が行われている成果物の変更履歴解析に基づく手法を中心に紹介を行う.まず,本稿におけるリファクタリング検出の定義および分類について述べる.その後,成果物の変更履歴解析に基づく手法を紹介し,今後行われる研究の方向性について考察を行う.
著者
上村 恭平 森 彰 藤原 賢二 崔 恩瀞 飯田 元
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.59, no.4, pp.1225-1239, 2018-04-15

ハードウェア記述言語は,Field Programmable Gate Array(FPGA)開発などで回路の構造を定義するために用いられる言語である.近年のFPGAの利用拡大により,ハードウェア記述言語(HDL)を用いた回路開発の効率化が課題となっている.そこで,我々はソースコード中の重複あるいは類似したコード片であるコードクローンに着目した.ソフトウェアにおいて,コードクローンは開発効率を低下させる一因として研究されている.本論文では,代表的なHDLであるVerilog HDLを対象としたコードクローン検出手法を提案し,コードクローンの特徴について調査した結果について述べる.提案するコードクローン検出手法は,Verilog HDLのソースコードに簡単な変換を適用することで,既存のツールを用いてコードクローンを検出する.評価の結果,提案手法は90%以上の精度でコードクローンを検出できた.また,提案手法を用いてコードクローンの量と複雑さについて分析した結果,CやJavaと同様にコードクローンが存在し,支援を要することが確認された.ソフトウェアと同様に,Verilog HDLのコードクローンに対しても同時編集支援やドキュメント化などの管理は有用である.一方で,Verilog HDLにおけるコードクローンはリファクタリングによる集約を行う場合に回路性能とのトレードオフを考慮する必要がある.