著者
Monden Akito Nakae Daikai Kamiya Toshihito Sato Shin-ichi Matsumoto Ken-ichi
出版者
Nara Institute of Science and Technology
巻号頁・発行日
2001-09

Existing researches suggest that the code clone (duplicated code) is one of the factors that degrades the design and structure of software and lowers the software quality such as readability and maintainability. However, the influence of code clones on software quality has not been quantitatively clarified yet. In this paper we tried to quantitatively clarify the relation between code clones and the software reliability and maintainability of twenty years old software. As a result, we found that modules having a code clone (clone-included modules) are more reliable than modules having no code clone (non-clone modules) in average. Nevertheless, the modules having very large code clones (more than 200 lines) are less reliable than non-clone modules. We also found that clone-included modules are less maintainable than non-clone modules; and, modules having larger code clone are less maintainable than modules having smaller code clone.
著者
門田 暁人 井上 克郎 松本 健一 岡原 聖 真鍋 雄貴 山内 寛己 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つのプログラム間の最大クローン長を計測することにより, 偶然や定型処理ではない, すなわち, 盗用や流用が行われた確率を求めることが可能となった.