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

Об'єктно-орієнтовані метрики коду (англ. 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|. Недостатня пов'язаність методів може бути сигналом того, що клас можна розбити на декілька інших класів або підкласів.

Примітки

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.