Метрика 4: Фактор наследования свойства AIF (Attribute Inheritance Factor)
Введем обозначения: q Аi (Сi) — количество унаследованных и не переопределенных свойств в классе Сi; q А0(Сi) — количество унаследованных и переопределенных свойств в классе Сi; q An(Ci) — количество новых (не унаследованных и переопределенных) свойств в классе Сi; q Аd(Сi) = An(Ci) + А0(Сi) — количество свойств, определенных в классе Сi; q Аa(Сi) = Аd(Сi)+ Аi (Сi) — общее количество свойств, доступных в классе Сi. Тогда формула метрики AIF примет вид: . Числителем 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 фиксирует реальное количество сцеплений, не относящихся к наследованию. С увеличением сцепления классов плотности дефектов и затрат на доработку также возрастают. Сцепления отрицательно влияют на качество ПО, их нужно сводить к минимуму. Практическое применение этой метрики доказывает, что сцепление увеличивает сложность, уменьшает инкапсуляцию и возможности повторного использования, затрудняет понимание и усложняет сопровождение ПО. Метрики для объектно-ориентированного тестирования
Рассмотрим проектные метрики, которые, по мнению Р. Байндера (Binder), прямо влияют на тестируемость ОО-систем [17]. Р. Байндер сгруппировал эти метрики в три категории, отражающие важнейшие проектные характеристики. Метрики инкапсуляции
К метрикам инкапсуляции относятся: «Недостаток связности в методах LCOM», «Процент публичных и защищенных PAP (Percent Public and Protected)» и «Публичный доступ к компонентным данным PAD (Public Access to Data members)».
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|