ハードウェア記述言語におけるコードクローンの調査

上村 恭平 (1451018)


本研究はHardwareDescription Language (HDL) におけるコードクローンの存在性と、品質への影響を調査することを目的とする。 HDLはLSIやFPGAの開発などに用いられる、論理回路を定義するための言語で、プログラミング言語と類似する側面を持つ。 コードクローンとは、ソースコード中の一致、あるいは類似するコードの断片のことで、ソフトウェアの品質に悪影響を与えるといわれている。 HDLコードにおいてもコードクローンが存在し、品質に悪影響を与えている可能性があるが、HDLにおけるコードクローンに着目した研究は報告されていない。

本研究では代表的なHDLであるVerilogを対象としたコードクローン検出手法を提案する。 提案手法ではVerilogコードを変換することで、既存の検出ツールであるCCFinderXを用いてコードクローンを検出する。 本発表では、提案手法を用いて、オープンソースで開発されている回路を対象としたケーススタディによる調査の結果を報告する。 調査の結果、3つのプロジェクトに含まれる1万9千行のコード中から364組のクローンセットが検出された。 検出されたクローンセットのうち、74\%はif文に関連するものであり、コードクローンとバグと関係している可能性も示唆された。 また、ソフトウェアにおける開発支援技術の適用可能性について検討を行い、一定の効果が見込めることを確認した。