Количество строк кода: различия между версиями

'''Количество строк кода''' ({{lang-en|Source Lines of Code — SLOC}}) — это [[метрика программного обеспечения]], используемая для измерения его объёма с помощью подсчёта количества [[Строковый тип|строк]] в тексте [[исходный код|исходного кода]]. Как правило<ref>[http://www.softstarsystems.com/overview.htm Overview of COCOMO model]</ref><ref>[http://www.c2.com/cgi/wiki?LinesOfCode Lines Of Code on C2 wiki]</ref>, этот показатель используется для прогноза трудозатрат на разработку конкретной программы на конкретном языке программирования, либо для оценки [[производительность труда|производительности труда]] уже после того, как программа написана.
 
==
== Подсчёт количества строк кода ==
Традиционно считается, что имеет смысл сравнивать размеры проектов лишь с точностью до [[Порядок величины|порядка]]. Среди всего разнообразия методик вычисления данной метрики большинство источников выделяют два основных: подсчёт физических и логических строк<ref>[http://www.rusarticles.com/programmy-statya/metriki-koda-i-ix-prakticheskaya-realizaciya-v-subversion-i-clearcase-chast-1-metriki-603328.html Метрики Кода И Их Практическая Реализация В Subversion И Clearcase. Часть 1 — Метрики]</ref>.
 
Физическими строками считаются все непустые строки [[текстовые данные|текстового]] [[файл]]а. Пустые строки учитываются в том случае, если в некоторой секции их количество не превышает 25 %. В противном случае, пустые строки, превышающие количеством порог в 25 %, игнорируются.
 
Измеряя логические строки кода, предпринимается попытка посчитать количество собственно [[Оператор (программирование)|операторов]] в программе, но, разумеется, их определение зависит от конкретного языка программирования. Например, простейший способ посчитать количество логических строк кода в [[Си (язык программирования)|Си]]- и [[Паскаль (язык программирования)|Паскаль]]-подобных языках состоит в подсчёте числа [[точка с запятой|точек с запятой]], заканчивающих операторы.
 
Физические строки кода интуитивно понятнее и их проще считать. Однако, результаты подсчета существенным образом зависят от правил оформления и [[форматирование|форматирования]] исходного кода, чему логические строки кода подвержены в гораздо меньшей степени.
 
Рассмотрим следующий пример на Си:
 
<source lang="c">
for (i=0; i<100; ++i) printf("привет"); // Сколько здесь строк кода?
</source>
 
В данном случае у нас:
* 1 физическая строка кода
* 2 логические строки кода (Оператор [[цикл (программирование)|цикла]] for и оператор вызова функции [[printf]])
* 1 строка [[комментарии (программирование)|комментария]]
 
У другого программиста этот же участок кода, скорее всего, будет оформлен в несколько строк:
 
<source lang="c">
for (i=0; i<100; ++i)
{
printf("привет");
}
// Сколько здесь строк кода?
</source>
 
В данном примере у нас будет:
* 5 физических строк кода
* 2 логических строки кода
* 1 строка комментария
 
== История ==
Анонимный участник