Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Набор метрик Фернандо Абреу




 

Набор метрик MOOD (Metrics for Object Oriented Design), предложенный Ф. Абреу в 1994 году, — другой пример академического подхода к оценке качества ОО-проектирования [6]. Основными целями MOOD-набора являются:

1) покрытие базовых механизмов объектно-ориентированной парадигмы, таких как инкапсуляция, наследование, полиморфизм, посылка сообщений;

2) формальное определение метрик, позволяющее избежать субъективности измерения;

3) независимость от размера оцениваемого программного продукта;

4) независимость от языка программирования, на котором написан оцениваемый продукт.

Набор MOOD включает в себя следующие метрики:

1) фактор закрытости метода (МНF);

2) фактор закрытости свойства (AHF);

3) фактор наследования метода (MIF);

4) фактор наследования свойства (AIF);

5) фактор полиморфизма (POF);

6) фактор сцепления (СОF).

Каждая из этих метрик относится к основному механизму объектно-ориентированной парадигмы: инкапсуляции (МНF и АНF), наследованию (MIF и AIF), полиморфизму (POF) и посылке сообщений (СОF). В определениях MOOD не используются специфические конструкции языков программирования.

Метрика 1: Фактор закрытости метода MHF (Method Hiding Factor)

Введем обозначения:

q Мv i) — количество видимых методов в классе С i (интерфейс класса);

q М hi) — количество скрытых методов в классе С i (реализация класса);

q М di) = Мv i) + М hi) — общее количество методов, определенных в классе С, (унаследованные методы не учитываются).

Тогда формула метрики МНF примет вид:

,

где ТС — количество классов в системе.

Если видимость т-го метода i -го класса из j -го класса вычислять по выражению:

,

a процентное количество классов, которые видят m -йметод i -го класса, определять по соотношению:

то формулу метрики МНF можнопредставить в виде:

.

В числителе этой формулы МНF — сумма закрытости всех методов во всех классах. Закрытость метода — процентное количество классов, из которых данный метод невидим. Знаменатель МНF — общее количество методов, определенных в рассматриваемой системе.

С увеличением МНF уменьшаются плотность дефектов в системе и затраты на их устранение. Обычно разработка класса представляет собой пошаговый процесс, при котором к классу добавляется все больше и больше деталей (скрытых методов). Такая схема разработки способствует возрастанию как значения МНF, так и качества класса.

Метрика 2: Фактор закрытости свойства AHF (Attribute Hiding Factor)

 

Введем обозначения:

q Аv i) — количество видимых свойств в классе С i (интерфейс класса);

q Ah (Ci) — количество скрытых свойств в классе С i (реализация класса);

q Ad (Ci) = Аv i) + Ah (Ci) — общее количество свойств, определенных в классе С i (унаследованные свойства не учитываются).

Тогда формула метрики AHF примет вид:

,

где ТС — количество классов в системе.

Если видимость т- го свойства i -го класса из j -ro класса вычислять по выражению:

,

а процентное количество классов, которые видят т -есвойство i -ro класса, определять по соотношению:

,

то формулу метрики AHF можно представить в виде:

.

В числителе этой формулы AHF — сумма закрытости всех свойств во всех классах. Закрытость свойства — процентное количество классов, из которых данное свойство невидимо. Знаменатель AHF — общее количество свойств, определенных в рассматриваемой системе.

В идеальном случае все свойства должны быть скрыты и доступны только для методов соответствующего класса (AHF = 100%).

Метрика 3: Фактор наследования метода MIF (Method Inheritance Factor)

 

Введем обозначения:

q M ii) — количество унаследованных и не переопределенных методов в классе С i;

q M 0i) — количество унаследованных и переопределенных методов в классе С i;

q M ni) — количество новых (не унаследованных и переопределенных) методов в классе С i;

q M di) = M ni) + M 0i) — количество методов, определенных в классе С i;

q M ai) = M di) + M ii) — общее количество методов, доступных в классе С i.

Тогда формула метрики MIF примет вид:

.

Числителем MIF является сумма унаследованных (и не переопределенных) методов во всех классах рассматриваемой системы. Знаменатель MIF — это общее количество доступных методов (локально определенных и унаследованных) для всех классов.

Значение MIF = 0 указывает, что в системе отсутствует эффективное наследование, например, все унаследованные методы переопределены.

С увеличением MIF уменьшаются плотность дефектов и затраты на исправление ошибок. Очень большие значения MIF (70-80%) приводят к обратному эффекту, но этот факт нуждается в дополнительной экспериментальной проверке. Сформулируем «осторожный» вывод: умеренное использование наследования — подходящее средство для снижения плотности дефектов и затрат на доработку.

Метрика 4: Фактор наследования свойства AIF (Attribute Inheritance Factor)

 

Введем обозначения:

q Аi i) — количество унаследованных и не переопределенных свойств в классе С i;

q А0i) — количество унаследованных и переопределенных свойств в классе С i;

q An (Ci) — количество новых (не унаследованных и переопределенных) свойств в классе С i;

q Аdi) = An (Ci) + А0i) — количество свойств, определенных в классе С i;

q Аai) = Аdi)+ Аi i) — общее количество свойств, доступных в классе С i.

Тогда формула метрики AIF примет вид:

.

Числителем AIF является сумма унаследованных (и не переопределенных) свойств во всех классах рассматриваемой системы. Знаменатель AIF — это общее количество доступных свойств (локально определенных и унаследованных) для всех классов.

Метрика 5: Фактор полиморфизма POF (Polymorphism Factor)

Введем обозначения:

q M 0i) — количество унаследованных и переопределенных методов в классе С i;

q Mni) — количество новых (не унаследованных и переопределенных) методов в классе С i;

q DC (С i) — количество потомков класса С i;

q Mdi) = Mni) + M 0i) — количество методов, определенных в классе С i.

Тогда формула метрики POF примет вид:

.

Числитель POF фиксирует реальное количество возможных полиморфных ситуаций. Очевидно, что сообщение, посланное в класс С i связывается (статически или динамически) с реализацией именуемого метода. Этот метод, в свою очередь, может или представляться несколькими «формами», или переопределяться (в потомках С i).

Знаменатель POF представляет максимальное количество возможных полиморфных ситуаций для класса С i. Имеется в виду случай, когда все новые методы, определенные в С i, переопределяются во всех его потомках.

Умеренное использование полиморфизма уменьшает как плотность дефектов, так и затраты на доработку. Однако при POF > 10% возможен обратный эффект.

Метрика 6: Фактор сцепления COF (Coupling Factor)

 

В данном наборе сцепление фиксирует наличие между классами отношения «клиент-поставщик» (client-supplier). Отношение «клиент-поставщик» (С c =>Cs) здесь означает, что класс-клиент содержит но меньшей мере одну не унаследованную ссылку на свойство или метод класса-поставщика.

Если наличие отношения «клиент-поставщик» определять по выражению:

.

то формула для вычисления метрики COF примет вид:

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

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





Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 211 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лучшая месть – огромный успех. © Фрэнк Синатра
==> читать все изречения...

2268 - | 2155 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.