Развитие теории и методов анализа и проектирования программНИР

Development of the theory and methods of analysis and design programs

Соисполнители НИР

МГУ имени М.В. Ломоносова Координатор

Источник финансирования НИР

госбюджет, раздел 0110 (для тем по госзаданию)

Этапы НИР

# Сроки Название
1 1 января 2016 г.-31 декабря 2016 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследование и анализ методов и комплексных подходов к разработке и реализации инструментальной среды поддержки процессов прямой и обратной инженерии программных систем различного уровня сложности, а также методов статического и динамического анализа для автоматического построения моделей программ. В ходе исследований проблемы верификации моделей ответственных программно - аппаратных средств предложен язык описания ограничений на базе языка программирования. В качестве экспериментального прототипного языка рассматривался язык Python. Предложенный подход создает основу для использования богатых возможностей языка программирования и существующей инфраструктуры (среды разработки, компиляторы, интерпретаторы, отладчики, средства документирования). Кроме того, данный подход должен позволить понизить порог вхождения в язык описания ограничений модели, если этот язык построен на базе хорошо известных концепций и синтаксиса.
2 1 января 2017 г.-31 декабря 2017 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследование и анализ методов и комплексных подходов к решению проблем статического и динамического анализа программ. В ходе работ второго этапа (2017 г.) НИР разработаны и реализованы методы повышения эффективности итеративного динамического анализа кода на основе статической инструментации кода, и автоматического обхода подмножества путей выполнения программы, заданных при помощи пользовательских спецификаций. Рассмотрены подходы к созданию предметно-ориентированных языков (Domain-Specific Modeling Language, DSML) на основе языка универсального моделирования UML (Unified Modeling Language) и языка описания ограничений OCL (Object Constraint Language). Проведены исследования методов и подходов к решению задач прямой и обратной инженерии программных систем с использованием предметно-ориентированных языков моделирования, основанных на UML-нотации.
3 1 января 2018 г.-31 декабря 2018 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследования методов и подходов построения и анализа ответственных программно-аппаратных систем. Рассмотрены проблемы, возникающие из-за большого числа различных артефактов при разработке ответственных программно-аппаратных систем. Исследованы технологии установления трассируемости между требованиями к таким системам и элементами архитектурных моделей систем. В ходе работ третьего этапа проекта были исследованы методы предсказания значений демографических атрибутов, составляющих профиль пользователя социальной сети. При решении этой проблемы применены различные методы, включая искусственные нейронные сети. Результаты экспериментального сравнения показали, нейронные сети не превосходят по качеству классический метод опорных векторов.
4 1 января 2019 г.-31 декабря 2019 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследования методов и подходов к построению систем статического и динамического анализа бинарного кода для решения задачи автоматического извлечения алгоритма из бинарного кода (инструкций фрагмента бинарного кода, реализующего алгоритм). Предложен и реализован комбинированный (сочетающий статический и динамический анализ) метод исследования исполняемого кода, позволяющий выделить и восстановить из исполняемого фрагмента кода не только отдельные инструкции, реализующие алгоритм, но также и извлечь необходимые для его работы данных. При этом к полученным данным предъявляется ряд требований. Они должны быть в таком виде, чтобы восстановленный алгоритм мог быть повторно использован в другой программе. Это может использоваться, в частности, при необходимости исследования фрагментов унаследованного кода или извлечении интересующих алгоритмов из вредоносного программного обеспечения, либо при обнаружении утечек чувствительных данных в исполняемом коде, а также при решении других задач обеспечения кибербезопасности. При реализации системы анализа бинарного кода разработано представление внутренней структуры программы - MetaPDS, учитывающее информацию о потоке управления по нескольким её запускам. Разработан алгоритм представления исследуемой программы по набору трасс. Реализован алгоритм восстановления зависимостей по управлению в алгоритмах, извлечённых из бинарных трасс, по представлению MetaPDS. Реализация и тестирование метода выполнены в рамках среды анализа бинарного кода, созданной в Институте системного программирования РАН.
5 1 января 2020 г.-31 декабря 2020 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа:

Прикрепленные к НИР результаты

Для прикрепления результата сначала выберете тип результата (статьи, книги, ...). После чего введите несколько символов в поле поиска прикрепляемого результата, затем выберете один из предложенных и нажмите кнопку "Добавить".