Метрики объектно-ориентированных систем (часть2). Метрики Абреу
Тема 3: Метрики ОО систем Содержание
Характеристики ОО систем
Цели создания метрик
Характеристики ОО систем
Метрики Абреу
Метрики Абреу
Метрики Абреу
Метрики Абреу
Метрики Абреу
Метрики Абреу
Метрики Абреу: 1. Фактор закрытости метода (MHF)
Метрики Абреу: 1. Фактор закрытости метода (MHF)
Метрики Абреу: 1. Фактор закрытости метода (MHF)
Метрики Абреу: 1. Фактор закрытости метода (MHF)
Метрики Абреу: 1. Фактор закрытости метода (MHF)
Метрики Абреу: 2. Фактор закрытости свойства (AHF)
Метрики Абреу: 2. Фактор закрытости свойства (AHF)
Метрики Абреу: 2. Фактор закрытости свойства (AHF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 3. Фактор наследования метода (MIF)
Метрики Абреу: 4. Фактор наследования свойства (AIF)
Метрики Абреу: 4. Фактор наследования свойства (AIF)
Метрики Абреу: 4. Фактор наследования свойства (AIF)
Метрики Абреу: 4. Фактор наследования свойства (AIF)
Метрики Абреу: 5. Фактор полиморфизма (POF)
Метрики Абреу: 5. Фактор полиморфизма (POF)
Метрики Абреу: 5. Фактор полиморфизма (POF)
Метрики Абреу: 5. Фактор полиморфизма (POF)
Метрики Абреу: 5. Фактор полиморфизма (POF)
Метрики Абреу: 5. Фактор полиморфизма (POF)
Метрики Абреу: 6. Фактор сцепления (COF)
Метрики Абреу: 6. Фактор сцепления (COF)
Метрики Абреу: 6. Фактор сцепления (COF)
Метрики Абреу: 6. Фактор сцепления (COF)
Метрики Абреу: 6. Фактор сцепления (COF)
Метрики Абреу: 6. Фактор сцепления (COF)
Метрики для объектно-ориентированного тестирования
Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрики для объектно-ориентированного тестирования Метрики инкапсуляции
Метрики для объектно-ориентированного тестирования Метрики наследования
Метрики для объектно-ориентированного тестирования Метрики наследования
Метрики для объектно-ориентированного тестирования Метрики наследования
Метрики для объектно-ориентированного тестирования Метрики наследования
Метрики для объектно-ориентированного тестирования Метрики наследования
Метрики для объектно-ориентированного тестирования Метрики наследования
Метрики для объектно-ориентированного тестирования Метрики полиморфизма
Метрики для объектно-ориентированного тестирования Метрики полиморфизма
Метрики для объектно-ориентированного тестирования Метрики полиморфизма
Задание
Метрики ОО систем Вопросы
Заключение
Список литературы
478.50K
Category: mathematicsmathematics

Метрики объектно-ориентированных систем (часть 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)

TC
A 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)

TC
M 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)

TC
POF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
ПрИС 2
Метрики ОО систем
32

33. Метрики Абреу: 5. Фактор полиморфизма (POF)

TC
POF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
Числитель POF
фиксирует реальное количество
возможных полиморфных ситуаций. Очевидно, что
сообщение, посланное в класс Сi связывается
(статически или динамически) с реализацией
именуемого метода. Этот метод, в свою очередь,
может или представляться несколькими «формами»,
или переопределяться (в потомках Сi).
ПрИС 2
Метрики ОО систем
33

34. Метрики Абреу: 5. Фактор полиморфизма (POF)

TC
POF T C
M o (C i )
i 1
M n (Ci ) DC(Ci )
i 1
Знаменатель POF представляет максимальное
количество возможных полиморфных ситуаций для
класса Сi. Имеется в виду случай, когда все новые
методы, определенные в Сi, переопределяются во
всех его потомках.
ПрИС 2
Метрики ОО систем
34

35. Метрики Абреу: 5. Фактор полиморфизма (POF)

TC
POF 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 C
is _ client (Ci , C j )
i 1 j 1
COF
TC 2 TC
Знаменатель COF соответствует максимально
возможному количеству сцеплений в системе с ТСклассами (потенциально каждый класс может быть
поставщиком для других классов).
Из рассмотрения исключены рефлексивные отношения — когда класс
является собственным поставщиком.
ПрИС 2
Метрики ОО систем
39

40. Метрики Абреу: 6. Фактор сцепления (COF)

T C T C
is _ 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
English     Русский Rules