Научная статья на тему 'Эксперимент по использованию нейросетевых технологий для проведения испытаний открытого программного обеспечения'

Эксперимент по использованию нейросетевых технологий для проведения испытаний открытого программного обеспечения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
239
110
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЙРОСЕТЕВЫЕ ТЕХНОЛОГИИ / БЕЗОПАСНОСТЬ ИНФОРМАЦИИ / INFORMATION SECURITY / NEURAL NETWORK TECHNOLOGIES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Марков Георгий Алексеевич

Рассмотрены вопросы планирования испытаний программного обеспечения с открытым кодом. Показано, что значение показателя надежности программ с открытым кодом возрастает немонотонно. Дан обзор нейросетевых технологий и прикладных пакетов. Рассмотрены возможности пакета Neuroshell2. Проведено исследование по возможностям нейросетевых технологий оценивать надежность открытого программного обеспечения. Продемонстрированы преимущества использования простой 4-х-слойной нейронной сети, а также сети с обходными соединениями. Результаты исследования представлены в виде графиков.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Марков Георгий Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE EXPERIMENT ON THE USE OF NEURAL NETWORK TECHNOLOGY FOR TEST OPEN SOFTWARE

The tests for open source software are reviewed. The phenomenon of non-monotonic increase reliability is shown. The neural network technologies and software packages is reviewed. The capabilities of the Neuroshell2 are shown. The possibilities of neural network technologies to evaluate the reliability of open source software are analyzed. The advantages of using a simple 4-layer neural network, and network with bypass connections are illustrated. Results of the study are presented in the form of graphs.

Текст научной работы на тему «Эксперимент по использованию нейросетевых технологий для проведения испытаний открытого программного обеспечения»

ЭКСПЕРИМЕНТ ПО ИСПОЛЬЗОВАНИЮ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ ДЛЯ ПРОВЕДЕНИЯ ИСПЫТАНИЙ ОТКРЫТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Марков Георгий Алексеевич, Москва, МГТУ им. Н.Э. Баумана,

E-mail: [email protected]

THE EXPERIMENT ON THE USE I OF NEURAL NETWORK TECHNOLOGY I FOR TEST OPEN SOFTWARE

George Markov, Moscow, Bauman MSTU E-mail: [email protected]

The tests for open source software are reviewed. The phenomenon of non-monotonic increase reliability is shown. The neural network technologies and software packages is reviewed. The capabilities of the Neuroshell2 are shown. The possibilities of neural network technologies to evaluate the reliability of open source software are analyzed. The advantages of using a simple 4-layer neural network, and network with bypass connections are illustrated. Results of the study are presented in the form of graphs.

Keywords: artificial neural networks, neural network technology, open source software, reliability growth model.

Введение

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

Актуальность

В настоящее время разработка ПО с открытым кодом (ОПО) широко развилась в ИТ-направлении. При этом вопросы оценки надежности и безопасности функцио-

нирования ОПО остаются актуальными по ряду причин. Так, особенность создания ОПО заключается в том, что в разработке и модификации участвуют совершенно различные группы программистов, которые используют различные стили, методы, уровни программирования и отладки, обладают различным опытом и квалификацией, технической поддержкой и т.д. Данные программы создаются в разное время, могут тестироваться различными способами и т.д. Замечено, что рост надежности таких программ имеет не имеет монотонный характер. Вследствие этого возникает сложность использования известных вероятностных моделей роста надежности (основанных на заранее определенных законах распределения) для оценки надежности и безопасности различных версий и реализаций ОПО и его компонентов [2, 3]. Для решения указанной проблемы проведено исследование возможностей технологий нейронных сетей.

Надежность программного обеспечения

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

В литературе встречаются различные классификации моделей роста надежности, например:

- марковские, полумарковские и пуассоновские модели роста надежности от времени,

- отладочные модели роста надежности по результатам доработок [1].

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

Нейронные сети

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

Выделим характерные черты искусственных нейросетей как универсального инструмента для решения задач, например, НС представляют гибкую модель для нелинейной аппроксимации многомерных функций, НС могут выступать средством средство прогнозирования во времени для процессов, зависящих от многих переменных, НС свободны от ограничений обычных компьютеров благодаря параллельной обработке и сильной связанности нейронов и др. [4-8].

Обычно сеть состоит из произвольного количества слоев нейронов. Нейроны каждого слоя соединяются с нейронами предыдущего и последующего слоев по принципу «каждый с каждым».

Обзор пакета Neuroshell2

Для выполнения данной работы был выбран пакет Neuroshell2, как наиболее подходящий. Рассмотрим основные его особенности.

Эксперимент по использованию нейросетевых технологий...

Главное меню программы позволяет использовать NeuroShell 2 тремя различными способами: как «Систему для начинающего», как «Систему для профессионала», или как «Систему автономного использования». Все три системы состоят из подпрограмм, называемых «модулями». Большинству пользователей следует начинать с «Системы для начинающего».

Модуль «Нейронные сети для начинающего» представляет собой упрощенный набор процедур для построения и использования законченного, эффективного приложения на основе нейронной сети в рамках системы, работа с которой проще, чем работа с Системой для профессионала.

«Система для начинающего» использует трехслойную сеть с обратным распространением ошибки. «Система для начинающего» автоматически устанавливает параметры сети, такие, как скорость обучения, момент и количество скрытых нейронов.

Вы вводите данные, указываете входы и выходы и тренируете сеть. Затем Вы можете применить натренированную сеть к новым данным и экспортировать результаты.

«Система для профессионала» предоставляет опытному пользователю нейронных сетей возможность создавать и применять нейронные сети множества разнообразных архитектур при более тщательном контроле за процессом со стороны пользователя по сравнению с «Системой для начинающего».

Средства автономного использования позволят применять сеть независимо от NeuroShell 2. Например, «Генератор автономных файлов» обеспечивает средствами применения сети в реальном времени из программы, написанной на Visual Basic, Access Basic, Паскале, Си или на других языках. «Генератор программного кода» создает программный код для применения сетей небольшого или среднего размера, построенных с помощью NeuroShell 2.

Методика исследования

Основное назначение исследования заключается в изучении нейросетевых технологий с помощью программного пакета Neuroshell2, в сборе и подготовке статистики, исследовании различных нейросетевых технологий, анализе точности моделирования нейросетевых технологий, сравнении результата с известными математическими моделями.

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

Результаты работы показали возможность использования нейросетевых технологий при оценки и планирования испытаний программ. Начальные данные представлены на рис.1.

Для начала задача решалась на системе для новичков, рассматривая различия результатов при изменении количества нейронов. Также перед обучением ставились разные параметры данных (как их представляет система: «легкие», «сложные» и «очень сложные»).

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

Далее задача решалась при помощи «модуля для профессионала».

В пакете имеется большой выбор топологий сетей. Показ всех результатов приведёт к большому объему статьи, поэтому ниже представлены лучшие результаты.

1 3 5 7 3 11 13 15 17 19 2! 33 25 27 29 31 33 35 37 39

Рис. 1. Исходные данные(количество успешных испытаний в течении времени)

Результаты исследования простых сетей, когда каждый слой соединен только с предыдущим (использовались четыре слоя), представлены на рис.2.

26518 0

21879.5

15141.0

ето.5

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 38

Рис. 2. Простые сети

Эксперимент по использованию нейросетевых технологий...

Результат использования сетей с обходными соединениями, когда каждый слой соединен с каждым предшествующим, представлен на рис. 3.

Рис.4. Сети с обходными соединениями

Результат использования рекуррентных сетей с отрицательной обратной связью показаны на рис.4.

Рис. 4. Рекуррентные сети с отрицательной обратной связью

Выводы

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

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

Литература

1. Марков А.С. Модели оценки и планирования испытаний программных средств по требованиям безопасности информации // Вестник Московского государственного технического университета им. Н.Э. Баумана. Серия: Приборостроение. 2011. № SPEC. С. 90-103.

2. Барабанов А.В. Стандартизация процесса разработки безопасных программных средств // Вопросы кибербезопасности. 2013. № 1(1). С. 37-41.

3. Марков А.С., Цирлов В.Л. Опыт выявления уязвимостей в зарубежных программных продуктах // Вопросы кибербезопасности. 2013. № 1(1). С. 42-48.

4. Галушкин А.И., Цыпкин Я.З. Нейронные сети: история развития теории М.: ИПРЖР, 2001. 800 с.

5. Головко В.А. Нейронные сети: обучение, организация и применение. М.: ИПРЖР, 2001. 256 c.

6. Комарцова Л.Г., Максимов А.В. Нейрокомпьютеры. М.: Изд-во МГТУ им.Баумана, 2004. 400 с.

7. Тархов Д.А. Нейронные сети. Модели и алгоритмы: Справочник. М.: Радиотехника, 2005. 256 с.

8. Хайкин С. Нейронные сети: полный курс. 2-е изд. М.: "Вильямс", 2006. 1004 с.

1. Markov A.S. Modeli otsenki i planirovaniya ispytaniy programmnykh sredstv po trebovaniyam bezopasnosti informatsii, Vestnik Moskovskogo gosudarstvennogo tekhnicheskogo universiteta im. N.E. Baumana, Seriya: Priborostroyeniye, 2011, No SPEC, pp. 90-103.

2. Barabanov A.V. Standartizatsiya protsessa razrabotki bezopasnykh programmnykh sredstv, Voprosy kiberbezopasnosti, 2013, No 1(1), pp. 37-41.

3. Markov A.S., Tsirlov V.L. Opyt vyyavleniya uyazvimostey v zarubezhnykh programmnykh produktakh, Voprosy kiberbezopasnosti, 2013, No 1(1), pp. 42-48.

4. Galushkin A.I., Tsypkin Ya.Z. Neyronnyye seti: istoriya razvitiya teorii Moscow, IPRZhR, 2001, 800 p.

5. Golovko V.A. Neyronnyye seti: obucheniye, organizatsiya i primeneniye. Moscow, IPRZhR, 2001, 256 p.

6. Komartsova L.G., Maksimov A.V. Neyrokompyutery. Moscow, Izd-vo MGTU im.Baumana,

2004, 400 p.

7. Tarkhov D.A. Neyronnyye seti. Modeli i algoritmy: Spravochnik. Moscow, Radiotekhnika,

2005, 256 p.

8. Khaykin S. Neyronnyye seti: polnyy kurs. 2-e izd. Moscow, Vilyams, 2006. 1004 p.

References

i Надоели баннеры? Вы всегда можете отключить рекламу.