著者
武田 隆之 牛窓 朋義 山内 寛己 門田 暁人 松本 健一
出版者
情報処理学会
雑誌
研究報告ソフトウェア工学(SE) (ISSN:09196072)
巻号頁・発行日
vol.2010, no.8, pp.1-8, 2010-03-11

本稿では,学生の演習課題のような小規模なソースコードを対象とした盗用の検出を目的とする.インデント,演算子などのコーディングスタイルに着目し,59 項目の特徴量として抽出し,盗用の発見に用いる.盗用関係にあるソースコード間において 59 項目の特徴量の差分を測定し,盗用関係にないソースコード間における特徴量の差分と比較したところ,28 項目の特徴量が盗用検出に有効であること,28 項目のうち 8 項目の特徴量はプログラムの内容によらず盗用検出に有効であること,8 項目のうち 3 項目の特徴量はソースコード整形ツールによるインデント整形に対して耐性を持つことが分かった.The goal of this paper is to detect software plagiarism in small-size source code like exercise assignments at school. This paper focused on coding style elements, such as indents and operators, and computed 59 quantitative measures from these elements. To evalute the usefulness of measures for plagiarism detection, we compared measures of suspected pairs (of plagiarism) and nonsuspected pairs. As a result, we found that 28 measures were effective to detect plagiarisms. Especially, 8 of 28 measures were effective for different program specifications, and 3 out of 8 measures were effective even after source code indentation tools were applied.
著者
門田 暁人 井上 克郎 松本 健一 岡原 聖 真鍋 雄貴 山内 寛己 Yamauchi Hiroki Okahara Satoshi Inoue Katsuro Monden Akito Manabe Yuki Matsumoto Kenichi マツモト ケンイチ モンデン アキト ヤマウチ ヒロキ オカハラ サトシ マナベ ユウキ イノウエ カツロウ
出版者
電子情報通信学会
雑誌
電子情報通信学会技術研究報告. SS, ソフトウェアサイエンス (ISSN:09135685)
巻号頁・発行日
vol.108, no.362, pp.7-11, 2008-12-11

Generally, if a piece of code clone was found between two different programs, a plagiarism or a code reuse (program piracy) might be made. On the other hand, code clone also occurs accidentally or by code idioms. This paper experimentally derives the probability of program piracy based on length of code clone. In the experiment, we identified code clones among many different programs which we confirmed that program piracy has not been made, and formulated by power approximation the relation between the length of code clone and its derivation probability. By using this formula, we can compute the probability of program piracy from the maximum length of code clone derived from given two programs.一般に, プログラム間で一致するコード列(コードクローン)が見つかった場合, コードの盗用もしくは流用の疑いがある. 一方で, 独立に開発されたプログラム間で偶然(もしくは定型処理など)によりコードクローンが生じることもある. 本稿では, どの程度の長さのクローンであれば, 偶然に生じたものではないと言えるか, その判断基準を実験的に導出する.実験では, 独立に開発された(流用のない)多数のプログラム間で検出されるコードクローンの長さと個数を調査し, 最大クローン長とクローン検出確率の関係を算出した. そして, 偶然に生じうるコードクローンの検出確率を累乗近似により定式化した. 導出した式により, 2つのプログラム間の最大クローン長を計測することにより, 偶然や定型処理ではない, すなわち, 盗用や流用が行われた確率を求めることが可能となった.