Отношение точки функции к kloc как метрика программного обеспечения & # 8230; the Name Tune & # 8221; Метрика?

StackOverflow https://stackoverflow.com/questions/243971

  •  04-07-2019
  •  | 
  •  

Вопрос

Что вы думаете об использовании метрики функции, указывающей на строки кода в качестве метрики?

Это заставляет меня задуматься о старом игровом шоу "Name That Tune". "Я могу назвать эту мелодию в трех нотах!" Я могу написать эту функциональность в 0,1 Kloc! Это полезно?

Может показаться, что это способствует использованию библиотеки, но вы этого хотите?

Это было полезно?

Решение

Я думаю, что это ужасная идея. Так же плохо, как платить программистам строками кода, которые они пишут.

В целом, я предпочитаю сжатый код подробному коду, но только до тех пор, пока он четко выражает намерение программистов. Максимизация функциональных точек на kloc побудит каждого писать свой код настолько кратко, насколько это возможно, что выходит за рамки краткого и загадочного. Это также побудит людей объединять смежные строки кода в одну строку, даже если указанное объединение не было бы желательным, просто чтобы уменьшить количество строк кода. Максимально допустимая длина строки также может стать проблемой.

Другие советы

KLOC допустим, если вы строго соблюдаете стандарты кода, например, использование требований к страницам для отчета: не помещайте пять операторов в одну строку или удаляйте большую часть пробела из кода.

Полагаю, одним из способов определить, насколько эффективно для вашей среды является просмотр нескольких различных приложений и модулей, получить приблизительную оценку качества кода и сравнить его с размером кода. Если вы можете продемонстрировать, что качество кода соответствует вашей организации, то KLOC - неплохой показатель.

В некотором смысле вы столкнетесь с той же битвой с любым подобным показателем. Если вы подсчитываете функциональные или функциональные точки или просто функции или модули, вы все равно захотите взвесить их каким-то образом. В конечном итоге вам понадобится какое-то субъективное дополнение к объективным данным, которые вы будете собирать.

" что вы думаете об использовании метрики функции, указывающей на строки кода в качестве метрики? "

Не понимаю вопрос. Вышеуказанное соотношение - для данного языка и команды - простой статистический факт. И оно стремится к среднему значению с небольшим стандартным отклонением.

Существует множество степеней свободы: как вы подсчитываете функциональные баллы, какой язык вы используете, насколько (коллективно) умна команда. Если вы не измените эти значения, значение останется неизменным.

После нескольких совместных проектов у вас есть все основания ожидать, что 1200 функциональных точек будут представлять собой 12 000 строк кода в предпочитаемой вами организации языка / фреймворка / команды.

KSloc / FP - голое статистическое наблюдение. Очевидно, что-то еще беспокоит вас. Не могли бы вы быть более конкретным в своем вопросе?

Метрика функциональных точек на строки кода фактически используется для генерации диаграмм языкового уровня (на самом деле это функциональные точки на операторы), чтобы дать приблизительное представление о том, насколько мощный язык программирования. Вот пример: http://web.cecs.pdx.edu/ ~ Тимм / дм / functionpoints.html

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

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

Лично я хотел бы видеть отношение метрики точки функции к ABC - поскольку мне любопытно, как метрика ABC (которая указывает размер и включает сложность как часть информации) будет относиться - возможно, линейная, возможно, экспоненциальная и т. д. ... www.softwarerenovation.com/ABCMetric.pdf

Все метрики отстой. Моя теория всегда заключалась в том, что если у вас есть , чтобы иметь их, то используйте самое простое, что вы можете, чтобы собрать их и покончить с этим и на важные вещи.

Это обычно означает что-то вроде

grep -c ";" *.h *.cpp | awk -F: '/:/ {x += $2} END {print x}'

Если вы ищете " метрику " отслеживать эффективность кода, не надо. Если вы настаиваете, попробуйте что-нибудь глупое, но простое, например, размер исходного файла (см. Команду grep выше, без канала awk) или McCabe (с программой-счетчиком).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top