Технологии разработки программного обеспечения


Набор метрик Фернандо Абреу - часть 4


.

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

 

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

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

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

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

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

q       Md(Сi) = Mn(Сi) + M0(Сi) — количество методов, определенных в классе Сi.

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

.

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

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

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

 

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

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

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

.

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

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

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

 




Начало  Назад  Вперед



Книжный магазин