LOC 【Lines Of Code】 SLOC / Source Lines Of Code / コード行数
概要
LOC(Lines Of Code)とは、コンピュータプログラムの規模を表す指標の一つで、プログラミング言語で書かれたソースコードの行数のこと。大規模なプログラムでは1000行を「KLOC」(kilo-LOC)、100万行を「MLOC」(Mega-LOC)のように補助単位をつけて表現することもある。一般的なソフトウェア開発工程では人間がプログラミング言語でテキスト(文字)形式のソースコードを記述し、これをコンパイラやインタプリタなどが解釈して、コンピュータで動作する機械語などで書かれたオブジェクトコード(ネイティブコード)に変換する。
LOCはソースコード中の改行文字を数え、何行で構成されているかを表す。編集画面の表示上の折返しなどは表示環境によって異なるため考慮せず、行頭から改行文字までを同じ行とみなす。単純にプログラムの行数自体を計測したものを「物理LOC」(physical LOC)という。
一般的なプログラムには読みやすさなどのために空行など処理上は意味のなさない行が大量に含まれる。空行、コメントのみの行、括弧のみの行など機械的に判別できるものを除外して、機械語のコードに反映される内容が記述された行だけを数えたものを「論理LOC」(logical LOC)という。単にLOCといった場合は論理LOCを指すことが多い。
行数の変動要因
多くのプログラミング言語では同じ処理にも様々な表記法が用意されており、記述の仕方にもある程度の自由度がある。まったく同じ処理内容のプログラムでも書き手によってLOCが大きく異なる場合がある。熟練者ほどコンパクトに、非熟練者ほど冗長になる傾向がある。
実装する機能が同じでも、利用する外部のライブラリや選択するアルゴリズムなどによってもコード規模は変わる。同じ処理でもプログラミング言語によって必要な記述量は大きく違うことが多く、異なる言語間の単純比較はできない。
LOCによる評価
開発規模や発注金額の見積もり、開発者の業績評価などの指標の一つとしてLOCを用いる手法を「LOC法」というが、一般的にはコードをコンパクトにまとめるよりは冗長に記述する方が楽なため、コードが水増しされ品質も下がりがちになるという問題がある。
とは言え、極端に短い記述を目指せば特殊な記法やトリッキーなテクニック、場当たり的で汎用性の低いアルゴリズムが多用され、コードの見通しが悪くなり、可読性や保守性、拡張性が低下しかねないため、同じ機能ならLOCが少ないほど良いとも言えないジレンマがある。
このような問題を避けるため、ファンクションポイント法などプログラムの記述の仕方の影響を受けにくい計測手法も考案されている。高度な計測手法はLOCより測定や見積もりに手間がかかるという難点もあるため、現在も簡易なコード規模の尺度としてLOCが使われ続けている。