- 著者
-
門田暁人
佐藤慎一
神谷 年洋
松本 健一
- 出版者
- 一般社団法人情報処理学会
- 雑誌
- 情報処理学会論文誌 (ISSN:18827764)
- 巻号頁・発行日
- vol.44, no.8, pp.2178-2188, 2003-08-15
- 被引用文献数
-
19
ソフトウェアに含まれるコードクローン(重複するコード列)は,ソフトウェアの構造を複雑にし,ソフトウェア品質に悪影響を与えるといわれている.しかし,コードクローンとソフトウェア品質の関係はこれまで定量的に明らかにされていない.本論文では,20年以上前に開発され,拡張COBOL言語で記述されたある大規模なレガシーソフトウェアを題材とし,代表的なソフトウェア品質である信頼性・保守性とコードクローンとの関係を定量的に分析した.信頼性の尺度として保守工程で発見された「フォールト数/LOC(Lines of Code)」を用い,保守性の尺度として「モジュールの改版数」を用いた.分析の結果,コードクローンを含むモジュール(clone-includedモジュール)は含まないモジュール(non-cloneモジュール)よりも信頼性(平均値)が約40%高いが,200行を超える大きさのコードクローンを含むモジュールは逆に信頼性が低いことが分かった.また,clone-includedモジュールはnon-cloneモジュールよりも改版数(平均値)が約40%大きく(すなわち,改版のためにより多くの保守コストが費やされてきた),さらに,モジュールに含まれるコードクローンのサイズが大きいほど改版数がより大きい傾向にあることが分かった.Existing researches suggest that the code clone (duplicated code section) is one of the factors that degrades the design and structure of software and lowers the various quality attributes. However, the influence of code clones on software quality has not been quantitatively clarified yet. In this paper, we quantitatively analyzed the relation between code clones and the software reliability and maintainability of twenty years old software, which is written in an extended COBOL language. We used the number of faults per LOC (Lines of Code) as a reliability metric, and the revision number of modules as a maintainability metric. As a result, we found that modules having code clones (clone-included modules) are 40{%} more reliable than modules having no code clone (non-clone modules) on average. Nevertheless, the modules having very large code clones (more than 200 SLOC) are less reliable than non-clone modules. We also found that clone-included modules are 40{%} less maintainable (having greater revision number on average) than non-clone modules; and, modules having larger code clone are less maintainable than modules having smaller code clone.