Similar presentations:
Метрики объектно-ориентированных систем (часть 2). Метрики Абреу
1. Метрики объектно-ориентированных систем (часть2). Метрики Абреу
Метрики объектноориентированных систем(часть2).
Метрики Абреу
Объем лекций по теме: 4 часа
2. Тема 3: Метрики ОО систем Содержание
Характеристики ОО системМетрики Чидамбера и Кемерера
Метрики Лоренца и Кидда
Метрики Абреу
ПрИС 2
Метрики ОО систем
2
3. Характеристики ОО систем
Тема 3: Метрики ОО систем4. Цели создания метрик
улучшить понимание качества продуктаоценить эффективность процесса
проектирования и разработки
улучшить качество работы на этапе
проектирования
ПрИС 2
Метрики ОО систем
4
5. Характеристики ОО систем
локализацияинкапсуляция
информационная закрытость
наследование
абстракция
ПрИС 2
Метрики ОО систем
5
6. Метрики Абреу
Тема 3: Метрики ОО систем7. Метрики Абреу
Набор метрик MOOD(Metrics for Object Oriented Design),
предложенный Ф. Абреу в 1994 году, —
другой пример академического подхода к
оценке качества ОО-проектирования [6].
ПрИС 2
Метрики ОО систем
7
8. Метрики Абреу
Основными целями MOOD-набора являются:1) покрытие базовых механизмов объектноориентированной парадигмы, таких как
инкапсуляция, наследование, полиморфизм,
посылка сообщений;
2) формальное определение метрик,
позволяющее избежать субъективности
измерения;
ПрИС 2
Метрики ОО систем
8
9. Метрики Абреу
Основными целями MOOD-набора являются:3) независимость от размера оцениваемого
программного продукта;
4) независимость от языка программирования,
на котором написан оцениваемый продукт.
ПрИС 2
Метрики ОО систем
9
10. Метрики Абреу
Каждая из этих метрик относится к основномумеханизму объектно-ориентированной
парадигмы:
инкапсуляции (МНF и АНF),
наследованию (MIF и AIF),
полиморфизму (POF) и
посылке сообщений (СОF).
В определениях MOOD не используются
специфические конструкции языков
программирования.
ПрИС 2
Метрики ОО систем
10
11. Метрики Абреу
фактор закрытости методафактор закрытости свойства
фактор наследования метода
фактор наследования свойства
фактор полиморфизма
фактор сцепления
ПрИС 2
Метрики ОО систем
11
12. Метрики Абреу: 1. Фактор закрытости метода (MHF)
(Method Hiding Factor)Мv (Сi) — количество видимых методов
в классе Сi (интерфейс класса);
Мh (Сi) — количество скрытых методов в
классе Сi (реализация класса);
Мd (Сi) = Мv (Сi) + Мh (Сi) — общее
количество методов, определенных в
классе С, (унаследованные методы не
учитываются).
ПрИС 2
Метрики ОО систем
12
13. Метрики Абреу: 1. Фактор закрытости метода (MHF)
(Method Hiding Factor)С увеличением МНF уменьшаются пло
дефектов в системе и затраты на их устранение.
ПрИС 2
Метрики ОО систем
13
14. Метрики Абреу: 1. Фактор закрытости метода (MHF)
(Method Hiding Factor)TC
M h (C i )
MHF iT C1
M d (C i )
i 1
где ТС — количество классов в системе.
ПрИС 2
Метрики ОО систем
14
15. Метрики Абреу: 1. Фактор закрытости метода (MHF)
Класс A+ Op1()
# Op2()
– Op3()
Класс В
+ Op2()
+ Op4()
– Op5()
ПрИС 2
Метрики ОО систем
Mh(A) = 2
Md(A) = 3
Mh(B) = 1
Md(B) = 3
1 2 3
MHF
0,5
3 3 6
15
16. Метрики Абреу: 1. Фактор закрытости метода (MHF)
(Method Hiding Factor)Обычно разработка класса представляет
пошаговый процесс, при котором к классу добав
все больше и больше деталей (скрытых методов).
Такая схема разработки способствует возрастан
значения МНF, так и качества класса.
ПрИС 2
Метрики ОО систем
16
17. Метрики Абреу: 2. Фактор закрытости свойства (AHF)
(Attribute Hiding Factor)Аv (Сi) — количество видимых свойств в
классе Сi (интерфейс класса);
,
Ah(Ci) — количество скрытых свойств в
классе Сi (реализация класса);
Ad(Ci) = Аv (Сi) + Ah(Ci) — общее количество
свойств, определенных в классе Сi
(унаследованные свойства не учитываются).
ПрИС 2
Метрики ОО систем
17
18. Метрики Абреу: 2. Фактор закрытости свойства (AHF)
TCA h (C i )
AHF iT C1
A d (C i )
i 1
где ТС — количество классов в системе.
ПрИС 2
Метрики ОО систем
18
19. Метрики Абреу: 2. Фактор закрытости свойства (AHF)
Закрытостьсвойства
количество классов, из
свойство невидимо.
—
процентное
которых данное
В идеальном случае все свойства должны
быть скрыты и доступны только для
методов соответствующего класса
(AHF = 100%).
ПрИС 2
Метрики ОО систем
19
20. Метрики Абреу: 3. Фактор наследования метода (MIF)
(Method Inheritance Factor)M i (Сi ) — количество унаследованных и не
переопределенных методов в классе Сi;
M о(Сi ) — количество унаследованных и
переопределенных методов в классе Сi;
M n(Сi ) — количество новых (не
унаследованных и переопределенных) методов в
классе Сi;
M d(Сi )= M n(Сi ) + M о(Сi ) — количество
методов, определенных в классе Сi;
M a(Сi )= M d(Сi )+ M i (Сi ) — общее количество
ПрИС 2
20
Метрикидоступных
ОО систем
методов,
в классе Сi.
21. Метрики Абреу: 3. Фактор наследования метода (MIF)
M i (Сi ) — количество унаследованных ине переопределенных методов в классе Сi;
M о(Сi ) — количество унаследованных и
переопределенных методов в классе Сi;
M n(Сi ) — количество новых методов в
классе Сi;
M d(Сi )= M n(Сi ) + M о(Сi ) — количество
методов, определенных в классе Сi;
M a(Сi )= M d(Сi )+ M i (Сi ) — общее
количество методов, доступных в классе
Сi.
ПрИС 2
Метрики ОО систем
21
22. Метрики Абреу: 3. Фактор наследования метода (MIF)
TCM i (C i )
MIF Ti C1
M a (C i )
i 1
ПрИС 2
Метрики ОО систем
22
23. Метрики Абреу: 3. Фактор наследования метода (MIF)
Класс A+ Op1()
# Op2()
– Op3()
Mi(A) = 0
Ma(A) = 3
Mi(B) = 2
Ma(B) = 5
Класс В
+ Op2()
+ Op4()
– Op5()
ПрИС 2
Метрики ОО систем
0 2 2
MIF
0,25
3 5 8
23
24. Метрики Абреу: 3. Фактор наследования метода (MIF)
Значение MIF = 0 указывает, что в системеотсутствует
эффективное
наследование,
например,
все
унаследованные
методы
переопределены.
ПрИС 2
Метрики ОО систем
24
25. Метрики Абреу: 3. Фактор наследования метода (MIF)
С увеличением MIF уменьшаютсяплотность дефектов и затраты на
исправление ошибок.
Очень большие значения MIF (70-80%)
приводят к обратному эффекту, но этот
факт нуждается в дополнительной
экспериментальной проверке.
ПрИС 2
Метрики ОО систем
25
26. Метрики Абреу: 3. Фактор наследования метода (MIF)
Сформулируем «осторожный» вывод:умеренное использование наследования
— подходящее средство для снижения
плотности дефектов и затрат на
доработку.
ПрИС 2
Метрики ОО систем
26
27. Метрики Абреу: 4. Фактор наследования свойства (AIF)
(Attribute Inheritance Factor)ПрИС 2
Метрики ОО систем
27
28. Метрики Абреу: 4. Фактор наследования свойства (AIF)
Аi (Сi) — количество унаследованных и непереопределенных свойств в классе Сi;
А0(Сi)
—
количество
унаследованных
и
переопределенных свойств в классе Сi;
An(Ci) — количество новых (не унаследованных и
переопределенных) свойств в классе Сi;
Аd(Сi) = An(Ci) + А0(Сi) — количество свойств,
определенных в классе Сi;
Аa(Сi) = Аd(Сi)+ Аi (Сi) — общее количество свойств,
доступных в классе Сi.
ПрИС 2
Метрики ОО систем
28
29. Метрики Абреу: 4. Фактор наследования свойства (AIF)
(Attribute Inheritance Factor)TC
AIF
A (C )
i 1
TC
Метрики ОО систем
i
A (C )
i 1
ПрИС 2
i
a
i
29
30. Метрики Абреу: 4. Фактор наследования свойства (AIF)
(Attribute Inheritance Factor)ПрИС 2
Метрики ОО систем
30
31. Метрики Абреу: 5. Фактор полиморфизма (POF)
(Polymorphism Factor)M0(Сi) — количество унаследованных и
переопределенных методов в классе Сi;
Mn(Сi) — количество новых (не
унаследованных и переопределенных)
методов в классе Сi;
DC(Сi) — количество потомков класса Сi;
Md(Сi) = Mn(Сi) + M0(Сi) — количество
методов, определенных в классе Сi.
ПрИС 2
Метрики ОО систем
31
32. Метрики Абреу: 5. Фактор полиморфизма (POF)
TCPOF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
ПрИС 2
Метрики ОО систем
32
33. Метрики Абреу: 5. Фактор полиморфизма (POF)
TCPOF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
Числитель POF
фиксирует реальное количество
возможных полиморфных ситуаций. Очевидно, что
сообщение, посланное в класс Сi связывается
(статически или динамически) с реализацией
именуемого метода. Этот метод, в свою очередь,
может или представляться несколькими «формами»,
или переопределяться (в потомках Сi).
ПрИС 2
Метрики ОО систем
33
34. Метрики Абреу: 5. Фактор полиморфизма (POF)
TCPOF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
Знаменатель POF представляет максимальное
количество возможных полиморфных ситуаций для
класса Сi. Имеется в виду случай, когда все новые
методы, определенные в Сi, переопределяются во
всех его потомках.
ПрИС 2
Метрики ОО систем
34
35. Метрики Абреу: 5. Фактор полиморфизма (POF)
TCPOF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
Умеренное
использование
полиморфизма
уменьшает как плотность дефектов, так и затраты на
доработку. Однако при POF > 10% возможен
обратный эффект.
ПрИС 2
Метрики ОО систем
35
36. Метрики Абреу: 5. Фактор полиморфизма (POF)
Класс A+ Op1()
# Op2()
– Op3()
Класс В
+ Op2()
+ Op4()
– Op5()
ПрИС 2
Метрики ОО систем
Mo(A) = 0
Mn(A) = 2
DC(A) =1
Mo(B) = 1
Mn(B) = 2
DC(B) = 0
0 1
1
POF
0,5
2 1 2 0 2
36
37. Метрики Абреу: 6. Фактор сцепления (COF)
(Coupling Factor)В данном наборе сцепление фиксирует
наличие
между
классами
отношения
«клиент-поставщик»
(client-supplier).
Отношение «клиент-поставщик» (Сc =>Cs)
здесь означает, что класс-клиент содержит по
меньшей мере одну не унаследованную
ссылку на свойство или метод классапоставщика.
ПрИС 2
Метрики ОО систем
37
38. Метрики Абреу: 6. Фактор сцепления (COF)
(Coupling Factor)Если наличие отношения «клиентпоставщик» определять по выражению:
1, if Cc C s Cc C s ,
is _ client (Cc , C s )
0, else,
T C T C
is _ client (Ci , C j )
i 1 j 1
COF
TC 2 TC
ПрИС 2
Метрики ОО систем
38
39. Метрики Абреу: 6. Фактор сцепления (COF)
T C T Cis _ client (Ci , C j )
i 1 j 1
COF
TC 2 TC
Знаменатель COF соответствует максимально
возможному количеству сцеплений в системе с ТСклассами (потенциально каждый класс может быть
поставщиком для других классов).
Из рассмотрения исключены рефлексивные отношения — когда класс
является собственным поставщиком.
ПрИС 2
Метрики ОО систем
39
40. Метрики Абреу: 6. Фактор сцепления (COF)
T C T Cis _ client (Ci , C j )
i 1 j 1
COF
TC 2 TC
Числитель COF фиксирует реальное
количество сцеплений, не относящихся к
наследованию.
ПрИС 2
Метрики ОО систем
40
41. Метрики Абреу: 6. Фактор сцепления (COF)
С увеличением сцепления классовплотности дефектов и затрат на
доработку также возрастают.
Сцепления отрицательно влияют на
качество ПО, их нужно сводить к
минимуму.
ПрИС 2
Метрики ОО систем
41
42. Метрики Абреу: 6. Фактор сцепления (COF)
Практическое применение этой метрикидоказывает, что сцепление
увеличивает сложность,
уменьшает инкапсуляцию и возможности
повторного использования,
затрудняет понимание и усложняет
сопровождение ПО.
ПрИС 2
Метрики ОО систем
42
43. Метрики для объектно-ориентированного тестирования
Метрики, которые, по мнению Р. Байндера(Binder), прямо влияют на тестируемость ООсистем [17]. Р.
Байндер сгруппировал эти метрики в три
категории, отражающие важнейшие проектные
характеристики.
ПрИС 2
Метрики ОО систем
43
44. Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Кметрикам
инкапсуляции
относятся:
«Недостаток связности в методах LCOM»,
«Процент публичных и защищенных PAP
(Percent Public and Protected)» и «Публичный
доступ к компонентным данным PAD (Public
Access to Data members)».
ПрИС 2
Метрики ОО систем
44
45. Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрика 1: Недостаток связности в методахLCOM
Чем выше значение LCOM, тем больше
состояний
надо
тестировать,
чтобы
гарантировать отсутствие побочных эффектов
при работе методов.
ПрИС 2
Метрики ОО систем
45
46. Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрика 2: Процент публичных изащищенных PAP (Percent Public and Protected)
Публичные свойства наследуются от других классов
и поэтому видимы для этих классов. Защищенные
свойства являются специализацией и приватны для
определенного подкласса. Эта метрика показывает
процент публичных свойств класса. Высокие значения
РАР увеличивают вероятность побочных эффектов в
классах. Тесты должны гарантировать обнаружение
побочных эффектов.
ПрИС 2
Метрики ОО систем
46
47. Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрика 3: Публичный доступ ккомпонентным данным PAD (Public Access to
Data members)
Метрика показывает количество классов (или
методов), которые имеют доступ к свойствам
других классов, то есть нарушают их
инкапсуляцию. Высокие значения приводят к
возникновению побочных эффектов в классах.
Тесты должны гарантировать обнаружение
таких побочных эффектов.
ПрИС 2
Метрики ОО систем
47
48. Метрики для объектно-ориентированного тестирования Метрики наследования
К метрикам наследования относятся«Количество корневых классов NOR
(Number Of Root classes)», «Коэффициент
объединения по входу FIN», «Количество
детей NOC» и «Высота дерева
наследования DIT».
ПрИС 2
Метрики ОО систем
48
49. Метрики для объектно-ориентированного тестирования Метрики наследования
Метрика 4: Количество корневых классовNOR (Number Of Root classes)
Эта метрика подсчитывает количество
деревьев наследования в проектной модели.
Для каждого корневого класса и дерева
наследования должен разрабатываться набор
тестов. С увеличением NOR возрастают
затраты на тестирование.
ПрИС 2
Метрики ОО систем
49
50. Метрики для объектно-ориентированного тестирования Метрики наследования
Метрика 5: Коэффициент объединения повходу FIN
В контексте О-О-смистем FIN фиксирует
множественное наследование. Значение FIN > 1
указывает, что класс наследует свои свойства и
операции от нескольких корневых классов.
Следует избегать FIN > 1 везде, где это
возможно.
ПрИС 2
Метрики ОО систем
50
51. Метрики для объектно-ориентированного тестирования Метрики наследования
Метрика 6: Количество детей NOCНазвание говорит само за себя. Метрика
заимствована из набора Чидамбера-Кемерера.
ПрИС 2
Метрики ОО систем
51
52. Метрики для объектно-ориентированного тестирования Метрики наследования
Метрика 7: Высота дерева наследованияDIT
Метрика заимствована из набора ЧидамбераКемерера. Методы суперкласса должны
повторно тестироваться для каждого подкласса.
ПрИС 2
Метрики ОО систем
52
53. Метрики для объектно-ориентированного тестирования Метрики наследования
В дополнение к перечисленным метрикам Р.Байндер выделил метрики сложности класса
(это метрики Чидамбера-Кемерера — WMC,
CBO, RFC и метрики для подсчета количества
методов), а также метрики полиморфизма.
ПрИС 2
Метрики ОО систем
53
54. Метрики для объектно-ориентированного тестирования Метрики полиморфизма
метрикиполиморфизма:
«Процентное
количество не переопределенных запросов
OVR», «Процентное количество динамических
запросов DYN», «Скачок класса Bounce-С» и
«Скачок системы Bounce-S».
ПрИС 2
Метрики ОО систем
54
55. Метрики для объектно-ориентированного тестирования Метрики полиморфизма
Метрика 8: Процентное количество не переопределенных запросов OVRПроцентное количество от всех запросов в тестируемой системе, которые не
приводили к перекрытию модулей. Перекрытие может приводить к
непредусмотренному связыванию. Высокое значение OVR увеличивает
возможности возникновения ошибок.
Метрика 9: Процентное количество динамических запросов DYN
Процентное количество от всех сообщений в тестируемой системе, чьи приемники
определяются в период выполнения. Динамическое связывание может приводить к
непредусмотренному связыванию. Высокое значение DYN означает, что для
проверки всех вариантов связывания метода потребуется много тестов.
ПрИС 2
Метрики ОО систем
55
56. Метрики для объектно-ориентированного тестирования Метрики полиморфизма
Метрика 10: Скачок класса Bounce-CКоличество скачущих маршрутов, видимых тестируемому классу. Скачущий
маршрут — это маршрут, который в ходе динамического связывания пересекает
несколько иерархий классов-поставщиков. Скачок может приводить к
непредусмотренному связыванию. Высокое значение Bounce-C увеличивает
возможности возникновения ошибок.
Метрика 11: Скачок системы Bounce-S
Количество скачущих маршрутов в тестируемой системе. В этой метрике
суммируется количество скачущих маршрутов по каждому классу системы. Высокое
значение Bounce-S увеличивает возможности возникновения ошибок.
ПрИС 2
Метрики ОО систем
56
57. Задание
Рассчитать значения всех метрик дляспроектированных классов учебной ИС
«Гостиница»
На основе рассчитанных значений метрик
провести анализ и оценку качества
построенной модели
ПрИС 2
Метрики ОО систем
57
58. Метрики ОО систем Вопросы
Перечислить характеристики ООИС.Перечислить метрики Чидамбера и Кемерера.
Перечислить метрики Лоренца и Кидда.
Перечислить метрики Абреу.
Сравнить метрики. Чем они похожи? В чем
различие?
ПрИС 2
Метрики ОО систем
58
59. Заключение
Для оценки качества разработанных моделейиспользуется специальный метрический
аппарат
Для объектно-ориентированных систем
выделяют пять характеристик качества:
локализация, инкапсуляция, информационная
закрытость, наследование, абстракция
Существует большое количество метрических
систем
ПрИС 2
Метрики ОО систем
59
60. Список литературы
ПрИС 2Орлов С. Технологии разработки программного
обеспечения / С. Орлов. – СПб.: Питер, 2002. – 464 с.
Метрики ОО систем
60