Автор: студент 545 группы Абусалимов Э.Ш. Научный руководитель: асп. каф. системного программирования Бондарев А.В. Рецензент: Венгеров В.В. Система сборки,

Slides:



Advertisements
Similar presentations
Help: настройка Visual Studio.Net для создания консоль-приложения на основе Intel C++ с применением OpenMP. Инструменты «Практическое параллельное программирование.
Advertisements

Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Разработка и внедрение объектно-ориентированной библиотеки для автоматизации тестирования Кафедра системного программирования Студент: Олейник А.Л. 544.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Расторгуев А.C., 545 группа Научный руководитель: Пименов А.А. Рецензент: ст. преп. Смирнова Е.А.
Автоматизированная поддержка пользовательской документации Web-приложений, разрабатываемых в среде WebRatio Студент: Дорохов Вадим, 544 гр. Научный руководитель:
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
Разработка архитектуры для генератора синтаксических анализаторов Выполнил: Улитин Константин Научный руководитель: Я.А. Кириленко Курсовая.
«Множество и мы» ЭЛЕКТИВНЫЙ КУРС ДЛЯ 9 КЛАССОВ Автор : учитель математики Хабирова Зульфия Габдулловна.
Применение алгоритмов SuperResolution к лицам Выполнил: студент 345 гр., Мокаев Руслан Научный руководитель: Пименов Александр.
Савенко Мария Олеговна, 361 группа Научный руководитель: старший преподаватель В.С.Полозов.
Инструменты анализа данных метилирования генов в цепочке ДНК. Инструменты анализа данных метилирования генов в цепочке ДНК. Руководитель Вяххи Н. И. Студент.
Астащенко Александр, 445 группа Научный руководитель: В.Г.Шистеров.
Разработка технологии взаимодействия гетерогенных систем с использованием метапрограммирования Константинов Александр, 545 группа Научный руководитель.
Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский.
Разработка информационной системы накопительной программы лояльности для мобильных устройств Автор: Дьяченко Василий Владимирович мат-мех, 545 группа Научный.
Санкт - Петербургский Государственный Университет Математико - механический факультет Кафедра системного программирования Система проверки данных на полноту.
Курсовая работа студента 345 группы Чуновкина Фёдора Дмитриевича Научный руководитель: Бондарев А.В. Санкт-Петербургский Государственный Университет Математико-механический.
Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Научный руководитель: Я.А. Кириленко.
СРЕДА ВИЗУАЛЬНОГО МОДЕЛИРОВАНИЯ ON-LINE Курсовая работа Научные руководители: Ю.В. Литвинов Т.А. Брыксин Иванов Всеволод, 345 группа.
Миллер Дмитрий, 545 группа Научный руководитель: д.ф.-м.н., профессор, А.Н.Терехов Рецензент: к.ф.-м.н, доцент, А.Н. Иванов.
Создание сервиса синхронизации разнородных баз данных Допущена к защите зав. кафедрой: д.ф.м.н., профессор Терехов А.Н. Научный руководитель: доцент Графеева.
1 СПбГУ ИТМО, кафедра Компьютерных Технологий ПРИМЕНЕНИЕ АВТОМАТНОГО ПРОГРАММИРОВАНИЯ ДЛЯ ПОСТРОЕНИЯ СИСТЕМ УПРАВЛЕНИЯ БИЗНЕС- ПРОЦЕССАМИ Евгений Андреевич.
Управление и Конфигурирование Встроенных Систем Ушаков Константин, 545 группа Руководитель: Елена Венгерова.
Translator Widget for Android Сергей Василинец, 345 группа Научный руководитель COO SPB Software Василий Филиппов.
Компонент 3 Разработка системы показателей для измерения результативности органа исполнительной власти Component 3 Development of a system of.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Аппаратное ускорение алгоритмов компьютерного зрения Стефан Бояровски, 361 группа Научный руководитель: Сергей П. Шувалкин.
Понятие риска применительно к инвестиционным проектам
Разработка интеллектуальной многоагентной системы адаптивных роботов для игры в футбол Выполнили: А. А. Коробкин, 545 гр Г. М. Комаров, 544 гр Научный.
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
Поиск ошибок в программах на языке Ruby с использованием вывода типов Санкт-Петербург, 2008г. Выполнил: Шпынов Олег, 545 гр. Научный руководитель: Ломов.
 Нужно много различных протоколов связи  Каждый из них может реализовываться на разных платформах Современные сети Много устройств, компьютеров и сетей.
Сопоставление полигональных объектов на основе независимой фрагментации контуров Выполнил: Ю. М. Плотников Научный руководитель: канд. ф.-м. наук К. В.
Анализ способов использования и причин неиспользования UML на практике Чернятчик Роман 545 группа научный руководитель: к.ф.-м.н., доц. Кознов Д.В. рецензент:
EDCWiki Electronic Document Circulation using wiki Система электронного документооборота на основе wiki Участники: Кузьмин К.А., Цыцулин В. И. Руководитель:
Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:
Микрофазное расслоение в расплаве двойных гребнеобразных сополимеров В.В. Палюлин Научный руководитель: д.ф.-м.н. Потемкин И.И.
Конвертор байт-кода java в CIL Д. С. Возжаев, 544 группа Научный руководитель: д. т. н. проф. В. О. Сафонов Рецензент: асп. А. Н. Близнюк Санкт-Петербургский.
Автоматическая трансляция проекта Dypgen с языка OCaml на язык F# Научный руководитель: Я. А. Кириленко Выполнил : студент 345 гр. Эдуард Баранов.
Верификация автоматных программ Ремизов А.О., д.т.н., проф. Шалыто А.А.
Поиск путей в сложных полигонах для динамических систем реального времени. Работа Порошина И.А., 544 гр. Научный руководитель Уфнаровский В.В. Рецензент,
Вычисление типов в императивных динамически типизированных языках. Михаил Калугин, студент 3 курса ММФ Научные руководители: Игорь Николаевич Скопин Андрей.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Санкт-Петербургский Государственный Университет Математико-Механический факультет Кафедра системного программирования Применение диаграмм двоичных решений.
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
Анализ и Проектирование качественных приложений Презентация по книге Крэга Лармана.
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Математико-механический факультет Кафедра системного программирования Автоматизация выбора оптимальной.
Проект «Безопасный браузер» Визовитин Николай Кадашев Дмитрий.
Разработка инструментария для создания нейронных сетей на мобильных платформах на примере iOS Золотухина Алина Манаев Дмитрий 445 группа Руководитель:
Разработка алгоритмов распознавания текста
Предметно-ориентированное моделирование приложений для платформы Android Никонова Ольга СПбГУ Научный руководитель Брыксин Т.А.
Объектно-ориентированное проектирование DSP-систем в телекоммуникациях Подготовил: Сергеев Виктор Николаевич СПбГУ, математико-механический Факультет,
Проект «Безопасный браузер» Визовитин Николай Научный руководитель: Д.В. Иртегов.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
«Интернет радио» Разработчик Демидко А.А. Преподаватель Бронштейн М.Е.
Алгоритм исправления ошибок при анализе в парсерах типа перенос-свертка, основанный на предположении об избыточности языка Дипломная работа студента 545.
Перенос технологии REAL-IT на платформу Microsoft.Net Нестеров Антон Научный руководитель: Иванов А.Н. Рецензент: Серебрякова Г.М.
Времена года в немецком языке Die Jahreszeit in der Deutschesprache Времена года в немецком языке Die Jahreszeit in der Deutschesprache Выполнили: Драгунов.
Классификация, кластеризация и поиск изображений на основе низкоуровневых характеристик Наталья Васильева Руководитель: Новиков Б. А.
Исследование возможностей сервисной шины SonicMQ Дипломная работа студентки 545 группы Комольцевой Дарьи Владимировны Научный руководитель: Графеева Н.Г.
Нескучное тестирование с pytest
Post-graduate student of MIPT Chernov Evgeny Institute for System Programming of RAS 2010.
Защита ПО новые подходы и решения Белоконь Андрей Одесса The business of security, is the business of paranoia.
Человеко-машинное взаимодействие Лекция 6 Мерзлякова Екатерина Юрьевна к.т.н. доцент ПМиК.
Выполнил студент П.А. Македонов Руководитель А.Ф. Усов Дипломная работа Тема: Разработка макетного образца генератора высоковольтных импульсов по схеме.
RSO EMEA | 12/12/2011 | © Robert Bosch GmbH All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution,
Обо мне .Net C#/F# developer MSP. Обо мне .Net C#/F# developer MSP.
Linking.
Presentation transcript:

Автор: студент 545 группы Абусалимов Э.Ш. Научный руководитель: асп. каф. системного программирования Бондарев А.В. Рецензент: Венгеров В.В. Система сборки, анализа и верификации кода ОСРВ Embox Дипломная работа

ОСРВ Embox: модульная и конфигурируемая Исходные коды (на сегодня около 300 файлов) организованы в модули (около 180) Модули взаимосвязаны по следующим отношениям: o "Зависит от" (около 100 связей) o "Наследует" (около 20 связей) Каждый модуль также имеет: o Документацию o Флаги компиляции o Доступные опции конфигурации Проблемная область

Постановка задачи Система сборки, обладающая следующими свойствами: Простой формат описаний o Для разработчика o Для конечного пользователя Поддержка межмодульных зависимостей o Разрешение зависимостей при сборке Возможность использовать знания о конфигурации во время исполнения o Внедрение зависимостей Верификация предоставленных описаний o Анализ исходного кода o Проверка корректности описаний

GNU Make – стандарт де-факто в Unix'ах o Инкрементальная сборка o Слишком общее средство o Не решает ни одну из поставленных задач GNU Autotools – переносимость программ между Unix'ами o Основная цель отлична от поставленной задачи Cmake, Scons – замена GNU Autotools o Не ориентированы на модульные приложения Kbuild – система сборки ядра Linux o Поддерживает зависимости для опций CONFIG_XXX o Информация о зависимостях используется только во время сборки Существующие средства

Система сборки Embuild GNU Make Embuild cache CPP conf -files em -files Dependency graph nm output analysis Verification tool Dependency injection Make rules generation source GCC, nm

Формат описаний em -файлы – для разработчика: Подмножество языка Make define module foo brief = Main application module sources = foo.c depends = bar endef conf -файлы – для конечного пользователя: Обрабатываются препроцессором C module(foo)

Разрешение зависимостей define module bar sources = bar.c endef define module foo sources = foo.c depends = bar endef foo.em:bar.em: modules.conf: module(foo) Граф зависимостей:

Абстрактные модули define api alloc brief = Dyn memory endef define module baz depends = alloc endef baz.em:alloc.em: define module best_fit sources = best_fit.c provides = alloc endef define module buddy sources = buddy.c provides = alloc endef buddy.em:best_fit.em:

define module bar sources = bar.c endef Внедрение зависимостей define module foo sources = foo.c depends = bar endef static int foo_init() { printf("%d", the_answer); return 0; } MODULE_INIT(foo_init); int the_answer; static int bar_init() { the_answer = 42; return 0; } MODULE_INIT(bar_init); foo.c:bar.c: foo.em:bar.em:

define module bar sources = bar.c endef Верификация описаний define module foo sources = foo.c depends = bar endef static int foo_init() { printf("%d", the_answer); return 0; } MODULE_INIT(foo_init); int the_answer; static int bar_init() { the_answer = 42; return 0; } MODULE_INIT(bar_init); foo.c:bar.c: foo.em:bar.em:

Анализ исходного кода static int foo_init() { printf("%d", the_answer); return 0; } MODULE_INIT(foo_init); int the_answer; static int bar_init() { the_answer = 42; return 0; } MODULE_INIT(bar_init); foo.c:bar.c: Компиляция | Обработка утилитой nm | анализ вывода U the_answer B the_answer foo.o:bar.o:

Анализ графов зависимостей define module bar sources = bar.c endef define module foo sources = foo.c depends = bar endef foo.em:bar.em: U the_answer B the_answer foo.o:bar.o: Сопоставление дуг

KbuildEmbuild Сравнение Рекурсивный MakeНерекурсивный Make Опции конфигурации и список исходников в разных файлах Описание модуля в одном файле Все опции в одном пространстве имен Различные пространства имен для модулей Ограничивается только сборкой образа Модель зависимостей доступна во время исполнения Отсутствие средств верификации Анализ и сравнение описаний с исходным кодом Используют среду исполнения GNU Make Сборка приложений, имеющих множество конфигураций

Полученные результаты Реализована система сборки Embuild, которая: Имеет простой формат описаний o Модулей разрабатываемого приложения o Конечной конфигурации приложения Поддерживает межмодульные зависимости o Разрешение зависимостей при сборке Использует знания о конфигурации во время исполнения o Внедрение зависимостей Обладает возможностью верификации предоставленных описаний o Анализ исходного кода o Проверка корректности описаний

Контакты Эльдар Абусалимов Embox Project Homepage Essential toolbox for embedded development