SlideShare a Scribd company logo
1 of 27
Верификация
управляющих программ в системе
автоматизации РТК
IronHand

Докладывает : Большаков О.С.
Рыбинск, 2010
Программы тоже ошибаются
Система IronHand
РТК ТАДиОМ
РТК ТАДиОМ
РТК ТАДиОМ
РТК ТАДиОМ
РТК ТАДиОМ
Верификация –
анализ корректности программных
систем относительно спецификации, в
которой задаются исследуемые свойства.
Виды верификации:




тестирование
метод доказательства теорем (theorem proving)
метод проверки модели (Model Checking).
Model Checking (проверка модели)
Общая схема
NuSMV (New Symbolic Model Verifier)






Open Source (GNU LGPL)
Написан на ANCI C, совместим с POSIX
(Portable Operating System Interface for Unix )
Продолжение закрытого верификатора SMV
(Carnegy Mellon University)
Входной язык – текстовый язык SMV
Возможность задания модели в виде
синхронных/асинхронных конечных
автоматов
Верификация Model checking
Верификация c NuSMV
Пример модуля на SMV
MODULE main
VAR request : boolean;
state : {ready, busy};
ASSIGN
init(state) := ready;
next(state) := case
(state = ready) & (request = 1) : busy;
1 : {ready, busy};
esac;
FAIRNESS running
Задание асинхронного исполнения
модулей


По умолчанию модули работают синхронно
mi: Module_i(input_var);



Асинхронный модуль – process
mi: process Module_i(input_var);

Модуль асинхронен = может выполниться 0..∞ раз во
время одного исполнения другого модуля


FAIRNESS running
Количество возможных исполнений модуля: 0.. ∞ → 1.. ∞
Темпоральные логики
Темпоральная логика –
модальная логика, позволяющая формализовать
высказывания, зависящие от времени

LTL
(Linear Tree Logic)

CTL
(Computation Tree Logic)
Списки Команд
Фрагмент списков команд
Формат спецификации
Интуитивное задание проверяемого свойства:
1. Если
МП-11.ВерхняяРука.Выдвинута ИЛИ
МП-11.НижняяРука.Выдвинута И
Не возникает
МП-11.Стол.Поворот
2. Если
МП-9С.Стол.Против_Часовой И
МП-9С.Стол.Опущен
Не возникает
МП-9С.Рука.Выдвинута
Декомпозиция УП на модули
Схема кода на SMV
-- i-ый модуль
MODULE Modulei(tact_num)
VAR st: 0..100;
ASSIGN
init(st) := 0;
next(st) := case
….
1 : st;
esac;
FAIRNESS running
Схема кода на SMV
-- Счетчик тактов
MODULE MTactCounter(st0, st1, …, sti, stn)
VAR tact_num : 0..300; cycle_num : 0..300;
ASSIGN
init(tact_num) := 1;
next(tact_num) := case
tact_num = 1 & st1 = … & st2 = … & … & stn = … : 2;
tact_num = 2 & st1 = … & st2 = … & … & stn = … : 3;
tact_num = m : m+1;
1 : tact_num;
esac;
init(cycle_num) := 0;
next(cycle_num) := case
…
esac;
FAIRNESS running
Схема кода на SMV
-- Главный модуль
MODULE main
VAR tactCounter : process MTactCounter(m0.st, m1.st, …mi.st, … mn.st);
m0 : process Module0(tactCounter.tact_num);
m1 : process Module1(tactCounter.tact_num);
…
mi : process Modulei(tactCounter.tact_num);
…
mn : process Modulen(tactCounter.tact_num);
FAIRNESS running
Задание спецификации
Пример задания CTL свойств:
1.
2.

SPEC AG ! (m13.st >= 70 & m13.st <= 90 & m3.st = 0 & m1.st = 1)
SPEC AG ((m6.st = 0 & m10.st = 0 & m0.st = 0) -> AX !(m10.st = 1))
Верификация в IronHand
Верификатор в действии
Результаты
Для техпроцесса в 38 тактов:
 Количество ограничений для
стенда ТАДиОМ: 14
 Размер кода модели УП на SMV : 433 строки
 Количество циклов: 4
 Время верификации: ~10 сек
Верификация – панацея?

More Related Content

Viewers also liked

учебное оборудование для вуза сатэк
учебное оборудование для вуза сатэкучебное оборудование для вуза сатэк
учебное оборудование для вуза сатэкAlexander Petrov
 
Стенд РТК ТАДиОМ
Стенд РТК ТАДиОМСтенд РТК ТАДиОМ
Стенд РТК ТАДиОМAlexander Petrov
 
Презентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема ЛебедеваПрезентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема ЛебедеваAlexander Petrov
 
Программа моделирования алгоритма параллельных подстановок и пример его реали...
Программа моделирования алгоритма параллельных подстановок и пример его реали...Программа моделирования алгоритма параллельных подстановок и пример его реали...
Программа моделирования алгоритма параллельных подстановок и пример его реали...Alexander Petrov
 
Стенд РТК РМСИ
Стенд РТК РМСИСтенд РТК РМСИ
Стенд РТК РМСИAlexander Petrov
 

Viewers also liked (6)

Стенд РТК МЛС
Стенд РТК МЛССтенд РТК МЛС
Стенд РТК МЛС
 
учебное оборудование для вуза сатэк
учебное оборудование для вуза сатэкучебное оборудование для вуза сатэк
учебное оборудование для вуза сатэк
 
Стенд РТК ТАДиОМ
Стенд РТК ТАДиОМСтенд РТК ТАДиОМ
Стенд РТК ТАДиОМ
 
Презентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема ЛебедеваПрезентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема Лебедева
 
Программа моделирования алгоритма параллельных подстановок и пример его реали...
Программа моделирования алгоритма параллельных подстановок и пример его реали...Программа моделирования алгоритма параллельных подстановок и пример его реали...
Программа моделирования алгоритма параллельных подстановок и пример его реали...
 
Стенд РТК РМСИ
Стенд РТК РМСИСтенд РТК РМСИ
Стенд РТК РМСИ
 

Similar to Верификация управляющих программ в системе автоматизации РТК (Iron hand)

Natalia Shabaldina. CSEDays
Natalia Shabaldina. CSEDaysNatalia Shabaldina. CSEDays
Natalia Shabaldina. CSEDaysLiloSEA
 
Статический анализ как ответ на вопрос о повышении качества кода
Статический анализ как ответ на вопрос о повышении качества кодаСтатический анализ как ответ на вопрос о повышении качества кода
Статический анализ как ответ на вопрос о повышении качества кодаAndrey Karpov
 
Пояснения к статье про Copy-Paste
Пояснения к статье про Copy-PasteПояснения к статье про Copy-Paste
Пояснения к статье про Copy-PasteTatyanazaxarova
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
 
Современные подходы к SAST
Современные подходы к SASTСовременные подходы к SAST
Современные подходы к SASTVladimir Kochetkov
 
Улучшение качества открытого программного обеспечения с помощью инструментов ...
Улучшение качества открытого программного обеспечения с помощью инструментов ...Улучшение качества открытого программного обеспечения с помощью инструментов ...
Улучшение качества открытого программного обеспечения с помощью инструментов ...Andrey Karpov
 
Опыт разработки статического анализатора кода
Опыт разработки статического анализатора кодаОпыт разработки статического анализатора кода
Опыт разработки статического анализатора кодаAndrey Karpov
 
Статический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутСтатический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутAndrey Karpov
 
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММITMO University
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPMikhail Kurnosov
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
Всё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаВсё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаAndrey Karpov
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Technopark
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityIosif Itkin
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияSQALab
 
Positive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADA
Positive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADAPositive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADA
Positive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADAPositive Hack Days
 

Similar to Верификация управляющих программ в системе автоматизации РТК (Iron hand) (20)

Natalia Shabaldina. CSEDays
Natalia Shabaldina. CSEDaysNatalia Shabaldina. CSEDays
Natalia Shabaldina. CSEDays
 
Насколько счетчик EM цифровой
Насколько счетчик EM цифровойНасколько счетчик EM цифровой
Насколько счетчик EM цифровой
 
Статический анализ как ответ на вопрос о повышении качества кода
Статический анализ как ответ на вопрос о повышении качества кодаСтатический анализ как ответ на вопрос о повышении качества кода
Статический анализ как ответ на вопрос о повышении качества кода
 
Пояснения к статье про Copy-Paste
Пояснения к статье про Copy-PasteПояснения к статье про Copy-Paste
Пояснения к статье про Copy-Paste
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
 
Современные подходы к SAST
Современные подходы к SASTСовременные подходы к SAST
Современные подходы к SAST
 
Tpo 06
Tpo 06Tpo 06
Tpo 06
 
Улучшение качества открытого программного обеспечения с помощью инструментов ...
Улучшение качества открытого программного обеспечения с помощью инструментов ...Улучшение качества открытого программного обеспечения с помощью инструментов ...
Улучшение качества открытого программного обеспечения с помощью инструментов ...
 
Опыт разработки статического анализатора кода
Опыт разработки статического анализатора кодаОпыт разработки статического анализатора кода
Опыт разработки статического анализатора кода
 
Статический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутСтатический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минут
 
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
 
Всё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаВсё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программиста
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional Reliability
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Positive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADA
Positive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADAPositive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADA
Positive Hack Days. Комаров. Мастер-класс: Анализ защищенности SCADA
 

More from Alexander Petrov

Язык программирования SocLang (VKLang)
Язык программирования SocLang (VKLang)Язык программирования SocLang (VKLang)
Язык программирования SocLang (VKLang)Alexander Petrov
 
робототехника - проблемы и перспективы (СМП-2014)
робототехника - проблемы и перспективы (СМП-2014)робототехника - проблемы и перспективы (СМП-2014)
робототехника - проблемы и перспективы (СМП-2014)Alexander Petrov
 
портативный тифлоплеер с голосовым управлением
портативный тифлоплеер с голосовым управлениемпортативный тифлоплеер с голосовым управлением
портативный тифлоплеер с голосовым управлениемAlexander Petrov
 
Автономный мобильный робот (АМР-1)
Автономный мобильный робот (АМР-1)Автономный мобильный робот (АМР-1)
Автономный мобильный робот (АМР-1)Alexander Petrov
 
Биржа инновационных проектов
Биржа инновационных проектовБиржа инновационных проектов
Биржа инновационных проектовAlexander Petrov
 
Сайт кафедры мпо эвс
Сайт кафедры мпо эвсСайт кафедры мпо эвс
Сайт кафедры мпо эвсAlexander Petrov
 
Проект "Стенд" для проведения лабораторных работ по физике
Проект   "Стенд" для проведения лабораторных работ по физикеПроект   "Стенд" для проведения лабораторных работ по физике
Проект "Стенд" для проведения лабораторных работ по физикеAlexander Petrov
 
Проект системы управления гидродинамическим стендом.
Проект системы управления гидродинамическим стендом.Проект системы управления гидродинамическим стендом.
Проект системы управления гидродинамическим стендом.Alexander Petrov
 
Устройство микроджойстик
Устройство микроджойстикУстройство микроджойстик
Устройство микроджойстикAlexander Petrov
 
Разработка охранной сигнализации «СКАТ»
Разработка охранной сигнализации «СКАТ» Разработка охранной сигнализации «СКАТ»
Разработка охранной сигнализации «СКАТ» Alexander Petrov
 
обзор методов построения карт глубин2
обзор методов построения карт глубин2обзор методов построения карт глубин2
обзор методов построения карт глубин2Alexander Petrov
 
презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power pointAlexander Petrov
 

More from Alexander Petrov (17)

Язык программирования SocLang (VKLang)
Язык программирования SocLang (VKLang)Язык программирования SocLang (VKLang)
Язык программирования SocLang (VKLang)
 
робототехника - проблемы и перспективы (СМП-2014)
робототехника - проблемы и перспективы (СМП-2014)робототехника - проблемы и перспективы (СМП-2014)
робототехника - проблемы и перспективы (СМП-2014)
 
портативный тифлоплеер с голосовым управлением
портативный тифлоплеер с голосовым управлениемпортативный тифлоплеер с голосовым управлением
портативный тифлоплеер с голосовым управлением
 
Автономный мобильный робот (АМР-1)
Автономный мобильный робот (АМР-1)Автономный мобильный робот (АМР-1)
Автономный мобильный робот (АМР-1)
 
Биржа инновационных проектов
Биржа инновационных проектовБиржа инновационных проектов
Биржа инновационных проектов
 
Сайт кафедры мпо эвс
Сайт кафедры мпо эвсСайт кафедры мпо эвс
Сайт кафедры мпо эвс
 
Проект "Стенд" для проведения лабораторных работ по физике
Проект   "Стенд" для проведения лабораторных работ по физикеПроект   "Стенд" для проведения лабораторных работ по физике
Проект "Стенд" для проведения лабораторных работ по физике
 
проект стенд__
проект   стенд__проект   стенд__
проект стенд__
 
Проект системы управления гидродинамическим стендом.
Проект системы управления гидродинамическим стендом.Проект системы управления гидродинамическим стендом.
Проект системы управления гидродинамическим стендом.
 
Устройство микроджойстик
Устройство микроджойстикУстройство микроджойстик
Устройство микроджойстик
 
Разработка охранной сигнализации «СКАТ»
Разработка охранной сигнализации «СКАТ» Разработка охранной сигнализации «СКАТ»
Разработка охранной сигнализации «СКАТ»
 
Cell и MC#
Cell и MC#Cell и MC#
Cell и MC#
 
Satek easy mcu - english
Satek easy mcu - englishSatek easy mcu - english
Satek easy mcu - english
 
обзор методов построения карт глубин2
обзор методов построения карт глубин2обзор методов построения карт глубин2
обзор методов построения карт глубин2
 
презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power point
 
пид 2009 12_30
пид 2009 12_30пид 2009 12_30
пид 2009 12_30
 
моя
моямоя
моя
 

Верификация управляющих программ в системе автоматизации РТК (Iron hand)