Что
такое надежность программного обеспечения?
После прочтения нескольких публикаций [1, 2 и др.] я узнал, что
надежность ПО со временем лишь увеличивается при наличии системы исправления
ошибок.
В
качестве иллюстрации этой идеи в работе [1] приведен рисунок с такой
подрисуночной подписью – «Вид функции интенсивности отказов для ПО и аппаратной
части» (рисунок 1). Этот рисунок повторен
и в работе [2].
|
Рисунок
1 Интенсивность отказов (по [1]) |
Если
существование такой характеристики как «интенсивность отказов» для аппаратной
части, являющейся материальным объектом, не вызвала у меня сомнений [3], то
наличие такой-же характеристики у ПО, представляющего собой нематериальный
объект, вызвала ряд вопросов и побудило разобраться в том, что же написано в
нормативных документах о надежности программного
обеспечения.
Для
начала следует сказать, что для программных средств не существует стандарта,
подобному стандарту [4].
В
стандарте [5] понятие, обозначенное термином «надежность программного средства»
(для программного обеспечения термин надежность в этом стандарте не применяют)
отнесен к общим характеристикам качества программного средства регламентирован в
следующей редакции:
«Совокупность
свойств, характеризующая способность программного средства сохранять заданный
уровень пригодности в заданных условиях в течение заданного интервала
времени».
К
определению этого термина в стандарте [5] даны два пояснения. Приведем здесь
первое из них полностью:
«Программное средство не подвержено износу
или старению. Ограничения его уровня пригодности являются следствием дефектов,
внесенных в содержание программного средства в процессе постановки и решения
задачи его создания или модификации.
Количество и характер отказом отказов программного средства программного
средства, являющихся следствием этих дефектов, зависит от способа применения
программного средства и от выбираемых вариантов его функционирования, но не
зависит от времени».
После ознакомления с определениями понятия, обозначаемого термином
«надежность программного средства» из стандарта [5] и пояснений к нему, следует
сделать по крайней мере два вывода:
1.
Надежность программного средства не изменяется во времени.
2.
Приведенный на рисунке 1 график не соответствует принятой в этой области технике
системе понятий.
Процитируем второе пояснение из этого же стандарта:
«Надежность
программных средств, являющая частью конкретной системы обработки информации,
может входить в состав признаков её качества наряду с её надежностью как
технической системы».
Вывод, который следует из этого пояснения, таков – надежность ПО следует
рассматривать совместно с аппаратной надежностью.
Просмотр
de
visu
терминологических стандартов в других отраслях техники позволил найти
определение понятия, обозначаемого термином «надежность программного
обеспечения»:
«…составляющая надежности системы, которая
зависит от отказов программного обеспечения» [6].
Подробно такой подход описан в курсе лекций [7], а попытка его применения
для устройств релейной защиты реализован в работе [2].
Кстати,
в [7] описаны способы обеспечения и повышения надежности программного
обеспечения, в число которых не входит устранение ошибок.
Практическую
точку в моих поисках позволил поставить материал лекции №2 [8] две фразы из
которого привожу ниже:
-
надежность программы со временем не меняется;
-
для ПО отсутствует фаза приработки и износа.
Но
самое важное содержится в следующем утверждении:
«Коррекция
программы аналогична внесению изменений в конструкцию аппаратного устройства –
получается
новое
ПО
(выделено мною - огз), с другими показателями
надежности»
Сразу
же после ознакомления с предложенным в [1, 2] графике изменения отказов ПО у
меня возникли сомнения в его правдоподобности. Ознакомление с литературой
вопроса позволило убедило меня в обоснованности возникших сомнений:
Литература
1.
Типикина А.П., Певцова Л.С. Оценка
программной надежности микропроцессорных релейных защит //
[Электронный ресурс], режим доступа: https://naukovedenie.ru/PDF/74TVN215.pdf (Интернет-журнал
«Науковедение» ISSN 2223-5167 https://naukovedenie.ru/)
2.
Трофимов А.С. Метод оценки надежности цифровой релейной защиты энергосистем. //
Релейщик, №3, 2016, С. 29
3.
Захаров О.Г. Надежность цифровых устройств релейной защиты. Показатели.
Требования. Оценки. М.: Инфра-Инженерия, 2014, 128 с.
4.
ГОСТ
27.002 – 2009.
Надежность в технике. Термины и определения. // [Электронный ресурс], режим
доступа: https://guap.ru/guap/standart/kach/gost_r_27_002-2009.pdf
5.
ГОСТ 28806-90. Качество
программных средств.
Термины и определения. // [Электронный ресурс], режим доступа: https://www.gosthelp.ru/gost/gost10605.html
6.
ГОСТ
Р МЭК-61513-2011.
Атомные станции. Системы контроля и управления, важные для безопасности. Общие
требования. // [Электронный
ресурс], режим доступа: https://www.gostrf.com/normadata/1/4293796/4293796176.pdf
7.
Основные
понятия надежности ПО
// [Электронный ресурс], режим доступа: https://baumanki.net/lectures/10-informatika-i-programmirovanie/350-nadezhnost-informacionnyh-sistem/4741-13-nadezhnost-programmnogo-obespecheniya.html
8.
Михаил
Моисеев.
Формальные методы обеспечения качества ПО. Методы оценки надежности ПО. Лекция
№2. // [Электронный ресурс], режим доступа: https://kspt.icc.spbstu.ru/media/files/2010/course/softwarequality/lec2.pdf
9.
Дроботун Е. Б. Надежность
программного обеспечения. Виды и критичность ошибок //
[Электронный ресурс], режим доступа: https://www.ivtn.ru/2009/pdf/d09_04.pdf
10. Надежность
программного обеспечения //
[Электронный ресурс], режим доступа: http://www.tehprog.ru/index.php_page=lecture13.html
11.
Захаров О.Г. Библиография
работ по надежности цифровых устройств релейной защиты //
[Электронный ресурс], режим доступа: https://rza.org.ua/blog/a-64.html
12. Оцениваем
надежность ЦРЗА? //
[Электронный ресурс], режим доступа: https://rza.org.ua/blog/a-320.html
13. ГОСТ
Р ИСО/МЭК 9126-93 Информационная
технология. Оценка программной продукции. Характеристики качества и руководства
по их применению // [Электронный ресурс], режим доступа: https://docs.cntd.ru/document/1200009076
14.
ГОСТ 19871-90. Обеспечение
систем обработки информации программное. Термины
и определения. // [Электронный ресурс], режим доступа: https://docs.cntd.ru/document/gost-19781-90
15.
Захаров О.Г. Ложное
срабатывание //
[Электронный ресурс], режим доступа: https://www.energoboard.ru/articles/3040-lognoe-srabativanie.html (7061 просмотр на 28.11.2024)
16.
Захаров О.Г. Ложное или излишнее срабатывание? // [Электронный ресурс], режим
доступа: https://rza.org.ua/blog/a-66.html
17.
Захаров О.Г. Формулы
надежности //
[Электронный ресурс], режим доступа: https://rza.org.ua/article/read/Formuly-nadezhnosti.html
:::28.11.2024_09-38:::