Меня в основном интересуют тематические исследования по метрикам кода, связывающим читаемость кода с уменьшением дефектов, которые оправдывают серьезное отношение к цикломатической сложности или какой-либо подобной метрике. В Википедии есть такой пример:
В ряде исследований изучалась корреляция цикломатической сложности с количеством дефектов, содержащихся в модуле. Большинство таких исследований обнаруживают сильную положительную корреляцию между цикломатической сложностью и дефектами: модули, которые имеют наивысшую сложность, как правило, также содержат наибольшее количество дефектов. Например, в исследовании 2008 года, проведенном поставщиком программного обеспечения для мониторинга показателей Enerjy, были проанализированы классы приложений Java с открытым исходным кодом и разделены на два набора в зависимости от того, насколько часто в них обнаруживаются ошибки. Они обнаружили сильную корреляцию между цикломатической сложностью и их неисправностью: классы с комбинированной сложностью 11 имеют вероятность быть подверженными сбоям всего 0,28, повышаясь до 0,98 для классов со сложностью 74.
Это хорошо, но я надеюсь узнать, есть ли еще исследования (или, возможно, аналогичные исследования для других показателей, таких как SLOC).
Я также нашел статью на сайте IBM, который способствует мониторингу значений CC, но не имеет поддержки тематических исследований, показывающих показатели рентабельности инвестиций. Затем есть статья Coding Horror о "коде стрелки" который размещает краткое изложение тематического исследования, но не предлагает ни самих тематических исследований, ни фактических цифр, обосновывающих вывод:
Исследования показывают корреляцию между цикломатической сложностью программы и частотой ее ошибок. Низкая цикломатическая сложность способствует пониманию программы и указывает на то, что она поддается модификации с меньшим риском, чем более сложная программа. Цикломатическая сложность модуля также является сильным показателем его тестируемости.
Конечно, цикломатическая сложность (CC) поможет определить стрелочный код, но мне все еще нужны тематические исследования, которые показывают значения ROI. Например, «организация X включила максимум 10 CC для методов / функций и уменьшила количество дефектов на 20% в следующей итерации разработки».
Без таких данных трудно привлечь внимание руководства. Может ли кто-нибудь указать мне на несколько серьезных исследований? Даже один мог бы помочь ...