Метрики программного кода

01 октября 2016

Метрики программного кода - это численные характеристики кода, отражающие те или иные его качества. Приведем несколько примеров наиболее известных и распространенных метрик.

  • Число строк кода (NLOC). Необходимо вычислять отдельно: число строк в проекте, среднее число строк для функций, классов, файлов
  • Одной из важных характеристик системы является ее сложность - чем сложнее система, тем проще в ней совершить ошибку. Цикломатическая сложность - число линейно независимых маршрутов через программный код. Считается, что цикломатическая сложность отдельных методов в классах не должна превышать 10. Одно из применений этой метрики - это определение числа автоматических тестов, которые необходимы для полного покрытия системы
  • Максимальная глубина наследования классов - чем больше тем сложнее сопровождать программный код
  • Метрики Хальстеда. На основе числа операторов и операндов фрагмента программного кода можно вычислить меру, отражающую сложность кода. Так же можно оценить время необходимое для модернизации фрагмента программного кода.
  • Связанность компонентов системы. В частности, связанность классов определяется как число ссылок между этими классами. Система с высокой связанностью более трудная для поддержки. Самой простой метрикой отражающей связанность является число операторов import в файлах.
  • Недостаток сцепления методов в классах - Lack of Cohesion of Methods (LCOM). Метрика LCOM показывает на сколько методы класса не связаны друг с другом через поля класса. Сцепление между методами в классе должно быть высоким, что содействует инкапсуляции
  • Документированность кода выражается в процентном отношении объема комментариев к общему объему кода

Новости

  • Релиз Qualiter 4.5.0. Произведена интеграция с платформой SonarQube
    30 января 2019
  • Релиз Qualiter 3.1.0. Добавили Rest API.
    04 сентября 2018
  • Релиз Qualiter 3.0.3. Утилита для оценки необходимости рефакторинга компиляционной единицы Java кода. Доступно онлайн Demo.
    16 июля 2018
Все новости