ООП метрики коду

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 14:59, 3 серпня 2017, створена 193.93.217.63 (обговорення) (стиль)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Об'єктно-орієнтовані метрики коду (англ. Object-Oriented Metrics) належать до метрик коду програмного забезпечення. ООП-метрики було розроблено Чидамбером и Кемерером[1].

До цієї групи метрик належать:

  • Насиченість класу (англ. Weighted methods per class, WMC[2]), визначається сумою складностей методів класу. Складність кожного методу обчислюється будь-якою метрикою.
  • Глибина спадкування (англ. Depth of Inheritance tree, DIT[3]) — глибина дерева спадкування. Визначається як найдовший шлях по ієрархії класів до даного класу від батьківського класу.Чим вищим є цей показник, тим сильнішою є абстракція даних і зменшується насиченість класів методами. Однак, при великих значеннях глибини спадкування сильно зростає складність розуміння і написання програми.
  • Кількість нащадків (англ. Number of children, NOC) — ширина ієрархії класів. Визначається кількістю безпосередніх нащадків. Чим більшою є кількість нащадків, тим сильнішою є абстракція даних.
  • Зв'язаність класів(англ. Coupling between object classes, CBO), визначає кількість зв'язків з іншими класами не включаючи спадкування. При високому значенні показника зв'язаності класів зменшується рівень абстракції даних і ускладнюється повторне використання класу.
  • Відповідь класу (англ. Response for a class, RFC), визначається кількістю методів, що можуть буди виконані у відповідь на повідомлення, отримане об'єктом. Чим більшим є показник відповіді класу, тим складнішою є тестування і відлагодження.
  • Непов'язаність методів (англ. Lack of cohesion in Methods, LCOM), визначається кількістю методів класу, що не пов'язані по параметрах. Для визначення значення непов'язаності методів уводять такі параметри як: Р — кількість пар, що не мають спільних параметрів та Q — кількість пар, що мають спільні параметри. Тоді LCOM=|P|-|Q|. Недостатня пов'язаність методів може бути сигналом того, що клас можна розбити на декілька інших класів або підкласів.

Примітки[ред. | ред. код]

Посилання[ред. | ред. код]