Метрика 1: Фактор закрытости метода MHF (Method Hiding Factor)
Введем обозначения: q Мv (Сi) — количество видимых методов в классе Сi (интерфейс класса); q Мh (Сi) — количество скрытых методов в классе Сi (реализация класса); q Мd (Сi) = Мv (Сi) + Мh (Сi) — общее количество методов, определенных в классе С, (унаследованные методы не учитываются). Тогда формула метрики МН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 i (Сi) — количество унаследованных и не переопределенных методов в классе Сi; q M 0(Сi) — количество унаследованных и переопределенных методов в классе Сi; q M n(Сi) — количество новых (не унаследованных и переопределенных) методов в классе Сi; q M d(Сi) = M n(Сi) + M 0(Сi) — количество методов, определенных в классе Сi; q M a(Сi) = M d(Сi) + M i (Сi) — общее количество методов, доступных в классе Сi. Тогда формула метрики MIF примет вид: . Числителем MIF является сумма унаследованных (и не переопределенных) методов во всех классах рассматриваемой системы. Знаменатель MIF — это общее количество доступных методов (локально определенных и унаследованных) для всех классов. Значение MIF = 0 указывает, что в системе отсутствует эффективное наследование, например, все унаследованные методы переопределены. С увеличением MIF уменьшаются плотность дефектов и затраты на исправление ошибок. Очень большие значения MIF (70-80%) приводят к обратному эффекту, но этот факт нуждается в дополнительной экспериментальной проверке. Сформулируем «осторожный» вывод: умеренное использование наследования — подходящее средство для снижения плотности дефектов и затрат на доработку.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|