
355
変更とは何か
?
表
21-1
に、各プロジェクトについて、開発期間の長さ、ソースコード表現に使用されている主要言語、
モジュール数(モジュールの定義については後述)、コード行数、変更数(変更の定義については後述)
を示します。変更数については、私たちが研究のために分析した変更のみを数えました。
表
21-1
私たちが分析した
3
つのシステムの概要
プロジェクト 初回リリース 主言語 モジュール
SLOC
概数
†
変更
Evolution December 2001 C 43
300,000
1,939
Firefox November 2004 C++ 45
4,000,000
11,710
Mylyn November 2006 Java 18
675,000
3,055
解析対象のシステムを理解する上でまず役に立つのは統計による集約データですが、それは物語のほ
んの一部でしかないというのが実際です。特に、このような統計はシステムのアーカイブを静的なもの
として扱い、開発者たちが時間の経過につれてどんな風にシステムを変更していくか、というダイナミ
クスを隠してしまいます。システム開発のようすをよりよく比較するため、私たちはシステムが変更さ
れる頻度も調べました。
変更の頻度は、それぞれのシステムに対して
1
日に修正されたコード行数を調べることで特徴付けら
れます。図
21-1
に、時間経過に伴う各プロジェクトの活動のようすを示します。グラフ中の各点は、
プロジェクトのコードリポジトリ内に記録されたデータの
1
日分に対応します。各点の縦軸方向の高さ ...