Как LCOM может быть рациональным числом?
Я был занят с LCOM и плагином Metrics в Eclipse. В котором я должен вручную рассчитать отсутствие единства класса и сравнить его с результатом метрик. Но этот плагин возвращает LCOM 1/3. Как LCOM может быть рациональным числом?
Потому что мне сказали, что
P:= количество пар разнородных методов
а также
Q:= количество похожих пар методов.
А также
if P>Q
then LCOM = P - Q
otherwise LCOM = 0
Это уравнение правильно? или мой плагин работает неправильно?
1 ответ
Существует несколько метрик LCOM, которые можно использовать, поэтому я могу предположить, что вы не имеете в виду тот, который используется этим плагином. Например, это метрики, используемые ndepend, и оба являются рациональными числами:
- LCOM = 1 - сумма (MF) / M * F
- LCOM_HS = (M - сумма (MF) / F) (M-1)
Куда:
- M - количество методов (учитываются как статические методы, так и методы экземпляра, а также конструкторы);
- F - количество переменных экземпляра;
- MF - количество методов, обращающихся к конкретному полю экземпляра;
- Sum (MF) - это сумма MF для всех полей экземпляра класса.
(Источник: ndepend.com)