Обзор автоматизированных средств для расчета объектно-ориентированных метрик
Определение качества продукта, прогнозирование качества и улучшение программной системы. Рассмотрение метрик, позволяющих определить сложность объектно-ориентированного проекта. Рассмотрение основных инструментов для оценки метрик программного кода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 12.03.2019 |
Размер файла | 461,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Волжский политехнический институт (филиал) Волгоградского технического университета
ОБЗОР АВТОМАТИЗИРОВАННЫХ СРЕДСТВ ДЛЯ РАСЧЕТА ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ МЕТРИК
Ткачева А.Ю.
Метрика - это мера, позволяющая оценить степень системы, компонентов или процессов, обладающих заданным атрибутом. Например, эту меру можно использовать в расчетах числа ошибок на затраченный человеко-час. Их основное назначение - определение качества продукта, прогнозирование качества и улучшение данной программной системы. Этот процесс актуален в разработке программного обеспечения, так как он решает ряд следующих задач:
? оценить стоимость проекта;
? определить график выполнения работ;
? оценить производительность применяемых средств и методов с течением времени;
? спрогнозировать потребности в персонале;
? сократить расходы на техническое обслуживание.
Объектно-ориентированные метрики нацелены на оценку сложности объектно-ориентированных проектов. Основу программного кода таких проектов составляют классы. Они имеют возможность инициализироваться и существовать самостоятельно, наследоваться, зависеть друг от друга, ассоциироваться.
Существует ряд метрик, позволяющих определить сложность объектноориентированного проекта:
? Weighted Methods Per Class (WMC) - взвешенная насыщенность класса. Отражает относительную меру сложности класса на основе цикломатической сложности каждого его метода. Класс с более сложными методами и большим количеством методов считается более сложным. При вычислении метрики родительские классы не учитываются.
? Depth of inheritance tree (DIT) - длина самого длинного пути наследования, заканчивающегося на данном модуле. Чем глубже дерево наследования модуля, тем может оказаться сложнее предсказать его поведение. С другой стороны, увеличение глубины даёт больший потенциал повторного использования данным модулем поведения, определённого для классов-предков.
? Number of children (NOC) - количество наследуемых модулей. Большие значения этой метрики указывают на широкие возможности повторного использования; при этом слишком большое значение может свидетельствовать о плохо выбранной абстракции.
? Coupling between objects (CBO) - количество модулей, связанных с данным модулем в роли клиента или поставщика. Чрезмерная связность говорит о слабости модульной инкапсуляции и может препятствовать повторному использованию кода.
? Response For Class (RFS) - количество методов, которые могут вызываться экземплярами класса.
Практически на всех платформах для разработки ПО присутствуют инструменты для оценки метрик программного кода. Обычно, они совмещаются с системами статистического анализа кода.
Одна из самых распространённых сред разработки программного обеспечения - Visual Studio. Получить оценку кода можно нажав правой кнопкой на проекте и выбрав пункт “Calculate Code Metrics” (Рис.1).
программный метрика код проект
Рис. 1 Пример расчета метрик в Visual Studio
Данное программное обеспечение позволяет определить цикломатическую сложность, глубину наследования, взаимозависимость классов - объектноориентированные метрики. Глубина наследования определяется числом уровней наследования в модуле; чем меньше, а взаимозависимость классов - определяет число классов, на которые есть ссылки. Чем данные показатели ниже, тем качественнее считается продукт.
Другой не мало известной средой создания программного обеспечения является Oracle Solaris Studio.
В OSS включены средства сборки, отладки, профилирования и анализа многопоточных приложений. В ней для подсчета объектно-ориентированных метрик используется Performance Analyzer (Рис.2).
Рис. 2 Пример работы Performance Analyzer
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.
Размещено на Allbest.ru
Подобные документы
Общие требования охраны труда во время работы, а также в аварийных ситуациях. Использование метрик программного продукта при ревьюировании. Проверка целостности программного кода и анализ потоков данных. Сценарии использования программного продукта.
отчет по практике [2,0 M], добавлен 28.11.2022Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Основные процессы разработки, приобретения и внедрения сложных систем. Семейство стандартов ISO 9000. Зрелые и незрелые организации-разработчики программного обеспечения. Основные направления формирования метрик для оценки компьютерных программ.
дипломная работа [656,8 K], добавлен 27.11.2012Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Особенности исследования методик объектно-ориентированного проектирования программ с помощью языка UML по формализации, решению поставленной задачи, технологических приемов разработки объектно-ориентированных программ на языке Си++. Разработка программы.
контрольная работа [188,9 K], добавлен 22.10.2014Модель этапа пост-архитектуры. Предварительная оценка программного проекта на основе LOC-метрик. Расчет затрат на разработку ПО. Стоимость, длительность разработки проекта на основе модели этапа пост-архитектуры конструктивной модели стоимости СОСОМО II.
курсовая работа [89,9 K], добавлен 29.09.2009Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Характеристика основных методов и средств моделирования мультиагентных систем. Ознакомление с результатами экспериментального тестирования и отладки программного комплекса. Рассмотрение методов оценки качества разработанного программного продукта.
дипломная работа [3,1 M], добавлен 27.10.2017Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Особенности реализации главных элементов разрабатываемой программы (цифровые элементы) с помощью объектно-ориентированного подхода. Применение принципа инкапсуляции для защиты данных. Конструирование классов, описание и тестирование программного продукта.
курсовая работа [2,3 M], добавлен 10.05.2015