Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kratkaya_versia_2.docx
Скачиваний:
37
Добавлен:
19.09.2019
Размер:
1.12 Mб
Скачать

61. Объектно-ориентированные метрики: набор метрик Чидамбера и Кемерера

С. Чидамбер и К. Кемерер в 1994 г. предложили шесть проектных метрик, ориентированных на классы. Измерения и метрики для отдельного класса, иерархии классов и сотрудничества классов важны для разработчика ПО, который должен оценивать качество проекта, так как класс является фундаментальным элементом объектно-ориентированной системы. В набор метрик Чидамбера и Кемерера входят следующие метрики:

  1. взвешенные методы на класс (Weighted methods per class – WMC);

  2. высота дерева наследования (Depth of inheritance tree – DIT);

  3. количество детей (Number of children – NOC);

  4. сцепление между классами объектов (Coupling between object class – CBO);

  5. отклик для класса (Response for a class – RFC);

  6. недостаток связности в методах (Lack of cohesion in methods – LCOM).

Метрика WMC вычисляется по формуле:

,

где Ci – сложность i-го метода класса.

Для оценки сложности методов класса может применяться любая метрика сложности (например, цикломатическая сложность). Необходимо только нормализовать эту метрику так, чтобы номинальная сложность метода принимала значение 1.

Количество методов и их сложность являются индикатором затрат на реализацию и тестирование классов. Помимо этого, чем больше методов, тем сложнее дерево наследования. С ростом количества методов в классе его применение становится все более специфическим, те самым ограничивается возможность повторного использования. По этим причинам метрика WMC должна иметь разумно низкое значение.

На практике часто применяют упрощенную версию метрики: Ci полагают равной 1, а WMC определяют как количество методов в классе. При этом возможны два варианта подсчета количества методов в классе:

  1. подсчитываются только методы текущего класса, а унаследованные методы игнорируются;

  2. подсчитываются все методы класса (и определенные в классе и унаследованные).

Набор метрик Чидамбера-Кемерера является одной из первых работ по комплексной оценке качества объектно-ориентированного проектирования. Существует большое количество предложений по усовершенствованию и развитию данного набора.

Метрика ANAM ориентирована на принятые в объектно-ориентированном проектировании решения – применять простые операции с малым количеством аргументов, а несложные операции – с многочисленными аргументами.

Еще одним предложением является ввод метрики, симметричной метрике LCOM – нормализованной NLCOM, вычисление значения которой осуществляется по формуле:

Значения этой метрики лежат в диапазоне от 0 до 1 включительно. При этом чем ближе NLCOM к 1, тем выше связанность класса.

В наборе Чидамбера-Кемерера отсутствует метрика для прямого измерения информационной закрытости класса. В силу этого была предложена метрика Поведенческая закрытость информации (Behavioral Information Hiding – BIH):

62. Объектно-ориентированные метрики: набор метрик Лоренца и Кидда

Коллекция метрик Лоренца и Кидда является результатом практического и промышленного подхода к оценке объектно-ориентированных проектов. Все метрики данной коллекции делятся на три группы:

  • метрики, ориентированные на классы;

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

  • метрики для объектно-ориентированных проектов.

Метрики, ориентированные на классы, М. Лоренц и Д. Кидд подразделяют на четыре категории: метрики размера, метрики наследования, внутренние и внешние метрики.

Размерно-ориентированные метрики основаны на подсчете свойств и операций для отдельных классов, а также их средних значений для всей объектно-ориентированной системы. Метрики наследования акцентируют внимание на способе повторного использования операций в иерархии классов. Внутренние метрики классов рассматривают вопросы связности и кодирования. Внешние метрики исследуют сцепление и повторное использование.

Метрика 1: Размер класса (Class Size - CS) . Общий размер класса определяется с помощью следующих измерений:

  • общее количество операций (вместе с приватными и наследуемыми экземплярными операциями), которые инкапсулируются внутри класса;

  • количество свойств (вместе с приватными и наследуемыми экземплярными свойствами), которые инкапсулируются классом.

Метрика 2: Количество операций, переопределяемых подклассом (Number of operations overridden by a subclass – NOO). Переопределением операции называют случай, когда подкласс замещает операцию, унаследованную от суперкласса, своей собственной версией. Большие значения данной метрики обычно указывают на проблемы проектирования. Подкласс должен расширять операции суперкласса, что должно проявляться в виде новых имен операций. Если же значение метрики NOО велико, то разработчик нарушает абстракцию суперкласса, что ослабляет иерархию классов, усложняет тестирование и модификацию программного обеспечения. Рекомендуемое значение NOO ≤ 3 методов.

Метрика 3: Количество операций добавленных подклассом (Number of operations added by a subclass – NOA). Подклассы специализируются добавлением приватных операций и атрибутов. С ростом значений данной метрики подкласс удаляется от абстракции суперкласса. Обычно при увеличении высоты иерархии классов (увеличении DIT) должно уменьшаться значение NOA на нижних уровнях иерархии. Для рекомендуемых значений CS = 20 и DIT = 6 рекомендуемое значение NOA ≤ 4 методов (для класса-листа).

Операционно-ориентированная группа метрик предназначена для оценки операций в классах. Обычно методы имеют тенденцию быть небольшими как по размеру, так и по логической сложности. Тем не менее реальные характеристики операций могут быть полезны для глубокого понимания системы.

Значения метрик NSS, NKC, NSUB полезно накапливать как результат каждого выполненного проекта. Так формируется метрический базис фирмы, в который также включаются метрические значения по классами и операциям. Эти исторические данные могут использоваться для вычисления метрик производительности (среднее количество классов на разработчика или среднее количество методов на человеко-месяц). Совместное применение метрик позволяет оценивать затраты, продолжительность, персонал и другие характеристики текущего проекта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]