10.06.2015 Views

Отчет о патентных исследованиях по этапу I - Кафедра ...

Отчет о патентных исследованиях по этапу I - Кафедра ...

Отчет о патентных исследованиях по этапу I - Кафедра ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

УДК 004.4’242<br />

№ г<strong>о</strong>срегистрации<br />

Инв. №<br />

Министерств<strong>о</strong> <strong>о</strong>браз<strong>о</strong>вания и науки Р<strong>о</strong>ссийск<strong>о</strong>й Федерации<br />

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ<br />

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ<br />

(СПбГУ ИТМО)<br />

УТВЕРЖДАЮ<br />

Рук<strong>о</strong>в<strong>о</strong>дитель раб<strong>о</strong>ты<br />

д<strong>о</strong>кт. техн. наук., пр<strong>о</strong>фесс<strong>о</strong>р<br />

А. А. Шалыт<strong>о</strong><br />

31 мая 2007 г.<br />

« » _____________ 2007 г.<br />

ОТЧЕТ О ПАТЕНТНЫХ ИССЛЕДОВАНИЯХ<br />

№ 2007.08.31-01 <strong>о</strong>т 31 августа 2007 г.<br />

п<strong>о</strong> теме<br />

РАЗРАБОТКА ТЕХНОЛОГИИ ВЕРИФИКАЦИИ УПРАВЛЯЮЩИХ ПРОГРАММ СО СЛОЖНЫМ<br />

ПОВЕДЕНИЕМ, ПОСТРОЕННЫХ НА ОСНОВЕ АВТОМАТНОГО ПОДХОДА<br />

Этап 1. Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в<br />

Шифр 2007-4-1.4-18-02-041.<br />

Декан факультета «Инф<strong>о</strong>рмаци<strong>о</strong>нных<br />

техн<strong>о</strong>л<strong>о</strong>гий и пр<strong>о</strong>граммир<strong>о</strong>вания»<br />

д<strong>о</strong>кт. техн. наук, пр<strong>о</strong>фесс<strong>о</strong>р<br />

п<strong>о</strong>дпись<br />

В. Г. Парфен<strong>о</strong>в<br />

Начальник <strong>о</strong>тдела<br />

интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти и<br />

научн<strong>о</strong>-техническ<strong>о</strong>й инф<strong>о</strong>рмации<br />

п<strong>о</strong>дпись<br />

Л. Н. Казар<br />

Санкт-Петербург<br />

2007


2<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

СПИСОК ИСПОЛНИТЕЛЕЙ<br />

Рук<strong>о</strong>в<strong>о</strong>дитель темы<br />

Заведующий кафедр<strong>о</strong>й<br />

«Техн<strong>о</strong>л<strong>о</strong>гии пр<strong>о</strong>граммир<strong>о</strong>вания»,<br />

д<strong>о</strong>кт. техн. наук, пр<strong>о</strong>фесс<strong>о</strong>р<br />

А. А. Шалыт<strong>о</strong><br />

Исп<strong>о</strong>лнитель <strong>о</strong>тчета<br />

Студент<br />

А. С. Красс


3<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

СОДЕРЖАНИЕ<br />

СПИСОК ИСПОЛНИТЕЛЕЙ ..........................................................................................................................2<br />

СОДЕРЖАНИЕ .................................................................................................................................................3<br />

ОБЩИЕ ДАННЫЕ ОБ ОБЪЕКТЕ ИССЛЕДОВАНИЙ ................................................................................4<br />

ПЕРЕЧЕНЬ СОКРАЩЕНИЙ, УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ,<br />

ТЕРМИНОВ....................................................................................................................................6<br />

1. ИССЛЕДОВАНИЯ ПАТЕНТОВ .................................................................................................................7<br />

1.1. ВЫБОР ОБЛАСТИ ДЛЯ ИССЛЕДОВАНИЙ ...............................................................................................7<br />

1.2. ОСОБЕННОСТИ ПАТЕНТНОЙ СИСТЕМЫ США.....................................................................................7<br />

1.2.1. Патент на к<strong>о</strong>нечные авт<strong>о</strong>маты ............................................................................................7<br />

1.2.2. П<strong>о</strong>следствия неправильн<strong>о</strong>й патентн<strong>о</strong>й п<strong>о</strong>литики .............................................................8<br />

1.3. ПАТЕНТ США НА ВЕРИФИКАЦИЮ МОДЕЛЕЙ, ПОСТОЕННЫХ НА БАЗЕ ИЕРАРХИЧЕСКИХ<br />

КОНЕЧНЫХ АВТОМАТОВ .........................................................................................................9<br />

1.4. РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЯ ПАТЕНТОВ...........................................................................................9<br />

2. ИССЛЕДОВАНИЯ НЕПАТЕНТНЫХ ИСТОЧНИКОВ..........................................................................10<br />

2.1. ПРЕДПОСЫЛКИ К НЕПАТЕНТНЫМ ИССЛЕДОВАНИЯМ .......................................................................10<br />

2.2. ИСТОЧНИКИ ИНФОРМАЦИИ ..............................................................................................................10<br />

2.3. ОБЩИЙ ОБЗОР ИСТОЧНИКОВ.............................................................................................................10<br />

2.4. ОБЗОР ВЫБРАННЫХ ИНСТРУМЕНТОВ ................................................................................................27<br />

2.4.1. Bogor....................................................................................................................................28<br />

2.4.2. CBMC ..................................................................................................................................30<br />

2.4.3. NuSMV ................................................................................................................................31<br />

2.4.4. SPIN 31<br />

ЗАКЛЮЧЕНИЕ...............................................................................................................................................34<br />

ИСТОЧНИКИ..................................................................................................................................................35<br />

ПРИЛОЖЕНИЕ А...........................................................................................................................................36<br />

ПРИЛОЖЕНИЕ Б ...........................................................................................................................................37<br />

ПРИЛОЖЕНИЕ В ...........................................................................................................................................38


4<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ОБЩИЕ ДАННЫЕ ОБ ОБЪЕКТЕ ИССЛЕДОВАНИЙ<br />

Патентный п<strong>о</strong>иск пр<strong>о</strong>в<strong>о</strong>дился с целью <strong>о</strong>пределения патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сти планируемых<br />

результат<strong>о</strong>в научн<strong>о</strong>-исслед<strong>о</strong>вательск<strong>о</strong>й раб<strong>о</strong>ты п<strong>о</strong> л<strong>о</strong>ту «Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гий верификации<br />

пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения» – тема «Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих<br />

пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да» (шифр «2007-<br />

4-1.4-18-02-041»), вып<strong>о</strong>лняем<strong>о</strong>й в рамках Федеральн<strong>о</strong>й целев<strong>о</strong>й научн<strong>о</strong>-техническ<strong>о</strong>й пр<strong>о</strong>граммы<br />

«Исслед<strong>о</strong>вания и разраб<strong>о</strong>тки п<strong>о</strong> при<strong>о</strong>ритетным направлениям развития научн<strong>о</strong>-техн<strong>о</strong>л<strong>о</strong>гическ<strong>о</strong>г<strong>о</strong><br />

к<strong>о</strong>мплекса Р<strong>о</strong>ссии на 2007–2012 г<strong>о</strong>ды» п<strong>о</strong> г<strong>о</strong>сударственн<strong>о</strong>му к<strong>о</strong>нтракту № 02.514.11.4048,<br />

заключенн<strong>о</strong>му между Федеральным агентств<strong>о</strong>м п<strong>о</strong> науке и инн<strong>о</strong>вациям и Г<strong>о</strong>сударственным<br />

<strong>о</strong>браз<strong>о</strong>вательным учреждением высшег<strong>о</strong> пр<strong>о</strong>фесси<strong>о</strong>нальн<strong>о</strong>г<strong>о</strong> <strong>о</strong>браз<strong>о</strong>вания «Санкт-Петербургский<br />

г<strong>о</strong>сударственный университет инф<strong>о</strong>рмаци<strong>о</strong>нных техн<strong>о</strong>л<strong>о</strong>гий, механики и <strong>о</strong>птики» на <strong>о</strong>сн<strong>о</strong>вании<br />

решения К<strong>о</strong>нкурсн<strong>о</strong>й к<strong>о</strong>миссии Р<strong>о</strong>снауки (пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>л <strong>о</strong>т 28.04.2007 г. № 15), а также для п<strong>о</strong>лучения<br />

сведений <strong>о</strong>б <strong>о</strong>хранных и иных д<strong>о</strong>кументах, к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут препятств<strong>о</strong>вать применению результат<strong>о</strong>в<br />

данн<strong>о</strong>й НИР в Р<strong>о</strong>ссийск<strong>о</strong>й Федерации, и усл<strong>о</strong>виях исп<strong>о</strong>льз<strong>о</strong>вания таких д<strong>о</strong>кумент<strong>о</strong>в.<br />

Патентный п<strong>о</strong>иск пр<strong>о</strong>в<strong>о</strong>дился в с<strong>о</strong><strong>о</strong>тветствии с ГОСТ Р. 15.011-96 «Система разраб<strong>о</strong>тки и<br />

п<strong>о</strong>стан<strong>о</strong>вки пр<strong>о</strong>дукции на пр<strong>о</strong>изв<strong>о</strong>дств<strong>о</strong>. Патентные исслед<strong>о</strong>вания» [14]. При эт<strong>о</strong>м пр<strong>о</strong>в<strong>о</strong>дился п<strong>о</strong>иск,<br />

как <strong>патентных</strong> ист<strong>о</strong>чник<strong>о</strong>в, так и не<strong>патентных</strong> ист<strong>о</strong>чник<strong>о</strong>в, а также пр<strong>о</strong>граммных пр<strong>о</strong>дукт<strong>о</strong>в. Эт<strong>о</strong><br />

д<strong>о</strong>лжн<strong>о</strong> п<strong>о</strong>м<strong>о</strong>чь в разраб<strong>о</strong>тке техн<strong>о</strong>л<strong>о</strong>гии, в к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>й будут учтены преимущества и нед<strong>о</strong>статки уже<br />

существующих п<strong>о</strong>дх<strong>о</strong>д<strong>о</strong>в к верификации и с<strong>о</strong><strong>о</strong>тветствующих пр<strong>о</strong>граммных пр<strong>о</strong>дукт<strong>о</strong>в.<br />

Существуют три мет<strong>о</strong>да анализа к<strong>о</strong>рректн<strong>о</strong>сти пр<strong>о</strong>грамм:<br />

• тестир<strong>о</strong>вание;<br />

• д<strong>о</strong>казательств<strong>о</strong> к<strong>о</strong>рректн<strong>о</strong>сти пр<strong>о</strong>грамм;<br />

• верификация на м<strong>о</strong>дели (model checking).<br />

Первый мет<strong>о</strong>д исп<strong>о</strong>льзуется п<strong>о</strong>сле или в пр<strong>о</strong>цессе написания пр<strong>о</strong>граммы. Он не гарантирует,<br />

чт<strong>о</strong> все <strong>о</strong>шибки будут найдены.<br />

Вт<strong>о</strong>р<strong>о</strong>й мет<strong>о</strong>д с<strong>о</strong>ст<strong>о</strong>ит в ф<strong>о</strong>рмальн<strong>о</strong>м д<strong>о</strong>казательстве к<strong>о</strong>рректн<strong>о</strong>сти пр<strong>о</strong>грамм, и является<br />

крайне труд<strong>о</strong>ёмким. Он связан с семантик<strong>о</strong>й исп<strong>о</strong>льзуем<strong>о</strong>г<strong>о</strong> языка пр<strong>о</strong>граммир<strong>о</strong>вания, н<strong>о</strong> в случае<br />

применения авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да к пр<strong>о</strong>граммир<strong>о</strong>ванию п<strong>о</strong>сле п<strong>о</strong>лн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>стр<strong>о</strong>ения пр<strong>о</strong>граммы эт<strong>о</strong>т<br />

мет<strong>о</strong>д м<strong>о</strong>жет быть исп<strong>о</strong>льз<strong>о</strong>ван неп<strong>о</strong>средственн<strong>о</strong> для пр<strong>о</strong>верки к<strong>о</strong>рректн<strong>о</strong>сти функций,<br />

с<strong>о</strong><strong>о</strong>тветствующих вх<strong>о</strong>дным переменным и вых<strong>о</strong>дным в<strong>о</strong>здействиям. Эти функции <strong>о</strong>бычн<strong>о</strong><br />

практически не с<strong>о</strong>держат л<strong>о</strong>гики и реализуют неб<strong>о</strong>льшую задачу, к<strong>о</strong>рректн<strong>о</strong>сть к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>й м<strong>о</strong>жет быть<br />

д<strong>о</strong>казана. Таким <strong>о</strong>браз<strong>о</strong>м, структура авт<strong>о</strong>матных пр<strong>о</strong>грамм благ<strong>о</strong>приятствует частичн<strong>о</strong>му применению<br />

мет<strong>о</strong>да д<strong>о</strong>казательства к<strong>о</strong>рректн<strong>о</strong>сти пр<strong>о</strong>грамм. Однак<strong>о</strong> эт<strong>о</strong>т мет<strong>о</strong>д <strong>о</strong>казывается практически<br />

бесп<strong>о</strong>лезным при пр<strong>о</strong>верке л<strong>о</strong>гики пр<strong>о</strong>грамм. Для пр<strong>о</strong>верки л<strong>о</strong>гики авт<strong>о</strong>матных пр<strong>о</strong>грамм п<strong>о</strong>дх<strong>о</strong>дит<br />

третий мет<strong>о</strong>д – верификация на м<strong>о</strong>дели [1].<br />

При исп<strong>о</strong>льз<strong>о</strong>вании эт<strong>о</strong>г<strong>о</strong> мет<strong>о</strong>да в <strong>о</strong>бщем случае п<strong>о</strong> пр<strong>о</strong>грамме стр<strong>о</strong>ится ф<strong>о</strong>рмальная м<strong>о</strong>дель с<br />

к<strong>о</strong>нечным числ<strong>о</strong>м с<strong>о</strong>ст<strong>о</strong>яний, а пр<strong>о</strong>веряемые св<strong>о</strong>йства задаются, например, с п<strong>о</strong>м<strong>о</strong>щью ф<strong>о</strong>рмул<br />

темп<strong>о</strong>ральн<strong>о</strong>й л<strong>о</strong>гики. Пр<strong>о</strong>верка вып<strong>о</strong>лним<strong>о</strong>сти темп<strong>о</strong>ральных ф<strong>о</strong>рмул, <strong>о</strong>писывающих св<strong>о</strong>йства м<strong>о</strong>дели,<br />

пр<strong>о</strong>исх<strong>о</strong>дит авт<strong>о</strong>матическим <strong>о</strong>браз<strong>о</strong>м. При эт<strong>о</strong>м для традици<strong>о</strong>нн<strong>о</strong> п<strong>о</strong>стр<strong>о</strong>енных пр<strong>о</strong>грамм<br />

<strong>о</strong>бычн<strong>о</strong> в<strong>о</strong>зникают пр<strong>о</strong>блемы с с<strong>о</strong>зданием м<strong>о</strong>дели, адекватн<strong>о</strong>й исх<strong>о</strong>дн<strong>о</strong>й пр<strong>о</strong>грамме. Однак<strong>о</strong> при<br />

верификации авт<strong>о</strong>матных пр<strong>о</strong>грамм этих пр<strong>о</strong>блем м<strong>о</strong>жн<strong>о</strong> избежать, так как их п<strong>о</strong>ведение задается<br />

графами перех<strong>о</strong>д<strong>о</strong>в, п<strong>о</strong> к<strong>о</strong>т<strong>о</strong>рым м<strong>о</strong>жн<strong>о</strong> авт<strong>о</strong>матически п<strong>о</strong>стр<strong>о</strong>ить м<strong>о</strong>дель Крипке, к<strong>о</strong>т<strong>о</strong>рую м<strong>о</strong>жн<strong>о</strong><br />

верифицир<strong>о</strong>вать известными мет<strong>о</strong>дами [2]. В наст<strong>о</strong>ящей раб<strong>о</strong>те наиб<strong>о</strong>льшее внимание будет уделен<strong>о</strong><br />

мет<strong>о</strong>ду верификации на м<strong>о</strong>дели, как наиб<strong>о</strong>лее перспективн<strong>о</strong>му.<br />

В наст<strong>о</strong>ящее время существует б<strong>о</strong>льш<strong>о</strong>е числ<strong>о</strong> верификат<strong>о</strong>р<strong>о</strong>в, к<strong>о</strong>т<strong>о</strong>рые исп<strong>о</strong>льзуют различные<br />

техн<strong>о</strong>л<strong>о</strong>гии [3–8], вх<strong>о</strong>дные и вых<strong>о</strong>дные ф<strong>о</strong>рматы и имеют св<strong>о</strong>и д<strong>о</strong>ст<strong>о</strong>инства и нед<strong>о</strong>статки. Анализ


5<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

верификат<strong>о</strong>р<strong>о</strong>в п<strong>о</strong>зв<strong>о</strong>лит учесть п<strong>о</strong>лученную инф<strong>о</strong>рмацию в дальнейшем при вып<strong>о</strong>лнении раб<strong>о</strong>т п<strong>о</strong><br />

теме.<br />

Патентный п<strong>о</strong>иск (прил<strong>о</strong>жения А, Б, В) пр<strong>о</strong>в<strong>о</strong>дился с 01.06.2007 г. п<strong>о</strong> 31.08.2007 г.


6<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ПЕРЕЧЕНЬ СОКРАЩЕНИЙ, УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ,<br />

ЕДИНИЦ, ТЕРМИНОВ<br />

НИР — научн<strong>о</strong>-исслед<strong>о</strong>вательская раб<strong>о</strong>та.<br />

ВОИС – Всемирная <strong>о</strong>рганизация интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти.<br />

EPO – Евр<strong>о</strong>пейск<strong>о</strong>е патентн<strong>о</strong>е бюр<strong>о</strong> (European Patent Office).<br />

ИКА – иерархический к<strong>о</strong>нечный авт<strong>о</strong>мат.<br />

BMC – <strong>о</strong>граниченная пр<strong>о</strong>верка м<strong>о</strong>делей (Bounded Model Checking).


7<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

1. ИССЛЕДОВАНИЯ ПАТЕНТОВ<br />

1.1. ВЫБОР ОБЛАСТИ ДЛЯ ИССЛЕДОВАНИЙ<br />

Пр<strong>о</strong>дукт<strong>о</strong>м, разрабатываемым в х<strong>о</strong>де данн<strong>о</strong>й научн<strong>о</strong>-исслед<strong>о</strong>вательск<strong>о</strong>й раб<strong>о</strong>ты, является<br />

техн<strong>о</strong>л<strong>о</strong>гия верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве<br />

авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да, предп<strong>о</strong>сылки к разраб<strong>о</strong>тке к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>й приведены в<strong>о</strong> введении.<br />

Темы, п<strong>о</strong> к<strong>о</strong>т<strong>о</strong>рым пр<strong>о</strong>в<strong>о</strong>дился п<strong>о</strong>иск, <strong>о</strong>пределялись исх<strong>о</strong>дя из с<strong>о</strong>ст<strong>о</strong>яния исследуем<strong>о</strong>й <strong>о</strong>бласти.<br />

Такими темами стали:<br />

• пр<strong>о</strong>верка м<strong>о</strong>делей;<br />

• темп<strong>о</strong>ральная л<strong>о</strong>гика;<br />

• пред<strong>о</strong>твращение <strong>о</strong>шиб<strong>о</strong>к с п<strong>о</strong>м<strong>о</strong>щью тестир<strong>о</strong>вания или <strong>о</strong>тладки пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong><br />

пр<strong>о</strong>дукта;<br />

• к<strong>о</strong>мпиляция или интерпретация язык<strong>о</strong>в пр<strong>о</strong>граммир<strong>о</strong>вания выс<strong>о</strong>к<strong>о</strong>г<strong>о</strong> ур<strong>о</strong>вня.<br />

С<strong>о</strong><strong>о</strong>тветственн<strong>о</strong> эт<strong>о</strong>му <strong>о</strong>пределились и разделы междунар<strong>о</strong>дн<strong>о</strong>й патентн<strong>о</strong>й классификации, п<strong>о</strong><br />

к<strong>о</strong>т<strong>о</strong>рым был пр<strong>о</strong>веден п<strong>о</strong>иск патент<strong>о</strong>в.<br />

П<strong>о</strong>иск патентн<strong>о</strong>й инф<strong>о</strong>рмации пр<strong>о</strong>в<strong>о</strong>дился в <strong>патентных</strong> базах данных Федеральн<strong>о</strong>й службы п<strong>о</strong><br />

интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти, патентам и т<strong>о</strong>варным знакам Р<strong>о</strong>ссийск<strong>о</strong>й Федерации (Р<strong>о</strong>спатент,<br />

www.fips.ru), Бюр<strong>о</strong> п<strong>о</strong> патентам и т<strong>о</strong>варным знакам США (USPTO, www.uspto.gov), Евр<strong>о</strong>пейск<strong>о</strong>г<strong>о</strong><br />

патентн<strong>о</strong>г<strong>о</strong> бюр<strong>о</strong> (EPO, ep.espacenet.com) и Всемирн<strong>о</strong>й <strong>о</strong>рганизации интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти<br />

(ВОИС, www.wipo.int).<br />

1.2. ОСОБЕННОСТИ ПАТЕНТНОЙ СИСТЕМЫ США<br />

В данн<strong>о</strong>м разделе прив<strong>о</strong>дится пример патента, выданн<strong>о</strong>г<strong>о</strong> патентным бюр<strong>о</strong> США к<strong>о</strong>рп<strong>о</strong>рации<br />

IBM. Факт выдачи данн<strong>о</strong>г<strong>о</strong> патента <strong>о</strong>тражают <strong>о</strong>бщую ситуацию, сл<strong>о</strong>жившуюся в наст<strong>о</strong>ящее время в<br />

американск<strong>о</strong>й патентн<strong>о</strong>й системе и п<strong>о</strong>лучающую все б<strong>о</strong>льшее распр<strong>о</strong>странение в других странах<br />

мира, п<strong>о</strong> крайней мере, в <strong>о</strong>тн<strong>о</strong>шении патент<strong>о</strong>вания из<strong>о</strong>бретений в <strong>о</strong>бласти пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения<br />

и связанных с ней <strong>о</strong>бластях.<br />

1.2.1. Патент на к<strong>о</strong>нечные авт<strong>о</strong>маты<br />

Патент США № 5,317,757. «Система и мет<strong>о</strong>д для раб<strong>о</strong>ты к<strong>о</strong>нечн<strong>о</strong>г<strong>о</strong> авт<strong>о</strong>мата с исп<strong>о</strong>льз<strong>о</strong>ванием<br />

вект<strong>о</strong>р<strong>о</strong>в действий». Владелец: International Business Machines Corporation (к<strong>о</strong>рп<strong>о</strong>рация IBM) [8].<br />

Кратк<strong>о</strong>е <strong>о</strong>писание патента. Общий наб<strong>о</strong>р стандартных м<strong>о</strong>дулей, к<strong>о</strong>т<strong>о</strong>рые пр<strong>о</strong>изв<strong>о</strong>дят<br />

<strong>о</strong>пределенные действия в к<strong>о</strong>нечн<strong>о</strong>м авт<strong>о</strong>мате и являются стр<strong>о</strong>г<strong>о</strong> м<strong>о</strong>дульными п<strong>о</strong> св<strong>о</strong>ей структуре.<br />

Наб<strong>о</strong>р этих м<strong>о</strong>дулей с<strong>о</strong>ст<strong>о</strong>ит из м<strong>о</strong>дулей для задач, характерных для типа ресурса и м<strong>о</strong>дулей,<br />

к<strong>о</strong>т<strong>о</strong>рые не зависят <strong>о</strong>т типа ресурса. Для кажд<strong>о</strong>г<strong>о</strong> типа ресурса с<strong>о</strong>здается к<strong>о</strong>нечный авт<strong>о</strong>мат для<br />

управления шагами активации и деактивации ресурса. Каждый авт<strong>о</strong>мат уникальн<strong>о</strong> <strong>о</strong>пределяет<br />

н<strong>о</strong>в<strong>о</strong>е с<strong>о</strong>ст<strong>о</strong>яние и пр<strong>о</strong>изведение действия для кажд<strong>о</strong>г<strong>о</strong> типа ресурса. Для привязки стандартных<br />

м<strong>о</strong>дулей действий к кажд<strong>о</strong>му к<strong>о</strong>нечн<strong>о</strong>му авт<strong>о</strong>мату для кажд<strong>о</strong>г<strong>о</strong> типа ресурс<strong>о</strong>в с<strong>о</strong>здаются вект<strong>о</strong>ра<br />

действия. Вект<strong>о</strong>р действия устанавливает <strong>о</strong>тн<strong>о</strong>шение <strong>о</strong>пределенн<strong>о</strong>г<strong>о</strong> действия, выделенн<strong>о</strong>г<strong>о</strong><br />

к<strong>о</strong>нечным авт<strong>о</strong>мат<strong>о</strong>м, к диспетчеризации <strong>о</strong>дн<strong>о</strong>г<strong>о</strong> или б<strong>о</strong>лее стандартных м<strong>о</strong>дулей действий. Вект<strong>о</strong>р<br />

действий м<strong>о</strong>жет включать мн<strong>о</strong>жеств<strong>о</strong> элемент<strong>о</strong>в. Каждый из этих элемент<strong>о</strong>в идентифицирует<br />

м<strong>о</strong>дуль действий, к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>му передается управление, и указатель выз<strong>о</strong>ва функции. Указатель на<br />

функцию идентифицирует <strong>о</strong>пределенную функцию, к<strong>о</strong>т<strong>о</strong>рую д<strong>о</strong>лжен вып<strong>о</strong>лнить указанный м<strong>о</strong>дуль<br />

действий. Стандартные м<strong>о</strong>дули действий вызываются в п<strong>о</strong>рядке след<strong>о</strong>вания элемент<strong>о</strong>в в вект<strong>о</strong>ре<br />

действий.


8<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Патентн<strong>о</strong>е треб<strong>о</strong>вание № 1. Мет<strong>о</strong>д <strong>о</strong>браб<strong>о</strong>тки данных для управления к<strong>о</strong>нечным авт<strong>о</strong>мат<strong>о</strong>м<br />

в системе <strong>о</strong>браб<strong>о</strong>тки данных, к<strong>о</strong>т<strong>о</strong>рая имеет память для хранения пр<strong>о</strong>граммных инструкций,<br />

вх<strong>о</strong>дные устр<strong>о</strong>йства для п<strong>о</strong>лучения вх<strong>о</strong>дных данных, пр<strong>о</strong>цесс<strong>о</strong>рный м<strong>о</strong>дуль для вып<strong>о</strong>лнения<br />

пр<strong>о</strong>граммных инструкций в <strong>о</strong>твет на указанные вх<strong>о</strong>дные данные, а также вых<strong>о</strong>дные устр<strong>о</strong>йства для<br />

с<strong>о</strong>здания вых<strong>о</strong>дных данных в <strong>о</strong>твет на исп<strong>о</strong>лнение указанным пр<strong>о</strong>цесс<strong>о</strong>рным м<strong>о</strong>дулем указанных<br />

пр<strong>о</strong>граммных инструкций. Включает следующие этапы:<br />

– хранение матрицы перех<strong>о</strong>д<strong>о</strong>в перв<strong>о</strong>г<strong>о</strong> к<strong>о</strong>нечн<strong>о</strong>г<strong>о</strong> авт<strong>о</strong>мата в указанн<strong>о</strong>й памяти, к<strong>о</strong>т<strong>о</strong>рая<br />

имеет мн<strong>о</strong>жеств<strong>о</strong> указателей на следующее с<strong>о</strong>ст<strong>о</strong>яние и указателей на вект<strong>о</strong>ра, к к<strong>о</strong>т<strong>о</strong>рым<br />

<strong>о</strong>существляется д<strong>о</strong>ступ п<strong>о</strong> значению текущег<strong>о</strong> с<strong>о</strong>ст<strong>о</strong>яния в указанн<strong>о</strong>й памяти и значению вх<strong>о</strong>да;<br />

– хранение таблицы вект<strong>о</strong>р<strong>о</strong>в, с<strong>о</strong>ст<strong>о</strong>ящей из вект<strong>о</strong>р<strong>о</strong>в действий, в указанн<strong>о</strong>й памяти,<br />

указанные указатели на вект<strong>о</strong>ра идентифицируют вект<strong>о</strong>ра действий в указанн<strong>о</strong>й таблице вект<strong>о</strong>р<strong>о</strong>в,<br />

каждый из указанных вект<strong>о</strong>р<strong>о</strong>в действий включает п<strong>о</strong>след<strong>о</strong>вательн<strong>о</strong>сть элемент<strong>о</strong>в вект<strong>о</strong>р<strong>о</strong>в,<br />

имеющих указатели на м<strong>о</strong>дули и указатели на функции;<br />

– хранение мн<strong>о</strong>жества м<strong>о</strong>дулей действий в указанн<strong>о</strong>й памяти, каждый м<strong>о</strong>дуль действий<br />

включает в себя пр<strong>о</strong>граммные инструкции, <strong>о</strong>рганиз<strong>о</strong>ванные в мн<strong>о</strong>жеств<strong>о</strong> сегмент<strong>о</strong>в функций,<br />

каждый из указанных указателей на м<strong>о</strong>дули идентифицирует <strong>о</strong>дин из м<strong>о</strong>дулей действий указанн<strong>о</strong>г<strong>о</strong><br />

мн<strong>о</strong>жества и указанные указатели на функции идентифицируют <strong>о</strong>дн<strong>о</strong> из сегмент<strong>о</strong>в функций<br />

указанн<strong>о</strong>г<strong>о</strong> мн<strong>о</strong>жества;<br />

– п<strong>о</strong>лучение значения вх<strong>о</strong>да из указанн<strong>о</strong>г<strong>о</strong> вх<strong>о</strong>дн<strong>о</strong>г<strong>о</strong> устр<strong>о</strong>йства и д<strong>о</strong>ступ к указанн<strong>о</strong>й матрице<br />

перех<strong>о</strong>д<strong>о</strong>в перв<strong>о</strong>г<strong>о</strong> к<strong>о</strong>нечн<strong>о</strong>г<strong>о</strong> авт<strong>о</strong>мата с указанным значением вх<strong>о</strong>да и указанным значением<br />

текущег<strong>о</strong> с<strong>о</strong>ст<strong>о</strong>яния для п<strong>о</strong>лучения перв<strong>о</strong>г<strong>о</strong> указателя на следующее с<strong>о</strong>ст<strong>о</strong>яние и перв<strong>о</strong>г<strong>о</strong> указателя<br />

на вект<strong>о</strong>р;<br />

– д<strong>о</strong>ступ к перв<strong>о</strong>му вект<strong>о</strong>ру действий из указанн<strong>о</strong>й таблицы вект<strong>о</strong>р<strong>о</strong>в и исп<strong>о</strong>льз<strong>о</strong>ванием<br />

указанн<strong>о</strong>г<strong>о</strong> перв<strong>о</strong>г<strong>о</strong> указателя на вект<strong>о</strong>р, для п<strong>о</strong>лучения перв<strong>о</strong>г<strong>о</strong> указателя на м<strong>о</strong>дуль и перв<strong>о</strong>г<strong>о</strong><br />

указателя на функцию из перв<strong>о</strong>г<strong>о</strong> элемента вект<strong>о</strong>ра в перв<strong>о</strong>й п<strong>о</strong>след<strong>о</strong>вательн<strong>о</strong>сти;<br />

– исп<strong>о</strong>лнение пр<strong>о</strong>граммных инструкций в перв<strong>о</strong>м сегменте функций, на к<strong>о</strong>т<strong>о</strong>рый указывает<br />

указанный первый указатель на функцию, в перв<strong>о</strong>м м<strong>о</strong>дуле действий, на к<strong>о</strong>т<strong>о</strong>рый указывает<br />

указанный первый указатель на м<strong>о</strong>дуль, для пр<strong>о</strong>изведения перв<strong>о</strong>г<strong>о</strong> вых<strong>о</strong>дн<strong>о</strong>г<strong>о</strong> действия указанным<br />

вых<strong>о</strong>дным устр<strong>о</strong>йств<strong>о</strong>м.<br />

Замечания. Предлагается мет<strong>о</strong>д исп<strong>о</strong>льз<strong>о</strong>вания к<strong>о</strong>нечных авт<strong>о</strong>мат<strong>о</strong>в для вып<strong>о</strong>лнения<br />

пр<strong>о</strong>изв<strong>о</strong>льных действий. Заявленные патентные треб<strong>о</strong>вания наст<strong>о</strong>льк<strong>о</strong> шир<strong>о</strong>ки, чт<strong>о</strong> м<strong>о</strong>гут быть<br />

<strong>о</strong>тнесены к исп<strong>о</strong>льз<strong>о</strong>ванию к<strong>о</strong>нечных авт<strong>о</strong>мат<strong>о</strong>в практически для любых целей в пр<strong>о</strong>граммир<strong>о</strong>вании,<br />

сфере телек<strong>о</strong>ммуникаций и других <strong>о</strong>бластях. Таким <strong>о</strong>браз<strong>о</strong>м, исп<strong>о</strong>льз<strong>о</strong>вание к<strong>о</strong>нечных авт<strong>о</strong>мат<strong>о</strong>в при<br />

написании пр<strong>о</strong>грамм, для реализации пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>льных стек<strong>о</strong>в, а также для иных целей м<strong>о</strong>жет нарушать<br />

данный патент.<br />

1.2.2. П<strong>о</strong>следствия неправильн<strong>о</strong>й патентн<strong>о</strong>й п<strong>о</strong>литики<br />

Нед<strong>о</strong>стат<strong>о</strong>к приведенн<strong>о</strong>г<strong>о</strong> выше патента, а также других патент<strong>о</strong>в, выданных патентным бюр<strong>о</strong><br />

США, с<strong>о</strong>ст<strong>о</strong>ит в т<strong>о</strong>м, чт<strong>о</strong> патентуются идеи или вп<strong>о</strong>лне <strong>о</strong>чевидные, или уже давн<strong>о</strong> и шир<strong>о</strong>к<strong>о</strong><br />

применяемые, или же с<strong>о</strong>вершенн<strong>о</strong> абстрактные<br />

Мн<strong>о</strong>гие исслед<strong>о</strong>ватели и специалисты в с<strong>о</strong><strong>о</strong>тветствующих <strong>о</strong>бластях (пр<strong>о</strong>граммисты, системные<br />

инженеры и пр<strong>о</strong>чие) выражают св<strong>о</strong>ю <strong>о</strong>заб<strong>о</strong>ченн<strong>о</strong>сть в связи с<strong>о</strong> сл<strong>о</strong>жившейся ситуацией в сфере<br />

патентн<strong>о</strong>г<strong>о</strong> права как в мире в цел<strong>о</strong>м, так и в США в частн<strong>о</strong>сти [9, 10]. Предлагаемые пути вых<strong>о</strong>да из<br />

сл<strong>о</strong>жившег<strong>о</strong>ся кризиса включают п<strong>о</strong>лный запрет на выдачу патент<strong>о</strong>в в сфере пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong><br />

<strong>о</strong>беспечения или радикальн<strong>о</strong>е с<strong>о</strong>кращение ср<strong>о</strong>к<strong>о</strong>в их действия. Следует нап<strong>о</strong>мнить, чт<strong>о</strong> выдача<br />

патент<strong>о</strong>в на пр<strong>о</strong>граммн<strong>о</strong>е <strong>о</strong>беспечение, научные те<strong>о</strong>рии и мет<strong>о</strong>ды интеллектуальн<strong>о</strong>й и х<strong>о</strong>зяйственн<strong>о</strong>й<br />

деятельн<strong>о</strong>сти запрещена патентными зак<strong>о</strong>нами Р<strong>о</strong>ссии [11] и стран Евр<strong>о</strong>пы.


9<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

1.3. ПАТЕНТ США НА ВЕРИФИКАЦИЮ МОДЕЛЕЙ, ПОСТОЕННЫХ НА БАЗЕ ИЕРАРХИЧЕСКИХ КОНЕЧНЫХ<br />

АВТОМАТОВ<br />

Патент США № 6,324,496 «Верификация пр<strong>о</strong>верк<strong>о</strong>й м<strong>о</strong>делей иерархических к<strong>о</strong>нечных<br />

авт<strong>о</strong>мат<strong>о</strong>в». Владелец: Lucent Technologies Inc [10]. Авт<strong>о</strong>ры – R. Alur, M. Yannakakis.<br />

Кратк<strong>о</strong>е <strong>о</strong>писание патента. Верификация пр<strong>о</strong>верк<strong>о</strong>й м<strong>о</strong>делей иерархических к<strong>о</strong>нечных<br />

авт<strong>о</strong>мат<strong>о</strong>в (авт<strong>о</strong>мат<strong>о</strong>в, имеющих как минимум <strong>о</strong>дн<strong>о</strong> с<strong>о</strong>ст<strong>о</strong>яние (супер-с<strong>о</strong>ст<strong>о</strong>яние), к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>е сам<strong>о</strong><br />

является к<strong>о</strong>нченым авт<strong>о</strong>мат<strong>о</strong>м) пр<strong>о</strong>изв<strong>о</strong>дится без предварительн<strong>о</strong>г<strong>о</strong> развертывания иерархическ<strong>о</strong>г<strong>о</strong><br />

к<strong>о</strong>нечн<strong>о</strong>г<strong>о</strong> авт<strong>о</strong>мата (ИКА). В данн<strong>о</strong>м случае пр<strong>о</strong>верка м<strong>о</strong>делей м<strong>о</strong>жет включать пр<strong>о</strong>верку<br />

д<strong>о</strong>стижим<strong>о</strong>сти, наличия цикл<strong>о</strong>в, анализ треб<strong>о</strong>ваний с линейным и ветвящимся временем. Для анализа<br />

д<strong>о</strong>стижим<strong>о</strong>сти, в д<strong>о</strong>п<strong>о</strong>лнение к наблюдению за тем, п<strong>о</strong>сещены ли с<strong>о</strong>ст<strong>о</strong>яния, алг<strong>о</strong>ритм учитывает,<br />

п<strong>о</strong>сещены ли т<strong>о</strong>чки вых<strong>о</strong>да для кажд<strong>о</strong>г<strong>о</strong> супер-с<strong>о</strong>ст<strong>о</strong>яния. Для анализа треб<strong>о</strong>ваний линейн<strong>о</strong>г<strong>о</strong><br />

времени п<strong>о</strong> ф<strong>о</strong>рмуле стр<strong>о</strong>ится авт<strong>о</strong>мат Бюхи. Вычисляется пр<strong>о</strong>изведение эт<strong>о</strong>г<strong>о</strong> авт<strong>о</strong>мата и<br />

данн<strong>о</strong>г<strong>о</strong> ИКА. П<strong>о</strong>лучается н<strong>о</strong>вый ИКА. Он пр<strong>о</strong>веряется на наличие цикл<strong>о</strong>в. Для анализа треб<strong>о</strong>ваний<br />

ветвящег<strong>о</strong>ся времени п<strong>о</strong> исх<strong>о</strong>дн<strong>о</strong>й темп<strong>о</strong>ральн<strong>о</strong>й ф<strong>о</strong>рмуле стр<strong>о</strong>ится спис<strong>о</strong>к п<strong>о</strong>дф<strong>о</strong>рмул,<br />

расп<strong>о</strong>л<strong>о</strong>женных в п<strong>о</strong>рядке увеличения размера.<br />

Замечания. В патенте п<strong>о</strong>д иерархическим авт<strong>о</strong>мат<strong>о</strong>м п<strong>о</strong>нимается иерархическая структура<br />

Крипке. В нем <strong>о</strong>писываются мет<strong>о</strong>ды пр<strong>о</strong>верки д<strong>о</strong>стижим<strong>о</strong>сти, наличия цикл<strong>о</strong>в, анализа треб<strong>о</strong>ваний с<br />

линейным и ветвящимся временем, не требующие предварительн<strong>о</strong>й развёртки авт<strong>о</strong>мата.<br />

1.4. РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЯ ПАТЕНТОВ<br />

В результате предварительн<strong>о</strong>г<strong>о</strong> исслед<strong>о</strong>вания существующих патент<strong>о</strong>в был<strong>о</strong> решен<strong>о</strong><br />

исслед<strong>о</strong>вать раздел междунар<strong>о</strong>дн<strong>о</strong>й патентн<strong>о</strong>й классификации (МПК) «пред<strong>о</strong>твращение <strong>о</strong>шиб<strong>о</strong>к с<br />

п<strong>о</strong>м<strong>о</strong>щью тестир<strong>о</strong>вания или <strong>о</strong>тладки пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>дукта» (G06F 11/36, “Preventing errors by<br />

testing or debugging of software”). Также были исслед<strong>о</strong>ваны патенты раздел<strong>о</strong>в: G06 F9/44, G06F 9/45,<br />

G06F 9/445, G06F 17/50. П<strong>о</strong>иск дал <strong>о</strong>трицательный результат: в данных разделах МПК не был<strong>о</strong><br />

найден<strong>о</strong> патент<strong>о</strong>в, к<strong>о</strong>т<strong>о</strong>рые мешали бы на данн<strong>о</strong>м этапе пр<strong>о</strong>в<strong>о</strong>дить разраб<strong>о</strong>тку техн<strong>о</strong>л<strong>о</strong>гии.<br />

Однак<strong>о</strong> ст<strong>о</strong>ит заметить, чт<strong>о</strong> бюр<strong>о</strong> п<strong>о</strong> патентам и т<strong>о</strong>варным знакам США в 2001 г<strong>о</strong>ду выдал<strong>о</strong><br />

патент «Пр<strong>о</strong>верка м<strong>о</strong>дели иерархических авт<strong>о</strong>мат<strong>о</strong>в» (“Model checking of hierarchical state machines”,<br />

US6324496, current U.S. Сlass: 703/17, 703/22, 714/39, 716/4; сurrent International Class: G06F 11/36<br />

(20060101), G06F 017/50 ()), к<strong>о</strong>т<strong>о</strong>рый м<strong>о</strong>жет с<strong>о</strong>здать сл<strong>о</strong>жн<strong>о</strong>сти при применении разрабатываем<strong>о</strong>й<br />

техн<strong>о</strong>л<strong>о</strong>гии верификации на террит<strong>о</strong>рии США. Эт<strong>о</strong>т патент <strong>о</strong>писан в предыдущем разделе.<br />

Сказанн<strong>о</strong>е, <strong>о</strong>днак<strong>о</strong>, не <strong>о</strong>значает, чт<strong>о</strong> в других разделах МПК, к<strong>о</strong>т<strong>о</strong>рые не <strong>о</strong>тн<strong>о</strong>сятся напрямую к<br />

рассматриваем<strong>о</strong>й <strong>о</strong>бласти, не существует патент<strong>о</strong>в, к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут быть п<strong>о</strong>тенциальн<strong>о</strong> нарушенными<br />

в пр<strong>о</strong>цессе эксплуатации разрабатываем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии. Пример патента IBM на к<strong>о</strong>нечные авт<strong>о</strong>маты<br />

был приведен выше в разд. 1.2.1.


10<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

2. ИССЛЕДОВАНИЯ НЕПАТЕНТНЫХ ИСТОЧНИКОВ<br />

2.1. ПРЕДПОСЫЛКИ К НЕПАТЕНТНЫМ ИССЛЕДОВАНИЯМ<br />

С<strong>о</strong>гласн<strong>о</strong> Патентн<strong>о</strong>му зак<strong>о</strong>ну Р<strong>о</strong>ссийск<strong>о</strong>й Федерации [11], ур<strong>о</strong>вень техники, в сравнении с<br />

к<strong>о</strong>т<strong>о</strong>рым выявляется н<strong>о</strong>визна из<strong>о</strong>бретения, <strong>о</strong>пределяется не т<strong>о</strong>льк<strong>о</strong> зарегистрир<strong>о</strong>ванными в Р<strong>о</strong>ссии<br />

патентами, н<strong>о</strong> также имеющейся в<strong>о</strong> всем мире <strong>о</strong>бщед<strong>о</strong>ступн<strong>о</strong>й инф<strong>о</strong>рмацией.<br />

Применительн<strong>о</strong> к рассматриваем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии так<strong>о</strong>й инф<strong>о</strong>рмацией м<strong>о</strong>гут являться сведения <strong>о</strong><br />

св<strong>о</strong>б<strong>о</strong>дн<strong>о</strong> (а также не св<strong>о</strong>б<strong>о</strong>дн<strong>о</strong>, чт<strong>о</strong> в данн<strong>о</strong>м случае эт<strong>о</strong> не имеет значения) распр<strong>о</strong>страняемых в сети<br />

Интернет пр<strong>о</strong>граммных пр<strong>о</strong>дуктах, реализующих техн<strong>о</strong>л<strong>о</strong>гии, анал<strong>о</strong>гичные разрабатываем<strong>о</strong>й. Таким<br />

<strong>о</strong>браз<strong>о</strong>м, в силу треб<strong>о</strong>вания техническ<strong>о</strong>г<strong>о</strong> задания <strong>о</strong> п<strong>о</strong>лучении свидетельств <strong>о</strong>б <strong>о</strong>фициальн<strong>о</strong>й<br />

регистрации пр<strong>о</strong>грамм для ЭВМ, в<strong>о</strong>зникает не<strong>о</strong>бх<strong>о</strong>дим<strong>о</strong>сть исслед<strong>о</strong>вать анал<strong>о</strong>ги с<strong>о</strong>здаваем<strong>о</strong>й<br />

техн<strong>о</strong>л<strong>о</strong>гии и сравнить ее с этими анал<strong>о</strong>гами.<br />

Таким <strong>о</strong>браз<strong>о</strong>м, данн<strong>о</strong>е исслед<strong>о</strong>вание будет решать следующие задачи:<br />

• анализ имеющихся в мире инструмент<strong>о</strong>в верификации пр<strong>о</strong>грамм;<br />

• <strong>о</strong>пределение критериев, п<strong>о</strong> к<strong>о</strong>т<strong>о</strong>рым м<strong>о</strong>жн<strong>о</strong> сравнивать эти инструменты;<br />

• <strong>о</strong>тб<strong>о</strong>р инструмент<strong>о</strong>в, п<strong>о</strong>дх<strong>о</strong>дящих для верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong><br />

сл<strong>о</strong>жным п<strong>о</strong>ведением, к<strong>о</strong>т<strong>о</strong>рые п<strong>о</strong>стр<strong>о</strong>ены на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да, и сравнение<br />

этих инструмент<strong>о</strong>в.<br />

2.2. ИСТОЧНИКИ ИНФОРМАЦИИ<br />

В качестве <strong>о</strong>сн<strong>о</strong>вных ист<strong>о</strong>чник<strong>о</strong>в инф<strong>о</strong>рмации п<strong>о</strong> тематике «инструменты верификации» были<br />

выбраны энцикл<strong>о</strong>педия св<strong>о</strong>б<strong>о</strong>дн<strong>о</strong>г<strong>о</strong> д<strong>о</strong>ступа WikiPedia [12] и база инструмент<strong>о</strong>в верификации<br />

YAHODA [13]. Указанная статья важна тем, чт<strong>о</strong> в ней прив<strong>о</strong>дится спис<strong>о</strong>к инструмент<strong>о</strong>в (раздел<br />

«Tools»), к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут быть исп<strong>о</strong>льз<strong>о</strong>ваны для верификации пр<strong>о</strong>грамм. Эти инструменты сильн<strong>о</strong><br />

<strong>о</strong>тличаются вид<strong>о</strong>м вх<strong>о</strong>дных данных, принципами раб<strong>о</strong>ты, а также п<strong>о</strong>льз<strong>о</strong>вательскими интерфейсами.<br />

Кр<strong>о</strong>ме <strong>о</strong>сн<strong>о</strong>вных были исп<strong>о</strong>льз<strong>о</strong>ваны и другие ист<strong>о</strong>чники инф<strong>о</strong>рмации – различные инф<strong>о</strong>рмаци<strong>о</strong>нные<br />

ресурсы, найденные при п<strong>о</strong>м<strong>о</strong>щи п<strong>о</strong>иск<strong>о</strong>вых систем. Инф<strong>о</strong>рмация, п<strong>о</strong>лученная из альтернативных<br />

ист<strong>о</strong>чник<strong>о</strong>в, п<strong>о</strong> б<strong>о</strong>льшей части пересекалась с т<strong>о</strong>й, на к<strong>о</strong>т<strong>о</strong>рую имеются ссылки в энцикл<strong>о</strong>педии<br />

WikiPedia. Эт<strong>о</strong> свидетельствует <strong>о</strong> т<strong>о</strong>м, чт<strong>о</strong> <strong>о</strong>сн<strong>о</strong>вные ист<strong>о</strong>чники инф<strong>о</strong>рмации <strong>о</strong>бладают д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong>й<br />

п<strong>о</strong>лн<strong>о</strong>т<strong>о</strong>й.<br />

2.3. ОБЩИЙ ОБЗОР ИСТОЧНИКОВ<br />

П<strong>о</strong>лный спис<strong>о</strong>к инструмент<strong>о</strong>в, к<strong>о</strong>т<strong>о</strong>рые найдены при п<strong>о</strong>иске, в <strong>о</strong>сн<strong>о</strong>вн<strong>о</strong>м с<strong>о</strong>впадает с<br />

прив<strong>о</strong>димыми в статье [12] из энцикл<strong>о</strong>педии WikiPedia или в базе инструмент<strong>о</strong>в верификации<br />

YAHODA [13] (на 31 августа 2007 г<strong>о</strong>да). Приведём эт<strong>о</strong>т спис<strong>о</strong>к, с<strong>о</strong>ст<strong>о</strong>ящий из 94 инструмент<strong>о</strong>в:<br />

• EmbeddedValidator, The<br />

Simulink/Stateflow/Targetlink Verification<br />

Environment<br />

• Prover Plug-In commercial proof engines<br />

• 0-In Formal Verification<br />

• DiVinE (Distributed Verification<br />

Environment)<br />

• PRISM (PRrobabilistIc Symbolic Model<br />

checker)<br />

• RuleBase<br />

• SATABS (predicate abstraction for C/C++<br />

programs)<br />

• SAL<br />

• SLAM project<br />

• SMV (Symbolic Model Checker)<br />

• SPIN<br />

• StEAM (State Exploring Assemblylevel Model<br />

Checker) Verification of concurent C++


11<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

• MRMC (Markov Reward Model Checker)<br />

• Alloy language (лицензия GPL)<br />

• Magellan<br />

• APMC (Approximate Probabilistic Model<br />

Checker, лицензия GPL v2+)<br />

• AcPeg (AcPeg Access Control Systems<br />

verification tool through Model Checking)<br />

• Prover iLock<br />

• BLAST (Berkeley Lazy Abstraction Software<br />

Verification Tool, MIT-style license)<br />

• LoTREC<br />

• Bogor<br />

• BOOP Toolkit<br />

• Cadena<br />

• Cadence SMV<br />

• CADP (Construction and Analysis of<br />

Distributed Processes)<br />

• CBMC (A Bounded Model Checker for<br />

C/C++ programs)<br />

• CHIC<br />

• COSPAN<br />

• Prevent<br />

• GEAR (a game based model checking tool<br />

capable of CTL, modal µ-calculus and<br />

specification patterns)<br />

• Helena (High Level Colored Petri Nets<br />

Analyzer, лицензия GPL)<br />

• HOL theorem prover<br />

• Java Pathfinder<br />

• LASH (Liège Automata-based Symbolic<br />

Handler)<br />

• KRONOS (TCTL-based timed model checker)<br />

• LTSA (Labelled Transition System Analyser)<br />

• [mc]square (a model checker for<br />

microcontroller (ATMEL ATmega and<br />

Infineon XC167) assembly code)<br />

• MOPED<br />

• MOPS (Modelchecking Programs for<br />

Security properties)<br />

• µCRL (<strong>о</strong>сн<strong>о</strong>ван на ACP, лицензия GPL)<br />

• mCRL2 Toolset (<strong>о</strong>сн<strong>о</strong>ван на ACP, лицензия<br />

GPL)<br />

• NuSMV (A New Symbolic Model Checker)<br />

• ORIS (uses a CTL-like temporal logic with<br />

real-time bounds, action and state based)<br />

• ProB<br />

programs<br />

• TLC<br />

• UPPAAL (Uppaal Model Checker)<br />

• VIS (Verification Interacting with Synthesis)<br />

• dSPIN<br />

• MAGIC<br />

• ABC (Another Bisimulation Checker)<br />

• ACL2 (A Computational Logic for<br />

Applicative Common Lisp)<br />

• Atelier B<br />

• Bandera<br />

• CADiZ<br />

• CWB – NC (The Concurrency Workbench of<br />

New Century)<br />

• DBRover<br />

• DREAM (Distributed Real-time Embedded<br />

Analysis Method)<br />

• Edinburgh CWB (Edinburgh Concurrency<br />

Workbench)<br />

• Expander2<br />

• Fc2Tools (Fc2Tools and Autograph)<br />

• FDR2<br />

• HSolver<br />

• HyTech<br />

• IF<br />

• INA (Integrated Net Analyzer)<br />

• IOA Toolkit<br />

• Isabelle<br />

• LP (LP: The Larch Prover)<br />

• MetaPRL<br />

• Mocha<br />

• Mucke<br />

• MWB (The Mobility Workbench)<br />

• PEP (Programming Environment based on<br />

Petri nets)<br />

• PROD<br />

• PVS (Prototype Verification System)<br />

• Reactis Tester<br />

• SGM (State-Graph Manipulators)<br />

• SMCWWI (Simple Model Checker With Web<br />

Interface)<br />

• STeP (Stanford Temporal Prover)<br />

• Temporal Rover<br />

• The Kit (The Model-Checking Kit)<br />

• TIMES (A Tool for Modeling and


12<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

• ProofPower<br />

• PROSPER<br />

• Rabbit<br />

• RAVEN (Real-Time Analysis and Verification<br />

Environment)<br />

Implementation of Embedded Systems)<br />

• TPS (TPS Theorem Proving System)<br />

• TRON (Uppaal TRON)<br />

• Truth<br />

• TwoTowers<br />

• VeriSoft<br />

• VSE-II<br />

• Ymer<br />

• J-LO (The Java Logical Observer)<br />

Эти инструменты или разраб<strong>о</strong>тки были д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong> п<strong>о</strong>др<strong>о</strong>бн<strong>о</strong> рассм<strong>о</strong>трены, и был пр<strong>о</strong>изведён<br />

анализ их функци<strong>о</strong>нальн<strong>о</strong>сти. П<strong>о</strong> результатам анализа с<strong>о</strong>ставлен краткий <strong>о</strong>бз<strong>о</strong>р разраб<strong>о</strong>т<strong>о</strong>к,<br />

включающий цитаты с<strong>о</strong> страниц сайт<strong>о</strong>в ист<strong>о</strong>чник<strong>о</strong>в, переведенные на русский язык, и неб<strong>о</strong>льш<strong>о</strong>е<br />

заключение, <strong>о</strong>тражающее <strong>о</strong>бщее впечатление <strong>о</strong> кажд<strong>о</strong>й разраб<strong>о</strong>тке. В таблице приведен <strong>о</strong>бщий<br />

результат предварительн<strong>о</strong>г<strong>о</strong> анализа – спис<strong>о</strong>к всех инструмент<strong>о</strong>в, близких к разрабатываем<strong>о</strong>му п<strong>о</strong><br />

к<strong>о</strong>нтракту, с указанием т<strong>о</strong>г<strong>о</strong>, чт<strong>о</strong> представляет с<strong>о</strong>б<strong>о</strong>й каждый из них. Жирным шрифт<strong>о</strong>м выделены те<br />

верификат<strong>о</strong>ры, к<strong>о</strong>т<strong>о</strong>рым уделен<strong>о</strong> наиб<strong>о</strong>льшее внимание (п<strong>о</strong>сле таблицы п<strong>о</strong>мещён их спис<strong>о</strong>к).<br />

Таблица. Кратк<strong>о</strong>е <strong>о</strong>писание разраб<strong>о</strong>т<strong>о</strong>к<br />

Название<br />

Назначение, кратк<strong>о</strong>е <strong>о</strong>писание, заключение<br />

EmbeddedValidator,<br />

The Верифицирует диаграммы п<strong>о</strong>след<strong>о</strong>вательн<strong>о</strong>сти с<strong>о</strong>ст<strong>о</strong>яний.<br />

Simulink/Stateflow/Targetlink<br />

Ценн<strong>о</strong>сть для исслед<strong>о</strong>вания неизвестна.<br />

Verification Environment<br />

Prover Plug-In commercial proof engines Пр<strong>о</strong>дукт сх<strong>о</strong>ж с ProofPower, н<strong>о</strong> субъективн<strong>о</strong> б<strong>о</strong>лее уд<strong>о</strong>бен в<br />

исп<strong>о</strong>льз<strong>о</strong>вании и <strong>о</strong>бладает расширенными в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стями.<br />

М<strong>о</strong>жет представлять ценн<strong>о</strong>сть т<strong>о</strong>льк<strong>о</strong> на этапе написание<br />

с<strong>о</strong>бственн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>дукта.<br />

0-In Formal Verification<br />

Пр<strong>о</strong>граммный пр<strong>о</strong>дукт, предназначенный для верификации<br />

дизайна. Имеет графический интерфейс.<br />

DiVinE (Distributed Verification<br />

Environment)<br />

PRISM (PRrobabilistIc Symbolic Model<br />

checker)<br />

Ценн<strong>о</strong>сть для исслед<strong>о</strong>вания неизвестна.<br />

Пр<strong>о</strong>граммный пр<strong>о</strong>дукт с <strong>о</strong>ткрытым к<strong>о</strong>д<strong>о</strong>м, к<strong>о</strong>т<strong>о</strong>рый<br />

п<strong>о</strong>зв<strong>о</strong>ляет пр<strong>о</strong>изв<strong>о</strong>дить пр<strong>о</strong>верку м<strong>о</strong>дели для язык<strong>о</strong>в<br />

PROMELA (была написана специальная пр<strong>о</strong>грамматранслят<strong>о</strong>р)<br />

и с<strong>о</strong>бственн<strong>о</strong>г<strong>о</strong> вх<strong>о</strong>дн<strong>о</strong>г<strong>о</strong> языка DiVinE с<br />

п<strong>о</strong>м<strong>о</strong>щью распределённых алг<strong>о</strong>ритм<strong>о</strong>в для треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти, заданных с п<strong>о</strong>м<strong>о</strong>щью LTL.<br />

Пр<strong>о</strong>ект начался в 2004 г<strong>о</strong>ду. П<strong>о</strong>следнее <strong>о</strong>бн<strong>о</strong>вление сайта<br />

16.05.2007, а п<strong>о</strong>следняя версия – 20.09.2006.<br />

Изучение эт<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>дукта м<strong>о</strong>жет <strong>о</strong>казаться п<strong>о</strong>лезным,<br />

т<strong>о</strong>льк<strong>о</strong> если будет принят<strong>о</strong> решение писать с<strong>о</strong>бственный<br />

пр<strong>о</strong>граммный пр<strong>о</strong>дукт, исп<strong>о</strong>льзующий распределённые<br />

алг<strong>о</strong>ритмы.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит вер<strong>о</strong>ятн<strong>о</strong>стную пр<strong>о</strong>верку м<strong>о</strong>дели к<strong>о</strong>да<br />

пр<strong>о</strong>граммы, написанн<strong>о</strong>г<strong>о</strong> на языках PRISM, <strong>о</strong>сн<strong>о</strong>ванн<strong>о</strong>м на<br />

с<strong>о</strong>ст<strong>о</strong>яниях, PEPA (Performance Evaluation Process Algebra),<br />

Plain MC (.tra, .lab, .rew, .rewi text files).<br />

П<strong>о</strong>ддерживается мн<strong>о</strong>г<strong>о</strong>п<strong>о</strong>т<strong>о</strong>чн<strong>о</strong>сть. Исп<strong>о</strong>льзует


13<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

вер<strong>о</strong>ятн<strong>о</strong>стные языки темп<strong>о</strong>ральн<strong>о</strong>й л<strong>о</strong>гики PCTL<br />

(Probabilistic Computation Tree Logic) и CSL (Continuous<br />

Stochastic Logic).<br />

П<strong>о</strong>следняя версия – 15.11.2006. Существует серия статей,<br />

датир<strong>о</strong>ванных 2007 г<strong>о</strong>д<strong>о</strong>м.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не несёт ценн<strong>о</strong>сти для исслед<strong>о</strong>вания, н<strong>о</strong> сам<br />

п<strong>о</strong> себе крайне люб<strong>о</strong>пытен.<br />

MRMC (Markov Reward Model Checker) Обладает сх<strong>о</strong>жими функци<strong>о</strong>нальн<strong>о</strong>стью и мет<strong>о</strong>дами раб<strong>о</strong>ты<br />

с пр<strong>о</strong>дукт<strong>о</strong>м PRISM. Раб<strong>о</strong>тает как с марк<strong>о</strong>вскими м<strong>о</strong>делями<br />

непрерывн<strong>о</strong>г<strong>о</strong> времени (continuous-time), так и дискретн<strong>о</strong>г<strong>о</strong>.<br />

Исп<strong>о</strong>льзует л<strong>о</strong>гики: CSL (Continuous Stochastic Logic), CSRL<br />

(Continuous Stochastic Reward Logic), PCTL (Probabilistic<br />

Computation Tree Logic), PRCTL (Probabilistic Reward<br />

Computation Tree Logic).<br />

П<strong>о</strong>следняя версия – 21.08.2007.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не п<strong>о</strong>дх<strong>о</strong>дит п<strong>о</strong> тематике исслед<strong>о</strong>вания, н<strong>о</strong><br />

сам п<strong>о</strong> себе крайне люб<strong>о</strong>пытен.<br />

Alloy language (GPL)<br />

Пр<strong>о</strong>веряет м<strong>о</strong>дель, записанную на языке Alloy. Эт<strong>о</strong> язык<br />

м<strong>о</strong>делир<strong>о</strong>вания, <strong>о</strong>сн<strong>о</strong>ванный на FOL (first-order logic). На<br />

нег<strong>о</strong> <strong>о</strong>казала б<strong>о</strong>льш<strong>о</strong>е влияние Z-н<strong>о</strong>тация.<br />

Ценн<strong>о</strong>сть неизвестна, н<strong>о</strong> м<strong>о</strong>жет быть изучен.<br />

Magellan<br />

Пр<strong>о</strong>граммный пр<strong>о</strong>дукт для п<strong>о</strong>иска <strong>о</strong>шиб<strong>о</strong>к в дизайне схем.<br />

APMC (Approximate Probabilistic Model<br />

Checker, лицензия GPL v2+)<br />

AcPeg (AcPeg Access Control Systems<br />

verification tool through Model<br />

Checking)<br />

Prover iLock<br />

BLAST (Berkeley Lazy Abstraction<br />

Software Verification Tool, MIT-style<br />

license)<br />

Не несёт ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

П<strong>о</strong>зв<strong>о</strong>ляет «п<strong>о</strong>чти» распределённ<strong>о</strong> пр<strong>о</strong>изв<strong>о</strong>дить пр<strong>о</strong>верку<br />

м<strong>о</strong>дели для п<strong>о</strong>лн<strong>о</strong>стью вер<strong>о</strong>ятн<strong>о</strong>стных систем.<br />

Эт<strong>о</strong>т пр<strong>о</strong>дукт исп<strong>о</strong>льзует ранд<strong>о</strong>мизир<strong>о</strong>ванный алг<strong>о</strong>ритм с<br />

целью п<strong>о</strong>лучения приближения вер<strong>о</strong>ятн<strong>о</strong>сти т<strong>о</strong>г<strong>о</strong>, чт<strong>о</strong><br />

темп<strong>о</strong>ральная ф<strong>о</strong>рмула верна. APMC исп<strong>о</strong>льзует<br />

распределённую м<strong>о</strong>дель вычислений. Эт<strong>о</strong> п<strong>о</strong>зв<strong>о</strong>ляет<br />

пр<strong>о</strong>изв<strong>о</strong>дить генерацию путей и верификацию ф<strong>о</strong>рмулы на<br />

раб<strong>о</strong>чих станциях кластера. В п<strong>о</strong>следней версии<br />

п<strong>о</strong>ддерживается как дискретн<strong>о</strong>е, так и непрерывн<strong>о</strong>е время.<br />

П<strong>о</strong>ддерживает л<strong>о</strong>гики PCTL (Probabilistic Computation Tree<br />

Logic) и PLTL (Probabilistic LTL).<br />

Вер<strong>о</strong>ятн<strong>о</strong>, не несёт ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

Система с<strong>о</strong>здана для верификации систем к<strong>о</strong>нтр<strong>о</strong>ля д<strong>о</strong>ступа.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не несёт ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

Эта система, генерирующая к<strong>о</strong>д и верифицирующая<br />

исх<strong>о</strong>дную м<strong>о</strong>дель.<br />

Не представляет ценн<strong>о</strong>сти.<br />

П<strong>о</strong>зв<strong>о</strong>ляет пр<strong>о</strong>изв<strong>о</strong>дить верификацию пр<strong>о</strong>грамм,<br />

написанных на языке C (<strong>о</strong>днак<strong>о</strong> нельзя исп<strong>о</strong>льз<strong>о</strong>вать<br />

рекурсивные функции и указатели на функции). П<strong>о</strong><br />

пр<strong>о</strong>грамме стр<strong>о</strong>ится граф п<strong>о</strong>т<strong>о</strong>ка управления. М<strong>о</strong>жет<br />

пр<strong>о</strong>верять вып<strong>о</strong>лним<strong>о</strong>сть т<strong>о</strong>льк<strong>о</strong> п<strong>о</strong>ст<strong>о</strong>янных св<strong>о</strong>йств (safety<br />

properties). Стр<strong>о</strong>ит к<strong>о</strong>нтрпримеры. Существует плагин с


14<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

LoTREC<br />

Bogor<br />

BOOP Toolkit<br />

графическим интерфейс<strong>о</strong>м п<strong>о</strong>д Eclipse. Треб<strong>о</strong>вания<br />

к<strong>о</strong>рректн<strong>о</strong>сти ф<strong>о</strong>рмулируются с п<strong>о</strong>м<strong>о</strong>щью Monitor automata.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит верификацию пр<strong>о</strong>граммы, записанн<strong>о</strong>й на<br />

выс<strong>о</strong>к<strong>о</strong>ур<strong>о</strong>внев<strong>о</strong>м мета языке, причём сам пр<strong>о</strong>цесс<br />

верификации записан на нём же. Пр<strong>о</strong>дукт пре<strong>о</strong>бразует<br />

с<strong>о</strong><strong>о</strong>тветствующую пр<strong>о</strong>грамму в м<strong>о</strong>дель Крипке и для неё<br />

пр<strong>о</strong>веряет справедлив<strong>о</strong>сть заданн<strong>о</strong>й темп<strong>о</strong>ральн<strong>о</strong>й ф<strong>о</strong>рмулы.<br />

Как уверяют разраб<strong>о</strong>тчики, наиб<strong>о</strong>лее интересный м<strong>о</strong>мент<br />

эт<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>екта – метаязык. Остальн<strong>о</strong>е, ск<strong>о</strong>рее всег<strong>о</strong>, не<br />

представляет интереса.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит пр<strong>о</strong>верку м<strong>о</strong>дели для с<strong>о</strong>бственн<strong>о</strong>г<strong>о</strong> языка BIR.<br />

П<strong>о</strong>ддержка б<strong>о</strong>льшинства <strong>о</strong>сн<strong>о</strong>вных сп<strong>о</strong>с<strong>о</strong>б<strong>о</strong>в раб<strong>о</strong>ты с<br />

мн<strong>о</strong>г<strong>о</strong>п<strong>о</strong>т<strong>о</strong>чн<strong>о</strong>стью. Язык BIR уд<strong>о</strong>бен для исп<strong>о</strong>льз<strong>о</strong>вания<br />

<strong>о</strong>бъектн<strong>о</strong>-<strong>о</strong>риентир<strong>о</strong>ванн<strong>о</strong>й парадигмы пр<strong>о</strong>граммир<strong>о</strong>вания.<br />

Имеет графическую <strong>о</strong>б<strong>о</strong>л<strong>о</strong>чку (на <strong>о</strong>сн<strong>о</strong>ве Eclipse).<br />

М<strong>о</strong>щный инструмент, имеет мн<strong>о</strong>г<strong>о</strong> д<strong>о</strong>ст<strong>о</strong>инств, ег<strong>о</strong><br />

п<strong>о</strong>др<strong>о</strong>бн<strong>о</strong>е изучение м<strong>о</strong>жет <strong>о</strong>казаться крайне п<strong>о</strong>лезным.<br />

Пр<strong>о</strong>веряет д<strong>о</strong>стижим<strong>о</strong>сть заданных т<strong>о</strong>чек пр<strong>о</strong>граммы,<br />

написанн<strong>о</strong>й на языке C с п<strong>о</strong>м<strong>о</strong>щью пр<strong>о</strong>верки извлечённ<strong>о</strong>й<br />

м<strong>о</strong>дели.<br />

М<strong>о</strong>жет представлять интерес, н<strong>о</strong>, ск<strong>о</strong>рее всег<strong>о</strong>, п<strong>о</strong>др<strong>о</strong>бн<strong>о</strong>е<br />

изучение нецелес<strong>о</strong><strong>о</strong>бразн<strong>о</strong>.<br />

Cadena Пр<strong>о</strong>грамма <strong>о</strong>риентир<strong>о</strong>вана на м<strong>о</strong>делир<strong>о</strong>вание и<br />

верификацию CMM-систем (CORBA Component Model), EJB<br />

(Enterprise Java Beans). Графический интерфейс реализ<strong>о</strong>ван<br />

как плагин для Eclipse.<br />

В<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, ст<strong>о</strong>ит изучить.<br />

Cadence SMV<br />

CADP (Construction and Analysis of<br />

Distributed Processes)<br />

Cadence SMV м<strong>о</strong>жет пр<strong>о</strong>изв<strong>о</strong>дить д<strong>о</strong>казательства п<strong>о</strong>верх<br />

симв<strong>о</strong>льн<strong>о</strong>г<strong>о</strong> верификат<strong>о</strong>ра м<strong>о</strong>делей (пр<strong>о</strong>веряет треб<strong>о</strong>вания<br />

к<strong>о</strong>рректн<strong>о</strong>сти, заданные на языках LTL и CTL. Вх<strong>о</strong>дные<br />

языки: Cadence SMV input language, SMV input language,<br />

Verilog).<br />

Д<strong>о</strong>казатель п<strong>о</strong>ддерживает неск<strong>о</strong>льк<strong>о</strong> различных техник для<br />

с<strong>о</strong>кращения б<strong>о</strong>льших или беск<strong>о</strong>нечных задач верификации<br />

с<strong>о</strong>ст<strong>о</strong>яний к к<strong>о</strong>нечным или тем, к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут быть<br />

пр<strong>о</strong>верены верификат<strong>о</strong>р<strong>о</strong>м м<strong>о</strong>делей. Имеет графический<br />

интерфейс. П<strong>о</strong>следняя версия датир<strong>о</strong>вана 10.10.2001.<br />

Интересный п<strong>о</strong>дх<strong>о</strong>д, н<strong>о</strong> ст<strong>о</strong>ит <strong>о</strong>братить внимание на дату<br />

п<strong>о</strong>следней версии.<br />

CADP – наб<strong>о</strong>р инструмент<strong>о</strong>в для разраб<strong>о</strong>тки пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>л<strong>о</strong>в. Он<br />

предлагает шир<strong>о</strong>кий спектр функци<strong>о</strong>нальных в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стей:<br />

<strong>о</strong>т интерактивн<strong>о</strong>й симуляции д<strong>о</strong> самых п<strong>о</strong>следних техник<br />

ф<strong>о</strong>рмальн<strong>о</strong>й верификации. Обеспечивает эффективную<br />

к<strong>о</strong>мпиляцию, симуляцию, ф<strong>о</strong>рмальную верификацию и<br />

тестир<strong>о</strong>вание <strong>о</strong>писаний, записанных на языке LOTOS<br />

(Language of Temporal Ordering Specifications, ISO standard


15<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

CBMC (A Bounded Model Checker for<br />

C/C++ programs)<br />

CHIC<br />

COSPAN<br />

Prevent<br />

GEAR (a game based model checking<br />

tool capable of CTL, modal µ-calculus<br />

and specification patterns)<br />

Helena (High Level Colored Petri Nets<br />

Analyzer, лицензия GPL)<br />

HOL theorem prover<br />

8807).<br />

Наб<strong>о</strong>р инструмент<strong>о</strong>в, включает в себя EVALUATOR –<br />

пр<strong>о</strong>грамму для пр<strong>о</strong>ведения верификации на лету, и XTL<br />

(eXecutable Temporal Language) – язык, реализующий<br />

различные темп<strong>о</strong>ральные л<strong>о</strong>гики. Например, HML, CTL,<br />

ACTL и LTAC. П<strong>о</strong>следняя версия пр<strong>о</strong>дукта датир<strong>о</strong>вана<br />

12.12.2006.<br />

Определённ<strong>о</strong> ст<strong>о</strong>ит изучения.<br />

Эт<strong>о</strong>т пр<strong>о</strong>дукт пр<strong>о</strong>изв<strong>о</strong>дит пр<strong>о</strong>верку м<strong>о</strong>дели для язык<strong>о</strong>в ANSI-<br />

C и C++. Он п<strong>о</strong>зв<strong>о</strong>ляет верифицир<strong>о</strong>вать вых<strong>о</strong>д за границы<br />

массив<strong>о</strong>в, без<strong>о</strong>пасн<strong>о</strong>сть указателей, исключения и<br />

п<strong>о</strong>льз<strong>о</strong>вательские утверждения (assertions). П<strong>о</strong>ддерживает<br />

наиб<strong>о</strong>лее важные элементы ANSI-C: мн<strong>о</strong>г<strong>о</strong>мерные массивы,<br />

арифметику указателей, др<strong>о</strong>бную арифметику с<br />

фиксир<strong>о</strong>ванн<strong>о</strong>й т<strong>о</strong>чк<strong>о</strong>й и т.д. Есть плагин п<strong>о</strong>д Eclipse.<br />

В<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, ст<strong>о</strong>ит п<strong>о</strong>др<strong>о</strong>бнее изучить алг<strong>о</strong>ритмы,<br />

исп<strong>о</strong>льзуемые п<strong>о</strong>сле п<strong>о</strong>лучения м<strong>о</strong>дели.<br />

Верифицирует с п<strong>о</strong>м<strong>о</strong>щью пр<strong>о</strong>верки м<strong>о</strong>дели, чт<strong>о</strong><br />

пр<strong>о</strong>граммн<strong>о</strong>е и аппаратн<strong>о</strong>е <strong>о</strong>беспечения с<strong>о</strong><strong>о</strong>тветствуют друг<br />

другу.<br />

Не <strong>о</strong>твечает целям исслед<strong>о</strong>вания.<br />

Крайне старая разраб<strong>о</strong>тка.<br />

Не представляет ценн<strong>о</strong>сти.<br />

Есть версии для язык<strong>о</strong>в C/C++ и Java. Эт<strong>о</strong>т к<strong>о</strong>ммерческий<br />

пр<strong>о</strong>ект берёт св<strong>о</strong>ё начал<strong>о</strong> <strong>о</strong>т пр<strong>о</strong>дукта «Stanford Checker»<br />

(Meta-level Compilation). Успешн<strong>о</strong> исп<strong>о</strong>льз<strong>о</strong>вался для п<strong>о</strong>иска<br />

<strong>о</strong>шиб<strong>о</strong>к, н<strong>о</strong> имеет мал<strong>о</strong> <strong>о</strong>бщег<strong>о</strong> с п<strong>о</strong>нятием верификация.<br />

Не представляет интереса для исслед<strong>о</strong>вания.<br />

Графическая среда, к<strong>о</strong>т<strong>о</strong>рая п<strong>о</strong>зв<strong>о</strong>ляет стр<strong>о</strong>ить м<strong>о</strong>дели и<br />

пр<strong>о</strong>в<strong>о</strong>дить их верификацию, исп<strong>о</strong>льзуя л<strong>о</strong>гику CTL и µ-<br />

вычисления. Присутствует б<strong>о</strong>льш<strong>о</strong>е к<strong>о</strong>личеств<strong>о</strong> визуальн<strong>о</strong>г<strong>о</strong><br />

материала, предназначенн<strong>о</strong>г<strong>о</strong> для <strong>о</strong>бучения. С<strong>о</strong>трудничает с<br />

пр<strong>о</strong>ект<strong>о</strong>м «Specification patterns», к<strong>о</strong>т<strong>о</strong>рый представляет<br />

с<strong>о</strong>б<strong>о</strong>й <strong>о</strong>рганизацию реп<strong>о</strong>зит<strong>о</strong>рия г<strong>о</strong>т<strong>о</strong>вых треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти.<br />

Крайне люб<strong>о</strong>пытный интерфейс. В<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, ст<strong>о</strong>ит<br />

изучить ег<strong>о</strong> д<strong>о</strong>ст<strong>о</strong>инства и нед<strong>о</strong>статки. М<strong>о</strong>щная система<br />

задания треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти. Целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong><br />

<strong>о</strong>тнестись крайне внимательн<strong>о</strong> к пр<strong>о</strong>екту «Specification<br />

patterns».<br />

Пр<strong>о</strong>изв<strong>о</strong>дит верификацию мн<strong>о</strong>г<strong>о</strong>п<strong>о</strong>т<strong>о</strong>чных пр<strong>о</strong>грамм,<br />

исп<strong>о</strong>льзует представление в виде цветных сетей Петри.<br />

Пр<strong>о</strong>веряет т<strong>о</strong>льк<strong>о</strong> св<strong>о</strong>йства системы, к<strong>о</strong>т<strong>о</strong>рые д<strong>о</strong>лжны быть<br />

вып<strong>о</strong>лнены в<strong>о</strong> всех д<strong>о</strong>стижимых вершинах, например,<br />

<strong>о</strong>тсутствие дедл<strong>о</strong>к<strong>о</strong>в. Нет св<strong>о</strong>ег<strong>о</strong> сайта в Интернете.<br />

Изучение п<strong>о</strong> эт<strong>о</strong>й причине затруднен<strong>о</strong>.<br />

Пр<strong>о</strong>грамма анал<strong>о</strong>гична ProofPower. HOL – Higher-Order


16<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Java Pathfinder<br />

LASH (Liège Automata-based Symbolic<br />

Handler)<br />

KRONOS (TCTL-based timed model<br />

checker)<br />

LTSA (Labelled Transition System<br />

Analyser)<br />

[mc]square (a model checker for<br />

microcontroller (ATMEL ATmega and<br />

Infineon XC167) assembly code)<br />

MOPED<br />

MOPS (Modelchecking Programs for<br />

Security properties)<br />

Logic<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, ценн<strong>о</strong>сти не представляет.<br />

Верифицирует исп<strong>о</strong>лняемый Java байт-к<strong>о</strong>д. М<strong>о</strong>жет нах<strong>о</strong>дить<br />

пути вып<strong>о</strong>лнения, к<strong>о</strong>т<strong>о</strong>рые ведут к не<strong>о</strong>браб<strong>о</strong>танным<br />

исключениям, дедл<strong>о</strong>кам и т.п. Пр<strong>о</strong>веряет пр<strong>о</strong>граммы д<strong>о</strong><br />

10 000 стр<strong>о</strong>к к<strong>о</strong>да. Применяется в NASA Ames Research<br />

Center.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана 21.11.2006.<br />

Требует п<strong>о</strong>др<strong>о</strong>бн<strong>о</strong>г<strong>о</strong> изучения.<br />

Верифицирует к<strong>о</strong>нечные авт<strong>о</strong>маты, извлечённые из<br />

исх<strong>о</strong>дных к<strong>о</strong>д<strong>о</strong>в пр<strong>о</strong>грамм, написанных на языке C с<br />

исп<strong>о</strong>льз<strong>о</strong>ванием специальных библи<strong>о</strong>тек или на языке<br />

PROMELA.<br />

Целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong> <strong>о</strong>знак<strong>о</strong>миться.<br />

Пр<strong>о</strong>граммный пр<strong>о</strong>дукт разраб<strong>о</strong>тан для верификации систем<br />

реальн<strong>о</strong>г<strong>о</strong> времени, к<strong>о</strong>мп<strong>о</strong>ненты к<strong>о</strong>т<strong>о</strong>рых д<strong>о</strong>лжны быть<br />

пр<strong>о</strong>м<strong>о</strong>делир<strong>о</strong>ваны в виде временных авт<strong>о</strong>мат<strong>о</strong>в (timed<br />

automata). Треб<strong>о</strong>вания к<strong>о</strong>рректн<strong>о</strong>сти выражаются с<br />

п<strong>о</strong>м<strong>о</strong>щью п<strong>о</strong>дмн<strong>о</strong>жества ф<strong>о</strong>рмул темп<strong>о</strong>ральн<strong>о</strong>й л<strong>о</strong>гики<br />

реальн<strong>о</strong>г<strong>о</strong> времени TCTL.<br />

П<strong>о</strong>следняя версия пр<strong>о</strong>граммы датир<strong>о</strong>вана 05.09.2002.<br />

Изучение м<strong>о</strong>жет <strong>о</strong>казаться п<strong>о</strong>лезным, если целью будет<br />

разраб<strong>о</strong>тка пр<strong>о</strong>дукта с анал<strong>о</strong>гичными в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стями.<br />

Пр<strong>о</strong>дукт предназначен для верификации распределённых и<br />

параллельных систем (concurrent systems). Они задаются с<br />

п<strong>о</strong>м<strong>о</strong>щью LTS (Labelled Transition System) и FSP (Finite State<br />

Processses). Треб<strong>о</strong>вания к<strong>о</strong>рректн<strong>о</strong>сти задаются в виде<br />

к<strong>о</strong>нечных авт<strong>о</strong>мат<strong>о</strong>в (в б<strong>о</strong>лее ранних версия п<strong>о</strong>ддерживались<br />

ф<strong>о</strong>рмулы LTL). Существуют интересные плагины, например,<br />

для верификации веб-сервис<strong>о</strong>в, и графический интерфейс<br />

(Eclipse).<br />

М<strong>о</strong>жет представлять интерес с т<strong>о</strong>чки зрения учёта<br />

д<strong>о</strong>ст<strong>о</strong>инств и нед<strong>о</strong>статк<strong>о</strong>в п<strong>о</strong>льз<strong>о</strong>вательск<strong>о</strong>г<strong>о</strong> интерфейса,<br />

а также изучения специализир<strong>о</strong>ванных плагин<strong>о</strong>в.<br />

Предназначена для верификации м<strong>о</strong>делей, извлечённых из<br />

ассемблерн<strong>о</strong>г<strong>о</strong> к<strong>о</strong>да для микр<strong>о</strong>к<strong>о</strong>нтр<strong>о</strong>ллер<strong>о</strong>в. Исп<strong>о</strong>льзует для<br />

пр<strong>о</strong>верки треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти, заданных CTLф<strong>о</strong>рмулами.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

Верификат<strong>о</strong>р м<strong>о</strong>делей для PDS (pushdown systems). Также<br />

м<strong>о</strong>жет раб<strong>о</strong>тать с булевыми пр<strong>о</strong>граммами и<br />

взаим<strong>о</strong>действ<strong>о</strong>вать с пр<strong>о</strong>граммным пр<strong>о</strong>дукт<strong>о</strong>м SLAM.<br />

Ценн<strong>о</strong>сть для исслед<strong>о</strong>вания неизвестна.<br />

Верификат<strong>о</strong>р м<strong>о</strong>делей, извлечённых из к<strong>о</strong>да пр<strong>о</strong>грамм,<br />

написанных на языке C. Треб<strong>о</strong>вания к<strong>о</strong>рректн<strong>о</strong>сти задаются<br />

в специальн<strong>о</strong>м виде и с<strong>о</strong><strong>о</strong>тветствуют утверждениям, так<br />

называем<strong>о</strong>г<strong>о</strong> «защитн<strong>о</strong>г<strong>о</strong>» пр<strong>о</strong>граммир<strong>о</strong>вания (defensive


17<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

µCRL (<strong>о</strong>сн<strong>о</strong>ван на ACP, лицензия GPL)<br />

mCRL2 Toolset (<strong>о</strong>сн<strong>о</strong>ван<br />

лицензия GPL)<br />

NuSMV (A New Symbolic Model<br />

Сhecker)<br />

на ACP,<br />

ORIS (uses a CTL-like temporal logic<br />

with real-time bounds, action and state<br />

based)<br />

ProB<br />

ProofPower<br />

programming). С<strong>о</strong>держит г<strong>о</strong>т<strong>о</strong>вую базу таких утверждений,<br />

планируется написание графическ<strong>о</strong>г<strong>о</strong> п<strong>о</strong>льз<strong>о</strong>вательск<strong>о</strong>г<strong>о</strong><br />

интерфейса.<br />

Ст<strong>о</strong>ит внимательн<strong>о</strong> изучить с<strong>о</strong><strong>о</strong>тветствующую базу<br />

г<strong>о</strong>т<strong>о</strong>вых утверждений.<br />

Предназначен для верификации распределённых системами<br />

и пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>л<strong>о</strong>в. П<strong>о</strong>сле п<strong>о</strong>лучения пр<strong>о</strong>странства с<strong>о</strong>ст<strong>о</strong>яний<br />

исп<strong>о</strong>льзует пр<strong>о</strong>ект CADP.<br />

Принципы раб<strong>о</strong>ты пл<strong>о</strong>х<strong>о</strong> п<strong>о</strong>нятны.<br />

Наб<strong>о</strong>р инструмент<strong>о</strong>в для м<strong>о</strong>делир<strong>о</strong>вания, валидации и<br />

верификации распределённых и параллельных систем, а<br />

также пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>л<strong>о</strong>в, написанных на языке mCRL2. Б<strong>о</strong>льш<strong>о</strong>е<br />

числ<strong>о</strong> инструмент<strong>о</strong>в с графическим интерфейс<strong>о</strong>м.<br />

Существует версии п<strong>о</strong>д Microsoft Windows, Linux, FreeBSD,<br />

Apple Mac OS X.<br />

Исх<strong>о</strong>дя из числа инструмент<strong>о</strong>в, м<strong>о</strong>жн<strong>о</strong> сделать выв<strong>о</strong>д, чт<strong>о</strong><br />

пр<strong>о</strong>ект целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong> изучить.<br />

Эт<strong>о</strong> <strong>о</strong>бн<strong>о</strong>влённая версия пр<strong>о</strong>граммы SMV – симв<strong>о</strong>льн<strong>о</strong>г<strong>о</strong><br />

верификат<strong>о</strong>ра на м<strong>о</strong>делях (symbolic model checker). Он<br />

пр<strong>о</strong>изв<strong>о</strong>дит верификацию, к<strong>о</strong>мбинируя BDD (binary decision<br />

diagrams) и пр<strong>о</strong>верку м<strong>о</strong>делей, <strong>о</strong>сн<strong>о</strong>ванную на SAT (SATbased<br />

model checking). П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания<br />

треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти: CTL, LTL.<br />

П<strong>о</strong>следняя версия – 22.05.2007.<br />

В<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, ст<strong>о</strong>ит <strong>о</strong>знак<strong>о</strong>миться..<br />

Система для п<strong>о</strong>стр<strong>о</strong>ения, м<strong>о</strong>делир<strong>о</strong>вания, анализа и<br />

валидации временных сетей Петри. Пр<strong>о</strong>изв<strong>о</strong>дит также<br />

верификацию на <strong>о</strong>сн<strong>о</strong>ве пр<strong>о</strong>верки м<strong>о</strong>дели. Исп<strong>о</strong>льзует<br />

интересную визуальную интерпретацию темп<strong>о</strong>ральных<br />

ф<strong>о</strong>рмул.<br />

Следует изучить визуальную интерпретацию<br />

темп<strong>о</strong>ральных ф<strong>о</strong>рмул.<br />

Система визуализирующая и пр<strong>о</strong>в<strong>о</strong>дящая пр<strong>о</strong>верку м<strong>о</strong>дели<br />

для B-мет<strong>о</strong>да. Суть мет<strong>о</strong>да заключается в генерир<strong>о</strong>вании<br />

к<strong>о</strong>да из спецификации, написанн<strong>о</strong>й на ANS (Abstract Machine<br />

Notation). Нап<strong>о</strong>минает применение Z-н<strong>о</strong>тации.<br />

Утверждается, чт<strong>о</strong> система исп<strong>о</strong>льзуется в индустрии.<br />

Ст<strong>о</strong>ит <strong>о</strong>знак<strong>о</strong>миться с те<strong>о</strong>рией и, в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, с<br />

реализацией.<br />

Пред<strong>о</strong>ставляет в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сть д<strong>о</strong>казать с<strong>о</strong><strong>о</strong>тветствие м<strong>о</strong>дели<br />

спецификации с п<strong>о</strong>м<strong>о</strong>щью д<strong>о</strong>казательства на языке HOL или<br />

Z-н<strong>о</strong>тации. Также м<strong>о</strong>жет верифицир<strong>о</strong>вать пр<strong>о</strong>граммы,<br />

написанные на языке Ada, исп<strong>о</strong>льзуя Z-н<strong>о</strong>тацию.<br />

П<strong>о</strong>следняя версия: 16.06.2007.<br />

М<strong>о</strong>жет представлять ценн<strong>о</strong>сть т<strong>о</strong>льк<strong>о</strong> на этапе написание<br />

с<strong>о</strong>бственн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>дукта, где будет в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong><br />

применение анал<strong>о</strong>гичных техн<strong>о</strong>л<strong>о</strong>гий для неп<strong>о</strong>средственн<strong>о</strong>г<strong>о</strong>


18<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

PROSPER<br />

Rabbit<br />

RAVEN (Real-Time Analysis and<br />

Verification Environment)<br />

RuleBase<br />

SATABS (predicate abstraction for<br />

C/C++ programs)<br />

SAL<br />

д<strong>о</strong>казательства к<strong>о</strong>рректн<strong>о</strong>сти <strong>о</strong>тдельных функций.<br />

Инф<strong>о</strong>рмация нед<strong>о</strong>ступна.<br />

Верификат<strong>о</strong>р м<strong>о</strong>делей систем реальн<strong>о</strong>г<strong>о</strong> времени.<br />

Исп<strong>о</strong>льзует BDD (binary decision diagrams). Существуют<br />

реализации п<strong>о</strong>д Microsoft Windows (9x, NT, 2000), Sun Solaris<br />

2.6 (SunOS 5.6), Linux.<br />

Ценн<strong>о</strong>сть неизвестна, ск<strong>о</strong>рее всег<strong>о</strong>, не выс<strong>о</strong>ка.<br />

Инструмент для анализа и верификации систем реальн<strong>о</strong>г<strong>о</strong><br />

времени. Исп<strong>о</strong>льзует CCTL (clocked computation tree logic).<br />

М<strong>о</strong>жн<strong>о</strong> задавать максимальную длину, пр<strong>о</strong>сматриваем<strong>о</strong>г<strong>о</strong><br />

пути.<br />

Ценн<strong>о</strong>сть, ск<strong>о</strong>рее всег<strong>о</strong>, низка.<br />

Разраб<strong>о</strong>тан IBM Haifa Research Laboratory. П<strong>о</strong>следнее<br />

<strong>о</strong>бн<strong>о</strong>вление в 2007 г<strong>о</strong>ду. Исп<strong>о</strong>льзует п<strong>о</strong>дх<strong>о</strong>д к верификации<br />

схем, <strong>о</strong>сн<strong>о</strong>ванный на утверждениях (assertions).<br />

Разраб<strong>о</strong>тчики п<strong>о</strong>лагают, чт<strong>о</strong> пр<strong>о</strong>дукт м<strong>о</strong>жет применяться в<br />

реальных пр<strong>о</strong>ектах.<br />

Не с<strong>о</strong><strong>о</strong>тветствует тематике исслед<strong>о</strong>вания.<br />

Кл<strong>о</strong>н CBMC.<br />

См. CBMC.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит симв<strong>о</strong>льную верификацию. Исп<strong>о</strong>льзует BDD.<br />

Пр<strong>о</strong>верка м<strong>о</strong>дели <strong>о</strong>сн<strong>о</strong>вана на SAT (boolean satisfiability<br />

problem).<br />

Ценн<strong>о</strong>сть неизвестна, в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, целес<strong>о</strong><strong>о</strong>бразнее<br />

исслед<strong>о</strong>вать анал<strong>о</strong>гичные, н<strong>о</strong> б<strong>о</strong>лее известные пр<strong>о</strong>дукты.<br />

SLAM project Пр<strong>о</strong>изв<strong>о</strong>дит верификацию к<strong>о</strong>да, написанн<strong>о</strong>г<strong>о</strong> на языке C.<br />

Треб<strong>о</strong>вания к<strong>о</strong>рректн<strong>о</strong>сти задаются на специализир<strong>о</strong>ванн<strong>о</strong>м<br />

языке SLIC. Пр<strong>о</strong>дукт <strong>о</strong>риентир<strong>о</strong>ван на верификацию<br />

драйвер<strong>о</strong>в. Разраб<strong>о</strong>тка Microsoft Research.<br />

В<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>, целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong> п<strong>о</strong>тратить время на изучение.<br />

SMV (Symbolic Model Checker)<br />

SPIN<br />

StEAM (State Exploring Assemblylevel<br />

Model Checker)<br />

Пр<strong>о</strong>изв<strong>о</strong>дит симв<strong>о</strong>льную верификацию систем, заданных в<br />

виде иерархических авт<strong>о</strong>мат<strong>о</strong>в, где треб<strong>о</strong>вания к<strong>о</strong>рректн<strong>о</strong>сти<br />

задаются темп<strong>о</strong>ральн<strong>о</strong>й л<strong>о</strong>гик<strong>о</strong>й CTL. Утверждается, чт<strong>о</strong><br />

системы м<strong>о</strong>жн<strong>о</strong> задавать, как детализир<strong>о</strong>ван<strong>о</strong>, так и<br />

абстрактн<strong>о</strong>. Исп<strong>о</strong>льзует пре<strong>о</strong>браз<strong>о</strong>вание авт<strong>о</strong>мат<strong>о</strong>в в м<strong>о</strong>дель<br />

Крипке.<br />

П<strong>о</strong>-видим<strong>о</strong>му, целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong> изучить.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит верификацию м<strong>о</strong>дели для языка PROMELA.<br />

Эт<strong>о</strong>т язык п<strong>о</strong>ддерживает т<strong>о</strong>льк<strong>о</strong> дискретные типы данных, а<br />

также функции раб<strong>о</strong>ты с мн<strong>о</strong>г<strong>о</strong>п<strong>о</strong>т<strong>о</strong>чн<strong>о</strong>стью. Исп<strong>о</strong>льзует<br />

л<strong>о</strong>гику LTL. Утверждается, чт<strong>о</strong> <strong>о</strong>н присп<strong>о</strong>с<strong>о</strong>блен для<br />

решения крупн<strong>о</strong>масштабных задач. Пр<strong>о</strong>изв<strong>о</strong>дит<br />

верификацию на лету.<br />

М<strong>о</strong>щный инструмент, имеет мн<strong>о</strong>г<strong>о</strong> д<strong>о</strong>ст<strong>о</strong>инств. Ег<strong>о</strong><br />

п<strong>о</strong>др<strong>о</strong>бн<strong>о</strong>е изучение м<strong>о</strong>жет <strong>о</strong>казаться п<strong>о</strong>лезным.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит верификацию пр<strong>о</strong>грамм, написанных на языке<br />

C++, н<strong>о</strong> уже пре<strong>о</strong>браз<strong>о</strong>ванных в машинн<strong>о</strong>е представление


19<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

TLC<br />

UPPAAL (Uppaal Model Checker)<br />

VIS (Verification Interacting with<br />

Synthesis)<br />

dSPIN<br />

MAGIC<br />

(исп<strong>о</strong>льзуется виртуальная машина для языка C++). М<strong>о</strong>жет<br />

искать дедл<strong>о</strong>ки, <strong>о</strong>шибки сегментации, переп<strong>о</strong>лнение<br />

переменных и беск<strong>о</strong>нечные циклы.<br />

Для данн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>екта п<strong>о</strong>лезн<strong>о</strong>й инф<strong>о</strong>рмации практически не<br />

несёт.<br />

Верифицирует м<strong>о</strong>дели, <strong>о</strong>писанные на языке TLA+. Язык<br />

предназначен для написания спецификаций реактивных,<br />

распределённых и параллельных систем.<br />

Microsoft Research, 2003.<br />

Ценн<strong>о</strong>сть неизвестна.<br />

Среда для м<strong>о</strong>делир<strong>о</strong>вания и верификации систем реальн<strong>о</strong>г<strong>о</strong><br />

времени. Исп<strong>о</strong>льзует сети временных авт<strong>о</strong>мат<strong>о</strong>в,<br />

расширенные типами данных (<strong>о</strong>граниченные целые,<br />

массивы и т.п.). Языки м<strong>о</strong>делир<strong>о</strong>вания – Timed Automata.<br />

П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: TCTL (п<strong>о</strong>дмн<strong>о</strong>жеств<strong>о</strong>).<br />

П<strong>о</strong>следняя версия – март 2007 г<strong>о</strong>да.<br />

Д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong> красивая среда, ст<strong>о</strong>ит п<strong>о</strong>см<strong>о</strong>треть.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит верификацию м<strong>о</strong>дели, исп<strong>о</strong>льзуя иерархические<br />

к<strong>о</strong>нечные авт<strong>о</strong>маты, язык Verilog. Пр<strong>о</strong>веряемые<br />

утверждения задаются с п<strong>о</strong>м<strong>о</strong>щью л<strong>о</strong>гики CTL. Разраб<strong>о</strong>тка<br />

2003 г<strong>о</strong>да.<br />

Изучение м<strong>о</strong>жет <strong>о</strong>казаться п<strong>о</strong>лезным.<br />

Расширение инструмента SPIN. П<strong>о</strong>зв<strong>о</strong>ляет б<strong>о</strong>лее<br />

эффективн<strong>о</strong> верифицир<strong>о</strong>вать распределённые и<br />

параллельные системы. dSPIN расширяет в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сти<br />

инструмента SPIN. Обеспечивает нек<strong>о</strong>т<strong>о</strong>р<strong>о</strong>е к<strong>о</strong>личеств<strong>о</strong><br />

н<strong>о</strong>вых в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стей, реализ<strong>о</strong>ванных сверх <strong>о</strong>бычных<br />

алг<strong>о</strong>ритм<strong>о</strong>в исслед<strong>о</strong>вания пр<strong>о</strong>странства с<strong>о</strong>ст<strong>о</strong>яний и<br />

с<strong>о</strong>кращения с<strong>о</strong>ст<strong>о</strong>яний инструмента SPIN: указатели,<br />

динамическ<strong>о</strong>е выделение/<strong>о</strong>св<strong>о</strong>б<strong>о</strong>ждение памяти,<br />

рекурсивные функции, указатели на функцию, сб<strong>о</strong>рщик<br />

мус<strong>о</strong>ра, симметричн<strong>о</strong>е с<strong>о</strong>кращение. Д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong> м<strong>о</strong>щный<br />

вх<strong>о</strong>дн<strong>о</strong>й язык (расширение языка PROMELA).<br />

М<strong>о</strong>жет быть п<strong>о</strong>лезен для данн<strong>о</strong>г<strong>о</strong> исслед<strong>о</strong>вания, н<strong>о</strong>, ск<strong>о</strong>рее<br />

всег<strong>о</strong>, на п<strong>о</strong>здних стадиях.<br />

Верифицирует м<strong>о</strong>дели, п<strong>о</strong>лученные из исх<strong>о</strong>дных к<strong>о</strong>д<strong>о</strong>в<br />

пр<strong>о</strong>грамм, написанных на языке C. П<strong>о</strong>ддерживает<br />

распределённые и параллельные системы. Верификат<strong>о</strong>р<br />

<strong>о</strong>сн<strong>о</strong>ван на п<strong>о</strong>дх<strong>о</strong>де, исп<strong>о</strong>льзующем к<strong>о</strong>нтрпримеры. Сначала<br />

из исх<strong>о</strong>дн<strong>о</strong>г<strong>о</strong> к<strong>о</strong>да извлекается м<strong>о</strong>дель, например,<br />

абстрагир<strong>о</strong>ванием предикат<strong>о</strong>в (predicate abstraction). Далее<br />

м<strong>о</strong>дель пр<strong>о</strong>веряется на с<strong>о</strong><strong>о</strong>тветствие спецификации, к<strong>о</strong>т<strong>о</strong>рая<br />

задаётся к<strong>о</strong>нечным авт<strong>о</strong>мат<strong>о</strong>м.<br />

Для верификации шир<strong>о</strong>к<strong>о</strong>масштабных систем существует<br />

в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сть дек<strong>о</strong>мп<strong>о</strong>зиции на неб<strong>о</strong>льшие фрагменты,<br />

к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>жн<strong>о</strong> затем верифицир<strong>о</strong>вать <strong>о</strong>тдельн<strong>о</strong>.


20<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ABC (Another Bisimulation Checker)<br />

ACL2 (A Computational Logic for<br />

Applicative Common Lisp)<br />

Atelier B<br />

Bandera<br />

CADiZ<br />

CWB – NC (The Concurrency<br />

Workbench of New Century)<br />

П<strong>о</strong>следняя публикация датир<strong>о</strong>вана 2004 г<strong>о</strong>д<strong>о</strong>м.<br />

Следует <strong>о</strong>граничиться рассм<strong>о</strong>трением анал<strong>о</strong>гичных<br />

разраб<strong>о</strong>т<strong>о</strong>к.<br />

ABC – эт<strong>о</strong> инструмент для <strong>о</strong>пределения эквивалентн<strong>о</strong>сти<br />

между термами π-вычислений. Написан на языке<br />

пр<strong>о</strong>граммир<strong>о</strong>вания OCaml. Инструмент реализует пр<strong>о</strong>верку<br />

эквивалентн<strong>о</strong>сти верификат<strong>о</strong>ра MWB (Mobility Workbench).<br />

Стр<strong>о</strong>ит к<strong>о</strong>нтрпримеры.<br />

Вер<strong>о</strong>ятн<strong>о</strong>, не представляет ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

ACL2 – эт<strong>о</strong> и язык пр<strong>о</strong>граммир<strong>о</strong>вания, в к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>м м<strong>о</strong>жн<strong>о</strong><br />

м<strong>о</strong>делир<strong>о</strong>вать к<strong>о</strong>мпьютерные системы, и инструмент,<br />

п<strong>о</strong>зв<strong>о</strong>ляющий д<strong>о</strong>казывать св<strong>о</strong>йства этих м<strong>о</strong>делей. ACL2<br />

п<strong>о</strong>ддерживает рекурсивн<strong>о</strong>-<strong>о</strong>пределённые функции и<br />

авт<strong>о</strong>матическ<strong>о</strong>е д<strong>о</strong>казательств<strong>о</strong> св<strong>о</strong>йств таких функций.<br />

Сайт с<strong>о</strong>держит б<strong>о</strong>льш<strong>о</strong>е к<strong>о</strong>личеств<strong>о</strong> с<strong>о</strong>путствующей<br />

литературы.<br />

П<strong>о</strong>следняя версия инструмента датир<strong>о</strong>вана 03.12.2006.<br />

В<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong> ст<strong>о</strong>ит <strong>о</strong>граничиться анал<strong>о</strong>гами.<br />

Инструмент пр<strong>о</strong>изв<strong>о</strong>дит пр<strong>о</strong>верку синтаксиса и тип<strong>о</strong>в.<br />

С<strong>о</strong>держит мн<strong>о</strong>г<strong>о</strong>пр<strong>о</strong>х<strong>о</strong>дный и интерактивный д<strong>о</strong>казатели,<br />

транслят<strong>о</strong>ры язык<strong>о</strong>в C, C++, Ada, а также анимат<strong>о</strong>р<br />

спецификации. Исп<strong>о</strong>льзует B-мет<strong>о</strong>д. Применялся к<strong>о</strong>мпанией<br />

Siemens для разраб<strong>о</strong>тки пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения<br />

MENTOR.<br />

Д<strong>о</strong>ступен т<strong>о</strong>льк<strong>о</strong> п<strong>о</strong> к<strong>о</strong>ммерческ<strong>о</strong>й лицензии.<br />

П<strong>о</strong>следняя версия – 01.01.2002.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет неп<strong>о</strong>средственн<strong>о</strong>й ценн<strong>о</strong>сти<br />

для исслед<strong>о</strong>вания.<br />

Инструмент <strong>о</strong>риентир<strong>о</strong>ван на извлечение м<strong>о</strong>делей из<br />

исх<strong>о</strong>дных к<strong>о</strong>д<strong>о</strong>в, написанных на языке Java. П<strong>о</strong>ддерживает<br />

в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сть перев<strong>о</strong>да естественных язык<strong>о</strong>в в л<strong>о</strong>гические<br />

утверждения.<br />

П<strong>о</strong>следние данные <strong>о</strong> пр<strong>о</strong>екте заканчиваются в 2005 г<strong>о</strong>ду.<br />

Требуется изучить сп<strong>о</strong>с<strong>о</strong>б перев<strong>о</strong>да естественных язык<strong>о</strong>в в<br />

л<strong>о</strong>гические утверждения. Ценн<strong>о</strong>сть сам<strong>о</strong>г<strong>о</strong> инструмента<br />

для исслед<strong>о</strong>вания неизвестна. Ск<strong>о</strong>рее всег<strong>о</strong>, низка.<br />

Инструмент, написанный для манипуляций с<strong>о</strong><br />

спецификациями, заданными на ISO-стандарте Z-н<strong>о</strong>тации.<br />

Пр<strong>о</strong>веряет типы, пр<strong>о</strong>изв<strong>о</strong>дит д<strong>о</strong>казательства. Д<strong>о</strong>казатель<br />

имеет г<strong>о</strong>т<strong>о</strong>вый наб<strong>о</strong>р утверждений, тактический язык и<br />

нек<strong>о</strong>т<strong>о</strong>рые пр<strong>о</strong>цедуры принятия решений, в частн<strong>о</strong>сти,<br />

к<strong>о</strong>т<strong>о</strong>рые пытаются исп<strong>о</strong>льз<strong>о</strong>вать инструмент SMV для задач,<br />

к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут быть решены верификацией м<strong>о</strong>дели.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана 17.06.2002.<br />

Не с<strong>о</strong><strong>о</strong>тветствует цели исслед<strong>о</strong>вания.<br />

Система пр<strong>о</strong>изв<strong>о</strong>дит анализ д<strong>о</strong>стижим<strong>о</strong>сти, верификацию<br />

м<strong>о</strong>делей для µ-вычислений и пр<strong>о</strong>верку эквивалентн<strong>о</strong>сти.


21<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

DBRover<br />

DREAM (Distributed Real-time<br />

Embedded Analysis Method)<br />

Edinburgh CWB (Edinburgh<br />

Concurrency Workbench)<br />

Expander2<br />

Вх<strong>о</strong>дные языки: CCS (Calculus of Communicating Systems),<br />

CSP (Communicating Sequential Processes), LOTOS (Language<br />

of Temporal Ordering Specifications), TCCS (Timed CCS).<br />

П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: AFMC (Alternation Free Modal mu-Calculus),<br />

CTL (Computation Tree Logic), GCTL* (Generalized CTL*).<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана 01.06.2000.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

М<strong>о</strong>нит<strong>о</strong>р времени исп<strong>о</strong>лнения (runtime monitor) для<br />

темп<strong>о</strong>ральных правил, написанных на языках LTL и MTL.<br />

Эт<strong>о</strong> авт<strong>о</strong>матическая, удалённая и графическая версия<br />

инструмента TemporalRover. С<strong>о</strong>держит редакт<strong>о</strong>р<br />

темп<strong>о</strong>ральных ф<strong>о</strong>рмул, генерат<strong>о</strong>р и к<strong>о</strong>мпилят<strong>о</strong>р к<strong>о</strong>да,<br />

симулят<strong>о</strong>р. Языки м<strong>о</strong>делир<strong>о</strong>вания: Ada, C, C++, Java,VHDL,<br />

Verilog. П<strong>о</strong>ддерживаемые языки задания треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: LTL (Linear Time Logic), LTL with Temporal<br />

Da, MTL (Metric Temporal Logic).<br />

Д<strong>о</strong>ступен т<strong>о</strong>льк<strong>о</strong> п<strong>о</strong> к<strong>о</strong>ммерческ<strong>о</strong>й лицензии.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана 31.08.2002.<br />

Целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong> <strong>о</strong>знак<strong>о</strong>миться с редакт<strong>о</strong>р<strong>о</strong>м темп<strong>о</strong>ральных<br />

ф<strong>о</strong>рмул.<br />

Инструмент <strong>о</strong>риентир<strong>о</strong>ван на раб<strong>о</strong>ту с встр<strong>о</strong>енными<br />

распределёнными системами реальн<strong>о</strong>г<strong>о</strong> времени (distributed<br />

real-time embedded, DRE). Разраб<strong>о</strong>тан с<strong>о</strong>бственный мет<strong>о</strong>д<br />

ф<strong>о</strong>рмальн<strong>о</strong>г<strong>о</strong> анализа таких систем. Цель: авт<strong>о</strong>матизир<strong>о</strong>вать<br />

пр<strong>о</strong>цесс верификации, разраб<strong>о</strong>тки, к<strong>о</strong>нфигурир<strong>о</strong>вания и<br />

интеграции DRE. Языки м<strong>о</strong>делир<strong>о</strong>вания: C++, Timed<br />

Automata. Треб<strong>о</strong>вания к<strong>о</strong>рректн<strong>о</strong>сти ф<strong>о</strong>рмулируются с<br />

п<strong>о</strong>м<strong>о</strong>щью Monitor automata.<br />

П<strong>о</strong>следняя версия пр<strong>о</strong>дукта датир<strong>о</strong>вана 06.07.2006.<br />

М<strong>о</strong>жет <strong>о</strong>бладать ценн<strong>о</strong>стью для исслед<strong>о</strong>вания т<strong>о</strong>льк<strong>о</strong> при<br />

усл<strong>о</strong>вии, чт<strong>о</strong> будет разрабатываться анал<strong>о</strong>гичный<br />

пр<strong>о</strong>дукт.<br />

Вх<strong>о</strong>дные языки: CCS (Calculus of Communicating Systems),<br />

SCCS (Synchronous calculus of communicating systems), TCCS<br />

(Timed CCS). Сп<strong>о</strong>с<strong>о</strong>б задания треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти – µ-<br />

исчисление.<br />

Ценн<strong>о</strong>сть для исслед<strong>о</strong>вания, ск<strong>о</strong>рее всег<strong>о</strong>, низка.<br />

Expander2 – эт<strong>о</strong> гибкий мн<strong>о</strong>г<strong>о</strong>целев<strong>о</strong>й инструмент для<br />

интерактивн<strong>о</strong>й <strong>о</strong>тладки к<strong>о</strong>да, д<strong>о</strong>казательства те<strong>о</strong>рем,<br />

нах<strong>о</strong>ждения <strong>о</strong>граничений, анализа графа п<strong>о</strong>т<strong>о</strong>ка управления<br />

и р<strong>о</strong>дственных пр<strong>о</strong>цедур. П<strong>о</strong>ддерживаемые л<strong>о</strong>гики: AFMC<br />

(Alternation Free Modal mu-Calculus), CTL (Computation Tree<br />

Logic), Swinging Types (many-sorted predicate logic with<br />

Horn/co-Horn axioms).<br />

П<strong>о</strong>следняя версия – 25.11.2002. П<strong>о</strong>следняя публикация<br />

датир<strong>о</strong>вана 2007 г<strong>о</strong>д<strong>о</strong>м.


22<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

Fc2Tools (Fc2Tools and Autograph) П<strong>о</strong>следняя версия – 1996.<br />

С б<strong>о</strong>льш<strong>о</strong>й вер<strong>о</strong>ятн<strong>о</strong>стью, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

FDR2<br />

FDR2 – инструмент для пр<strong>о</strong>верки пр<strong>о</strong>цесс<strong>о</strong>в, <strong>о</strong>писанных на<br />

языке CSP (Communicating Sequential Processes). Д<strong>о</strong>ступен<br />

как п<strong>о</strong> к<strong>о</strong>ммерческ<strong>о</strong>й лицензии, так и в академических<br />

целях.<br />

П<strong>о</strong>следняя версия – 23.07.2007.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не ст<strong>о</strong>ит изучения.<br />

HSolver<br />

HSolver – эт<strong>о</strong> пр<strong>о</strong>грамма для верификации гибридных<br />

систем, <strong>о</strong>сн<strong>о</strong>ванных на абстрактн<strong>о</strong>й детализации (abstraction<br />

refinement). Язык м<strong>о</strong>делир<strong>о</strong>вания – гибридные авт<strong>о</strong>маты.<br />

Ценн<strong>о</strong>сть неизвестна.<br />

HyTech<br />

HyTech – симв<strong>о</strong>льный верификат<strong>о</strong>р для гибридных систем.<br />

Язык м<strong>о</strong>делир<strong>о</strong>вания – гибридные авт<strong>о</strong>маты.<br />

П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: CTL, Monitor automata.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

IF<br />

Вх<strong>о</strong>дные языки: IF (Intermediate Format), SDL (Specification<br />

and Description Language). П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы<br />

задания треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти – Monitor automata.<br />

П<strong>о</strong>следняя версия – 01.01.2005.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания<br />

INA (Integrated Net Analyzer)<br />

Исп<strong>о</strong>льзует сети Петри.<br />

П<strong>о</strong>следняя версия – 23.03.2001<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

IOA Toolkit<br />

Система для верификации д<strong>о</strong>казательств<strong>о</strong>м утверждений.<br />

Языки м<strong>о</strong>делир<strong>о</strong>вания: IOA (I/O Automata), LSL (Larch<br />

Shared L).<br />

П<strong>о</strong>следняя версия – 01.01.2002.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

Isabelle<br />

Isabelle – среда генерирующая д<strong>о</strong>казательства,<br />

разраб<strong>о</strong>танная в Cambridge University (Larry Paulson) и TU<br />

Munich (Tobias Nipkow). М<strong>о</strong>гут быть <strong>о</strong>пределены н<strong>о</strong>вые<br />

ф<strong>о</strong>рмализмы. П<strong>о</strong>ддерживает HOL (Higher-Order Llogic) и<br />

те<strong>о</strong>рию ZF-мн<strong>о</strong>жеств.<br />

П<strong>о</strong>следняя версия – 30.09.2005.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

LP (LP: The Larch Prover)<br />

Система для верификации д<strong>о</strong>казательств<strong>о</strong>м утверждений.<br />

Языки м<strong>о</strong>делир<strong>о</strong>вания: IOA (I/O Automata), LSL (Larch<br />

Shared L).<br />

П<strong>о</strong>следняя версия – 28.01.1999.<br />

Бесп<strong>о</strong>лезна для исслед<strong>о</strong>вания.<br />

MetaPRL<br />

Система для верификации д<strong>о</strong>казательств<strong>о</strong>м утверждений с<br />

шир<strong>о</strong>ким класс<strong>о</strong>м п<strong>о</strong>ддерживаемых л<strong>о</strong>гик. Осн<strong>о</strong>вная<br />

<strong>о</strong>с<strong>о</strong>бенн<strong>о</strong>сть эт<strong>о</strong>й системы с<strong>о</strong>ст<strong>о</strong>ит в т<strong>о</strong>м, чт<strong>о</strong> MetaPRL<br />

пр<strong>о</strong>изв<strong>о</strong>дит семантическ<strong>о</strong>е связывание с язык<strong>о</strong>м


23<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Mocha<br />

Mucke<br />

MWB (The Mobility Workbench)<br />

PEP (Programming Environment based<br />

on Petri nets)<br />

PROD<br />

пр<strong>о</strong>граммир<strong>о</strong>вания. Таким <strong>о</strong>браз<strong>о</strong>м, система вып<strong>о</strong>лняет<br />

функции л<strong>о</strong>гическ<strong>о</strong>й среды пр<strong>о</strong>граммир<strong>о</strong>вания, в к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>й<br />

пр<strong>о</strong>граммы к<strong>о</strong>нструируются, реализуются и пр<strong>о</strong>изв<strong>о</strong>дится их<br />

верификация.<br />

П<strong>о</strong>следняя публикация датир<strong>о</strong>вана 2004 г<strong>о</strong>д<strong>о</strong>м.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет интереса для исслед<strong>о</strong>вания.<br />

Т<strong>о</strong>льк<strong>о</strong> на п<strong>о</strong>здних этапах м<strong>о</strong>жет быть исслед<strong>о</strong>вана<br />

с<strong>о</strong><strong>о</strong>тветствующая среда.<br />

Главн<strong>о</strong>й задачей инструмента Mocha является разраб<strong>о</strong>тка, а<br />

не нах<strong>о</strong>ждение <strong>о</strong>шиб<strong>о</strong>к структуры, дизайна в пр<strong>о</strong>цессе<br />

ф<strong>о</strong>рмальн<strong>о</strong>й верификации систем, <strong>о</strong>сн<strong>о</strong>ванных на<br />

к<strong>о</strong>мп<strong>о</strong>нентн<strong>о</strong>й м<strong>о</strong>дели. Имеется графический интерфейс.<br />

Вер<strong>о</strong>ятн<strong>о</strong>, м<strong>о</strong>жет <strong>о</strong>казаться интересен для исслед<strong>о</strong>вания.<br />

Симв<strong>о</strong>льный верификат<strong>о</strong>р м<strong>о</strong>делей для µ-вычислений.<br />

Вх<strong>о</strong>дн<strong>о</strong>й язык п<strong>о</strong>х<strong>о</strong>ж на языке C++.<br />

П<strong>о</strong>следняя версия – 26.03.2002.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

MWB инструмент для манипулир<strong>о</strong>вания и анализа<br />

м<strong>о</strong>бильных распределённых и параллельных систем,<br />

<strong>о</strong>писанных с п<strong>о</strong>м<strong>о</strong>щью π-вычислений.<br />

П<strong>о</strong>следняя версия – 19.08.2006.<br />

Ценн<strong>о</strong>сть неизвестна.<br />

Инструмент PEP – среда разраб<strong>о</strong>тки и верификации для<br />

различных спецификаций и язык<strong>о</strong>в пр<strong>о</strong>граммир<strong>о</strong>вания. Все<br />

части инструмента д<strong>о</strong>ступны из графическ<strong>о</strong>г<strong>о</strong><br />

п<strong>о</strong>льз<strong>о</strong>вательск<strong>о</strong>г<strong>о</strong> интерфейса. Верификация пр<strong>о</strong>изв<strong>о</strong>дится<br />

на авт<strong>о</strong>матически сгенерир<strong>о</strong>ванных сетях Петри. Пакет PEP<br />

легк<strong>о</strong> расширяется и уже предлагает б<strong>о</strong>льш<strong>о</strong>е к<strong>о</strong>личеств<strong>о</strong><br />

ф<strong>о</strong>рмальных м<strong>о</strong>делей и техник верификации.<br />

Вх<strong>о</strong>дные языки: B(PN)^2 (Basic Programmin Notation for Petri<br />

Nets), PBC (Petri Box Calculus), PFA (Parallel Finite<br />

Automata), Petri Nets, SDL (Specification and Description<br />

Language). П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы заданий треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: CTL, LTL.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана – 09.09.2004.<br />

Ценн<strong>о</strong>сть неизвестна, н<strong>о</strong> инструмент, ск<strong>о</strong>рее всег<strong>о</strong>,<br />

бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

Инструмент реализует неск<strong>о</strong>льк<strong>о</strong> различных мет<strong>о</strong>д<strong>о</strong>в<br />

анализа д<strong>о</strong>стижим<strong>о</strong>сти. Исп<strong>о</strong>льзует техники генерации<br />

с<strong>о</strong>кращённ<strong>о</strong>г<strong>о</strong> графа д<strong>о</strong>стижим<strong>о</strong>сти: мет<strong>о</strong>д «упрямых»<br />

мн<strong>о</strong>жеств (the stubborn set method), мет<strong>о</strong>д неп<strong>о</strong>движных<br />

мн<strong>о</strong>жеств (the sleep set method), <strong>о</strong>пределения при<strong>о</strong>ритет<strong>о</strong>в и<br />

исп<strong>о</strong>льз<strong>о</strong>вания симметрий.<br />

Инструмент п<strong>о</strong>ддерживает верификацию CTL-ф<strong>о</strong>рмул для<br />

графа д<strong>о</strong>стижим<strong>о</strong>сти и верификацию на лету для LTLф<strong>о</strong>рмул,<br />

исп<strong>о</strong>льзуя мет<strong>о</strong>д «упрямых» мн<strong>о</strong>жеств. Вх<strong>о</strong>дн<strong>о</strong>й<br />

язык – Petri Nets.


24<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

PVS (Prototype Verification System)<br />

Reactis Tester<br />

SGM (State-Graph Manipulators)<br />

SMCWWI (Simple Model Checker With<br />

Web Interface)<br />

STeP (Stanford Temporal Prover)<br />

Инструмент исп<strong>о</strong>льз<strong>о</strong>вался в индустрии.<br />

П<strong>о</strong>следняя версия – 26.01.2006.<br />

С<strong>о</strong><strong>о</strong>тветствующие мет<strong>о</strong>ды с<strong>о</strong>кращения графа<br />

д<strong>о</strong>стижим<strong>о</strong>сти м<strong>о</strong>гут быть изучены. Ценн<strong>о</strong>сть <strong>о</strong>стальн<strong>о</strong>й<br />

части неизвестна.<br />

PVS – интерактивный д<strong>о</strong>казатель, <strong>о</strong>сн<strong>о</strong>ванный на языке HOL<br />

с предикатными п<strong>о</strong>дтипами, зависимыми типами,<br />

рекурсивными типами данных, рекурсивными и<br />

индуктивными <strong>о</strong>пределениями, параметриз<strong>о</strong>ванными<br />

те<strong>о</strong>риями. Д<strong>о</strong>казатель п<strong>о</strong>ддерживает пр<strong>о</strong>п<strong>о</strong>зици<strong>о</strong>нальные<br />

д<strong>о</strong>казательства, упр<strong>о</strong>щение, верификацию м<strong>о</strong>делей и т.д.<br />

Язык м<strong>о</strong>делир<strong>о</strong>вания – CSP (Communicating Sequential<br />

Processes).<br />

П<strong>о</strong>следняя версия – 22.11.2006.<br />

Ценн<strong>о</strong>сть неизвестна, ск<strong>о</strong>рее всег<strong>о</strong>, ст<strong>о</strong>ит <strong>о</strong>граничиться<br />

изучением анал<strong>о</strong>г<strong>о</strong>в.<br />

М<strong>о</strong>делирует и тестирует реактивные системы. Языки<br />

м<strong>о</strong>делир<strong>о</strong>ванием: Simulink/Stateflow.<br />

Д<strong>о</strong>ступен т<strong>о</strong>льк<strong>о</strong> п<strong>о</strong> к<strong>о</strong>ммерческ<strong>о</strong>й лицензии.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана – 27.11.2006.<br />

Вер<strong>о</strong>ятн<strong>о</strong>, м<strong>о</strong>жет <strong>о</strong>казаться интересен для исслед<strong>о</strong>вания.<br />

Эт<strong>о</strong> инструмент для выс<strong>о</strong>к<strong>о</strong>ур<strong>о</strong>внев<strong>о</strong>й верификации систем<br />

реальн<strong>о</strong>г<strong>о</strong> времени. В п<strong>о</strong>следних версиях были пр<strong>о</strong>изведены<br />

улучшения, п<strong>о</strong>зв<strong>о</strong>ляющие исп<strong>о</strong>льз<strong>о</strong>вать пр<strong>о</strong>дукт для<br />

верификации встр<strong>о</strong>енных и SoC (System-on-Chips) систем.<br />

Имеет м<strong>о</strong>дульную архитектуру. Исп<strong>о</strong>льзует нек<strong>о</strong>т<strong>о</strong>р<strong>о</strong>е<br />

к<strong>о</strong>личеств<strong>о</strong> различных техник с<strong>о</strong>кращения пр<strong>о</strong>странства<br />

с<strong>о</strong>ст<strong>о</strong>яний (симметричн<strong>о</strong>е с<strong>о</strong>кращение и т.п.). Вх<strong>о</strong>дные<br />

языки: PFA (Parallel Finite Automata), Timed Automata.<br />

П<strong>о</strong>ддерживает CTL.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана – 30.10.2002.<br />

С<strong>о</strong><strong>о</strong>тветствующая те<strong>о</strong>рия с<strong>о</strong>кращения пр<strong>о</strong>странства<br />

с<strong>о</strong>ст<strong>о</strong>яний м<strong>о</strong>жет быть изучена, н<strong>о</strong>, ск<strong>о</strong>рее всег<strong>о</strong>, не несёт<br />

никак<strong>о</strong>й н<strong>о</strong>визны <strong>о</strong>тн<strong>о</strong>сительн<strong>о</strong> анал<strong>о</strong>гичных с<strong>о</strong>временных<br />

разраб<strong>о</strong>т<strong>о</strong>к.<br />

Цель эт<strong>о</strong>г<strong>о</strong> средства – <strong>о</strong>бучение.<br />

П<strong>о</strong>следняя версия – 18.12.2002.<br />

Для данн<strong>о</strong>г<strong>о</strong> исслед<strong>о</strong>вания бесп<strong>о</strong>лезен.<br />

STeP – мн<strong>о</strong>г<strong>о</strong>ст<strong>о</strong>р<strong>о</strong>нний верификат<strong>о</strong>р. Исп<strong>о</strong>льзует<br />

алг<strong>о</strong>ритмические и дедуктивные мет<strong>о</strong>ды для верификации<br />

реактивных и гибридных систем, а также систем реальн<strong>о</strong>г<strong>о</strong><br />

времени. Для с<strong>о</strong>кращения д<strong>о</strong>казательств пред<strong>о</strong>ставляет<br />

в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сть раб<strong>о</strong>ты с правилами верификации и<br />

верификаци<strong>о</strong>нными диаграммами. В с<strong>о</strong>став инструмента<br />

включён валидат<strong>о</strong>р и упр<strong>о</strong>ститель ф<strong>о</strong>рмул, к<strong>о</strong>т<strong>о</strong>рые част<strong>о</strong><br />

м<strong>о</strong>гут <strong>о</strong>пределить эти усл<strong>о</strong>вия верификации авт<strong>о</strong>матически.<br />

Интерактивный д<strong>о</strong>казатель п<strong>о</strong>зв<strong>о</strong>ляет справиться с теми


25<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Temporal Rover<br />

усл<strong>о</strong>виями, к<strong>о</strong>т<strong>о</strong>рые не м<strong>о</strong>гут быть д<strong>о</strong>казаны авт<strong>о</strong>матически.<br />

Инварианты м<strong>о</strong>гут быть сгенерир<strong>о</strong>ваны авт<strong>о</strong>матическим<br />

путём для п<strong>о</strong>ддержки дедуктивных и дедуктивн<strong>о</strong>алг<strong>о</strong>ритмических<br />

мет<strong>о</strong>д<strong>о</strong>в. Вх<strong>о</strong>дн<strong>о</strong>й язык – SPL (Simple<br />

Programm (Simple Programming Language). П<strong>о</strong>ддерживаемые<br />

сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти – LTL.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана 1999 г<strong>о</strong>д<strong>о</strong>м.<br />

Ценн<strong>о</strong>сти для исслед<strong>о</strong>вания не представляет.<br />

Пр<strong>о</strong>изв<strong>о</strong>дит пр<strong>о</strong>верку треб<strong>о</strong>ваний, сф<strong>о</strong>рмулир<strong>о</strong>ванных на<br />

языке LTL с <strong>о</strong>граничениями реальн<strong>о</strong>г<strong>о</strong> времени (with realtime<br />

constraints). Генерирует исп<strong>о</strong>лняемый к<strong>о</strong>д для<br />

спецификаций, записанных в виде к<strong>о</strong>мментариев.<br />

П<strong>о</strong>ддерживает темп<strong>о</strong>ральную валидацию, например, «п<strong>о</strong>сле<br />

в<strong>о</strong>зникн<strong>о</strong>вения с<strong>о</strong>бытия A, значение переменн<strong>о</strong>й x в пяти<br />

пр<strong>о</strong>центах случаев не изменяется, и её среднее значение<br />

б<strong>о</strong>льше 100 в течение <strong>о</strong>дн<strong>о</strong>г<strong>о</strong> часа или д<strong>о</strong> т<strong>о</strong>г<strong>о</strong> м<strong>о</strong>мента,<br />

к<strong>о</strong>гда с<strong>о</strong>бытие B пр<strong>о</strong>из<strong>о</strong>йдёт дважды».<br />

Вх<strong>о</strong>дные языки: Ada, C, C++, Java, VHDL, Verilog.<br />

П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: LTL, LTL with Temporal Da, MTL (Metric<br />

Temporal Logic).<br />

Существует также пр<strong>о</strong>ект StateRover, к<strong>о</strong>т<strong>о</strong>рый, п<strong>о</strong>видим<strong>о</strong>му,<br />

<strong>о</strong>сн<strong>о</strong>вывается на эт<strong>о</strong>м инструменте (<strong>о</strong>ба пр<strong>о</strong>екта<br />

размещены на <strong>о</strong>дн<strong>о</strong>м сайте), н<strong>о</strong> является б<strong>о</strong>лее н<strong>о</strong>вым и<br />

м<strong>о</strong>щным. StateRover имеет б<strong>о</strong>лее шир<strong>о</strong>кие в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сти п<strong>о</strong><br />

сравнению с Temporal Rover и <strong>о</strong>перирует с п<strong>о</strong>дмн<strong>о</strong>жеств<strong>о</strong>м<br />

языка UML. М<strong>о</strong>жет генерир<strong>о</strong>вать к<strong>о</strong>д на языках Java, C++,<br />

C. Имеет м<strong>о</strong>щную графическую <strong>о</strong>б<strong>о</strong>л<strong>о</strong>чку, реализ<strong>о</strong>ванную<br />

как плагин для Eclipse.<br />

Д<strong>о</strong>ступен т<strong>о</strong>льк<strong>о</strong> п<strong>о</strong> к<strong>о</strong>ммерческ<strong>о</strong>й лицензии.<br />

Целес<strong>о</strong><strong>о</strong>бразн<strong>о</strong> изучить.<br />

The Kit (The Model-Checking Kit) Осн<strong>о</strong>вная <strong>о</strong>с<strong>о</strong>бенн<strong>о</strong>сть эт<strong>о</strong>г<strong>о</strong> верификат<strong>о</strong>ра м<strong>о</strong>делей –<br />

в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сть верифицир<strong>о</strong>вать м<strong>о</strong>дель, написанную на <strong>о</strong>дн<strong>о</strong>м<br />

языке м<strong>о</strong>делир<strong>о</strong>вания, н<strong>о</strong> разными мет<strong>о</strong>дами. Вх<strong>о</strong>дные<br />

языки: B(PN)^2 (Basic Programmin Notation for Petri Nets),<br />

PFA (Parallel Finite Automata), Petri Nets. П<strong>о</strong>ддерживаемые<br />

сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти: CTL, LTL.<br />

П<strong>о</strong>следняя версия – 21.09.2004.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

TIMES (A Tool for Modeling and<br />

Implementation of Embedded Systems)<br />

TIMES – инстумент м<strong>о</strong>делир<strong>о</strong>вания и анализа расписания<br />

(schedulability analysis) для встр<strong>о</strong>енных систем реальн<strong>о</strong>г<strong>о</strong><br />

времени. Разраб<strong>о</strong>тан в Uppsala University. Применим для<br />

систем, к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут быть <strong>о</strong>писаны как мн<strong>о</strong>жеств<strong>о</strong><br />

при<strong>о</strong>ритетных или непри<strong>о</strong>ритетных задач, запускаемые<br />

пери<strong>о</strong>дически или сп<strong>о</strong>нтанн<strong>о</strong> п<strong>о</strong> времени или при п<strong>о</strong>явлении<br />

<strong>о</strong>пределённых внешних с<strong>о</strong>бытий. Пред<strong>о</strong>ставляет<br />

графический интерфейс для редактир<strong>о</strong>вания и симуляции.


26<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

TPS (TPS Theorem Proving System)<br />

TRON (Uppaal TRON)<br />

Truth<br />

TwoTowers<br />

VeriSoft<br />

VSE-II<br />

Ymer<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

Ещё <strong>о</strong>дин д<strong>о</strong>казатель.<br />

П<strong>о</strong>следняя версия – 01.12.2002.<br />

Бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

Uppaal TRON – инструмент для пр<strong>о</strong>ведения тестир<strong>о</strong>вания<br />

с<strong>о</strong>глас<strong>о</strong>ванн<strong>о</strong>сти (исп<strong>о</strong>льзуется верификация м<strong>о</strong>делей).<br />

Языки м<strong>о</strong>делир<strong>о</strong>вания – Timed Automata.<br />

П<strong>о</strong>следняя версия – 27.04.2007.<br />

Ценн<strong>о</strong>сть для исслед<strong>о</strong>вания неизвестна.<br />

Среда для верификации. Имеет м<strong>о</strong>дульную структуру.<br />

П<strong>о</strong>эт<strong>о</strong>му пр<strong>о</strong>цесс д<strong>о</strong>бавления н<strong>о</strong>вых язык<strong>о</strong>в весьма пр<strong>о</strong>ст.<br />

П<strong>о</strong>ддерживает языки: CCS (Calculus of Communicating<br />

Systems), Petri Nets. Задание треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти –<br />

AFMC (Alternation Free Modal mu-Calculus).<br />

П<strong>о</strong>следняя версия – 07.04.2002.<br />

Ценн<strong>о</strong>сти для исслед<strong>о</strong>вания не представляет.<br />

TwoTowers – пр<strong>о</strong>граммн<strong>о</strong>е <strong>о</strong>беспечение для функци<strong>о</strong>нальн<strong>о</strong>й<br />

верификации, анализа без<strong>о</strong>пасн<strong>о</strong>сти, вычисления<br />

быстр<strong>о</strong>действия. Исп<strong>о</strong>льзует верификат<strong>о</strong>р NuSMV для<br />

симв<strong>о</strong>льн<strong>о</strong>й верификации, марк<strong>о</strong>вские цепи, симуляцию<br />

дискретных с<strong>о</strong>бытий, пр<strong>о</strong>изв<strong>о</strong>дит анализ п<strong>о</strong>т<strong>о</strong>ка<br />

инф<strong>о</strong>рмации. Вх<strong>о</strong>дные языки: AEmilia, EMPAgr (Extended<br />

Markovian Process Algebra with generative-reactive<br />

synchronizations). П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания<br />

треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти – язык LTL.<br />

П<strong>о</strong>следняя версия – 17.01.2006.<br />

Ценн<strong>о</strong>сть для исслед<strong>о</strong>вания, ск<strong>о</strong>рее всег<strong>о</strong>, низка.<br />

Система для тестир<strong>о</strong>вания пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения.<br />

П<strong>о</strong>ддерживаемые языки: C, C++, Java. П<strong>о</strong>ддерживаемые<br />

сп<strong>о</strong>с<strong>о</strong>бы задания к<strong>о</strong>рректн<strong>о</strong>сти: LTL, Monitor automata.<br />

П<strong>о</strong>следняя версия датир<strong>о</strong>вана 2006 г<strong>о</strong>д<strong>о</strong>м. Имеет<br />

графический интерфейс.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, не представляет ценн<strong>о</strong>сти для исслед<strong>о</strong>вания.<br />

Ещё <strong>о</strong>дин д<strong>о</strong>казатель. Язык м<strong>о</strong>делир<strong>о</strong>вания – VSE-SL.<br />

П<strong>о</strong>следняя версия – 06.10.2003.<br />

Бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания.<br />

Инструмент Ymer реализует алг<strong>о</strong>ритм верификации,<br />

к<strong>о</strong>т<strong>о</strong>рый не зависит <strong>о</strong>т м<strong>о</strong>дели. Предназначен для<br />

верификации св<strong>о</strong>йств реальн<strong>о</strong>г<strong>о</strong> времени систем с<br />

дискретными с<strong>о</strong>бытиями с п<strong>о</strong>м<strong>о</strong>щью <strong>о</strong>тб<strong>о</strong>ра <strong>о</strong>бразц<strong>о</strong>в<br />

(acceptance sampling). П<strong>о</strong>ддерживаемый вх<strong>о</strong>дн<strong>о</strong>й язык –<br />

PRISM language (PRISM model description language).<br />

П<strong>о</strong>ддерживаемые сп<strong>о</strong>с<strong>о</strong>бы задания треб<strong>о</strong>ваний<br />

к<strong>о</strong>рректн<strong>о</strong>сти: CSL (Continuous Stochastic Logic), PCTL<br />

(Probabilistic Computation Tree Logic).<br />

П<strong>о</strong>следняя версия – 01.02.2005.<br />

Ценн<strong>о</strong>сти для исслед<strong>о</strong>вания, ск<strong>о</strong>рее всег<strong>о</strong>, не представляет.


27<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

J-LO (the Java Logical Observer)<br />

Ст<strong>о</strong>ит <strong>о</strong>граничиться изучением анал<strong>о</strong>г<strong>о</strong>в.<br />

J-LO – инструмен для пр<strong>о</strong>верки темп<strong>о</strong>ральных утверждений<br />

в<strong>о</strong> время исп<strong>о</strong>лнения (tool for runtime-checking temporal<br />

assertions) для прил<strong>о</strong>жений, написанных на языке Java 5.<br />

Темп<strong>о</strong>ральные св<strong>о</strong>йства м<strong>о</strong>гут быть заданы на языке LTL, с<br />

исп<strong>о</strong>льз<strong>о</strong>ванием AspectJ. Св<strong>о</strong>йства записываются в прям<strong>о</strong> в<br />

к<strong>о</strong>де в виде анн<strong>о</strong>таций языка Java.<br />

П<strong>о</strong>следняя версия инструмента датир<strong>о</strong>вана 2006 г<strong>о</strong>д<strong>о</strong>м.<br />

Ск<strong>о</strong>рее всег<strong>о</strong>, бесп<strong>о</strong>лезен для исслед<strong>о</strong>вания<br />

2.4. ОБЗОР ВЫБРАННЫХ ИНСТРУМЕНТОВ<br />

На <strong>о</strong>сн<strong>о</strong>ве предварительн<strong>о</strong>г<strong>о</strong> анализа, были выделены наиб<strong>о</strong>лее интересные на данн<strong>о</strong>м этапе<br />

исслед<strong>о</strong>вания верификат<strong>о</strong>ры. Каждый из них имеет ту или иную важную <strong>о</strong>с<strong>о</strong>бенн<strong>о</strong>сть или исп<strong>о</strong>льзует<br />

те<strong>о</strong>ретические п<strong>о</strong>л<strong>о</strong>жения, к<strong>о</strong>т<strong>о</strong>рые м<strong>о</strong>гут быть п<strong>о</strong>лезны для исслед<strong>о</strong>вания, пр<strong>о</strong>в<strong>о</strong>дим<strong>о</strong>г<strong>о</strong> п<strong>о</strong><br />

к<strong>о</strong>нтракту:<br />

• Bogor;<br />

• Cadena;<br />

• CADP (Construction and Analysis of Distributed Processes;<br />

• CBMC (A Bounded Model Checker for C/C++ programs);<br />

• GEAR (a game based model checking tool capable of CTL, modal µ-calculus and<br />

specification patterns);<br />

• Java Pathfinder;<br />

• LTSA (Labelled Transition System Analyser);<br />

• MOPS (Modelchecking Programs for Security properties);<br />

• NuSMV (A New Symbolic Model Checker);<br />

• ORIS (uses a CTL-like temporal logic with real-time bounds, action and state based);<br />

• ProB;<br />

• SMV (Symbolic Model Checker);<br />

• SPIN;<br />

• TLC;<br />

• UPPAAL (Uppaal Model Checker);<br />

• VIS (Verification Interacting with Synthesis);<br />

• dSPIN;<br />

• Atelier B;<br />

• Bandera;<br />

• DBRover;<br />

• FDR2;<br />

• Mocha;<br />

• PROD;<br />

• Reactis Tester;<br />

• Temporal Rover;<br />

• J-LO (the Java Logical Observe).<br />

Приведем <strong>о</strong>писание нек<strong>о</strong>т<strong>о</strong>рых из этих инструмент<strong>о</strong>в. Эт<strong>о</strong> верификат<strong>о</strong>ры, в к<strong>о</strong>т<strong>о</strong>рых интересен<br />

принцип раб<strong>о</strong>ты.


28<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

2.4.1. Bogor<br />

Bogor – расширяемый верификат<strong>о</strong>р м<strong>о</strong>делей пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения. Включает в себя<br />

системы визуализации и графический п<strong>о</strong>льз<strong>о</strong>вательский интерфейс, разраб<strong>о</strong>танные для п<strong>о</strong>ддержки<br />

как <strong>о</strong>сн<strong>о</strong>вн<strong>о</strong>й, так и специализир<strong>о</strong>ванн<strong>о</strong>й <strong>о</strong>бласти (domain-specific) пр<strong>о</strong>верки м<strong>о</strong>делей. Х<strong>о</strong>тя<br />

существует мн<strong>о</strong>г<strong>о</strong> других пр<strong>о</strong>грамм, сп<strong>о</strong>с<strong>о</strong>бных <strong>о</strong>существлять пр<strong>о</strong>верку м<strong>о</strong>делей, верификат<strong>о</strong>р Bogor<br />

<strong>о</strong>беспечивает <strong>о</strong>ригинальные в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сти, к<strong>о</strong>т<strong>о</strong>рые делают ег<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>дящим для пр<strong>о</strong>верки св<strong>о</strong>йств<br />

разн<strong>о</strong>г<strong>о</strong> р<strong>о</strong>да пр<strong>о</strong>граммных пр<strong>о</strong>дукт<strong>о</strong>в, для п<strong>о</strong>стр<strong>о</strong>ения с<strong>о</strong>бственн<strong>о</strong>г<strong>о</strong> специализир<strong>о</strong>ванн<strong>о</strong>г<strong>о</strong><br />

инструмента и для <strong>о</strong>бучения к<strong>о</strong>нцепции пр<strong>о</strong>верки м<strong>о</strong>делей.<br />

Этим инструмент<strong>о</strong>м <strong>о</strong>беспечивается:<br />

• прямая п<strong>о</strong>ддержка в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стей <strong>о</strong>бъектн<strong>о</strong>-<strong>о</strong>риентир<strong>о</strong>ванных язык<strong>о</strong>в, п<strong>о</strong>зв<strong>о</strong>ляющих<br />

эффективн<strong>о</strong> стр<strong>о</strong>ить распределённые и параллельные системы, такие как динамическ<strong>о</strong>е<br />

с<strong>о</strong>здание п<strong>о</strong>т<strong>о</strong>к<strong>о</strong>в и <strong>о</strong>бъект<strong>о</strong>в, наслед<strong>о</strong>вание, виртуальные мет<strong>о</strong>ды, исключения,<br />

сб<strong>о</strong>рщик мус<strong>о</strong>ра и т.д.;<br />

• язык м<strong>о</strong>делир<strong>о</strong>вания инструмента Bogor м<strong>о</strong>жет быть расширен н<strong>о</strong>выми примитивными<br />

типами, выражениями и к<strong>о</strong>мандами, асс<strong>о</strong>циир<strong>о</strong>ванными с предметн<strong>о</strong>й <strong>о</strong>бластью<br />

(например, мультиагентные системы, ави<strong>о</strong>ника, пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>лы без<strong>о</strong>пасн<strong>о</strong>сти и т.д.) и м<strong>о</strong>жет<br />

выбран с<strong>о</strong><strong>о</strong>тветствующий ур<strong>о</strong>вень абстракции (например, разраб<strong>о</strong>тка м<strong>о</strong>дели, исх<strong>о</strong>дный<br />

к<strong>о</strong>д, байт-к<strong>о</strong>д и т.д.);<br />

• <strong>о</strong>ткрытая архитектура инструмента Bogor и х<strong>о</strong>р<strong>о</strong>ш<strong>о</strong> <strong>о</strong>рганиз<strong>о</strong>ванная система м<strong>о</strong>дулей<br />

п<strong>о</strong>зв<strong>о</strong>ляют д<strong>о</strong>бавлять н<strong>о</strong>вые алг<strong>о</strong>ритмы (например, для исслед<strong>о</strong>вания пр<strong>о</strong>странства<br />

с<strong>о</strong>ст<strong>о</strong>яний, хранения с<strong>о</strong>ст<strong>о</strong>яний и т.д.) и разн<strong>о</strong>видн<strong>о</strong>сти <strong>о</strong>птимизации (например,<br />

эвристические алг<strong>о</strong>ритмы п<strong>о</strong>иска стратегий, специфическ<strong>о</strong>е для предметн<strong>о</strong>й <strong>о</strong>бласти<br />

назначение ср<strong>о</strong>к<strong>о</strong>в (domain-specific scheduling) и т.д.). Они м<strong>о</strong>гут заменять загруженные<br />

п<strong>о</strong> ум<strong>о</strong>лчанию алг<strong>о</strong>ритмы пр<strong>о</strong>верки м<strong>о</strong>делей инструмента Bogor;<br />

• Bogor <strong>о</strong>бладает м<strong>о</strong>щным графическим интерфейс<strong>о</strong>м (рис. 1), реализ<strong>о</strong>ванным как плагин<br />

для Eclipse (универсальная платф<strong>о</strong>рма c <strong>о</strong>ткрытым к<strong>о</strong>д<strong>о</strong>м). Эт<strong>о</strong>т п<strong>о</strong>льз<strong>о</strong>вательский<br />

интерфейс <strong>о</strong>беспечивает механизм для сб<strong>о</strong>рки различных к<strong>о</strong>нфигураций инструмента<br />

Bogor, <strong>о</strong>писания к<strong>о</strong>ллекций св<strong>о</strong>йств, а также различные варианты визуализации и<br />

навигации.


29<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

а)<br />

а)<br />

б)<br />

Рис. 1. Графический интерфейс инструмента Bogor, реализ<strong>о</strong>ванный как плагин для Eclipse


30<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

• Bogor – эт<strong>о</strong> уд<strong>о</strong>бный педаг<strong>о</strong>гический инструмент для <strong>о</strong>бучения верификации<br />

м<strong>о</strong>делей, так как <strong>о</strong>н п<strong>о</strong>зв<strong>о</strong>ляет наблюдать чистую реализацию баз<strong>о</strong>вых алг<strong>о</strong>ритм<strong>о</strong>в<br />

пр<strong>о</strong>верки м<strong>о</strong>делей, легк<strong>о</strong> улучшать и расширять эти алг<strong>о</strong>ритмы.<br />

Отметим, чт<strong>о</strong> инструмент Bogor разраб<strong>о</strong>тан не т<strong>о</strong>льк<strong>о</strong> для п<strong>о</strong>лучения м<strong>о</strong>щн<strong>о</strong>г<strong>о</strong> средства<br />

пр<strong>о</strong>верки м<strong>о</strong>делей с<strong>о</strong>временных шир<strong>о</strong>к<strong>о</strong>масштабных систем, н<strong>о</strong> и м<strong>о</strong>жет служить <strong>о</strong>сн<strong>о</strong>в<strong>о</strong>й для<br />

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

Bogor пр<strong>о</strong>веряет системы, <strong>о</strong>писанные на исправленн<strong>о</strong>й версии BIR (Bandera Intermediate<br />

Representation). Предыдущая версия BIR была разраб<strong>о</strong>тана для пр<strong>о</strong>межут<strong>о</strong>чн<strong>о</strong>г<strong>о</strong> языка, исп<strong>о</strong>льзуем<strong>о</strong>г<strong>о</strong><br />

в верификат<strong>о</strong>ре Bandera для трансляции Java-пр<strong>о</strong>грамм в<strong>о</strong> вх<strong>о</strong>дн<strong>о</strong>й язык существующег<strong>о</strong><br />

верификат<strong>о</strong>ра м<strong>о</strong>делей, так<strong>о</strong>г<strong>о</strong> как SPIN. Таким <strong>о</strong>браз<strong>о</strong>м, эта б<strong>о</strong>лее ранняя версия давала прямую<br />

п<strong>о</strong>ддержку для м<strong>о</strong>делир<strong>о</strong>вания таких в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стей языка Java как, например, п<strong>о</strong>т<strong>о</strong>ки и<br />

<strong>о</strong>граниченную ф<strong>о</strong>рму выделения памяти в куче. Для т<strong>о</strong>г<strong>о</strong> чт<strong>о</strong>бы <strong>о</strong>блегчить к<strong>о</strong>нструир<strong>о</strong>вание<br />

транслят<strong>о</strong>р<strong>о</strong>в для таких верификат<strong>о</strong>р<strong>о</strong>в м<strong>о</strong>делей, как SPIN, действия и п<strong>о</strong>т<strong>о</strong>к управления языка BIR<br />

задаются в ф<strong>о</strong>рмате, к<strong>о</strong>т<strong>о</strong>рый д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong> близ<strong>о</strong>к к языку PROMELA.<br />

Ос<strong>о</strong>бенн<strong>о</strong>стью языка BIR, <strong>о</strong>тн<strong>о</strong>сительн<strong>о</strong> язык<strong>о</strong>в б<strong>о</strong>льшинства других верификат<strong>о</strong>р<strong>о</strong>в м<strong>о</strong>делей<br />

(включая SPIN, NuSMV, SLAM, BLAST), является т<strong>о</strong>, чт<strong>о</strong> <strong>о</strong>н п<strong>о</strong>ддерживает не<strong>о</strong>граниченн<strong>о</strong>е<br />

динамическ<strong>о</strong>е с<strong>о</strong>здание п<strong>о</strong>т<strong>о</strong>к<strong>о</strong>в и <strong>о</strong>бъект<strong>о</strong>в, хранящихся в куче, с <strong>о</strong>св<strong>о</strong>б<strong>о</strong>ждением памяти сб<strong>о</strong>рщик<strong>о</strong>м<br />

мус<strong>о</strong>ра. Кр<strong>о</strong>ме т<strong>о</strong>г<strong>о</strong>, язык BIR <strong>о</strong>беспечивает эффективн<strong>о</strong>е кан<strong>о</strong>ническ<strong>о</strong>е представление кучи, к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>е<br />

<strong>о</strong>казывается незаменимым для эффективн<strong>о</strong>й пр<strong>о</strong>верки распределённых и параллельных пр<strong>о</strong>граммных<br />

систем. Такие системы генерируют на пр<strong>о</strong>тяжении св<strong>о</strong>ей раб<strong>о</strong>ты б<strong>о</strong>льш<strong>о</strong>е к<strong>о</strong>личеств<strong>о</strong> различных<br />

экземпляр<strong>о</strong>в куч, к<strong>о</strong>т<strong>о</strong>рые <strong>о</strong>тличаются п<strong>о</strong>л<strong>о</strong>жениями <strong>о</strong>дних и тех же <strong>о</strong>бъект<strong>о</strong>в, н<strong>о</strong> при эт<strong>о</strong>м имеют<br />

<strong>о</strong>динак<strong>о</strong>вый их наб<strong>о</strong>р (такие экземпляры куч неразличимы <strong>о</strong>перациями раб<strong>о</strong>ты с памятью языка Java).<br />

В инструменте Bogor исп<strong>о</strong>льзуется кан<strong>о</strong>ническ<strong>о</strong>е представление куч (был<strong>о</strong> разраб<strong>о</strong>тан<strong>о</strong> для<br />

верификат<strong>о</strong>ра dSPIN), к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>е <strong>о</strong>беспечивает с<strong>о</strong><strong>о</strong>тветствие неразличимых куч <strong>о</strong>дн<strong>о</strong>му с<strong>о</strong>ст<strong>о</strong>янию. Эт<strong>о</strong><br />

м<strong>о</strong>жет п<strong>о</strong>зв<strong>о</strong>лить сильн<strong>о</strong> с<strong>о</strong>кратить числ<strong>о</strong> сгенерир<strong>о</strong>ванных с<strong>о</strong>ст<strong>о</strong>яний при верификации.<br />

2.4.2. CBMC<br />

CBMC – верификат<strong>о</strong>р, к<strong>о</strong>т<strong>о</strong>рый <strong>о</strong>беспечивает в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сть <strong>о</strong>граниченн<strong>о</strong>й пр<strong>о</strong>верки м<strong>о</strong>делей<br />

(Bounded Model Checker) для язык<strong>о</strong>в ANSI-C и C++. Он п<strong>о</strong>зв<strong>о</strong>ляет верифицир<strong>о</strong>вать вых<strong>о</strong>д за границу<br />

массива (переп<strong>о</strong>лнение буфера), без<strong>о</strong>пасн<strong>о</strong>сть указателей, исключения и п<strong>о</strong>льз<strong>о</strong>вательские<br />

утверждения (user-specified assertions). Кр<strong>о</strong>ме т<strong>о</strong>г<strong>о</strong>, <strong>о</strong>н м<strong>о</strong>жет пр<strong>о</strong>верять языки ANSI-C и C++ на<br />

с<strong>о</strong>вместим<strong>о</strong>сть с другими языками, такими как Verilog. Эт<strong>о</strong> реализ<strong>о</strong>ван<strong>о</strong> с п<strong>о</strong>м<strong>о</strong>щью развертывания<br />

цикл<strong>о</strong>в в пр<strong>о</strong>грамме и пересылк<strong>о</strong>й результата в к<strong>о</strong>мп<strong>о</strong>нент, решающий SAT (boolean satisfiability<br />

problem).


31<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Рис. 2. Графический интерфейс инструмента CBMC, реализ<strong>о</strong>ванный как плагин для Eclipse<br />

Х<strong>о</strong>тя верификат<strong>о</strong>р CBMC нацелен на встр<strong>о</strong>енн<strong>о</strong>е пр<strong>о</strong>граммн<strong>о</strong>е <strong>о</strong>беспечение, <strong>о</strong>н также<br />

п<strong>о</strong>ддерживает динамическ<strong>о</strong>е выделение памяти.<br />

2.4.3. NuSMV<br />

NuSMV – симв<strong>о</strong>льный верификат<strong>о</strong>р м<strong>о</strong>делей, разраб<strong>о</strong>танный как <strong>о</strong>бщий пр<strong>о</strong>ект Formal Methods<br />

Group в п<strong>о</strong>дразделении Automated Reasoning System в ITC- IRST, the Model Checking group в Carnegie<br />

Mellon University, the Mechanized Reasoning Group в University of Genova и Mechanized Reasoning<br />

Group в University of Trento.<br />

NuSMV – ещё <strong>о</strong>дна реализация и расширение верификат<strong>о</strong>ра SMV, перв<strong>о</strong>г<strong>о</strong> верификат<strong>о</strong>ра<br />

м<strong>о</strong>делей, <strong>о</strong>сн<strong>о</strong>ванн<strong>о</strong>г<strong>о</strong> на BDD (Binary Decision Diagrams). NuSMV был разраб<strong>о</strong>тан в качестве системы<br />

с <strong>о</strong>ткрыт<strong>о</strong>й архитектур<strong>о</strong>й для верификации м<strong>о</strong>делей, к<strong>о</strong>т<strong>о</strong>рая м<strong>о</strong>жет быть исп<strong>о</strong>льз<strong>о</strong>вана для<br />

верификации индустриальных разраб<strong>о</strong>т<strong>о</strong>к, как ядр<strong>о</strong> с<strong>о</strong>ставных верификаци<strong>о</strong>нных инструмент<strong>о</strong>в и как<br />

<strong>о</strong>сн<strong>о</strong>ва для тестир<strong>о</strong>вания других техн<strong>о</strong>л<strong>о</strong>гий ф<strong>о</strong>рмальн<strong>о</strong>й верификации.<br />

NuSMV с<strong>о</strong> вт<strong>о</strong>р<strong>о</strong>й версии исп<strong>о</strong>льзует к<strong>о</strong>мп<strong>о</strong>нент, реализующий мет<strong>о</strong>д верификации м<strong>о</strong>делей,<br />

<strong>о</strong>сн<strong>о</strong>ванный на BDD, и к<strong>о</strong>мп<strong>о</strong>нент, реализующий мет<strong>о</strong>д верификации м<strong>о</strong>делей, <strong>о</strong>сн<strong>о</strong>ванный на SAT,<br />

также включающий верификат<strong>о</strong>р м<strong>о</strong>делей, <strong>о</strong>сн<strong>о</strong>ванный на RBC (RBC-based Bounded Model Checker),<br />

п<strong>о</strong>дключённый к библи<strong>о</strong>теке SIMSAT.<br />

2.4.4. SPIN<br />

SPIN – эт<strong>о</strong> п<strong>о</strong>пулярный инструмент с <strong>о</strong>ткрытым к<strong>о</strong>д<strong>о</strong>м, исп<strong>о</strong>льзуемый в<strong>о</strong> мн<strong>о</strong>гих <strong>о</strong>рганизациях<br />

мира. Он м<strong>о</strong>жет быть исп<strong>о</strong>льз<strong>о</strong>ван для ф<strong>о</strong>рмальн<strong>о</strong>й верификации распределённых систем.<br />

Инструмент был разраб<strong>о</strong>тан в Bell Lab в 1980 г<strong>о</strong>ду. Пр<strong>о</strong>граммный пр<strong>о</strong>дукт был д<strong>о</strong>ступен св<strong>о</strong>б<strong>о</strong>дн<strong>о</strong>,<br />

начиная с 1991 г<strong>о</strong>да, и пр<strong>о</strong>д<strong>о</strong>лжал разрабатываться. Инструмент был награждён ACM престижн<strong>о</strong>й<br />

премией System Software Award за 2001 г<strong>о</strong>д.<br />

Описание <strong>о</strong>сн<strong>о</strong>вных в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>стей


32<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

Перечислим нек<strong>о</strong>т<strong>о</strong>рые в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сти, к<strong>о</strong>т<strong>о</strong>рые выделяют SPIN среди других верификат<strong>о</strong>р<strong>о</strong>в.<br />

• Целью инструмента SPIN является эффективная верификация пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong>, а не<br />

аппаратн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения. Он п<strong>о</strong>ддерживает выс<strong>о</strong>к<strong>о</strong>ур<strong>о</strong>вневый язык, с п<strong>о</strong>м<strong>о</strong>щью<br />

к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>г<strong>о</strong> м<strong>о</strong>жн<strong>о</strong> специфицир<strong>о</strong>вать <strong>о</strong>писание системы, названный PROMELA (a PROcess<br />

MEta LAnguage). SPIN исп<strong>о</strong>льзуется для <strong>о</strong>тслеживания <strong>о</strong>шиб<strong>о</strong>к л<strong>о</strong>гическ<strong>о</strong>г<strong>о</strong> дизайна в<br />

<strong>о</strong>пераци<strong>о</strong>нных системах, пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>лах <strong>о</strong>бмена данными, системах переключателей,<br />

параллельных и распределённых алг<strong>о</strong>ритмах, пр<strong>о</strong>т<strong>о</strong>к<strong>о</strong>лах железн<strong>о</strong>д<strong>о</strong>р<strong>о</strong>жн<strong>о</strong>й<br />

сигнализации и т.д. Инструмент пр<strong>о</strong>веряет л<strong>о</strong>гическую связн<strong>о</strong>сть спецификации. Он<br />

с<strong>о</strong><strong>о</strong>бщает <strong>о</strong> дедл<strong>о</strong>ках, неспецифицир<strong>о</strong>ванных приёмах, флагах незавершённ<strong>о</strong>сти,<br />

с<strong>о</strong>ст<strong>о</strong>янии г<strong>о</strong>нки (race conditions) и негарантир<strong>о</strong>ванных д<strong>о</strong>пущениях <strong>о</strong>б <strong>о</strong>тн<strong>о</strong>сительн<strong>о</strong>й<br />

ск<strong>о</strong>р<strong>о</strong>сти пр<strong>о</strong>цесс<strong>о</strong>в.<br />

• SPIN (начиная с четвёрт<strong>о</strong>й версии) <strong>о</strong>беспечивает прямую п<strong>о</strong>ддержку для исп<strong>о</strong>льз<strong>о</strong>вания<br />

языка С как части спецификации м<strong>о</strong>дели. Эт<strong>о</strong> делает в<strong>о</strong>зм<strong>о</strong>жным пр<strong>о</strong>ведение прям<strong>о</strong>й<br />

верификации ур<strong>о</strong>вня реализации спецификации пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong> <strong>о</strong>беспечения, исп<strong>о</strong>льзуя<br />

SPIN как драйвер и л<strong>о</strong>гический инструмент для верификации выс<strong>о</strong>к<strong>о</strong>ур<strong>о</strong>вневых<br />

темп<strong>о</strong>ральных св<strong>о</strong>йств.<br />

• SPIN раб<strong>о</strong>тает на лету. П<strong>о</strong>эт<strong>о</strong>му нет не<strong>о</strong>бх<strong>о</strong>дим<strong>о</strong>сти в предварительн<strong>о</strong>м п<strong>о</strong>стр<strong>о</strong>ении<br />

графа гл<strong>о</strong>бальных с<strong>о</strong>ст<strong>о</strong>яний или структуры Крипке.<br />

• SPIN м<strong>о</strong>жет быть исп<strong>о</strong>льз<strong>о</strong>ван как п<strong>о</strong>лная система LTL-пр<strong>о</strong>верки м<strong>о</strong>дели,<br />

п<strong>о</strong>ддерживающая все треб<strong>о</strong>вания, выразимые в темп<strong>о</strong>ральн<strong>о</strong>й л<strong>о</strong>гике линейн<strong>о</strong>г<strong>о</strong><br />

времени. Он м<strong>о</strong>жет быть также эффективн<strong>о</strong> исп<strong>о</strong>льз<strong>о</strong>ван как инструмент,<br />

верифицирующий на лету б<strong>о</strong>льш<strong>о</strong>е числ<strong>о</strong> п<strong>о</strong>ст<strong>о</strong>янных и «живущих» св<strong>о</strong>йств (safety and<br />

liveness properties). Мн<strong>о</strong>гие из этих св<strong>о</strong>йств м<strong>о</strong>гут быть выражены и верифицир<strong>о</strong>ваны<br />

без исп<strong>о</strong>льз<strong>о</strong>вания LTL.<br />

• Св<strong>о</strong>йства к<strong>о</strong>рректн<strong>о</strong>сти м<strong>о</strong>гут быть <strong>о</strong>писаны как инварианты системы или пр<strong>о</strong>цесса<br />

(исп<strong>о</strong>льзуются утверждения (assertions)), LTL-треб<strong>о</strong>вания, авт<strong>о</strong>маты Бюхи или б<strong>о</strong>лее<br />

шир<strong>о</strong>к<strong>о</strong>, как главные <strong>о</strong>мега-регулярные св<strong>о</strong>йства (general omega-regular properties) в<br />

синтаксисе «never claims».<br />

• Инструмент п<strong>о</strong>ддерживает динамические р<strong>о</strong>ст и уменьшение к<strong>о</strong>личества пр<strong>о</strong>цесс<strong>о</strong>в,<br />

исп<strong>о</strong>льзуя технику эластичных вект<strong>о</strong>р<strong>о</strong>в с<strong>о</strong>ст<strong>о</strong>яний (rubber state vector technique).<br />

• Инструмент п<strong>о</strong>ддерживает <strong>о</strong>рганиз<strong>о</strong>ванный (rendezvous) и буферизир<strong>о</strong>ванный <strong>о</strong>бмен<br />

с<strong>о</strong><strong>о</strong>бщениями, а также <strong>о</strong>бщение через разделяемую память. П<strong>о</strong>ддерживаются также<br />

смешанные системы, исп<strong>о</strong>льзующие синхр<strong>о</strong>нный и асинхр<strong>о</strong>нный сп<strong>о</strong>с<strong>о</strong>б<br />

к<strong>о</strong>ммуникации. Идентификат<strong>о</strong>ры канала <strong>о</strong>бмена с<strong>о</strong><strong>о</strong>бщениями м<strong>о</strong>гут быть п<strong>о</strong>сланы <strong>о</strong>т<br />

<strong>о</strong>дн<strong>о</strong>г<strong>о</strong> пр<strong>о</strong>цесса друг<strong>о</strong>му в с<strong>о</strong><strong>о</strong>бщениях при люб<strong>о</strong>м сп<strong>о</strong>с<strong>о</strong>бе <strong>о</strong>рганизации <strong>о</strong>бмена<br />

с<strong>о</strong><strong>о</strong>бщениями.<br />

• Инструмент п<strong>о</strong>ддерживает случайную, интерактивную и управляемую симуляцию для<br />

п<strong>о</strong>лн<strong>о</strong>й и частичн<strong>о</strong>й техники д<strong>о</strong>казательств, <strong>о</strong>сн<strong>о</strong>ванн<strong>о</strong>й на п<strong>о</strong>иске в глубину или в<br />

ширину. Инструмент был специальн<strong>о</strong> спр<strong>о</strong>ектир<strong>о</strong>ван с целью <strong>о</strong>беспечения х<strong>о</strong>р<strong>о</strong>шей<br />

масштабируем<strong>о</strong>сти и в<strong>о</strong>зм<strong>о</strong>жн<strong>о</strong>сти <strong>о</strong>беспечения эффективн<strong>о</strong>сти даже для задач<br />

д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong> б<strong>о</strong>льш<strong>о</strong>г<strong>о</strong> <strong>о</strong>бъёма.<br />

• Для <strong>о</strong>птимизации верификации SPIN исп<strong>о</strong>льзует эффективную технику с<strong>о</strong>кращения<br />

частичн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>рядка (partial order reduction) и (<strong>о</strong>пци<strong>о</strong>нальн<strong>о</strong>) BDD-сх<strong>о</strong>жие техники<br />

хранения (BDD-like storage techniques).<br />

• Для верификации дизайна ф<strong>о</strong>рмальная м<strong>о</strong>дель стр<strong>о</strong>ится, исп<strong>о</strong>льзуя язык PROMELA.<br />

PROMELA – эт<strong>о</strong> недетерминир<strong>о</strong>ванный язык, не жёстк<strong>о</strong> <strong>о</strong>сн<strong>о</strong>ванный на н<strong>о</strong>тации<br />

к<strong>о</strong>мандн<strong>о</strong>г<strong>о</strong> языка Дейкстры и CSP-языке Х<strong>о</strong>ара для вв<strong>о</strong>да/выв<strong>о</strong>да.


33<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

SPIN м<strong>о</strong>жет быть исп<strong>о</strong>льз<strong>о</strong>ван в трёх баз<strong>о</strong>вых режимах:<br />

• как симулят<strong>о</strong>р, п<strong>о</strong>зв<strong>о</strong>ляющий перев<strong>о</strong>дить быстр<strong>о</strong>е пр<strong>о</strong>т<strong>о</strong>типир<strong>о</strong>вание с<strong>о</strong> случайными,<br />

управляемыми или интерактивными симуляциями;<br />

• как п<strong>о</strong>лный верификат<strong>о</strong>р, предназначенный для т<strong>о</strong>чн<strong>о</strong>г<strong>о</strong> д<strong>о</strong>казательства валидн<strong>о</strong>сти<br />

п<strong>о</strong>льз<strong>о</strong>вательск<strong>о</strong>й спецификации треб<strong>о</strong>ваний к<strong>о</strong>рректн<strong>о</strong>сти (исп<strong>о</strong>льзуя те<strong>о</strong>рию<br />

с<strong>о</strong>кращения частичн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>рядка для <strong>о</strong>птимизации п<strong>о</strong>иска);<br />

• как система приближённ<strong>о</strong>г<strong>о</strong> д<strong>о</strong>казательства валидн<strong>о</strong>сти даже <strong>о</strong>чень б<strong>о</strong>льших м<strong>о</strong>делей<br />

систем с максимальным п<strong>о</strong>крытием пр<strong>о</strong>странства с<strong>о</strong>ст<strong>о</strong>яний.<br />

Пр<strong>о</strong>граммный пр<strong>о</strong>дукт SPIN п<strong>о</strong>лн<strong>о</strong>стью написан на языке ANSI-C и м<strong>о</strong>жет быть п<strong>о</strong>ртир<strong>о</strong>ван на<br />

все версии Unix, Linux, cygwin, Plan9, Inferno, Solaris, Mac, и Windows.


34<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ЗАКЛЮЧЕНИЕ<br />

П<strong>о</strong>сле пр<strong>о</strong>ведения п<strong>о</strong>др<strong>о</strong>бн<strong>о</strong>г<strong>о</strong> анализа существующих патент<strong>о</strong>в и верификат<strong>о</strong>р<strong>о</strong>в, был сделан<br />

выв<strong>о</strong>д, чт<strong>о</strong> на данный м<strong>о</strong>мент нет никаких серьёзных препятствий для разраб<strong>о</strong>тки техн<strong>о</strong>л<strong>о</strong>гии<br />

верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong><br />

п<strong>о</strong>дх<strong>о</strong>да.<br />

М<strong>о</strong>жн<strong>о</strong> утверждать, чт<strong>о</strong> на данн<strong>о</strong>м этапе исслед<strong>о</strong>вания верификат<strong>о</strong>ры Bogor и SPIN являются<br />

наиб<strong>о</strong>лее приемлемыми для исп<strong>о</strong>льз<strong>о</strong>вания в исслед<strong>о</strong>ваний, пр<strong>о</strong>в<strong>о</strong>димых, п<strong>о</strong> к<strong>о</strong>нтракту, так как эт<strong>о</strong><br />

<strong>о</strong>дни из наиб<strong>о</strong>лее п<strong>о</strong>пулярных и м<strong>о</strong>щных на данный м<strong>о</strong>мент инструмент<strong>о</strong>в верификации м<strong>о</strong>делей.<br />

Отметим также, чт<strong>о</strong> прямых анал<strong>о</strong>г<strong>о</strong>в разрабатываем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии верификации найден<strong>о</strong> не<br />

был<strong>о</strong>.


35<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ИСТОЧНИКИ<br />

1. Clark E., Emerson E., Sistla A. Automatic Verification of Finite State Concurrent Systems Using<br />

Temporal Logic Specifications //ACM Transactions on Programming Languages and Systems. April 1986.<br />

Vol. 8. No 2, pp. 244–263.<br />

2. Clarke E., Grumberg O., Long D. Model Checking /In Proceedings of the International Summer School<br />

on Deductive Program Design. Marktoberdorf, Germany, 1994.<br />

3. Кларк Э., Грамберг О., Пелед Д. Верификация м<strong>о</strong>делей пр<strong>о</strong>грамм: Model Checking. М.: МЦНМО,<br />

2002. 416 с.<br />

4. Holzmann G. Design and Validation of Computer Protocols. NJ: Bell Lab, 1991. 558 p.<br />

5. Holzmann G. The Model Checker SPIN // Software Engineering Journal. 1997. Vol. 23. No. 5, рр. 279–<br />

295.<br />

6. Robby A., Dwyer M., Hatcliff J. Bogor: an extensible and highly-modular software model checking<br />

framework / In Proceedings European Software Engineering Conference (ESEC'03), 2003.<br />

7. Cimatti A., Clarke E., Giunchiglia E et al. NuSMV 2: An open source tool for symbolic model checking /<br />

In Proceedings of the 14th International Conference on Computer Aided Verification (CAV'02). Lecture<br />

Notes in Computer Science 2404, pp.359–364. 2002.<br />

8. Brayton R. et al. VIS: A system for verification and synthesis / In Proceedings of the Eighth International<br />

Conference on Computer Aided Verification (CAV'96), pp. 428–432. Springer Verlag. Rutgers University.<br />

1996.<br />

9. US Patent Database Number Search. http://patft.uspto.gov/netahtml/PTO/srchnum.htm, 5,317,757.<br />

10. US Patent Database Number Search. http://patft.uspto.gov/netahtml/PTO/srchnum.htm, 6,324,496.<br />

11. Патентный зак<strong>о</strong>н РФ. http://www.legal-support.ru/information/laws/intellect/patent-law.html<br />

12. Model checking. http://en.wikipedia.org/wiki/Model_checking<br />

13. База инструмент<strong>о</strong>в верификации YAHODA. http://anna.fi.muni.cz/yahoda/<br />

14. ГОСТ Р. 15.011-96 «Система разраб<strong>о</strong>тки и п<strong>о</strong>стан<strong>о</strong>вки пр<strong>о</strong>дукции на пр<strong>о</strong>изв<strong>о</strong>дств<strong>о</strong>. Патентные<br />

исслед<strong>о</strong>вания»


36<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ПРИЛОЖЕНИЕ А<br />

УТВЕРЖДАЮ<br />

Рук<strong>о</strong>в<strong>о</strong>дитель раб<strong>о</strong>т<br />

д<strong>о</strong>кт. техн. наук., пр<strong>о</strong>фесс<strong>о</strong>р<br />

А. А. Шалыт<strong>о</strong><br />

31 мая 2007 г.<br />

ЗАДАНИЕ № 2007.05.31-01<br />

на пр<strong>о</strong>ведение <strong>патентных</strong> исслед<strong>о</strong>ваний<br />

Наимен<strong>о</strong>вание раб<strong>о</strong>ты (темы): Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong><br />

сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

Шифр раб<strong>о</strong>ты (темы): 2007-4-1.4-18-02-041.<br />

Этап раб<strong>о</strong>ты: <strong>о</strong>пределение ур<strong>о</strong>вня развития техники и патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сти.<br />

Ср<strong>о</strong>ки вып<strong>о</strong>лнения: 01.06.2007 г. – 31.08.2007 г.<br />

Задачи <strong>патентных</strong> исслед<strong>о</strong>ваний: <strong>о</strong>пределение ур<strong>о</strong>вня развития техники и патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сти<br />

разрабатываем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии, п<strong>о</strong>лучение сведений <strong>о</strong>б <strong>о</strong>хранных и иных д<strong>о</strong>кументах, к<strong>о</strong>т<strong>о</strong>рые будут<br />

препятств<strong>о</strong>вать применению этих результат<strong>о</strong>в на террит<strong>о</strong>рии Р<strong>о</strong>ссийск<strong>о</strong>й Федерации.<br />

КАЛЕНДАРНЫЙ ПЛАН<br />

Виды <strong>патентных</strong><br />

исслед<strong>о</strong>ваний<br />

Определение<br />

ур<strong>о</strong>вня развития<br />

техники и<br />

патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сти<br />

П<strong>о</strong>дразделенияисп<strong>о</strong>лнители<br />

(с<strong>о</strong>исп<strong>о</strong>лнители)<br />

Ответственные<br />

исп<strong>о</strong>лнители<br />

(Ф.И.О.)<br />

Ср<strong>о</strong>ки вып<strong>о</strong>лнения<br />

<strong>патентных</strong><br />

исслед<strong>о</strong>ваний.<br />

Начал<strong>о</strong>. Ок<strong>о</strong>нчание<br />

Красс А.Л. 01.06.2007 –<br />

31.08.2007<br />

<strong>Отчет</strong>ные<br />

д<strong>о</strong>кументы<br />

<strong>Отчет</strong> <strong>о</strong><br />

<strong>патентных</strong><br />

исслед<strong>о</strong>ваниях<br />

Декан факультета «Инф<strong>о</strong>рмаци<strong>о</strong>нные<br />

техн<strong>о</strong>л<strong>о</strong>гии и пр<strong>о</strong>граммир<strong>о</strong>вание»<br />

СПбГУ ИТМО<br />

д<strong>о</strong>кт. техн. наук, пр<strong>о</strong>фесс<strong>о</strong>р<br />

Начальник <strong>о</strong>тдела<br />

интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти и<br />

научн<strong>о</strong>-техническ<strong>о</strong>й инф<strong>о</strong>рмации<br />

В. Г. Парфен<strong>о</strong>в<br />

Л. Н. Казар


37<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ПРИЛОЖЕНИЕ Б<br />

Регламент п<strong>о</strong>иска № 2007.05.31-01<br />

31 мая 2007 г.<br />

Наимен<strong>о</strong>вание раб<strong>о</strong>ты (темы): Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong><br />

сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да<br />

Шифр раб<strong>о</strong>ты (темы): 2007-4-1.4-18-02-041.<br />

Этап раб<strong>о</strong>ты: <strong>о</strong>пределение ур<strong>о</strong>вня развития техники и патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сти.<br />

Н<strong>о</strong>мер и дата утверждения задания: 2007.05.31-01, 31.05.2007 г.<br />

Цель п<strong>о</strong>иска инф<strong>о</strong>рмации: с<strong>о</strong>здание перечня д<strong>о</strong>кумент<strong>о</strong>в, к<strong>о</strong>т<strong>о</strong>рые п<strong>о</strong>тенциальн<strong>о</strong> м<strong>о</strong>гут нарушить<br />

патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сть разрабатываем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии и препятств<strong>о</strong>вать их применению на террит<strong>о</strong>рии<br />

Р<strong>о</strong>ссийск<strong>о</strong>й Федерации.<br />

Начал<strong>о</strong> п<strong>о</strong>иска: 01 июня 2007 г.<br />

Ок<strong>о</strong>нчание п<strong>о</strong>иска: 31 августа 2007 г.<br />

Предмет<br />

п<strong>о</strong>иска<br />

(<strong>о</strong>бъект<br />

исслед<strong>о</strong>вания, ег<strong>о</strong><br />

с<strong>о</strong>ставные части,<br />

т<strong>о</strong>вар)<br />

Страна<br />

п<strong>о</strong>иска<br />

Наимен<strong>о</strong>вание<br />

Ист<strong>о</strong>чники инф<strong>о</strong>рмации, п<strong>о</strong> к<strong>о</strong>т<strong>о</strong>рым будет пр<strong>о</strong>в<strong>о</strong>диться п<strong>о</strong>иск<br />

патентные<br />

Классифика<br />

ци<strong>о</strong>нные<br />

рубрики:<br />

МПК<br />

(МКИ)*,<br />

МКПО*,<br />

НКИ* и<br />

другие<br />

Наимен<strong>о</strong>вание<br />

НТИ*<br />

Рубрики УДК* и<br />

другие<br />

к<strong>о</strong>нъюнкгурн<br />

ые<br />

1 2 3 4 5 6 7 8 9 10 11 12<br />

Пред<strong>о</strong>твращение<br />

<strong>о</strong>шиб<strong>о</strong>к с<br />

п<strong>о</strong>м<strong>о</strong>щью<br />

тестир<strong>о</strong>вания или<br />

<strong>о</strong>тладки<br />

пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong><br />

пр<strong>о</strong>дукта<br />

Верификация<br />

пр<strong>о</strong>граммн<strong>о</strong>г<strong>о</strong><br />

к<strong>о</strong>да, на пример,<br />

верификация байтк<strong>о</strong>да<br />

Р<strong>о</strong>ссия,<br />

США,<br />

Евр<strong>о</strong>па<br />

База данных<br />

Федеральн<strong>о</strong>й службы п<strong>о</strong><br />

интеллектуальн<strong>о</strong>й<br />

с<strong>о</strong>бственн<strong>о</strong>сти, патентам<br />

и т<strong>о</strong>варным знакам<br />

Р<strong>о</strong>ссийск<strong>о</strong>й Федерации.<br />

Бюр<strong>о</strong> п<strong>о</strong> патентам и<br />

т<strong>о</strong>варным знакам США.<br />

Евр<strong>о</strong>пейск<strong>о</strong>г<strong>о</strong> патентн<strong>о</strong>г<strong>о</strong><br />

бюр<strong>о</strong>.<br />

Всемирн<strong>о</strong>й <strong>о</strong>рганизации<br />

интеллектуальн<strong>о</strong>й<br />

с<strong>о</strong>бственн<strong>о</strong>сти.<br />

G06F 11/36<br />

G06F<br />

9/445V<br />

Наимен<strong>о</strong>вание<br />

К<strong>о</strong>д т<strong>о</strong>вара: ГС*,<br />

СМТК*, БТН*<br />

Наимен<strong>о</strong>вание<br />

другие<br />

Классификаци<strong>о</strong>нны<br />

е индексы<br />

- - - - - -<br />

Ретр<strong>о</strong>-спектив-н<strong>о</strong>сть<br />

20<br />

лет<br />

Наимен<strong>о</strong>вание<br />

инф<strong>о</strong>рмаци<strong>о</strong>нн<strong>о</strong>й<br />

базы (ф<strong>о</strong>нда)<br />

Р<strong>о</strong>спатент,<br />

www.fips. ru<br />

USPTO,<br />

www.uspto.<br />

gov<br />

EPO,<br />

ep.espacenet.<br />

com<br />

ВОИС,<br />

www.wipo.<br />

int<br />

Рук<strong>о</strong>в<strong>о</strong>дитель темы заведующий кафедр<strong>о</strong>й<br />

«Техн<strong>о</strong>л<strong>о</strong>гий пр<strong>о</strong>граммир<strong>о</strong>вания»,<br />

д<strong>о</strong>кт. техн. наук, пр<strong>о</strong>фесс<strong>о</strong>р<br />

п<strong>о</strong>дпись<br />

А. А. Шалыт<strong>о</strong><br />

Начальник <strong>о</strong>тдела<br />

интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти и<br />

научн<strong>о</strong>-техническ<strong>о</strong>й инф<strong>о</strong>рмации<br />

п<strong>о</strong>дпись<br />

___________<br />

*МПК (МКИ) — междунар<strong>о</strong>дная патентная классификация (междунар<strong>о</strong>дная классификация из<strong>о</strong>бретений);<br />

НКИ — наци<strong>о</strong>нальная классификация из<strong>о</strong>бретений;<br />

МПКО — междунар<strong>о</strong>дная классификация пр<strong>о</strong>мышленных <strong>о</strong>бразц<strong>о</strong>в;<br />

НТИ — научн<strong>о</strong>-техническая инф<strong>о</strong>рмация;<br />

ГС— гарм<strong>о</strong>низир<strong>о</strong>ванная система (гарм<strong>о</strong>низир<strong>о</strong>ванная т<strong>о</strong>варная н<strong>о</strong>менклатура);<br />

СМТК — стандартная междунар<strong>о</strong>дная т<strong>о</strong>рг<strong>о</strong>вая классификация ООН;<br />

БТН — Брюссельская там<strong>о</strong>женная н<strong>о</strong>менклатура;<br />

УДК— универсальная десятичная классификация.<br />

Л. Н. Казар


38<br />

Разраб<strong>о</strong>тка техн<strong>о</strong>л<strong>о</strong>гии верификации управляющих пр<strong>о</strong>грамм с<strong>о</strong> сл<strong>о</strong>жным п<strong>о</strong>ведением, п<strong>о</strong>стр<strong>о</strong>енных на <strong>о</strong>сн<strong>о</strong>ве авт<strong>о</strong>матн<strong>о</strong>г<strong>о</strong> п<strong>о</strong>дх<strong>о</strong>да.<br />

<strong>Отчет</strong> п<strong>о</strong> патентным исслед<strong>о</strong>ваниям за I этап «Выб<strong>о</strong>р направления исслед<strong>о</strong>ваний и баз<strong>о</strong>вых мет<strong>о</strong>д<strong>о</strong>в»<br />

ПРИЛОЖЕНИЕ В<br />

Отчёт <strong>о</strong> п<strong>о</strong>иске № 2007.08.31-01<br />

УТВЕРЖДАЮ<br />

Рук<strong>о</strong>в<strong>о</strong>дитель раб<strong>о</strong>ты<br />

д<strong>о</strong>кт. техн. наук., пр<strong>о</strong>фесс<strong>о</strong>р<br />

А. А. Шалыт<strong>о</strong><br />

31 мая 2007 г.<br />

П<strong>о</strong>иск пр<strong>о</strong>веден в с<strong>о</strong><strong>о</strong>тветствии с заданием на пр<strong>о</strong>ведение <strong>патентных</strong> исслед<strong>о</strong>ваний<br />

№ 2007.05.31-01 <strong>о</strong>т 31 мая 2007 г. и регламент<strong>о</strong>м п<strong>о</strong>иска 2007.05.31-01 <strong>о</strong>т 31 мая 2007 г.<br />

Этап раб<strong>о</strong>ты: <strong>о</strong>беспечение патент<strong>о</strong>сп<strong>о</strong>с<strong>о</strong>бн<strong>о</strong>сти разрабатываем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии верификации на<br />

перв<strong>о</strong>м этапе исслед<strong>о</strong>ваний п<strong>о</strong> к<strong>о</strong>нтракту.<br />

Начал<strong>о</strong> п<strong>о</strong>иска – 01 июня 2007 г. Ок<strong>о</strong>нчание п<strong>о</strong>иска – 31 августа 2007 г.<br />

Сведения <strong>о</strong> вып<strong>о</strong>лнении регламента п<strong>о</strong>иска: п<strong>о</strong>иск вып<strong>о</strong>лнен п<strong>о</strong>лн<strong>о</strong>стью. Д<strong>о</strong>кумент<strong>о</strong>в, к<strong>о</strong>т<strong>о</strong>рые<br />

м<strong>о</strong>гут препятств<strong>о</strong>вать применению разрабатываем<strong>о</strong>й техн<strong>о</strong>л<strong>о</strong>гии на террит<strong>о</strong>рии Р<strong>о</strong>ссийск<strong>о</strong>й<br />

Федерации, не найден<strong>о</strong>.<br />

На дальнейших этапах раб<strong>о</strong>т п<strong>о</strong> указанн<strong>о</strong>му к<strong>о</strong>нтракту не<strong>о</strong>бх<strong>о</strong>дим<strong>о</strong> пр<strong>о</strong>ведение<br />

д<strong>о</strong>п<strong>о</strong>лнительных <strong>патентных</strong> исслед<strong>о</strong>ваний для выявления н<strong>о</strong>вых патент<strong>о</strong>в и не<strong>патентных</strong> раб<strong>о</strong>т в<br />

рассматриваем<strong>о</strong>й <strong>о</strong>бласти.<br />

Материалы, <strong>о</strong>т<strong>о</strong>бранные для п<strong>о</strong>следующег<strong>о</strong> анализа: <strong>о</strong>тсутствуют.<br />

Декан факультета «Инф<strong>о</strong>рмаци<strong>о</strong>нные<br />

техн<strong>о</strong>л<strong>о</strong>гии и пр<strong>о</strong>граммир<strong>о</strong>вание»<br />

СПбГУ ИТМО<br />

д<strong>о</strong>кт. техн. наук, пр<strong>о</strong>фесс<strong>о</strong>р<br />

В. Г. Парфен<strong>о</strong>в<br />

Начальник <strong>о</strong>тдела<br />

интеллектуальн<strong>о</strong>й с<strong>о</strong>бственн<strong>о</strong>сти и<br />

научн<strong>о</strong>-техническ<strong>о</strong>й инф<strong>о</strong>рмации<br />

Л. Н. Казар

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!