Статья 'Определение надёжности программного обеспечения в структуре современной информационной системы' - журнал 'Кибернетика и программирование' - NotaBene.ru
по
Journal Menu
> Issues > Rubrics > About journal > Authors > About the Journal > Requirements for publication > Council of Editors > Peer-review process > Policy of publication. Aims & Scope. > Article retraction > Ethics > Online First Pre-Publication > Copyright & Licensing Policy > Digital archiving policy > Open Access Policy > Article Processing Charge > Article Identification Policy > Plagiarism check policy
Journals in science databases
About the Journal

MAIN PAGE > Back to contents
Cybernetics and programming
Reference:

Software Reliability definition in the modern information system structure

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
Other publications by this author
 

 

DOI:

10.25136/2644-5522.2019.2.20341

Received:

09-09-2016


Published:

27-05-2019


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

This article written in Russian. You can find original text of the article here .

За последние полвека информационные технологии сделали огромный скачок, уровень автоматизации информационных процессов постоянно повышается. Разработано и функционирует большое количество компьютерных информационных систем в различных областях человеческой деятельности [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].


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).
Link to this article

You can simply select and copy link from below text field.


Other our sites:
Official Website of NOTA BENE / Aurora Group s.r.o.