Попробуйте инструмент NDepend.Он интегрирован в VS 2012, 2010, 2008 и поставляется с 82 метриками кода, перечисленными здесь: http://www.ndepend.com/Metrics.aspx
Инструмент поставляется с набором из примерно 200 предопределенных (и настраиваемых) правил кода, определенных в LINQ.запросы , некоторые из которых основаны на этих метриках кода, например:
// <Name>Methods too complex</Name>
warnif count > 0 from m in JustMyCode.Methods where
m.CyclomaticComplexity > 20 ||
m.ILCyclomaticComplexity > 40 ||
m.ILNestingDepth > 5
orderby m.CyclomaticComplexity descending,
m.ILCyclomaticComplexity descending,
m.ILNestingDepth descending
select new { m, m.CyclomaticComplexity,
m.ILCyclomaticComplexity,
m.ILNestingDepth }
Инструмент может быть настроен так, чтобы проверять правила каждый раз, когда разработчик перекомпилирует проект илирешение.И действительно, красный / желтый / зеленый светофор используется для указания того, были ли нарушены некоторые правила (правило нарушено => желтый, критические правила нарушены => красный):
![enter image description here](https://i.stack.imgur.com/tRytH.png)