Научная статья на тему 'Основные подходы к верификации программного обеспечения реального времени'

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

CC BY
973
135
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕРИФИКАЦИЯ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РЕАЛЬНОГО ВРЕМЕНИ / СЕТИ ПЕТРИ МАРКОВА / MODEL CHECKING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ивутин А. Н., Дараган Е. И.

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

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

THE BASIC APPROA CHES TO VERIFICA TION OF REAL-TIME SOFTWARE

The basic approaches to verification of real-time software are considered. The model checking method are discussed. The approach to verification real-time software with Petri-Markov nets is described.

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

УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 004.415.52

А.Н. Ивутин, канд. техн. наук, доц.,

(4872) 33-24-45, alexev.ivutin@gmail.com,

Е.И. Дараган, асп., (4872) 35-01-24, evgeny.daragan@gmail.com (Россия, Тула, ТулГУ)

ОСНОВНЫЕ ПОДХОДЫ К ВЕРИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ РЕАЛЬНОГО ВРЕМЕНИ

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

Ключевые слова: верификация, программное обеспечение реального времени, сети Петри - Маркова, Model Checking.

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

563

Известия ТулГУ. Технические науки. 2011. Вып. 2

полета, успешно проходит этап тестирования, в системе устраняются найденные ошибки, а алгоритм выполняется без сбоев и отказов. Можно ли говорить о стабильном функционировании системы на всем диапазоне входных воздействий? Допустим, в процессе функционирования возникает такая ситуация, что при определенных условиях время реакции блока управления на входные сигналы увеличивается. Нетрудно представить, к каким последствиям может привести увеличение времени реакции системы на изменение входных параметров - от небольшого отклонения от курса до полной потери объекта, связанного, например, со столкновением с препятствием. Таким образом, можно сделать вывод, что тестирование позволяет выявить ошибки в алгоритмическом обеспечении, но не дает возможности оценить другие, не менее важные характеристики системы, определяющие ее работоспособность: временные характеристики всех возможных состояний программы (к примеру, время реакции системы на изменение входных параметров, длительность выполнения операций), количественные свойства (необходимое число переходов системы для достижения требуемого состояния) и т.д. Для решения описанной проблемы прибегают к использованию методов верификации программного обеспечения.

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

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

В [1] ошибка определяется как неспособность системы действовать в соответствии с исходным контрактом или перечнем требований пользователей. Данное определение имеет ряд недостатков. Если согласно требованиям пользователя система должна обеспечивать среднее время между отказами из-за ошибки в программном обеспечении на уровне

Управление, вычислительная техника и информационные технологии

100 часов, а для действующей системы этот показатель равен 150 часам, система все же имеет ошибки (поскольку ее среднее время между отказами конечно), даже несмотря на то, что она превышает требование пользователя. Кроме того, письменно зафиксированные и сформулированные требования редко детализированы настолько, чтобы описывать желаемое поведение программного обеспечения реального времени при всех возможных параметрах входных воздействий. Основываясь на вышесказанном, можно сформулировать более общее определение ошибки: в программном обеспечении имеется ошибка, если оно не выполняет того, что указано в его спецификации. Отказ программного обеспечения - это проявление ошибки в нем.

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

Метод проверки модели (model checking) [2] - это метод автоматической верификации программных систем, предполагающий для программы построение модели с конечным числом состояний, свойства которой выражаются на языке темпоральной логики. Конечная модель и формулы темпоральной логики подаются на вход программе-верификатору, и далее проверка истинности формул осуществляется автоматически. Стоит отметить, что построение конечной адекватной модели является весьма сложной задачей, т.к. модель может не учитывать ряд программных свойств или порождать несуществующие.

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

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

Известия ТулГУ. Технические науки. 2011. Вып. 2

менения классических методов верификации. Методы традиционной верификации могут дать ответ на вопрос, выполняется ли некоторое свойство системы с вероятностью 0 или 1. Вероятностный и временной анализ позволяют ответить на вопрос, удовлетворяет ли вероятность выполнения некоторого свойства в системе реального времени установленной границе (верхней и нижней) и будет ли это свойство выполняться в заданном интервале дискретного времени.

Анализ качества и корректности программных систем реального времени при помощи классических методов верификации (model checking) сложен в реализации. Вместе с этим он не позволяет в полной мере оценить следующие характеристики верифицируемой системы:

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

Устранить описанные недостатки, оставаясь в рамках классических математических методов, позволяет применение для верификации ПО реального времени математического аппарата сетей Петри [3]. Моделирование в таких сетях осуществляется на событийном уровне. Определяется, какие действия происходят в системе, какие состояние предшествовали этим действиям и какие состояния примет система после выполнения действия. Выполнение событийной модели в сетях Петри описывает поведение системы. Анализ результатов выполнения может сказать о том, в каких состояниях пребывала или не пребывала система, какие состояния в принципе не достижимы. Развитие классической теории сетей Петри привело к появлению так называемых “цветных” сетей Петри. Понятие цветности в них тесно связано с понятиями переменных, типов данных, условий и других конструкций, наиболее приближенных к языкам программирования. Расширенный теорией марковских процессов математический аппарат сетей Петри (сети Петри - Маркова [4]) обладает всеми необходимыми свойствами и характеристиками для проведения верификации программного обеспечения реального времени.

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

составление спецификации требований к программному обеспечению;

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

анализ вероятностных характеристик полученных сущностей, определение функций распределений для переходов;

Управление, вычислительная техника и информационные технологии

построением сети Петри на основе выделенных сущностей и спецификации к программе формируется конечная сеть состояний и переходов рассматриваемой системы;

проверка спецификации на построенной сети.

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

Список литературы

1. Майерс Г. Надежность программного обеспечения. М.: Мир,

1980.

2. Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking: пер. с англ./под ред. Р. Смелянского. М.:МЦНМО, 2002. 416 с.

3. Питерсон Дж. Теория сетей Петри и моделирование систем: пер. с англ. М.: Мир, 1984. 264 с.

4. Ларкин Е.В., Сабо Ю.И. Сети Петри-Маркова и отказоустойчивость авионики. Тула: ТулГУ, 2004. 208 с.

5. Изотов, В.H., Ивутин, А.Н. Проблемы создания высоконадежных специализированных автоматизированных систем научных исследований и комплексных испытаний // Автоматизация и современные технологии. 2009. №12. С. 30-31.

6. К вопросу о моделировании отказоустойчивых систем с помощью сетей Петри-Маркова / Ларкин Е.В. [и др.] // Фундаментальные исследования. 2007. № 5. С. 37.

A.N. Ivutin, E.I. Daragan

THE BASIC APPROA CHES TO VERIFICA TION OF REAL-TIME SOFTWARE

The basic approaches to verification of real-time software are considered. The model checking method are discussed. The approach to verification real-time software with Petri-Markov nets is described.

Key words: verification, the software of real time, a network of Petri-Markova, Model Cheching.

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