LOCは、lines of codeの略で、ソフトウェアの規模を表す指標のひとつ。ソースコードの行数を意味する。何の行数かを明確に示すため、SLOC (source lines of code) ということもある。

テキストファイルとしての行数を物理LOC (physical LOC) というが、これをそのまま使うことは少ない。空行(改行など空白だけの行)やコメント行(コメントと空白だけの行)は除く、2つの命令が書かれた行は2行と数える、括弧だけの行を除くなどの換算をした行数を論理LOC (logical LOC) といい、通常はこちらを使う。ただし、細かい規則にはさまざまな流儀がある。物理行数であればwc -lなど汎用の行数を数えるツールで、論理行数であれば汎用のテキスト処理ツールを利用するなどして、作業を自動化できる。

問題点

LOCには以下のような問題がある。

このような問題があるため、LOCでソフトウェアの実際の規模を測るのは難しい。そのため、LOCに変わる指標としてファンクションポイント法などが利用されてきている[1]。

簡単な例

1からnまでの和を計算するC++のプログラムを例に取る。次の標準的なソースコードのLOCは(物理LOC、論理LOCとも)3行である。

int s = 0;
for (int i = 1; i <= n; i++)
    s += i;

コメント行があっても論理LOCは同じ3行である。(物理LOCは4行である)

// 1からnまでの和
int s = 0;
for (int i = 1; i <= n; i++)
    s += i;

次のソースコードは論理LOCが4行だが、処理内容はまったく同じである。

int s = 0;
int i = 1;
for (i = 1; i <= n; i++)
    s += i;

次のソースコードは、同じ結果を出す非常に高速なアルゴリズムで、論理LOCは1行である。

int s = (n + 1) * n / 2;

実際の製品の例

How Many Lines of Code in Windows?, Knowing.NET, (December 06, 2005), http://www.knowing.net/PermaLink,guid,c4bdc793-bbcf-4fff-8167-3eb1f4f4ef99.aspx 2007年10月18日閲覧。  より。

年製品名100万SLOC
1993Windows NT 3.14-5
1994Windows NT 3.57-8
1996Windows NT 4.011-12
2000Windows 200029以上
2001Windows XP40
2003Windows Server 200350

関連項目

脚注

  1. ↑ ファンクションポイント法によるソフトウェア開発規模・工数見積の現状
⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS C40