СПОСОБ И СИСТЕМА ДЛЯ ПОМОЩИ В ВЕРИФИКАЦИИ И ВАЛИДАЦИИ ЦЕПИ АЛГОРИТМОВ
METHOD AND SYSTEM FOR ASSISTING IN VERIFICATION AND VALIDATION OF ALGORITHM CHAIN

2420-534867RU/032
СПОСОБ И СИСТЕМА ДЛЯ ПОМОЩИ В ВЕРИФИКАЦИИ И ВАЛИДАЦИИ ЦЕПИ АЛГОРИТМОВ
Настоящее изобретение относится к способу и системе помощи в верификации и валидации цепи алгоритмов.
В рамках настоящего изобретения, под цепью алгоритмов понимается совокупность взаимодействующих вместе алгоритмов и обрабатывающих совокупность данных с целью осуществления одной или нескольких конкретных функций, в частности пользовательского устройства, на котором установлена эта цепочка алгоритмов.
Настоящее изобретение может быть применено к цепи алгоритмов, встроенных в устройство или компьютер, например, ракету, или к невстроенной цепи алгоритмов, перед ее установкой на пользовательское устройство.
Валидация и верификация цепи алгоритмов (или алгоритмической цепи) являются очень сложными и дорогостоящими задачами, в частности, из-за многочисленных шагов, связанных с исправлением ошибок (или "bugs") и корректировкой критериев, и из-за многочисленных взаимодействий между различными алгоритмическими модулями. Эта сложность также создает трудность планирования задачи валидации и верификации цепочки алгоритмов.
Из-за этой сложности требуется человеческое вмешательство оператора с обширными знаниями цепи алгоритмов. Доскональная верификация человеком оператором всех анализируемых параметров и необходимых данных, утомительна или даже невозможна. Кроме того, оператор не застрахован от ошибок, и он не может анализировать все соответствующие параметры.
Таким образом, это обычное решение для верификации и валидации цепочки алгоритмов, основанное на единственном человеке-операторе, не является удовлетворительным.
Настоящее изобретение направлено на устранение этого недостатка. Оно относится к способу помощи в верификации и в валидации цепи алгоритмов, позволяющему оказать помощь человеку-оператору.
С этой целью, в соответствии с изобретением, указанный способ отличается тем, что он включает в себя:
a) этап снятия показаний цепи алгоритмов, реализующий автоматический захват данных, содержащих, по меньшей мере, некоторые из следующих данных: интерфейсные данные и внутренние данные алгоритмов из цепи алгоритмов;
b) этап автоматической верификации функциональных правил;
c) этап обучения для моделирования через обучение ограничений и критериев алгоритмов цепи алгоритмов, принимая во внимание валидации, осуществленные человеком-оператором, а также захваченные данные; и
d) этап автоматический обнаружения ошибок или функциональных проблем цепи алгоритмов с использованием средств статистического обучения.
Указанный способ в соответствии с изобретением позволяет улучшить и облегчить работу по проверке сложных алгоритмов, таких как те, что используются, например, в области авиации. В частности, он позволяет оператору быстрее обнаружить ошибки или «bugs» (то есть дефекты в концепции и реализации алгоритма, проявляющиеся некорректным функционированием) и функциональные проблемы проверяемой цепи алгоритмов, что позволяет сократить затраты времени и цену функциональной валидации цепи алгоритмов.
В соответствии с изобретением, на предшествующем этапе совокупность данных цепи алгоритмов хранится в файлах резервной копии, и этап a) заключается в чтении этих файлов резервной копии и выполнении запросов в отношении данных, содержащихся в этих резервных файлах.
Указанный способ дополнительно содержит, по меньшей мере, некоторые из следующих признаков или этапов, отдельно или в комбинации:
- Этап b) сконфигурирован так, чтобы позволить обнаружение нарушения правил и чтобы позволить определить, есть ли элементы, которые должны быть верифицированы оператором;
- Этап d) осуществляет, с помощью средств статистического обучения, корреляции данных, чтобы определить общие правила изменения выходных данных алгоритмов цепи алгоритмов, и передает сигнал тревоги, если обнаруживается отклонение больше заранее заданного порога выходных данных алгоритма, относительно заранее определенных выходных данных;
- этап d) анализирует изменения результатов алгоритмов цепи алгоритмов, так чтобы обнаружить, где необходимо, разрывы и аномальные вариации;
- способ содержит дополнительный этап e) классификации идентифицированных случаев сомнительных (или проблемных) тестов;
- способ дополнительно включает в себя этап определения метрик и визуализации этих метрик.
Кроме того, преимущественно, этап c) сконфигурирован:
- для того, чтобы осуществлять анализ функциональной структуры цепи алгоритмов и связанного с ней кода;
- для осуществления обучения с помощью записанных тестовых случаев предоставляемых оператором; и
- для идентификации соответствующих и подозрительных случаев теста и представления оператору, по меньшей мере, идентифицированных подозрительных случаев теста.
Настоящее изобретение позволяет, в частности:
- обнаружить, с большей эффективностью, ошибки в потоках данных, используемых алгоритмами цепи алгоритмов;
- оказать помощь оператору, ответственному за валидацию, в анализе таких данных; и
- повысить достоверность фазы валидации.
Настоящее изобретение также относится к системе помощи в верификации и в функциональной валидации цепочки алгоритмов.
В соответствии с изобретением, указанная система включает в себя, по меньшей мере, следующие модули, координируемые экспертной системой:
- модуль снятия показаний цепи алгоритмов, реализующий автоматический захват данных, содержащих, по меньшей мере, некоторые из следующих данных: интерфейс и внутренние данные алгоритмов цепи алгоритмов;
- модуль автоматической верификации функциональных правил;
- модуль обучения для моделирования, через обучение, ограничений и критериев алгоритмов цепи алгоритмов, с учетом валидаций, выполненных человеком-оператором; и
- модуль автоматического обнаружения ошибок или функциональных проблем цепи алгоритмов с помощью средств статистического обучения.
Предпочтительно, указанная система также включает в себя:
- набор файлов резервных копий, в которых хранятся данные цепи алгоритмов, причем указанный модуль снятия показаний сконфигурирован для чтения этих файлов резервных копий и выполнения запросов к данным содержащимся в этих файлах резервных копий; и/или
- блок визуализации данных, полученных из модуля снятия показаний; и/или
- блок ввода данных, позволяющий оператору вводить данные; и/или
- блок представления результатов, полученных от модуля обнаружения ошибок; и/или
- модуль классификации, идентифицированных подозрительных (или проблемных) тестовых случаев.
Единственная фигура 1 прилагаемого чертежа дает ясно понять, каким образом может быть реализовано изобретение. Эта фиг. 1 представляет собой блок-схему системы в соответствии с настоящим изобретением,
Система 1, соответствующая изобретению и схематически представленная на фиг. 1, предназначена для оказания помощи в функциональной верификации и валидации цепи алгоритмов.
В соответствии с изобретением, система 1 включает в себя, по меньшей мере, следующие модули, координируемые экспертной системой (не показана):
- модуль 2 снятия показаний цепи алгоритмов, который создан таким образом, чтобы осуществлять автоматический захват данных, содержащих, по меньшей мере, некоторые из следующих данных: интерфейсные данные и внутренние данные алгоритмов цепи алгоритмов;
- модуль 3 автоматической верификации функциональных правил, который подключен через соединение 4 (передачи данных) к указанному модулю 2 снятия показаний;
- модуль 5 обучения, который соединен посредством соединения 6 (передачи данных) к модулю 3 верификации и который создан так, чтобы моделировать через обучение ограничения и критерии алгоритмов цепи алгоритмов, принимая во внимание валидации, выполненные человеком-оператором, а также данные, полученные с помощью модуля 2 снятия показаний; и
- модуль 7 обнаружения, который подсоединен посредством соединения 8 (передачи данных) к упомянутому модулю 5 обучения и который выполнен таким образом, чтобы автоматически обнаруживать ошибки и функциональные проблемы цепочки алгоритмов, с использованием методов статистического обучения.
Система 1 содержит, кроме того, набор 9 файлов резервных копий, в которых хранятся данные цепи алгоритмов. Модуль 2 снятия показаний сконфигурирован для чтения этих файлов резервных копий и выполнения запросов в отношении данных, содержащихся в файлах резервных копий, как показано двойной стрелкой 10.
Упомянутая система 1 дополнительно содержит:
- блок 11 визуализации, который связан посредством соединения 12 с модулем 2 снятия показаний приборов и который выполнен таким образом, чтобы визуализировать (например, отображая их на дисплее, не показан, или посредством печати) данных из модуля 2 снятия показаний таким образом, чтобы оператор мог считывать эти данные; и
- блок 13 ввода данных, позволяющий оператору вводить данные в систему 1 и, в частности, в модуль 5 обучения (как показано с помощью линии 14 на фиг. 1), в частности валидации выполненные оператором.
Система 1, которая включает в себя модули (или двигатели), выполняющие операции, осуществляемые автоматически, и таким образом оказывает помощь в верификации и валидации цепи алгоритмов (которая демонстрирует явления регулярности и воспроизводимости).
Указанная система 1 позволяет, в частности, улучшить и облегчить работу по проверке сложных алгоритмов, используемых, в частности, в области авиации. Она позволяет помочь оператору быстрее обнаружить ошибки или "ошибки" (то есть дефекты в концепции или реализации алгоритма, проявляющиеся в виде некорректного функционирования) и функциональные проблемы цепи алгоритмов, что позволяет сократить время и стоимость функциональной проверки цепи алгоритмов.
Модуль 2 снятия показаний цепи алгоритмов позволяет захватывать данные интерфейсов и/или внутренние данные алгоритмов, которые предназначены для анализа и которые генерируются во время выполнения цепи алгоритмов. Во время выполнения цепи алгоритмов (или алгоритмической цепи), все данные (входящие/исходящие и соответствующие внутренние данные алгоритмов) хранятся в файлах резервных копий (например, типа: CSV, XML, база данных, ...) множества 9. Модуль 2 снятия показаний способен считывать эти файлы и выполнять различные интеллектуальные запросы к данным содержащимся в этих файлах резервных копий.
Кроме того, модуль 3 верификации (или модуль правил) позволяет проверить простые функциональных правила, благодаря модулю вывода (не показан). Пользователи системы должны писать простые функциональных правила в словаре правил. Благодаря экспертной системе и модулю логического вывода, модулю 3 удается сочетать правила, чтобы определить, имеются ли нарушения одного или нескольких из этих правил или требуют ли некоторые элементы верификации со стороны оператора, отвечающего за испытания.
Кроме того, модуль 5 обучения, из области искусственного интеллекта, позволяет моделирование через обучение ограничений и критериев алгоритмов. Этот модуль 5 обучения позволяет опираться на опыт, полученный в ходе проверки сценариев людьми-операторами, с целью автоматизации, все более и более, этой задачи.
Для этого, данный модуль обучения 5 опирается на анализ функциональной структуры рассмотренной цепи алгоритмов и кода, с помощью метрик, позволяющих количественно определить риск того, что конкретная функция или часть кода будет источником функциональных проблем.
Для реализации обучения модуля 5, человек-оператор должен обеспечить (в частности через блок 13 ввода) множество тестовых случаев, соотнесенных со множеством критериев и ограничений (указывая, например, является ли сценарий проходящим хорошо или в каких аспектах в нем ошибка, ...). Эта индикация может осуществляться в интерактивном режиме во время функциональной работы по валидации (ручной), осуществляемой оператором. Благодаря этой тестовой базе и множеству вводов/выводов алгоритмов (и в частности данным модуля 2), модуль 5 способен идентифицировать случаи проблемных тестов (или подозрительных), и представить пользователю соответствующие тесты и/или подозрительные тесты, например, через блок 19 представления информации, указанный выше, или через блок 11 визуализации.
Модуль 5 обучения может включать в себя средства на основе одной из следующих характеристик:
- метод опорных векторов (МОВ(SVM));
- "boosting";
- нейронные сети с обучением с учителем или без учителя;
- деревья решений;
- статистические методы, такие как, например, модель гауссовой смеси;
- логистическая регрессия; и
- линейный дискриминантный анализ.
Кроме того, модуль 7 автоматического обнаружения ошибок обнаруживает, за счет использования технологий (или средств) статистического обучения, потенциальные ошибки в цепочке алгоритмов. Модуль статистики, учитывает, выполняет корреляцию соответствующих данных (в частности, захваченных данных цепи алгоритмов), чтобы определить общие правила эволюции (или вариации) алгоритмов вывода. Если идентифицируется слишком значительное отклонение выходных данных алгоритма относительно предсказанного выходных данных алгоритма, оператору выводится предупреждение (в частности посредством блока 15 сигнализации, который, например, соединен через канал 16 с модулем 7 обнаружения). Этот модуль 7 также позволяет анализировать вариацию результатов алгоритмов для обнаружения разрывов или изменений аномального вида.
Кроме того, система 1 дополнительно содержит модуль 17 классификации подозрительных (или проблемных) случаев тестов.
Когда система 1 идентифицирует множество проблематичных случаев теста, модуль 17 классификации, который принимает эти случаи через канал 18, организует их в группы. Эти группы построены таким образом, чтобы собрать тестовые случаи с аналогичными функциональными ошибками. Это позволяет пользователю системы 1, в которой они представлены с помощью, например, блока 19 визуализации, соединенного с помощью канала 20 с модулем 17 классификации, не быть перегруженным слишком большим количеством тестовых случаев, путем выполнения предварительного численного анализа сценариев. Результаты упорядочены в соответствии с их значимостью и метриками, и представлены таким образом.
Следует отметить, что настоящее изобретение отличается от формальных способов, которые позволяют логически доказать, что исходный код удовлетворяет всем определенным функциональным требованиям. Действительно, система 1 позволяет извлечь выгоду из опыта пользователя, чтобы облегчить проверку неподтвержденного кода.
Для ускорения анализа со стороны человека-оператора на этапах диагностики, система 1 содержит модуль, отвечающий за определение метрики и интеллектуальную визуализацию этих метрик.
Система 1, таким образом, сочетает в себе набор модулей и сервисов, способных коррелировать, соответственно, большое количество информации, в том числе:
- информацию, непосредственно присутствующую в данных произведенных цепочкой алгоритмов;
- информация, рассчитанная с помощью автоматической пост-обработки этих данных;
- априорную информацию, полученную из анализа структуры данных и кода; и/или
- информацию, полученную из обучения: обучение во взаимодействии с оператором, ответственным за работы по валидации (обучение процедур верификации), и обучение некоторых предсказуемых явлений поведения алгоритмов, когда такие явления существуют.
Указанная система 1 позволяет таким образом, в частности:
- обнаружить, с большей эффективностью, ошибки в потоках данных, используемых алгоритмами цепи алгоритмов;
- помочь операторам, ответственным за валидацию, анализировать эти данные; и
- повысить доверие к фазе валидации.