Программные продукты и системы / Software & Systems 3 (30) 2017 456 УДК 519.767.2 Дата подачи статьи: 05.06.17 DOI: 10.15827/0236-235X.119.456-460 2017. Т. 30. № 3. С. 456–460 ВЕРИИКАИ МОДЕЛЕЙ СИСЕМ НА БАЗЕ КВАИОНАЛНОЙ АРАКЕРИСИКИ ОРМЛ LTL .П. К, ..., , y.p.k@mail.ru; А.С. К, , kocherginalexandr@gmail.com; А.А. , ..., a-j-a-1@yandex.ru (Р , . В П, 4, . М, 129226, Р) Метод верификации на моделях Model Checking уже давно получил широкое признание в области, связанной с оценкой качества работы программных и технических систем. Такие ключевые компании в области IT-индустрии, как Intel, Microsoft, Amazon и другие, активно применяют его на этапах разработки и сопровождения своих продуктов. Успех Model Checking, безусловно, не является случайным, поскольку именно его появление и развитие позволили решить множество проблем в области верификации, а именно: проблемы унифицированного представления про- граммных и технических систем, формального задания требований, автоматизации этапов верификации, верификации больших распределенных программных систем и другие. Однако постоянное развитие современных технологий и темпы роста сложности современных программных си- стем ставят перед Model Checking все новые проблемы, которые могут стать непреодолимым препятствием на пути эффективной верификации. Поэтому необходимо постоянное совершенствование теории и инструментов данного ме- тода. В статье авторами подробно рассматривается реализация алгоритма верификации метода Model Checking для фор- мул логики линейного времени LTL на базе новой нотации RLTL (Recursive Linear Temporal Logic), которая является рекурсивным представлением формул логики линейного времени. Поскольку на базе RLTL могут быть заданы как модель верифицируемой системы, так и требования к ней, можно избежать необходимости их предварительного пре- образования к автоматам Бюхи и сразу приступать к процессу верификации, что упростит алгоритм метода и повысит его эффективность. Ключевые слова: верификация, Model Checking, эквациональная характеристика RLTL, модель Крипке, автомат Бюхи, формула временной логики, LTL, CTL. Верификация программных и технических си- стем является сегодня одним из важнейших этапов их жизненного цикла. Для этих целей уже создано и успешно апробировано множество различных средств и методов разного типа сложности и при- менимости. Однако наиболее часто используе- мыми и востребованными, как правило, остаются средства формальной верификации, работа кото- рых может быть в той или иной мере автоматизи- рована в отличие от, например, динамических ме- тодов верификации и экспертиз. Среди формальных методов верификации наибольшую популярность за свою практичность и эффективность получил так называемый метод проверки на моделях Model Checking [1, 2]. Базовая идея алгоритма этого метода для требований к си- стеме, заданных в виде формул логики линейного времени LTL [3, 4], представлена в виде схемы на рисунке 1. Использование данной схемы в чистом виде при верификации моделей систем больших разме- ров (более 2 20 состояний) во многих случаях может приводить к тому, что верификация либо будет вы- полняться очень долго, либо вообще не будет выполнена. Для решения данных проблем и дости- жения более высокой производительности сегодня существует ряд специальных средств и методов, которые за счет определенных манипуляций над моделью системы и/или над требованиями к ней позволяют добиться приемлемой производитель- ности [5–7]. В частности, одним из инструментов повышения эффективности выполнения верифика- ции является предложенный в работе [8] метод аб- стракции и унификации RLTL-моделей (Recursive Linear Temporal Logic). В данной статье авторами предложен принци- пиально иной подход к повышению производи- тельности процесса верификации, который явля- Система Требования к системе Структура Крипке M LTL-формула φ LTL -> Buchi Синхронная композиция L BM L φ =? φ не выполняется на M контрпример φ выполняется на M B M B φ φ Алгоритм проверки модели M -> Buchi B M B φ M Рис. 1. Схема работы алгоритма верификации формул LTL методом Model Checking Fig. 1. The scheme of LTL formulas verification algorithm using the Model Checking method