Отношение функциональных точек к kloc как метрика программного обеспечения ... метрика "Name That Tune"? - PullRequest
0 голосов
/ 28 октября 2008

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

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

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

Ответы [ 5 ]

4 голосов
/ 28 октября 2008

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

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

0 голосов
/ 28 октября 2008

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

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

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

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

0 голосов
/ 28 октября 2008

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

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

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

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

0 голосов
/ 28 октября 2008

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

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

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

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

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

0 голосов
/ 28 октября 2008

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

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

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

...