2014-11-04 5 views
2

Я провел анализ кода на моем решении с помощью Visual Studio 2012 и NDependли значение сложности цикломатического показано Visual Studio ILCyclomatic сложности

Для метода Methoda Visual Studio показывает сложность, как 105 и NDepend показывает, как 12. Однако сложность ILCyclomatic в NDepend равна 112. Означает ли это, что сложность, проявляемая Visual studio, является сложностью ILCyclomatic или есть какие-либо изменения конфигурации. также какой из них я доверяю :(

+0

Да, он анализирует IL, а не источник C#. (См. Комментарий [здесь] (http://msdn.microsoft.com/en-us/library/bb385914.aspx) в разделе «Линии кода») –

+0

@MatthewWatson. oh тогда это значение не может быть использовано для определения усилий по техническому обслуживанию для устройства справа –

+0

Да - и вы определенно заметите некоторые трудности с кодом, который имеет, например, большой оператор switch. –

ответ

2

Смотрите NDepend Исходный код цикломатическая Сложность (CC) определение here

См определение CC NDepend IL here. Visual Studio CC примерно одинаковой (на основе IL кода)

Какой из них заслуживает доверия? Исходный код CC, если он доступен, поскольку IL CC (как VS, так и NDepend) предвзяты к популярным (но сложным) конструкциям кода, включая запросы LINQ, перечислитель, лямбда-выражение, анонимные методы и типы ...

Con cerning NDepend, исходный код CC доступен, если во время анализа у вас есть файлы PDB и файлы исходного кода C#. Подробнее об этом here.

+0

спасибо за ответ. Как вы сказали, когда динамические объекты разыменованы, обнаруживается сложность в Visual Studio –