Некоторые книги по метрикам, которые, вероятно, есть в вашей библиотеке колледжа, включают метрики и метрики программного обеспечения и модели в разработке качества программного обеспечения . Эти 2 должны дать вам стартовое место. В промышленном мире очень немногие компании вообще имеют какую-либо программу измерения метрики.
У большинства компаний есть какой-то способ, не должна ли быть элегантная программа для измерения значимых показателей?
Visual Studio включает в себя некоторые инструменты анализа кода, которые помогут вам начать работу. Большинство компаний даже не имеют возможности измерить наихудший показатель: строки кода. «Просто сделай это», по-видимому, является подавляющей движущей силой в отрасли, и проблемы ремонтопригодности уделяются очень мало внимания проблемам менеджеров «получу ли я свой бонус в этом году?» и "будет ли это сделано в то время, как я обещал?" Даже с продуктами, которые из года в год переносятся с постепенными изменениями, эти две проблемы сводили на нет интересы разработчиков в отношении удобства обслуживания и обнаружения / предотвращения ошибок.
Какие показатели, единичные или комбинированные, помогают сузить объем и смету ваших проектов?
Я считаю, что цикломатическая сложность и связь являются сильными индикаторами того, насколько глючным или сложным будет поддерживать код. Если цикломатическая сложность составляет около 20, я нахожу, что это будет почти невозможно проверить (так как он будет иметь до 2 ^ 20 путей через код) и должен быть разложен на более мелкие части. Вы не можете устранить сложность, но вы можете разделить ее на более управляемые куски.
Если вы ищете оценку , вы, вероятно, хотите исследовать функциональные точки .
% Покрытия кода резко снижает каждую итерацию, предупреждаете ли вы своих разработчиков о проблеме
Я считаю, что большинство менеджеров заботятся о количестве проверок и количестве исправляемых ошибок. Мой нынешний менеджер против модульного тестирования (он считает, что это пустая трата времени), и мой предыдущий менеджер чувствовал, что время, потраченное на модульные тесты, было временем, которое следовало бы потратить на его написание.
Разработчики используют канонический аргумент: если вы что-то измеряете, это только то, что вы получите. Этот аргумент исходит из того, что единственной метрикой являются строки кода.