Empirical Evaluation of Similar Defect Detection by Code Clone Search

あらまし 不具合修正時の修正前ソースコード片を検索キーとしたコードクローン検索による類似不具合の検出を実証的に評価した.これまでにオープンソースソフトウェアを対象とした研究により,コードクローン検索による類似不具合発見の有用性が確認されている.そこで本論文では,商用開発のソフトウェアを対象としコードクローン検索による類似不具合発見を商用開発の現場への適用する際の指針となることを目指す.対象はパナソニックMSE 株式会社において三つの異なるプロジェクトで開発された3 件のソースコードであり,試験工程での不具合修正に伴う修正履歴が記録されたリリース済のものである.修正履歴に記録された不具合修正前のソースコード片を検索キーとしコードクローン検索を実施し類似不具合を検出した.その結果,対象とした商用開発においてもその有効性を確認できた.キーワード コードクローン分析,類似不具合,ソフトウェア保守,ソースコード解析

[1]  Dawson R. Engler,et al.  RacerX: effective, static detection of race conditions and deadlocks , 2003, SOSP '03.

[2]  Kenneth Ward Church,et al.  Dotplot : a program for exploring self-similarity in millions of lines of text and code , 1993 .

[3]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[4]  Yuanyuan Zhou,et al.  CP-Miner: finding copy-paste and related bugs in large-scale software code , 2006, IEEE Transactions on Software Engineering.

[5]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[6]  Brenda S. Baker,et al.  On finding duplication and near-duplication in large software systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[7]  Magdalena Balazinska,et al.  Measuring clone based reengineering opportunities , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[8]  Shinji Kusumoto,et al.  Simultaneous Modification Support based on Code Clone Analysis , 2007, 14th Asia-Pacific Software Engineering Conference (APSEC'07).

[9]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[10]  Dawson R. Engler,et al.  A system and language for building system-specific, static analyses , 2002, PLDI '02.

[11]  Murray Hill,et al.  Lint, a C Program Checker , 1978 .

[12]  David Hovemeyer,et al.  Finding bugs is easy , 2004, SIGP.