Отчет о патентных исследованиях по этапу I - Кафедра ...
Отчет о патентных исследованиях по этапу I - Кафедра ...
Отчет о патентных исследованиях по этапу I - Кафедра ...
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 />
Л. Н. Казар