Previous Page  13 / 16 Next Page
Information
Show Menu
Previous Page 13 / 16 Next Page
Page Background

Разработка и исследование синтетического метода верификации программы…

ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2016. № 4

61

Окончание табл. 4

Заданные свойства ПО

Алгоритмы

Синтетический

метод

LLBMC

Встроенные проверки

кода

+

+

Пользовательские про-

верки (assert и assume)

+

+

+

Статический анализ

+

+

+

Динамический анализ

+

Проверка моделей

+

Выводы.

Приведен синтетический метод верификации ПО. Метод позво-

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

ства проверяемой программы, не требует построения наиболее полной сложной

модели программы. В результате работы был получен алгоритм работы метода

верификации и его реализация на языке SMT–LIB. Предложенный метод и ал-

горитмы являются новыми. Автоматически осуществляется компиляция про-

граммы в ее внутреннее представление, построение инварианта программы по

ее внутреннему представлению и построение контрпримера к проверяемому

свойству ПО. Построение контрпримеров допускает участие экспертов.

ЛИТЕРАТУРА

1.

Бурякова Н.А., Чернов А.В

. Классификация частично формализованных и формаль-

ных моделей и методов верификации программного обеспечения // Электрон. науч.

жур. «Инженерный вестник Дона». 2010. Т. 14. № 4. URL:

http://www.ivdon.ru/ru/

magazine/archive/n4y2010/259

2.

Вельдер С.Э., Шалыто А.А.

Верификация простых автоматных программ на основе

метода ModelChecking // Материалы XV Междунар. науч.-методич. конф. «Высокие ин-

теллектуальные технологии и инновации в образовании и науке». 2008. C. 286.

3.

Holzmann G., Smith M

. Software model checking: Extracting verification models from

source code // Formal methods for protocol engineering and distributed systems. Kluwer

Academic Publ., 1999. P. 481–497.

4.

Clarke E., Kroening D., Lerda F

. A tool for checking ANSI-C programs // Tools and algo-

rithms for the construction and analysis of systems (TACAS 2004) / Ed. by K. Jensen,

A. Podelski. Vol. 2988 of Lecture Notes in Computer Science. Springer, 2004. P. 168–176.

5.

Counterexample-guided

abstraction refinement / E. Clarke, O. Grumberg, S. Jha et al. //

Computer Aided Verification. 2000. P. 154–169.

6.

Software

verification with blast / T.A. Henzinger, R. Jhala, R. Majumdar, G. Sutre // 10th

SPIN Workshop on Model Checking Software (SPIN). LNCS 2648. Springer-Verlag, 2003.

P. 235–239.

7.

Cousot P

. Abstract interpretation. ACM Computing Surveys (CSUR) // ACM. New York.

1996. Vol. 28. Iss. 2. P. 324–328.

8.

Глухих М.И., Ицыксон В.М., Цесько В.А

. Использование зависимостей для повыше-

ния точности статического анализа программ // Модел. и анализ информ. систем. 2011.

№ 4. C. 72–73.