Рус Eng Cn Перевести страницу на:  
Please select your language to translate the article


You can just close the window to don't translate
Библиотека
ваш профиль

Вернуться к содержанию

Кибернетика и программирование
Правильная ссылка на статью:

Определение надёжности программного обеспечения в структуре современной информационной системы

Поначугин Александр Викторович

кандидат экономических наук

доцент, кафедра прикладной информатики и информационных технологий в образовании, Нижегородский государственный педагогический университет им. Козьмы Минина

603005, Россия, Нижегородская область, г. Нижний Новгород, ул. Ульянова, 1

Ponachugin Aleksandr Viktorovich

PhD in Economics

Associate Professor, Department of Applied Informatics and Information Technologies in Education, the Minin Nizhny Novgorod State Pedagogical University

603005, Russia, Nizhegorodskaya oblast', g. Nizhnii Novgorod, ul. Ul'yanova, 1

sasha3@bk.ru
Другие публикации этого автора
 

 

DOI:

10.25136/2644-5522.2019.2.20341

Дата направления статьи в редакцию:

09-09-2016


Дата публикации:

27-05-2019


Аннотация: Предметом исследования является применение современных подходов для определения направленных на повышение надежности программного обеспечения мер безопасности и качества информационной системы. Объектом исследования являются модели определения надёжности программного обеспечения. Автор подробно рассматривает такие аспекты темы как: использование функционального подхода к изучению надежности программной составляющей, складывающейся из совокупного достижения надежности каждого функционального блока; использование системного подхода в части исследования надёжности программного обеспечения в структуре информационной системы. Особое внимание уделяется сопоставлению существующих моделей и способов определения надёжности. Предлагаемая методика оценки надежности программного обеспечения основывается на выделении функциональных блоков и позволяет гарантировать качество и надёжность конечного результата разработки программного обеспечения. Основные выводы проведённого исследования: использование системного подхода дает возможность выявить качества, следующие из взаимных связей между составляющими элементами программы, которые определяют современные способы повышения надежности программных продуктов. В работе предложено адаптировать главные системные принципы повышения надежности программного обеспечения, доказывается полезный эффект от их внедрения. Новизна исследования заключается в совместном использовании функционального и системного подходов с целью выявления способов роста качества и надежности, что позволяет учитывать особенности внутри структурных элементов программы и их взаимодействие.


Ключевые слова:

автотестирование информационной системы, надежность программного обеспечения, надёжность систем управления, функциональный блок, оценка надежности, обеспечение надежности, повышение надежности, программное обеспечение, системный подход, функциональный подход

УДК:

004.052

Abstract: The subject of research is the use of modern approaches to determine aimed at improving the reliability of software security and quality of the information system. The object of research is a model determining the reliability of the software. The author examines in detail aspects such topics as: the use of a functional approach to the study of the reliability of the software component is the sum of the aggregate reliability to achieve each function block; Use a systematic approach to the study of the reliability of the software in the information system structure. Particular attention is paid to the comparison of existing models and methods of determining the reliability. The proposed method of estimating software reliability based on the allocation of the function blocks and to guarantee quality and reliability of the final result of software development. Key findings of the study: the use of a systematic approach makes it possible to identify the quality of the following interconnections between the constituent elements of the program, which define modern ways to improve software reliability. The paper proposed to adapt the major principles of the system improve the reliability of software proved useful effect of their introduction. The novelty of the research lies in the joint use of the functional and systemic approach in order to identify ways to increase the quality and reliability that takes into account the characteristics within the structural elements of the program and their interaction.


Keywords:

self-test information system, reliability of software, the reliability of management systems, functional unit, reliability assessment, software reliability, improving reliability, software, systems approach, functional approach

За последние полвека информационные технологии сделали огромный скачок, уровень автоматизации информационных процессов постоянно повышается. Разработано и функционирует большое количество компьютерных информационных систем в различных областях человеческой деятельности [2].

Современные информационные технологии уверенно входят во все сферы человеческой деятельности, например, такие как медицина, атомная энергетика, военная промышленность. В таких областях даже минимальное отклонение в процессе функционирования программного обеспечения (ПО) приводит к большим финансовым потерям, а иногда - к человеческим жертвам. Поэтому при вводе в эксплуатацию и при внесении значительных изменений в разработанную информационную систему (ИС) должно использоваться надежное ПО. Показатель надежности - это важнейшая характеристика качества ПО (ГОСТ 28195-89 «Оценка качества программных средств») [12].

С ростом вычислительной мощности и развитием алгоритмических языков стало возможным разработать автономную и практически необслуживаемую ИС. Такие решения чаще всего используются во встроенных ИС управления, потребительские качества которых во многом определяются ПО [1].

Используемые методы и технологии часто не гарантируют должный уровень надежности, отказоустойчивости и безопасности ИС. Обозначим причины данной ситуации [14]:

- зависимость от имеющегося опыта и существующих наработок конкретного разработчика ПО;

- миграция на новые программно-аппаратные системы;

- отсутствие понимания между специалистами непосредственно использующими ИС, разработчиками, программистами;

- необходимость актуализации большого объема технической документации вместе с ПО;

- разнородные требования к создаваемому ПО.

В сложившейся ситуации важно определить перечень показателей, выделить и построить математические модели, которые являются основой для проведения оценки надежности ПО. Для количественной оценки применяется модель надежности и математическая модель, базирующиеся на оценки зависимости надежности от вперед известных или заданных в ходе исполнения параметров. К данным моделям относятся эмпирические и аналитические [5,6].

Эмпирические модели строятся на анализе полученных данных о процессе функционировании ранее созданного ПО. Наиболее часто используемая, особенно в середине 90-х, эмпирическая модель устанавливает количество ошибок в ПО в объеме машинописных листов или в количестве операторов. Эмпирические данные свидетельствуют о том, что на начальном этапе альфа тестирования ПО, на каждые 100 операторов имеется 1 ошибка [17].

__20160911__13.15.17

Рис. 1. Зависимость выявления ошибок в процессе эксплуатации ПО от этапа жизненного цикла

В современных условиях уровень надежности ПО считается допустимым для ввода ИС в эксплуатацию, если на 1000 операторов будет приходиться одна ошибка.

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

Аналитические модели определения надёжности ПО делятся на статические и динамические. Среди динамических существуют непрерывные и дискретные.

Функционирование ПО при применении непрерывно динамической модели представляется содержанием упорядоченных состояний, в которых переход от одного состояния к другому происходит при возникновении отказа, после которого также идет процесс восстановления [7].

Дискретные модели предполагают проведение изначального тестирование ПО системы в несколько шагов. В случае возникновения отказа производят поиск ошибок которые стали причиной отказа, после чего ошибки исправляются.

В статических моделях (Миллса, Нельсона Коркорэна) в отличии от динамических не берётся во внимание время возникновения ошибок [17].

Проблема методологии надёжности носит комплексный характер и не сводится только к выявлению существующих проблем на этапе тестирования и получила широкое рассмотрение в научной литературе, так в работе [1] проведен детальный анализ современного теоретического и практического положения обеспечения надежности ИС управления в части, касающейся ПО. Тестирование ПО не предоставляет нужных гарантий надежности и качества в принципе, эта проблема рассматривалась еще классиками программирования [14]. Многие разработанные методы предусматривают оценку надежности созданной программы в целом [3,11,16]. Ошибки в ПО, которые приводят к снижению надежности, обычно находятся в какой-либо части, поэтому целесообразно выделить отдельные функциональные блоки в программе и проводить процедуру оценки надежности по ним. При таких условиях надежность ПО в целом складывается из надежности его частей [1].

Оценку надежности ПО можно определить по следующей формуле [12]:

__20160909__21.48.59

где n – количество выделенных функциональных блоков i=1

в программе,

Ni – значение надежности функционирования i-ого блока,

N – интегральное значение надежности ПО.

В таком случае оценка Ni должна производиться с учетом вероятностей возникновения каждого выделенного вида отказа в блоке:

__20160909__21.50.05

где i=1,…n,

mi – количество возможных отказов в i-ом блоке,

– mi j=1 вероятность возникновения j-ого вида отказа в i-ом блоке.

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

В связи с этим следует рассматривать аспект повышения надежности ПО, учитывая основные системные принципы [4,8].

Надёжность ПО необходимо рассматривать как интегративное понятие, включающее [1]:

- формальный алгоритм функционирования ИС;

- подтверждающие корректность алгоритма аргументы;

- неизменность алгоритма при различных моделях возмущений;

- аппаратные методы исполнения алгоритма управления в определенном устройстве;

- контроль за функционированием ИС путем применения программно-аппаратных методов;

- гарантия устойчивости воспроизведения параметров, определяющих качество и надёжность ИС при массовом изготовлении.

В современных условиях возможным методом повышения качества тестирования ПО являются встроенные в ИС аппаратные или программные средства автотестирования, запускаемые как на начальном этапе работы программы, так и на стадии выполнения. Необходимость мониторинга за целостностью кода вводится в существующие стандарты на встроенные ИС управления [10].

Ведущими функциями процедуры автотестирования являются [1]:

- проверка работоспособности ядра CPU с целью пресечения выработки ошибочных команд управления;

- проверка целостности ПО;

- сигнал о готовности к работе или перезапуск ПО.

В современных компьютерных системах имеется возможность реализации процедуры автотестирования автономно и запуска ее перед инициализацией ИС как части стартовых операций. Пример реализации процедуры автотестирования для CPU семейства PIC16/17 рассмотрен в работе А.М. Астапкович «Об одном подходе к надежности программного обеспечения встроенных систем управления» [1]. Не смотря на видимую простоту, при проектировании алгоритмов автотестирования возникает проблемы на этапе их практической реализации. Так как исполнение процедуры автотестирования происходит с использованием ядра CPU, то возникает вопрос о корректности конкретной реализации данной функции ИС, а также о контроле корректности выполнения процедуры автотестирования. Эта проблема в логическом плане ведет к известному парадоксу Рассела. В формальной теории множеств парадокса Рассела отсутствие решения означает, что невозможно создать систему. Инженерный подход к вопросу автотестирования ведет к вероятным решениям, которые можно сформулировать следующим образом [1]:

- ИС не тестируется в принципе;

- используются внешние трестирующие системы.

Способы реализации внешних тестирующих систем могут значительно различаться в зависимости от требований предъявляемых к надёжности и финансового обеспечения проектирования: от схем использующих зеркалирование до сторожевых таймеров на аналогичных CPU [9].

Из этого следует, что базовым принципом к повышению надежности ИС управления необходимо считать использование программно-аппаратных решений, то есть применение реализованных на дискретных элементах или на CPU внешних тестирующих цепей.

Возможно также введение специализированных тестирующих блоков в саму архитектуру CPU.

Важным аспектом надежности ПО является их непосредственная техническая реализация, применяемая при производстве ИС управления.

Широкое разнообразие CPU и их семейства при возросшем темпе обновления номенклатуры выпускаемых изделий предполагает рассмотрение процесса разработки ПО как сложной, но все таки технологической операции.

Качество ПО задается на этапе логического проектирования алгоритма функционирования ИС управления [13,15].

Учитывая, что в процессе разработки ПО подвергается целому списку комбинированных внешних воздействий, требуется финальное тестирование ИС в целом. Проведение всеобъемлющих тестов, повторяющих систему тестов в процессе разработки технологического цикла, приведет к увеличению времени на их проведение, а также росту стоимости ИС. Поэтому в настоящее время достаточно остро стоит вопрос о разработки методологии ускоренных тестов ИС [1].

По результатам комплексного мониторинга отечественного и зарубежного опыта, современных достижений в области разработки и проектирования ИС можно выделить методы улучшения качества и надежности ПО [14]:

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

- разработка методики для определенной, конкретной спецификации критериев, требуемых к ПО;

- всесторонняя автоматизация тестирования ПО по разным параметрам;

- автоматическое генерирование фрагментов кода на языках высокого уровня, соответствующих спецификации;

- формальные методы верификации качеств ПО в целом и его частей;

- применение проверки моделей;

- создание кросс-платформенных библиотек и ПО;

- применение визуальных представлений, которые понятны пользователю на уровне интуиции;

- уменьшение зависимости от конкретного разработчика и его опыта, переход на открытое ПО.

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

Применение данных методов разработки в конечном итоге должны привести к достижению следующих целей:

- гарантированные показатели надежности, безопасности и качества ПО;

- сокращение сроков, трудоемкости и стоимости разработки ПО.

Следует отметить, что надежность ПО автоматизированной ИС управления является результатом многих факторов - алгоритмических, производственных, схемотехнических и поэтому требует всестороннего тестирования на этапе ввода ИС в эксплуатацию, а так же учета взаимодействия аппаратной части ПО в условиях эксплуатации, приближенным к реальным [12].


Библиография
1. Астапкович А.М., Востриков А.А. Обеспечение надежности микропроцессорных систем управления программно-аппаратными методами (часть 1) [Электронный ресурс]. URL: http://ask-lab.com/assets/files/articles/obespechenie-nadezhnosti-ms-sistem-1.pdf (дата обращения: 30.08.2016);
2. Бахтиярова Л.Н., Формирование общекультурных компетенций как составляющей информационной подготовки студентов средствами MS Access // Вестник Мининского университета. 2013. № 2 [Электронный ресурс]. URL: http://vestnik.mininuniver.ru/upload/iblock/fa1/9-formirovanie-obshchekul-turnykh-kompetentsiy-kak.pdf (дата обращения: 28.08.2016);
3. Василенко Н.В., Макаров В.А. Модели оценки надежности программного обеспечения // Вестник Новгородского государственного университета. 2004. № 28. С. 126-132.
4. Воскобойников А.Э. Системные исследования: базовые понятия, принципы и методология // Знание. Понимание. Умение. 2013. № 6 [Электронный ресурс]. URL: zpu-journal.ru/e-zpu/2013/6/Voskoboinikov_Systems-Research (дата обращения: 30.08.2016);
5. Дейкстра Э.В. Навстречу корректным программам. Grenoble: Mathematics Technological University, 1967.
6. Ивутин А.Н., Суслин А.А. О некоторых применениях статистических распределений в оценке надежности программного обеспечения // Известия ТулГУ. Технические науки. 2011. № 2. С. 568-575.
7. Карпов В.С., Ивутин А.Н., Суслин А.А. Подход к реализации методики оценки надежности ПО на основе комплексных метрик // Известия ТулГУ. Технические науки. 2009. № 4. Ч. 1. С. 116-125.
8. Липаев В.В. Качество программных средств. М.: Янус-К, 2002. 400 с.
9. Липаев В.В. Надёжность программных средств. М.: СИНТЕГ, 1998. 232 с.
10. Майерс Г. Надёжность программного обеспечения. М.: Мир, 1980. 360 с.
11. Павловская О.О. Статические методы оценки надежности программного обеспечения // Вестник Южно-Уральского государственного университета. Серия: Компьютерные технологии, управление, радиоэлектроника. 2009. № 26(159). С. 35-37.
12. Степович-Цветкова Г.С. Применение системных принципов в управлении качеством программных продуктов // Инженерный вестник Дона. 2015. № 3 [Электронный ресурс]. URL: ivdon.ru/ru/ maga-zine/archive/n3y2015/3207 (дата обращения: 01.09.2016).
13. Степович-Цветкова Г.С. Функциональный подход к надежности компьютерных программ // Перспективы развития науки и образования. М.: «АР-Консалт», 2013. С. 154-155.
14. Тюгашев А.А., Ильин И.А., Ермаков И.Е. Пути повышения надежности и качества программного обеспечения в космической отрасли // Управление большими системами. Сборник трудов. Инс-т проблем управления им. В.А. Трапезникова РАН. 2012. № 39. С. 288-299.
15. Фатрелл Р.Т., Шафер Д.Ф., Шафер Л.И. Управление программными проектами. Достижение оптимального качества при минимуме затрат. М.: Вильямс, 2003. 1136 с.
16. Чернов А.В, Паращенко И.Г. Классификация моделей надежности программного обеспечения // Инженерный вестник Дона. 2012. № 4. Ч. 2 [Электронный ресурс]. URL: ivdon.ru/ru/magazine/archive/n4p2y2012/1319 (дата обращения: 01.09.2016);
17. Штарик А.В. Методы оценки надежности программного обеспечения // Молодёжь и наука: Сборник материалов VII Всероссийской научно-технической конференции студентов, аспирантов и молодых учёных, посвященной 50-летию первого полета человека в космос. Красноярск: Сибирский федеральный ун-т, 2011 [Электронный ресурс]. URL: http://conf.sfu-kras.ru/sites/mn2011/section03.html (дата обращения: 28.08.2016).
References
1. Astapkovich A.M., Vostrikov A.A. Obespechenie nadezhnosti mikroprotsessornykh sistem upravleniya programmno-apparatnymi metodami (chast' 1) [Elektronnyi resurs]. URL: http://ask-lab.com/assets/files/articles/obespechenie-nadezhnosti-ms-sistem-1.pdf (data obrashcheniya: 30.08.2016);
2. Bakhtiyarova L.N., Formirovanie obshchekul'turnykh kompetentsii kak sostavlyayushchei informatsionnoi podgotovki studentov sredstvami MS Access // Vestnik Mininskogo universiteta. 2013. № 2 [Elektronnyi resurs]. URL: http://vestnik.mininuniver.ru/upload/iblock/fa1/9-formirovanie-obshchekul-turnykh-kompetentsiy-kak.pdf (data obrashcheniya: 28.08.2016);
3. Vasilenko N.V., Makarov V.A. Modeli otsenki nadezhnosti programmnogo obespecheniya // Vestnik Novgorodskogo gosudarstvennogo universiteta. 2004. № 28. S. 126-132.
4. Voskoboinikov A.E. Sistemnye issledovaniya: bazovye ponyatiya, printsipy i metodologiya // Znanie. Ponimanie. Umenie. 2013. № 6 [Elektronnyi resurs]. URL: zpu-journal.ru/e-zpu/2013/6/Voskoboinikov_Systems-Research (data obrashcheniya: 30.08.2016);
5. Deikstra E.V. Navstrechu korrektnym programmam. Grenoble: Mathematics Technological University, 1967.
6. Ivutin A.N., Suslin A.A. O nekotorykh primeneniyakh statisticheskikh raspredelenii v otsenke nadezhnosti programmnogo obespecheniya // Izvestiya TulGU. Tekhnicheskie nauki. 2011. № 2. S. 568-575.
7. Karpov V.S., Ivutin A.N., Suslin A.A. Podkhod k realizatsii metodiki otsenki nadezhnosti PO na osnove kompleksnykh metrik // Izvestiya TulGU. Tekhnicheskie nauki. 2009. № 4. Ch. 1. S. 116-125.
8. Lipaev V.V. Kachestvo programmnykh sredstv. M.: Yanus-K, 2002. 400 s.
9. Lipaev V.V. Nadezhnost' programmnykh sredstv. M.: SINTEG, 1998. 232 s.
10. Maiers G. Nadezhnost' programmnogo obespecheniya. M.: Mir, 1980. 360 s.
11. Pavlovskaya O.O. Staticheskie metody otsenki nadezhnosti programmnogo obespecheniya // Vestnik Yuzhno-Ural'skogo gosudarstvennogo universiteta. Seriya: Komp'yuternye tekhnologii, upravlenie, radioelektronika. 2009. № 26(159). S. 35-37.
12. Stepovich-Tsvetkova G.S. Primenenie sistemnykh printsipov v upravlenii kachestvom programmnykh produktov // Inzhenernyi vestnik Dona. 2015. № 3 [Elektronnyi resurs]. URL: ivdon.ru/ru/ maga-zine/archive/n3y2015/3207 (data obrashcheniya: 01.09.2016).
13. Stepovich-Tsvetkova G.S. Funktsional'nyi podkhod k nadezhnosti komp'yuternykh programm // Perspektivy razvitiya nauki i obrazovaniya. M.: «AR-Konsalt», 2013. S. 154-155.
14. Tyugashev A.A., Il'in I.A., Ermakov I.E. Puti povysheniya nadezhnosti i kachestva programmnogo obespecheniya v kosmicheskoi otrasli // Upravlenie bol'shimi sistemami. Sbornik trudov. Ins-t problem upravleniya im. V.A. Trapeznikova RAN. 2012. № 39. S. 288-299.
15. Fatrell R.T., Shafer D.F., Shafer L.I. Upravlenie programmnymi proektami. Dostizhenie optimal'nogo kachestva pri minimume zatrat. M.: Vil'yams, 2003. 1136 s.
16. Chernov A.V, Parashchenko I.G. Klassifikatsiya modelei nadezhnosti programmnogo obespecheniya // Inzhenernyi vestnik Dona. 2012. № 4. Ch. 2 [Elektronnyi resurs]. URL: ivdon.ru/ru/magazine/archive/n4p2y2012/1319 (data obrashcheniya: 01.09.2016);
17. Shtarik A.V. Metody otsenki nadezhnosti programmnogo obespecheniya // Molodezh' i nauka: Sbornik materialov VII Vserossiiskoi nauchno-tekhnicheskoi konferentsii studentov, aspirantov i molodykh uchenykh, posvyashchennoi 50-letiyu pervogo poleta cheloveka v kosmos. Krasnoyarsk: Sibirskii federal'nyi un-t, 2011 [Elektronnyi resurs]. URL: http://conf.sfu-kras.ru/sites/mn2011/section03.html (data obrashcheniya: 28.08.2016).

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

В связи с политикой двойного слепого рецензирования личность рецензента не раскрывается.
Со списком рецензентов издательства можно ознакомиться здесь.

Предмет исследования, представленный в статье, имеет определенный научный интерес, так как повышение надежности программного обеспечения мер безопасности и качества информационной системы является сегодня одним из актуальных вопросов в программировании. Автор адекватно подходит к рассмотрению вопросов безопасности программного обеспечения, так как надежность программной составляющей, рассматривается им из совокупного достижения надежности каждого функционального блока. Автор использует функциональный подход к изучению данного авторота, также использует системный подход в части исследования надёжности программного обеспечения в структуре информационной системы. Как следствие, методология исследования, используемая автором, позволяет сделать выводы, представляющие определенный научный интерес, так как методика оценки надежности программного обеспечения на выделении функциональных блоков и позволяет гарантировать надёжность результата разработки программного обеспечения.
Статья содержит признаки существенной научной новизны, так как совместное использование функционального и системного подходов позволяет выявить необходимые способы роста качества и надежности программного обеспечения, а также учитывать особенности внутри структурных элементов программы и их взаимодействие. Структура и содержание статьи соответствуют научному стилю публикаций. Статья содержит рисунок, что придает большую наглядность размышлениям автора.
Библиография статьи содержит большое число ссылок на научные работы по схожей тематике исследования (17 ссылок).
В статье дан краткий, но достаточный для понимания научных проблем обзор работ других исследователей по схожей тематике, что позволяет автору, в частности, сопоставить существующие модели и способы определения надёжности программного обеспечения. Выводы автора статьи имеют под собой строгую научную основу. Мысли сформулированы ясно и изложены логично.
Замечания:
1. Имеются орфографические и грамматические ошибки: например,
"Дискретные модели предполагают проведение изначального тестирование ПО системы..."
"В случае возникновения отказа производят поиск ошибок которые стали причиной отказа, после чего ошибка..."- пропущена запятая
2. Для "ПО" – не определено первое использование аббревиатуры «программное обеспечение».
Необходимо вычитать текст статьи, внести изменения и исправить ошибки.
После внесения небольших корректив статья может быть опубликована в журнале.