Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПрИС.docx
Скачиваний:
12
Добавлен:
06.08.2019
Размер:
429.23 Кб
Скачать

37. Оо Метрики: Набор метрик Чидамбера и Кемерера

Метрика 1: Взвешенные методы на класс (Weighted Methods Per Class)

Пусть в классе C определены n методов со сложностью c1, c2, c3, …, cn

WMC = ∑ ci

В упрощенной версии метрики полагают ci=1, тогда WMC – количество методов в классе.

Метрика 2: Высота дерева наследования DIT (Depth of Inheritance Tree)

Максимальная длина листа от корня дерева.

Метрика 3: Количество детей NOC (Number of children)

Совпадает с количеством непосредственных наследников класса.

Оптимальное значение 7 по ширине и по высоте для дерева.

Метрика 4: Сцепление между классами объектов CBO (Coupling between object classes)

Количество сотрудничеств, предусмотренных для класса.

Метрика 5: Отклик для класса RFC (Response For a Class)

Количество методов класса + количество методов других классов, вызываемых из данного класса.

Метрика 6: Недостаток связности в методах LCOM (Lack of Cohesion in Methods)

Эта метрика показывает, насколько методы несвязанны друг с другом через свойства.

Не связаны – количество пар методов без общих экземпляров переменных;

Связаны – количество пар методов с общими экземплярными переменными.

Ij – набор экземплярных переменных, используемых методом Mj

Очевидно, что НЕ СВЯЗАНЫ=card{Iij|IiпересечениеIj=0}

СВЯЗАНЫ= card{Iij|IiпересечениеIj<>0}

Недостаток связности в методах

LCOM=не связаны-связаны, если (не связаны>связаны) и 0, в противном случае

Связность методов внутри класса должна быть высокой, т.к. …. Но это увеличивает сложность, в том числе, и при проектировании.

 

38.               ОО Метрики: метрик Лоренца и Кидда

Метрики, ориентированные на классы

Все метрик разделены на 4 категории

  1. Размер класса CS (Class Size)

Общий размер класса определяется: 1. Общее количество операций, которые инкапсулируются внутри класса; 2. Количество свойств, которые инкапсулируются внутри класса.

Большое значение указывает на то, что у класса есть много обязанностей, т.е. требуется перепроектировать. Рекомендуемое значение CS<=20 методов.

  1. Количество операцийпереопределяемых подклассом, NOO (Number of Operations Overridden by a Subclass)

Рекомендуемое значение NOO<=3 методов.

  1. Количество операцийдобавленных подклассом, NOA (Number of Operations Added by a Subclass)

Значение этой характеристики должно уменьшаться. Для рекомендуемых значений SC = 20 и DIT=6 рекомендуемое значение NOA<4 методов.

  1. Индекс специализации SI (Specialization Index)

SI = (NOO*уровень)/Mобщ

Уровень – номер уровня в иерархии

Mобщ – количество методов в классе.

Рекомендуемое значение SI<=0,15

Операционно-ориентированные метрики

  1. Средний размер операции OSAVG (Average Operation Size)

Рекомендуемое значение OSAVG<=9

  1. Сложность операции OC (Operation Complexity)

Весовые коэффициенты для метрики ОС (см. таблицу).

Рекомендуемое значение OC<=65

  1. Среднее количество параметров на операцию NPAVG

Рекомендуемое значение =0,7