1. Пропорция переопределения методов в подклассе (pom)

Пропорция переопределения методов в подклассе (Proportion of Overridden Methods in Class-POM). Эта метрика вычисляется как отношение:

POM= число переопределенных методов подкласса / общее число методов подкласса

Эта метрика, как дополнение к метрике NMO, позволяется сравнивать абстрактность программ разного размера. Например, одну и ту же программу, но на разных этапах ее разработки

    1. Число свойств (атрибутов или переменных) в классе(NAA)

Число свойств (атрибутов или переменных) в классе (The total number of available attributes (NAA)) - длина списка свойств вершины в промежуточной модели наследования. Считается, что нулевое значение метрики показывает, что программа не является хорошо продуманной ОО программой

    1. Число унаследованных свойств (атрибутов или переменных) в классе (NIV)

Число унаследованных свойств (The number of inherited variables - NIV) - Число дуг в промежуточной модели наследования со значением наследование свойства атрибута тип, входящих в вершину.

    1. Использование глобалов (GUS)

Использование глобальных переменных (Global Usage - GUS). При вычислении этой метрики подсчитывается количество глобальных переменных, в том числе глобальных переменных для всей системы, а также количество переменных класса, глобальных для этого класса.

Ситуация с использованием глобальных переменных в программах на языке C++ часто возникает, если эти программы используют старые программы написанные на языке С. Метрика GUS позволяет выявить такие зависимости.

    1. Излишняя взаимосвязь через глобалы (UCGU)

Излишняя взаимосвязь через глобальные переменные (Unnesessary Coupling through Global Usage - UCGU). При вычислении этой метрики подсчитывается сколько раз глобальные переменные, определенные метрикойGUS, были использованы.

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

    1. Степень взаимосвязи между классами (dcbo)

Степень взаимосвязи между классами (Degree of Coupling between Classes - DCBO). Эта метрика используется как дополнение к метрикеDCO. МетрикаDCOподсчитывает количество классов, с которыми данный класс разделяет атрибуты и методы. МетрикаDCBOподсчитывает только методы данного класса, используемые из других классов. Если методы данного класса никому не нужны, тоDCBO=0.

    1. Количество скрытых методов экземпляра (PrIm)

Количество скрытых (private) методов экземпляра (Number of Private Instance Methods -PrIM) позволяет степень скрытия информации классом.

    1. Мера Мак-Клура (mmk)

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

Тестирующей мерой М называется мера сложности, удовлетворяющая следующим условиям:

1.Мера сложности простого оператора равна 1; 2.М ({F1; F2; ┘;Fn}) = еin M(Fi); 3.М (IF P THEN F1 ELSE F2) = 2 MAX (M (F1), M (F2)); 4. М (WHILE P DO F) = 2 M(F).

Мера возрастает с глубиной вложенности и учитывает протяженность программы. К тестирующей мере близко примыкает мера на основе регулярных вложений. Идея этой меры сложности программ состоит в подсчете суммарного числа символов (операндов, операторов, скобок) в регулярном выражении с минимально необходимым числом скобок, описывающим управляющий граф программы. Все меры этой группы чувствительны к вложенности управляющих конструкций и к протяженности программы. Однако возрастает уровень трудоемкости вычислений.