![]() |
ИСТИНА |
Войти в систему Регистрация |
ИПМех РАН |
||
В настоящее время для решения проблем прямой и обратной инженерии программных систем различного уровня сложности не существует методологий и подходов, которые в равной степени хорошо поддерживали бы процессы многоаспектного анализа программного кода и проектирования программного обеспечения, как прикладного, так и системного. В связи с этим на данном этапе сравнение методов анализа и проектирования программ может быть проведено лишь в рамках конкретных подходов, которые позволяют решать задачи в более частной постановке, основываясь при этом на одной из парадигм программирования. В ходе реализации научно-исследовательского проекта по данной теме предполагается разработать и развить комплексный подход к интеграции решения проблем представления знаний, организации и инженерии знаний на основе объектно-ориентированных методов. В ходе выполнения научно-исследовательских работ по заявленному проекту будет проведено исследование методов статического и динамического анализа для автоматического построения моделей программ. Будет предложен метод трансформации традиционных для систем искусственного интеллекта представлений в объектные модели с целью последующего использования языков универсального моделирования как основы современных технологических инструментов программной инженерии. В рамках развития одного из подходов верификации моделей ответственных программно-аппаратных систем для авионики будут разработаны инструментальные средства поддержки на основе языка формальных спецификаций.
Nowadays there are no methodologies and approaches which equally well support processes of the multiaspect analysis of a program code and design in software engineering and reverse engineering processes. In this regard at this stage comparing of methods of the analysis and design of programs can be carried out only within specific approaches which allow to solve problems in more precise cases, being based at the same time on one of programming paradigms. During implementation of our research project it is supposed to develop an integrated approach to knowledge representation and knowledge engineering based on object-oriented methods. The research project includes static and dynamic analysis for automatic creation of program models. The method of transformation of knowledge representation methods traditional for artificial intelligence into object models is proposed, that allow use of universal modeling language as bases of the modern technological tools of software engineering. Within development of one of approaches of verification of models for avionics hardware and software systems the programming instruments based on formal specification languages are proposed.
В ходе выполнения научно-исследовательских работ по заявленному проекту будет проведено исследование методов статического и динамического анализа для автоматического построения моделей программ. Будет предложен метод трансформации традиционных для систем искусственного интеллекта представлений в объектные модели с целью последующего использования языков универсального моделирования как основы современных технологических инструментов программной инженерии. В рамках развития одного из подходов верификации моделей ответственных программно-аппаратных систем для авионики будут разработаны инструментальные средства поддержки на основе языка формальных спецификаций.
В период с 2011г. по 2015 г. на кафедре системного программирования в рамках госбюджетной темы №01201154974 были проведены исследования по проблеме анализа и проектирования программных систем различного назначения. Было выполнено теоретическое исследование и анализ подходов и методов трансформации традиционного для программных систем искусственного интеллекта текстового описания предметных областей, задач и планов в объектные модели с целью последующего использования языков универсального моделирования как современных технологических инструментов программной инженерии. Разработаны методы динамической настройки DVMH-программ на кластеры с ускорителями. Совместно с Институтом системного программирования РАН выполнены исследования и работы по проблемам анализа бинарного кода, предложены новые методы решения проблем восстановления алгоритмов по набору бинарных трасс, оптимизации программ для систем динамической двоичной трансляции. Проведен анализ подходов к построению инструментальных программных средств поддержки проектирования, разработки и верификации на основе формальных спецификаций и использования формальных методов для анализа и верификации программ. Полученные результаты проекта 2011-2015 гг. составляют научный задел и базис для проведения дальнейших исследований и разработок по теме «Развитие теории и методов анализа и проектирования программ».
Проведены исследования методов построения инструментальных средств анализа программного кода, методов анализа помеченных данных в рамках статического анализа исходного кода программ. Анализ помеченных данных является одним из методов поиска уязвимостей и ошибок, связанных с безопасностью программного обеспечения, таких как утечка непубличных данных или использование ненадежных данных в критических функциях без достаточных проверок. Для ускорения обработки формул в статическом анализаторе Svace было реализовано кэширование запросов к решателю и их трансляция напрямую из представления Svace в стандартное представление решателя. Разработанные оптимизации позволили более чем в 2 раза уменьшить суммарное время создания и решения формул. В рамках данной работы проведено исследование используемых на практике методов формализации требований к защищенности программно-аппаратных систем. Результатом такой формализации является модель безопасности системы. Рассмотрены различные методы описания таких моделей безопасности и основные задачи, при решении которых они используются. Для достижения разумного компромисса между выразительностью, компактностью и понятностью описаний, а также возможностями использования различных методов верификации и анализа моделей, выделен набор языков, позволяющих описывать модели безопасности в виде абстрактных автоматов с инвариантами. Выполнены работы по созданию методики предсказания значений социо-демографических атрибутов пользователей социальных сетей. В 2020 году был рассмотрен вопрос формирования подмножества графа для предсказания значений атрибутов. Было введено понятие специфичности контекста вершины графа, которая показывает насколько распределение значений атрибута соседних вершин отличается от распределения генеральной совокупности. На основе специфичности контекста предложены два новых метода предсказания значений демографических атрибутов пользователей социальных сетей по подмножеству социального графа. На большинстве наборов данных методы показали более высокое качество, чем существующие методы. Результаты исследований этапов проекта ежегодно представлялись на конференции Ломоносовские Чтения.
МГУ имени М.В. Ломоносова | Координатор |
госбюджет, раздел 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 г. | Развитие теории и методов анализа и проектирования программ |
Результаты этапа: Проведены исследования методов построения инструментальных средств анализа программного кода, методов анализа помеченных данных в рамках статического анализа исходного кода программ. Анализ помеченных данных является одним из методов поиска уязвимостей и ошибок, связанных с безопасностью программного обеспечения, таких как утечка непубличных данных или использование ненадежных данных в критических функциях без достаточных проверок. Для ускорения обработки формул в статическом анализаторе Svace было реализовано кэширование запросов к решателю и их трансляция напрямую из представления Svace в стандартное представление решателя. Разработанные оптимизации позволили более чем в 2 раза уменьшить суммарное время создания и решения формул. В рамках данной работы проведено исследование используемых на практике методов формализации требований к защищенности программно - аппаратных систем. Результатом такой формализации является модель безопасности системы. Рассмотрены различные методы описания таких моделей безопасности и основные задачи, при решении которых они используются. Для достижения разумного компромисса между выразительностью, компактностью и понятностью описаний, а также возможностями использования различных методов верификации и анализа моделей, выделен набор языков, позволяющих описывать модели безопасности в виде абстрактных автоматов с инвариантами. В рамках разработки методики предсказания значений социо - демографических атрибутов пользователей социальных сетей в 2020 году был рассмотрен вопрос формирования подмножества графа для предсказания значений атрибутов. Было введено понятие специфичности контекста вершины графа, которая показывает насколько распределение значений атрибута соседних вершин отличается от распределения генеральной совокупности. На основе специфичности контекста предложены два новых метода предсказания значений демографических атрибутов пользователей социальных сетей по подмножеству социального графа. На большинстве наборов данных методы показали более высокое качество, чем существующие методы. |
Для прикрепления результата сначала выберете тип результата (статьи, книги, ...). После чего введите несколько символов в поле поиска прикрепляемого результата, затем выберете один из предложенных и нажмите кнопку "Добавить".