Количество строк кода


Количество строк кода (англ. Source Lines of Code — SLOC) — метрика программного обеспечения, используемая для измерения его объёма с помощью подсчёта количества строк в тексте исходного кода. Как правило[1][2], этот показатель используется для прогноза трудозатрат на разработку конкретной программы на конкретном языке программирования, либо для оценки производительности труда уже после того, как программа написана.

Традиционно считается, что имеет смысл сравнивать размеры проектов лишь с точностью до порядка. Среди всего разнообразия методик вычисления данной метрики большинство источников выделяют два основных: подсчёт физических и логических строк[3].

Физическими строками считаются все непустые строки текстового файла. Пустые строки учитываются в том случае, если в некоторой секции их количество не превышает 25 %. В противном случае, пустые строки, превышающие количеством порог в 25 %, игнорируются.

Измеряя логические строки кода, предпринимается попытка посчитать количество собственно операторов в программе, но, разумеется, их определение зависит от конкретного языка программирования. Например, простейший способ посчитать количество логических строк кода в Си- и Паскаль-подобных языках состоит в подсчёте числа точек с запятой, заканчивающих операторы.

Физические строки кода интуитивно понятнее и их проще считать. Однако, результаты подсчета существенным образом зависят от правил оформления и форматирования исходного кода, чему логические строки кода подвержены в гораздо меньшей степени.

Считается, что идея использовать строки кода в качестве метрики объёма компьютерных программ восходит к 50-м годам XX века, когда наиболее часто используемыми языками были Фортран, Ассемблер и Кобол. Основным механизмом ввода программ в компьютер были перфокарты и перфолента, причем на одной карте (одном кадре перфоленты) кодировалась одна строка кода. Будучи объектом физического мира, они (перфокарты/кадры перфоленты, а, следовательно, и строки кода) легко поддавались пересчёту. Кроме того, пачка перфокарт, составляющая программу, обладала вполне видимым объёмом, по которому менеджеры могли судить о производительности труда программистов.