主催: 阿萬 裕久, 天㟢 聡介
会議名: 第32回ソフトウェア工学の基礎ワークショップ(FOSE2025)
開催地: 愛媛県松山市
開催日: 2025/11/06 - 2025/11/08
p. 33-42
コードの流用,すなわちコードをコピーして別の箇所で再利用する行為は広く行われている.コードの流用は常に問題となるわけではない.実装の手段として良いコード片を様々なコードベースから取得することは広く行われており,最近では生成AIから出力されたコードの流用も行われている.本研究では,大学のJavaプログラミング演習における学生のソースコード流用行動を細粒度履歴データを用いて分析する.細粒度履歴データは授業中に収集された47万件を超えるコードスナップショットである.正規化およびハッシュ化を用いてスナップショット間差分からコードの流用と思われるスナップショットペアを検出する.流用元が(1)自己か他者か,(2)同一課題内か別課題か,の2軸4種類に分類し,その発生頻度や規模,時系列的な発生タイミングを詳細に調査した.分析の結果,最も頻繁に発生するのは「自己・同一課題」での流用であり,課題の初期段階や終了間際に多く見られた.また,流用されるコード行数の中央値は8行程度となっており,多くが比較的新しく作成されたものであるが,過去の課題から流用されているケースも確認された.