Оценка метрик кода - PullRequest
       5

Оценка метрик кода

6 голосов
/ 03 декабря 2009

Было много дискуссий о метриках кода (например: Чем увлекаются метрики кода? ). Я (как разработчик программного обеспечения) действительно интересуюсь этими метриками, потому что я думаю, что они могут помочь написать лучший код. По крайней мере, они полезны, когда речь идет о поиске областей кода, требующих рефакторинга.

Однако я хотел бы знать следующее. Существуют ли некоторые оценки этих метрик исходного кода, которые доказывают, что они действительно коррелируют с частотой ошибок или ремонтопригодностью метода. Например: действительно ли методы с очень высокой цикломатической сложностью вносят больше ошибок, чем методы с низкой сложностью? Или методам с высоким уровнем сложности (Холстеду) действительно нужно гораздо больше средств для их поддержания, чем методам с низким уровнем?

Может быть, кто-то знает о каких-то надежных исследованиях в этой области.

Большое спасибо!

Ответы [ 5 ]

2 голосов
/ 03 декабря 2009

Хороший вопрос, нет прямого ответа.

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

Я нашел следующее: http://www.pitt.edu/~ckemerer/CK%20research%20papers/CyclomaticComplexityDensity_GillKemerer91.pdf. Хотя это показывает связь между цикломатической сложностью и производительностью. Однако в нем есть несколько ссылок на другие статьи, и стоит попробовать их погуглить.

1 голос
/ 16 декабря 2009

Наконец я нашел несколько статей о корреляции между метриками программного обеспечения и частотой ошибок, но ни одна из них не была действительно тем, что я искал. Большинство работ устарели (конец 80-х или начало 90-х годов).

Я думаю, что было бы неплохо начать анализ текущего программного обеспечения. По моему мнению, должно быть возможно исследовать некоторые популярные системы с открытым исходным кодом. Исходный код доступен, и (что я считаю гораздо более важным) во многих проектах используются системы отслеживания ошибок и какая-то система контроля версий. Вероятно, можно было бы найти надежную связь между журналом систем контроля версий и системой отслеживания проблем. Это привело бы к очень интересной возможности анализа связи между некоторыми показателями программного обеспечения и частотой появления ошибок.

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

1 голос
/ 03 декабря 2009

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

0 голосов
/ 10 сентября 2014

Мы провели эмпирическое исследование о возможностях предсказания ошибок известных объектно-ориентированных метрик Чидамбера и Кемерера. Оказалось, что эти метрики вместе могут прогнозировать ошибки с точностью выше 80%, когда мы применяем правильные модели машинного обучения. Если вы заинтересованы, вы можете подготовить полное исследование в следующей статье:

"Эмпирическая проверка объектно-ориентированных метрик на программном обеспечении с открытым исходным кодом для прогнозирования ошибок. В IEEE Transactions по программной инженерии, том 31, № 10, октябрь 2005 года, страницы 897-910."

...