Оценка надежности программного обеспечения посредством применения
функционального подхода
Г.С. Степович-Цветкова Ивановский государственный университет
Аннотация: Предлагается методика оценки надежности программного обеспечения, основанная на выделении функциональных блоков, при которой надежность программы складывается из совокупного достижения надежностей каждого функционального блока, обладающего своим особенным набором возможных отказов и сбоев.
Ключевые слова: надежность программного обеспечения, оценка надежности, программное обеспечение, метод оценки надежности, функциональный подход, функциональный блок, отказ, сбой в программе.
В современном мире имеет место тенденция повсеместной компьютеризации, компьютерные технологии проникают во многие сферы деятельности человека, открывая при этом новые грани возможного. Достижения компьютерной науки применяются, в том числе в медицине, космонавтике и других областях, где даже небольшое отклонение в ходе работы программы может стоить человеческой жизни. Поэтому оценка надежности программного обеспечения имеет важнейшее значение для принятия решения о возможности эксплуатации разработанной системы.
Теория надежности первоначально зародилась применительно к техническим наукам, и понятие надежности характеризовалось как свойство объекта выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах. Кроме центрального понятия надежности теория технической надежности оперирует такими ключевыми понятиями как отказ, безотказность и сбой (ГОСТ 27002-89 Надежность в технике. Основные понятия. Термины и определения). Названные характеристики могут быть в той или иной степени трансформированы применительно к теории надежности компьютерных программ, в которой понятие надежности выражается в наборе атрибутов,
относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени (ГОСТ Р ИСО/МЭК 9126-93 Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению) [1-3].
Для обеспечения и оценки надежности программных продуктов существуют различные методы, соответствующие разработанным моделям надежности программного обеспечения, таких как модель Миллса, модель роста надежности, модель Шумана и другие. Данные методы предусмотрены, главным образом, для оценки надежности компьютерной программы в целом [4-8]. Однако, на наш взгляд, целесообразно произвести выделение в программе отдельных функциональных блоков и оценку надежности осуществлять по блокам. Тогда надежность программы в целом будет определяться надежностью ее функциональных блоков - структурированных совокупностей логически связанных команд, направленных на обеспечение выполнения строго определенного круга задач одного характера. Для многих программных продуктов характерно присутствие, например, таких функциональных блоков, как блок ввода исходных данных, блок вывода результирующей информации, блок объявления и определения пользовательских типов данных, блок обработки информации, подпрограммы, процедуры и функции и прочие.
Кроме того, большинство существующих моделей оценки надежности программного обеспечения предполагают осуществление такой оценки на стадии тестирования программного продукта [6-10], хотя, на наш взгляд, тестирование является неотъемлемой частью процесса разработки программного продукта, а в оценке надежности нуждается конечный результат.
Поэтому представляется, что надежность программы должна складываться из совокупного достижения надежностей каждого функционального блока. При этом каждый блок помимо общих для всех вероятных отказов, таких как синтаксические ошибки и опечатки, характеризуется своим особенным набором возможных отказов и сбоев.
К примеру, блок ввода исходных данных снижает надежность программы в целом при отсутствии проверки введенных данных на корректность, то есть возможными отказами данного функционального блока являются выход данных из допустимого диапазона, а также неверный формат данных. Блок подключения внешних модулей и библиотек может характеризоваться следующими отказами: отсутствие в системе необходимой библиотеки и несовместимость подключаемых библиотек. Функциональный блок, содержащий обработку исходных данных, может содержать ряд неверно построенных логических решений реализуемого алгоритма, таких как неправильно заданные условия выхода из цикла, неправильная индексация цикла, неверно построенное логическое условие, приводящее к неправильному переходу при разветвлении алгоритма, и другие. Аналогично могут быть выделены вероятные отказы по всем функциональным блокам.
При таком подходе оценка надежности программного обеспечения
1 п
может быть произведена согласно следующей формуле: N = —^ Ыг, где п -
п ,=1 '
количество выделенных функциональных блоков в программе, N1 -показатель надежности функционирования '-ого блока, а N - интегральный показатель надежности программного обеспечения. При этом оценка N1 должна производиться исходя из вероятностей возникновения каждого
1 т'
выделенного вида отказа в блоке: Nl = —^р',1 = 1,..,п, где т, - количество
г т }=\ 1
возможных отказов в /-ом блоке, pj - вероятность возникновения j-ого вида отказа в /-ом блоке. Отметим также, что в общем случае функциональные блоки могут иметь разные весовые характеристики, учитываемые при расчете интегрального показателя надежности, поскольку и количество, и степень тяжести последствий от возникновения отказов и сбоев того или иного функционального блока могут быть разными.
Подводя итог, отметим, что надежность компьютерных программ требует детального исследования, которому способствует применение функционального подхода, позволяющего определить надежность программы в целом с учетом специфики каждого ее функционального блока.
Литература
1. Майерс Г. Надёжность программного обеспечения. М. : Мир, 1980. 360 с.
2. Липаев В.В. Надёжность программных средств. М. : СИНТЕГ, 1998. 232 с.
3. Pan J. Software Reliability // Carnegie Mellon University. Dependable Embedded Systems. 1999. URL: users.ece.cmu.edu/~koopman/des_s99/sw_reliability/
4. Павловская О.О. Статические методы оценки надежности программного обеспечения // Вестник Южно-Уральского государственного университета. Серия: Компьютерные технологии, управление, радиоэлектроника. 2009. №26 (159). С. 35-37.
5. Чернов А.В, Паращенко И.Г. Классификация моделей надежности программного обеспечения // Инженерный вестник Дона. 2012. №4. Ч.2. URL: ivdon.ru/ru/magazine/archive/n4p2y2012/1319
6. Василенко Н.В., Макаров В.А. Модели оценки надежности программного обеспечения // Вестник Новгородского государственного университета. 2004. №28. С. 126-132.
7. Москат Н.А., Станкевич Е.А. Показатели качества информационно-вычислительных систем железнодорожного транспорта //
ivdon.ru/ru/magazine/archive/n3y2013/1789
8. Trachtenberg M. Discovering How to Ensure Software Reliability // RCA Engineer. Jan/Feb. 1982. Pp. 53-57.
9. Карпов В.С., Ивутин А.Н., Суслин А.А. Подход к реализации методики оценки надежности ПО на основе комплексных метрик // Известия ТулГУ. Технические науки. 2009. №4. Ч.1. С. 116-125.
10. Ивутин А.Н., Суслин А.А. О некоторых применениях статистических распределений в оценке надежности программного обеспечения // Известия ТулГУ. Технические науки. 2011. №2. С. 568-575.
1. Mayers G. Nadezhnost' programmnogo obespecheniya [Software reliability], M. : Mir, 1980. 360 p.
2. Lipaev V.V. Nadezhnost' programmnykh sredstv [Software reliability]. M. : SINTEG, 1998. 232 p.
3. Pan J. Software Reliability. Carnegie Mellon University. Dependable Embedded Systems. 1999. URL: users.ece.cmu.edu/~koopman/des_s99/sw_reliability/
4. Pavlovskaya O.O. Vestnik Yuzhno-Ural'skogo gosudarstvennogo universiteta. Seriya: Komp'yuternye tekhnologii, upravlenie, radioelektronika. 2009. №26 (159). Pp. 35-37.
5. Chernov A.V, Parashchenko I.G. Inzenernyj vestnik Dona (Rus), 2012. №4. Ch.2. URL: ivdon.ru/ru/magazine/archive/n4p2y2012/1319
6. Vasilenko N.V., Makarov V.A. Vestnik Novgorodskogo gosudarstvennogo universiteta. 2004. №28. Pp. 126-132.
Инженерный
вестник
Дона. 2013. №3. URL:
References
7. МоБка! К.Л., Stankevich Е.А. 1пйепегпу| vestnik Бопа (Яш), 2013. №3. иЯЬ: ivdon.ru/ru/magazine/archive/n3y2013/1789
8. Trachtenberg М. ЯСЛ Engineer. Jan/Feb. 1982. рр. 53-57.
9. Karpov V.S., ^т Л.К, Suslin Л.Л. Izvestiya ^Юи. Tekhnicheskie nauki. 2009. №4. Ск1. рр. 116-125.
10. Ivutin Л.К., Suslin Л.Л. Izvestiya TulGU. Tekhnicheskie nauki. 2011. №2. рр. 568-575.