Программный компонент расчета показателей качества программных средств

Бесплатный доступ

Представлены результаты исследований по обоснованию и разработке набора метрик, с помощью которых можно рассчитать и оценить качество программных средств специального назначения (ПССН) автоматизированных систем управления (АСУ), разработанных с помощью объектно ориентированных языков программирования (ООЯП). Представлен алгоритм расчета объектно ориентированных метрик (ООМ) ПССН.

Программное обеспечение, программные средства специального назначения, показатели качества, объектно ориентированные метрики, программные компоненты

Короткий адрес: https://sciup.org/148309584

IDR: 148309584   |   DOI: 10.25586/RNU.V9187.20.04.P.056

Текст научной статьи Программный компонент расчета показателей качества программных средств

Качество программного обеспечения (ПО) – способность программного продукта удовлетворять заявленные и подразумеваемые потребности при использовании в определенных условиях. Качество программного обеспечения описывается и оценивается посредством определения, измерения и сравнения его существенных характеристик с заданными требованиями или неким эталоном. Таким образом, требования к качеству ПО представляют собой совокупность утверждений относительно значений его характеристик и условий применения.

Проектирование программного обеспечения для АСУ [5] требует применения новейших технологий разработки программных средств. Для адекватной оценки качества ПССН необходимы программные компоненты, базирующиеся на объектно ориентированных метриках оценки качества программного обеспечения (ПО).

Модель процесса оценки качества программного продукта (ПП) согласно ГОСТ Р ИСО/МЭК 25040–2014 [2] можно представить в виде алгоритма (рис. 1), состоящего из следующих задач:

  • •    спецификация целей и требований к оценке, идентификация частей ПО, подлежащих оценке, определение строгости оценки;

  • •    выбор показателей качества (ПК), определение критериев принятия решения для них, определение критериев принятия решения для оценки;

  • •    планирование деятельности по оценке;

  • •    выполнение измерений и применение критериев для ПК и оценки;

  • •    анализ результатов оценки и оформление результатов.

В настоящее время при разработке ПССН чаще всего используются ООЯП [6]. Это обстоятельство обусловлено тем, что ООЯП, являясь результатом поступательного развития технологий программной инженерии [8], позволяют создавать более эффективные и надежные [7], лучше понимаемые и легче сопровождаемые и перенастраиваемые программные системы [3].

Концептуальной базой объектно ориентированного программирования является объектная модель, которая базируется на следующих основных принципах и методах: абстрагирование, инкапсуляция, модульность, иерархия [2].

58 в ыпуск 4/2020

Разработка требований к оценке

Определение целей оценки

Получение требования к качеству ПП

Определение части продукта, которые включены в оценку

Определение жесткости оценки

Разработка требований к оценке

Выбор показателей качества

Определение критериев решения для показателей качества

Определение критериев решения для оценки

Бюджет оценки

Разработка проекта оценки

Методы оценки

Инструменты оценки

Мероприятия по оценке

Выполнение оценки

Проведение измерения

Применение критериев решения для показателей качества

Применение критериев решения для оценки

Заключение об оценке

Анализ результатов оценки

Отчет об оценке

Анализ оценки и информирование организации

Распространение результатов оценки

Рис. 1. Алгоритм оценки качества ПО

Абстрагирование – способ выделить значимые характеристики объекта, отличающие его от других типов объектов и четко определяющие его концептуальные границы [6]. Выделение полного и достаточного набора абстракций является главной задачей объектно ориентированного проектирования ПССН [9].

Инкапсуляция – свойство, позволяющее объединить данные и методы, работающие с ними, в класс и скрыть детали реализации от пользователя.

Рациональная инкапсуляция позволяет локализовать и скрыть части реализации системы, которые могут подвергнуться изменениям [1].

Принцип модульности служит для преодоления проблем, связанных с размерностью и сложностью разрабатываемой системы [4, 5]. Разбиение ПССН на модули (классы и пакеты) позволяет не только бороться со сложностью, но и заставляет тщательно продумывать и хорошо документировать интерфейсы между модулями, что, в свою очередь, облегчает процесс объектной декомпозиции системы. Правильное разбиение программы на модули, определение связей и зависимостей между ними является такой же важной задачей, как и задача построения оптимального набора абстракций [10]. Вероятность внесения изменений в интерфейсные элементы модулей должна быть сведена к минимуму [13]. Это достигается уменьшением сцепления между модулями ПС [16].

Иерархия – это упорядочивание абстракций путем разложения их по уровням [14]. В объектно ориентированных системах используются два типа иерархических структур: иерархия классов (is-a), иерархия объектов (part of) [11].

Без строгого следования описанным выше принципам возможности ООЯП будут потеряны или искажены, а их использование не по назначению приведет к ухудшению харак-

Киреев А.П., Шаров С.А. Программный компонент расчета показателей...    59

теристик разрабатываемых ПССН [12]. Для обеспечения максимально полного и эффективного использования преимуществ [18] и возможностей ООЯП в разрабатываемых на их основе ПССН необходимо предоставить проектировщикам и программистам средства [15], с помощью которых они смогли бы измерить и оценить качество ПССН с точки зрения реализации в них указанных выше принципов и возможностей [14].

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

Обоснование состава объектно ориентированных метрик

Для оценки качества программных средств (ПС), созданных при помощи языков объектно ориентированного программирования, используется класс объектно ориентированных метрик. В данном классе наиболее используемыми являются: набор метрик Мартина, метрики М. Лоренца и Д. Кидда [13], набор метрик Чидамбера и Кемерера [14] и набор метрик MOOD (Metrics of ObjectOriented Design) Ф. Абреу [9].

Объектно ориентированные метрики ПССН должны удовлетворять следующим требованиям:

  • •    ООМ должны покрывать все базовые механизмы объектно ориентированной парадигмы – инкапсуляцию, наследование, полиморфизм, посылку сообщений;

  • •    алгоритмы расчета ООМ должны использовать объективные характеристики и свойства программ и выдавать количественные значения метрик;

  • •    метрики должны быть независимы от размера оцениваемого программного продукта и от языка программирования, на котором написан оцениваемый продукт.

Как показал проведенный анализ [2, 3, 6, 14, 16], для оценки качества объектно ориентированных программ целесообразно использовать следующий набор метрик:

  • •    метрики оценки статистических характеристик программного кода (количество строк в программном проекте, количество строк кода классов, количество строк кода метода класса, количество комментариев);

  • •    оценки системы классов с точки зрения реализации в ней базовых принципов объектно ориентированного программирования (ООП) (глубина наследования, количество потомков, количество методов объекта, количество унаследованных методов, количество закрытых методов, полиморфизм, сцепление и связность классов);

  • •    оценки качества распределения и локализации классов в системе пакетов (количество классов в пакете, скрытые классы, количество методов в пакете, нестабильность пакета, абстрактность пакета, центробежное сцепление, контекстная связанность пакета).

Наиболее важными при проектировании ПССН являются следующие ООМ:

  • •    МНF (Weighted methods per class) – фактор закрытости метода;

  • •    AHF (Attribute Hiding Factor) – фактор закрытости атрибута;

  • •    MIF (Method Inheritance Factor) – фактор наследования метода;

  • •    AIF (Attribute Inheritance Factor) – фактор наследования атрибута;

  • •    POF (Polymorphism Factor) – фактор полиморфизма;

  • •    COF (Coupling Factor) – фактор сцепления;

60 в ыпуск 4/2020

  • •    NCP (Number of Classes in Package) – количество классов в пакете;

  • •    WMC (Weighted methods per class) – сложность методов класса;

  • •    CBO (Coupling between object classes) – сцепление между классами.

С помощью этих метрик можно оценить, насколько полно и точно в проекте использованы такие базовые механизмы объектно ориентированной парадигмы, как инкапсуляция, наследование, полиморфизм, абстракция, обмен сообщениями и др. Каждая из этих метрик относится к основному механизму объектно ориентированной парадигмы – инкапсуляции (МНF и АНF), наследованию (MIF и AIF), полиморфизму (POF) и посылке сообщений (СОF).

Перечень и описание способов расчета некоторых ООМ, а также критерии оценки качества ПССН представлены в таблице 1.

По наблюдениям [11]:

  • •    12,5% от общего числа классов имеют высокие значения метрик связи;

  • •    4,1% классов с глубокой иерархией;

  • •    в более ранних эмпирических исследованиях [10] предполагается, что классы с большей связью и глубокой иерархией склонны к ошибкам, идентифицированные классы (16,6%) должны быть тщательно проверены во время тестирования;

Таблица 1

Программные метрики для оценки ПС

Название метрики

Расчетная формула

Описание

Экспертное пороговое значение

Количество взвешенных методов на класс (WMC)

WMC (C i ) =

i = 1

L[i] – количество строк текста у метода с номером i; NM – общее количество методов

NM ≥ 20

Фактор закрытости метода (МНF)

TC M(C)

MHF = E*=1     i7

E M d (C i )

Mh(Ci) – количество скрытых методов в классе Ci;

Md(Ci) – общее количество методов, определенных в классе (унаследованные методы не учитываются)

MHF ≥ 0,5

Фактор закрытости атрибута (AHF)

E TC A h (C i )

AHf

E TC I A d (C i )

Ah(Ci) – количество скрытых атрибутов в классе Ci;

Ad(Ci) – общее количество атрибутов, определенных в классе

AHF ≥ 0,9

Фактор наследования метода (MIF)

TCM(C)

MIF ET —1 л i7 E TC i M d ( C i )

Mi(Ci) – количество унаследованных и не переопределенных методов в классе Ci;

Md(Ci) – количество методов, определенных в классе Ci

0,4 ≤ MIF ≤ 0,8

Фактор наследования атрибута (AIF)

AIF E TC AC )

E TC 1 A d (C i )

Ai(Ci) – количество унаследованных атрибутов в классе Ci; Ad(Ci) – количество атрибутов, определенных в классе Ci

0,4 ≤ AIF ≤ 0,7

Киреев А.П., Шаров С.А. Программный компонент расчета показателей...    61

Окончание табл. 1

Название метрики

Расчетная формула

Описание

Экспертное пороговое значение

Фактор полиморфизма (POF)

POF =     E TC i M o ( с? )

E TC 1 ( M n ( C i ) DC ( C i ) )

Mo ( Ci ) – количество унаследованных и переопределенных методов в классе Ci ;

Md ( Ci ) – количество унаследованных методов, определенных в классе Ci ; DC ( Ci ) – количество потомков у класса Ci

POF ≤ 0,1

Фактор сцепления (СОF)

E TC i [ E TC i is _ client ( C i , C , )]

OOF =---■ —j-----------

TC 2 - TC

is_clients ( Ci , Cj )– – оценка сцепления классов Ci и Cj ; TC – количество классов

в ПС

COF ≤ 0.1

Связанность между классами объектов (CBO)

TC TC           ,        x

CBO = E E is _ use ( C i , C , ) i - 1 j = 1

is_use ( Cj ) – оценка связанности классов Ci и Cj (все виды отношений – наследование, использование, ассоциация);

TC – количество

классов в ПС

CBO ≤ 10

Программная реализация алгоритма решения задачи

Схема алгоритма программного модуля расчета метрик качества ПССН АСУ приведена на рисунке 2.

На первом шаге выбирается каталог, в котором находится исследуемый проект и код ПССН. На втором шаге осуществляется выбор групп метрик, которые будут использоваться для оценки качества ПССН. На третьем этапе программа производит загрузку модулей и библиотек для оценки метрик, выбранных пользователем. На четвертом осуществляется расчет метрик для классов и пакетов соответственно. Блок анализа предназначен для расчета комплексных показателей качества (ПК) программных средств и формирования рекомендаций по улучшению качества программного обеспечения в случае выхода значений показателей за пределы допустимых диапазонов. Данный вычислительный блок включает в себя оценку следующих показателей качества: инкапсуляция, наследование, полиморфизм.

Если пользователю необходимо визуализировать полученные данные, программный компонент позволяет отобразить результаты расчетов. Для итерационной оценки качества разрабатываемого ПС формируется архивная копия расчетов с записью в файловую базу данных (БД).

На основе представленного алгоритма была разработана программа. Проверка ее работоспособности, корректности получаемых с ее помощью результатов была осуществлена посредством анализа программного комплекса «Радиус» [8]. Полученные результаты представлены в таблице 2.

62 в ыпуск 4/2020

Рис. 2. Алгоритм программного модуля расчета метрик ПССН АСУ

Таблица 2

Результаты анализа ПК «Радиус»

Название класса

Названия и расчетные значения метрик

WMC

МНF

AHF

MIF

AIF

POF

СОF

MVG

CBO

ConvAzimuthThread

3

1,0

1,0

0,7

0,6

0,05

0,05

42

2

ConvDistColumnThread

3

1,0

1,0

0,7

0,6

0,05

0,05

21

3

Histogram

3

1,0

1,0

0,2

0,3

0,05

0,05

2

3

CalcOpor

3

1,0

1,0

0,2

0,2

0,1

0,05

10

0

RadarImageProc

14

1,0

1,0

0,6

0,5

0,05

0,1

9

7

Киреев А.П., Шаров С.А. Программный компонент расчета показателей... 63

Оценка метрик для ПС показала малые значения метрики «фактор наследования» (0,4 ≤ MIF ≤ 0,8) для классов Histogram и CalcOpor, что потребует произвести рефакторинг существующего программного решения. Однако любой рефакторинг (без применения средств автоматизации) скорее всего приведет к возникновению ошибок, и эти ошибки сложно будет обнаружить [10].

Заключение

Проведенный анализ показал, что применение рассмотренного в данной статье программного компонента при разработке ПССН обеспечивает:

  • •    оценку качества программных компонентов на различных этапах жизненного цикла;

  • •    более качественную реализацию программных компонентов с учетом требований ООЯП;

  • •    снижение рисков при сопровождении и эксплуатации ПССН;

  • •    возможности для создания качественных методик проектирования ПС.

Список литературы Программный компонент расчета показателей качества программных средств

  • Борисов А.А., Краснов С.А., Нечай А.А. Технология блокчейн и проблемы ее применения в различных информационных системах // Вестник Российского нового университета. Серия "Сложные системы: модели, анализ и управление". 2018. Вып. 2. С. 63-67.
  • ГОСТ Р ИСО/МЭК 25040-2014. Информационные технологии. Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). М.: Стандартинформ, 2014. 34 с.
  • Нечай А.А. Формирование безопасной информационной среды // Актуальные проблемы современности: наука и общество. 2019. № 4 (25). С. 43-44.
  • Нечай А.А., Котиков П.Е. Методика повышения надежности функционирования систем, организованных на перепрограммируемых элементах // Вестник Российского нового университета. Серия "Сложные системы: модели, анализ и управление". 2016. Вып. 1-2. С. 87-89.
  • Новиков А.Н., Нечай А.А., Малахов А.В. Математическая модель обоснования вариантов реконфигурации распределенной автоматизированной контрольно-измерительной системы // Вестник Российского нового университета. Серия "Сложные системы: модели, анализ и управление". 2016. Вып. 1-2. С. 56-59.
Статья научная