Секция «Программные средства и информационные технологии»
УДК 681.3.06
ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
У. С. Левкина, А. О. Литвинова Научный руководитель - Е. В. Сугак
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
Е-mail: [email protected]
Рассматриваются методы оценки надежности программного обеспечения, подходы к рассмотрению надежности, способы повышения надежности программного обеспечения.
Ключевые слова: программное обеспечение, оценка надежности, функциональный подход, принцип целостности, принцип необходимого разнообразия, принцип внешнего дополнения.
INCREASING SOFTWARE RELIABILITY
U. S. Levkina, A. O. Litvinova Scientific Supervisor - E. V. Sugak
Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation Е-mail: [email protected]
This article is devoted to the problem of software' reliability, different approaches to the problem and some ways to increase software' reliability.
Keywords: software, reliability, the functional approach, the integrity approach, the necessary variety approach, the external addition approach.
Надежность программного обеспечения - способность программного продукта безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью. Степень надежности характеризуется вероятностью работы программного продукта без отказа в течение определенного периода времени.
Для обеспечения и оценки надежности программных продуктов существуют различные методы, соответствующие разработанным моделям надежности программного обеспечения, таким как модель Миллса, модель роста надежности, модель Шумана и другие. Однако эти методы основаны для вычисления количества ошибок, а не их качества, что в последствии не дает точного определения надежности программного продукта.
Целесообразно провести оценку не всей программы полностью, а осуществить эту проверку блоками. Тогда надежность программы в целом будет определяться совокупной надежностью ее частей, которые назовем функциональными блоками. Для многих программных продуктов характерно присутствие, например, таких функциональных блоков, как блок ввода исходных данных, блок вывода результирующей информации, блок объявления и определения пользовательских типов данных, блок обработки информации, подпрограммы, процедуры и функции и прочие [1]. Поэтому представляется, что надежность программы должна складываться из совокупного достижения надежностей каждого функционального блока. При этом каждый блок помимо общих для всех вероятных отказов, таких как синтаксические ошибки и опечатки, характеризуется своим особенным набором возможных отказов и сбоев.
Для оценки надежности программного обеспечения может быть использована следующая формула:
Актуальные проблемы авиации и космонавтики - 2017. Том 2
N = , ¡=1
где п - количество выделенных функциональных блоков в программе; N1 - показатель надежности функционирования ¡-го блока; N - интегральный показатель надежности программного обеспечения. При этом оценка Ni должна производиться исходя из вероятностей возникновения каждого выделенного вида отказа в блоке, i = 0, ..., п, где т - количество возможных отказов в ¡-м блоке; р^ - вероятность возникновения]-го вида отказа в ¡-м блоке [2].
Рассмотрение надежности программного продукта с точки зрения функционального подхода, тем не менее, не лишено ряда недостатков. Так, количество, и степень тяжести последствий от возникновения отказов и сбоев того или иного функционального блока могут быть разными. Но данное упущение можно устранить, если в общем случае функциональные блоки в рассматриваемой формуле при расчете интегрального показателя надежности будут иметь разные весовые характеристики [3].
Согласно принципу целостности с ростом величины и сложности системы увеличивается вероятность того, что система не будет наследовать свойства своих составляющих элементов, а приобретет новые особенные свойства. Поэтому применение каких-либо способов повышения надежности программных продуктов только в одной функциональной части программы может не принести существенных результатов. Таким образом, различные способы повышения надежности необходимо использовать в комплексе, при совместном применении мер по управлению надежностью в различных взаимосвязанных частях программы может быть достигнут оптимальный результат. Так, например, выделение области памяти с некоторым резервом только в какой-либо одной подпрограмме может не дать реального эффекта, поскольку при необходимости использования данного резерва могут потребоваться соответствующие ресурсы в других частях программы. В то время как стратегия выделения резервной памяти, разработанная с системных позиций, может рационализировать ее использование [1].
Принцип необходимого разнообразия применительно к повышению надежности программных продуктов состоит в поиске таких средств и технологий программирования, которые обладали бы достаточными возможностями для реализации поставленных задач, представляя многообразие способов для их решения, и не принося чрезмерных издержек. В соответствии с принципом гибкости программная система должна иметь возможность адаптироваться к каким-либо возникшим изменениям ее параметров, например, при изменении используемых программой системных библиотек может возникнуть сбой в программе, которого возможно избежать при заблаговременной загрузке необходимых внешних ресурсов в программное окружение.
Согласно принципу внешнего дополнения, системе требуется наличие так называемого «черного ящика» - или избыточное кодирование.
Таким образом, в данной статье перечислены общие фундаментальные принципы повышения надежности ПО с помощью проверки фундаментальных блоков. Использование данных методов на практике позволит повысить качество и надёжность программного продукта.
Библиографические ссылки
1. Степович-Цветкова Г. С. Повышение надежности ПО. Иваново, 2015. 10 с.
2. Тюгашев А. А., Ильин И. А., Ермаков И. Е. Пути повышения надежности и качества программного обеспечения в космической отрасли. Самара. 5 с.
3. Надежность технических систем / Е. В. Сугак, Н. В. Василенко, Г. Г. Назаров и др. Красноярск : Раско, 2001. 608 с.
4. Сугак Е. В., Окладникова Е. Н. Прикладная теория случайных процессов. Основные положения и инженерные приложения / Сиб. гос. аэрокосмич. ун-т. Красноярск, 2006. 168 с.
© Левкина У. С., Литвинова А. О., 2017