Anotācija




НазваниеAnotācija
страница8/19
Дата публикации13.07.2013
Размер1.03 Mb.
ТипДокументы
exam-ans.ru > Информатика > Документы
1   ...   4   5   6   7   8   9   10   11   ...   19
^

Метрики Чидамбера и Кемерера


Данный класс метрик применяется для оценки качества как одного класса, так и для оценки качества классовой структуры объектно-ориентированной программной системы в целом. Ниже приведены описания расчёта показателей метрик, а также критерии оценки, введённые для каждой метрики [17].

  • WMC – Weighted Methods per Class – Взвешенные методы на класс. Подсчитывается количество методов в классе (с1, с2, с3,...,сn) , а также сложность каждого метода – сi (например, цикломатическая сложность). Если при расчёте учитывается сложность каждого метода, то метрика оценивает качество класса с помощью численного показателя сложности – он должен быть разумно низким. Часто используют упрощённый способ расчёта, в таком случае расчитывается просто количество методов класса, чем меньше методов содержит класс, тем выше его оценка качества. Формула для расчёта WMC имеет следующий вид:



  • DIT – Depth of Inheritance Tree – Высота дерева наследования. Рассматривается дерево наследования иерархии классов рассматриваемой программной системы. Значением метрики для класса будет будет длина максимального пути от данного класса до корневого класса в иерархии классов. Оценивая класс с помощью этой метрики необходимо найти некоторую «золотую середину», так как, с одной стороны, её большое значение указывает на высокую сложность проекта (всвязи с использованием большого количества классов и методов). С другой стороны, большое значение DIT подразумевает, что многие методы могут использоваться многократно, что является хорошим показателем.

  • NOC – Number Of Children – Количество детей. Для класса значением этой метрики будет количество непосредственных классов-наследников рассматриваемого класса. С увеличением количества наследников возрастает многократность использования методов и свойств классов, что является хорошей характеристикой, но при этом возникает риск неправильного использования некоторых классов-наследников. Поэтому величина NOC должна быть разумно низкой.

  • CBO – Coupling Between Object Classes – Сцепление между классами объектов. Расчитывается как количество классов, с которыми соединён рассматриваемый класс. Соединение образуется в результате вызова рассматриваемым классом метода или свойства другого класса. Низкая величина сцепления для класса более предпочтительна, так как большое количество сцеплений влияет на чувствительность всего проекта к любым изменениям: изменение в одном модуле может вести к необходимости изменений во многих других модулях, все необходимые изменения трудно отследить. Это влечёт за собой увеличение количества ошибок при тестировании.

  • RFC – Response For a Class – Отклик для класса. При расчёте показателя для класса используется количество собственных методов класса, а также количество методов, которые могут быть вызваны из рассматриваемого класса. Большое значение показателя RFC свидетельствует о высокой сложности класса, что негативно сказывается на процессе тестирования и отладки.

  • LCOM – Lack of Cohesion in Methods – Недостаток связности в методах. Значение метрики показывает, насколько в классе количество пар методов, не связанных по свойствам класса, преобладает над количеством пар методов, связанных по свойствам класса. Высокая связность класса по методам является хорошей характеристикой, так как это содействует инкапсуляции. Следовательно, высокое значение LCOM напротив говорит о низкой связности, поэтому высокое значение LCOM необходимо понижать.
    1. ^

      Метрики Лоренца и Кидда


В этом разделе рассмотрен расчёт показателей некоторых метрик набора, предложенного М. Лоренцом и Д. Киддом, а также используемые критерии оценки [17].

  • CS – Class Size – Размер класса. Измеряется с помощью подсчёта общего количества операций и свойств (включая приватные и наследуемые экземплярные операции и свойства), инкапсулированных внутри класса. Чем больше размер класса, тем меньше возможность его повторного использования. Также усложняется реализация и тестирование класса. Поэтому значение CS должно быть разумно низким.

  • NOO – Number of Operations Overriden by a Subclass – Количество операций, переопределённых подклассом. Класс-наследник при создании наследует операции класса родителя. Какие-то из операций класса-родителя могут быть переопределены классом-наследником. Значение метрики показывает, сколько операций было переопределено классом-наследником. С увеличением уровня в иерархии наследования, на котором находится рассматриваемый класс, значение NOO должно уменьшаться.

  • SI – Specialization Index – Индекс специализации. Оценивает степень специализации каждого подкласса. Понятие «специализация класса» означает количество добавлений, удалений и переопределений операций. Степень специализации расчитывается с помощью отношения количества добавлений, удалений и переопределений операций класса к общему количеству методов в классе. Значение SI следует уменьшать, так как высокий показатель говорит о нарушении на каком-то уровне (уровнях) абстракции суперкласса.

  • OSAVG – Average Operation Size – Средний размер операции. Расчитывается как количество строк программы либо как количество сообщений, посланных операцией. Слишком большое значение метрики означает не очень удачное размещение обязанностей в классе.

  • OC – Operation Complexity – Сложность операции. Вычисляется путём суммирования составляющих операции, помноженных на весовой коэффициент (взависимости от вида составляющей). Виды операций и соответствующие им весовые коэффициенты представлены в таблице 4.1.

Таблица 4.1

Компоненты операций и веса

Составляющая операции

Весовой коэффициент

Вызовы функций API

5.0

Присваивания

0.5

Арифметические операции

2.0

Сообщения с параметрами

3.0

Вложенные выражения

0.5

Параметры

0.3

Простые вызовы

7.0

Временные переменные

0.5

Сообщения без параметров

1.0

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

  • NPAVG – Average Number of Parameters per Operation – Среднее количество параметров на операцию. Не должно быть большим, так как иначе усложняется сотрудничество между объектами.
1   ...   4   5   6   7   8   9   10   11   ...   19

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
exam-ans.ru
<..на главную