CK метрики из проекта C # с Ndepend - PullRequest
0 голосов
/ 20 декабря 2010

У меня есть проект для школы. Теперь мне нужно сделать из него отчет обо всех метриках CK (метрика Чидамбера Кемерера). Отчет должен быть похож на таблицу всех этих метрик. Вопрос в том, как сделать из Ndepend этот отчет, который он генерирует, это не то, что я ищу.

Пожалуйста, помогите и скажите, как это сделать ... может быть, некоторые советы, документы или что-то очень важное ...

Ответы [ 2 ]

0 голосов
/ 24 марта 2014

Есть ли в NQL прямой способ измерения RFC (RFT)?Или мы должны написать CQL-запрос для рекурсивного подсчета вызванных методов в используемых классах (типах) самих себя?Если да, то как это выглядит?

0 голосов
/ 21 декабря 2010

Хорошо, поэтому, если мы говорим о , эти метрики Chidamber Kemerer , NDepend возможность писать запросов кода и правил по запросам LINQ (CQLinq) будутответить на все ваши потребности.Например:

WMC Взвешенные методы для класса

warnif count > 0 
from t in Application.Types
let methods = t.Methods
   .Where(m => !m.IsPropertyGetter && 
               !m.IsPropertySetter &&
               !m.IsConstructor)
where methods.Count() > 20
orderby methods.Count() descending
select new { t, methods }

DIT Глубина дерева наследования

warnif count > 0 
from t in JustMyCode.Types 
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()
where baseClasses.Count() >= 5
select new { t, baseClasses, 
                // The metric value DepthOfInheritance takes account
                // of third-party base classes
                t.DepthOfInheritance 
}

NOC Число детей

from t in Types 
where t.IsClass
let childClasses = t.DerivedTypes
where childClasses.Count() > 0
orderby childClasses.Count() descending 
select new { t, childClasses }

CBO Связь между классами объектов

from t in Application.Types 
let typesUsed = t.TypesUsed.ExceptThirdParty()
orderby typesUsed.Count() descending 
select new { t, typesUsed }

и т. Д. ...

...