ОБЗОР АВТОМАТИЗИРОВАННЫХ СРЕДСТВ ДЛЯ РАСЧЕТА ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ МЕТРИК - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

ОБЗОР АВТОМАТИЗИРОВАННЫХ СРЕДСТВ ДЛЯ РАСЧЕТА ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ МЕТРИК

Ткачева А.Ю. 1
1Волжский политехнический институт (филиал) Волгоградского технического университета
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Метрика – это мера, позволяющая оценить степень системы, компонентов или процессов, обладающих заданным атрибутом. Например, эту меру можно использовать в расчетах числа ошибок на затраченный человеко-час. Их основное назначение – определение качества продукта, прогнозирование качества и улучшение данной программной системы. Этот процесс актуален в разработке программного обеспечения, так как он решает ряд следующих задач:
  • оценить стоимость проекта;

  • определить график выполнения работ;

  • оценить производительность применяемых средств и методов с течением времени;

  • спрогнозировать потребности в персонале;

  • сократить расходы на техническое обслуживание.

Объектно-ориентированные метрики нацелены на оценку сложности объектно-ориентированных проектов. Основу программного кода таких проектов составляют классы. Они имеют возможность инициализироваться и существовать самостоятельно, наследоваться, зависеть друг от друга, ассоциироваться.

Существует ряд метрик, позволяющих определить сложность объектно-ориентированного проекта:

  • WeightedMethodsPerClass(WMC) – взвешенная насыщенность класса. Отражает относительную меру сложности класса на основе цикломатической сложности каждого его метода. Класс с более сложными методами и большим количеством методов считается более сложным. При вычислении метрики родительские классы не учитываются.

  • Depthofinheritancetree(DIT) – длина самого длинного пути наследования, заканчивающегося на данном модуле. Чем глубже дерево наследования модуля, тем может оказаться сложнее предсказать его поведение. С другой стороны, увеличение глубины даёт больший потенциал повторного использования данным модулем поведения, определённого для классов-предков.

  • Number of children (NOC) – количество наследуемых модулей. Большие значения этой метрики указывают на широкие возможности повторного использования; при этом слишком большое значение может свидетельствовать о плохо выбранной абстракции.

  • Coupling between objects (CBO) – количество модулей, связанных с данным модулем в роли клиента или поставщика. Чрезмерная связность говорит о слабости модульной инкапсуляции и может препятствовать повторному использованию кода.

  • Response For Class (RFS) – количество методов, которые могут вызываться экземплярами класса.

Практически на всех платформах для разработки ПО присутствуют инструменты для оценки метрик программного кода. Обычно, они совмещаются с системами статистического анализа кода.

Одна из самых распространённых сред разработки программного обеспечения – Visual Studio. Получить оценку кода можно нажав правой кнопкой на проекте и выбрав пункт “Calculate Code Metrics” (Рис.1).

Рис.1. Пример расчета метрик в VisualStudio

Данное программное обеспечение позволяет определить цикломатическую сложность, глубину наследования, взаимозависимость классов – объектно-ориентированные метрики. Глубина наследования определяется числом уровней наследования в модуле; чем меньше, а взаимозависимость классов – определяет число классов, на которые есть ссылки. Чем данные показатели ниже, тем качественнее считается продукт.

Другой не мало известной средой создания программного обеспечения является Oracle Solaris Studio.

В OSS включены средства сборки, отладки, профилирования и анализа многопоточных приложений. В ней для подсчета объектно-ориентированных метрик используется Performance Analyzer (Рис.2).

Рис. 2. Пример работы PerformanceAnalyzer

Oracle Solaris Studio позволяет разрабатывать приложения на объектно-ориентированных языках С++, С#, Java, а Performance Analyzer позволяет подсчитать сложность классов и их взаимодействия.

GlowCode используется разработчиками программного обеспечения для анализа и оптимизации приложений, производительности, скорости и использования ресурсов. Возможности GlowCode включают в себя обнаружение низкой производительности и утечек памяти (Рис. 3).

Рис. 3. Пример работы GlowCode

GlowCode показывает продолжительность, частоту использования вызовов методов и определяет, какие функции играют наиболее важную роль во времени ресурсоемких задач. GlowCode также выявляет проблемы в динамическом связывании методов, глубине абстракции, скорости доступа к данным, динамического создания и уничтожения объектов.

Shark от Apple является анализатором производительности, используемый разработчиками программного обеспечения для оптимизации программ программного обеспечения на Mac OS X (Рис.4). Он предоставляет образцы программного обеспечения через определенные промежутки времени (или движимый монитор производительности аппаратных средств событий), позволяет делать моментальные снимки стека, показывающий функции, которые требуют больше ресурсов приложения. Включает в себя инструменты для анализа данных, полученных с помощью прогона выборки. На основе этих данных обычно подсчитываются простые метрики для оценки производительности труда (KLOC/человеко-месяц) и качества изделия. Эти метрики не универсальны и спорны, особенно это относится к такому показателю как LOC, который существенно зависит от используемого языка программирования.

Рис.4. Пример работы Shark

Таким образом, были рассмотрены наиболее используемые автоматизированные средства расчета объектно-ориентированных метрик для различных операционных систем. Программ исключительно для расчета объектно-ориентированных метрик очень мало, они могут создаваться предприятиями, деятельность которых тесно связана с объектно-ориентированным программированием. Все вышеперечисленные средства могут применяться не только для расчета объектно-ориентированных метрик, но и для расчета метрик количества строк кода, цикломатической сложности, количества ошибок, степени покрытия кода, покрытия требований. Существуют средства, поддерживающие работу исключительно на одной операционной системе (например, Shark), и те, которые совместимы с несколькими операционными системами (например, с Windows и Linux).

Список литературы

  1. Марков А.С., Цирлов В.Л., Барабанов А.В. Методы оценки несоответствия средств защиты информации / А.С.Марков, В.Л.Цирлов, А.В.Барабанов; под ред. А.С.Маркова. - М.: Радио и связь, 2012. 192 с.

  2. Широков А.И., Потоцкий Е.П. Стандартизация, сертификация и оценка качества программного обеспечения: учеб. пособие – М.: Издательский дом МИСиС, 2013. – 208 с

  3. Статья Code Metrics Values в справочном руководстве по C# MSDN. http://msdn.microsoft.com/en-us/library/bb385914.aspx.

Просмотров работы: 486