Разработка систем реального времени с использованием UML и каркасов приложений Дмитрий Рыжов Менеджер по продукту d.ryzhov@swd.ru.

Презентация:



Advertisements
Похожие презентации
АлтГТУ им И. И. Ползунова. АлтГТУ им. И. И. Ползунова Модель распределенной системы мониторинга.
Advertisements

Владимир Костюков, АлтГТУ АлтГТУ им И. И. Ползунова Распределенная система мониторинга и диспетчерезации процессов гетерогенной среды.
Jalapeño – эффективная разработка приложений для Java Морозов Максим InterSystems Symposium 2007, Москва 4-5 сентября.
Распределенная система мониторинга и диспетчеризации процессов гетерогенной среды студент Костюков В.В., профессор к.ф-м.н Крючкова Е.Н., АлтГТУ / ПОВТ.
Лекция 3. Исключения и прерывания в встроенных системах.
Аппаратная экосистема QNX: поддерживаемые процессорные платы и стартовые комплекты SWD TimeMaster Эдуард Белохвостиков SWD Software Ltd. Санкт-Петербург.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
IDE QNX – практическая работа Трофимов Александр SWD Software.
АлтГТУ им. И. И. Ползунова / ПОВТ, Владимир Костюков Требования 2 отказоустойчивость масштабируемость эффективностьприменимость расширяемость.
Методы оценки времени отклика задач в двухъядерных системах реального времени СоискательГуцалов Н.В. Научный руководитель д.т.н., профессор Никифоров В.В.
АлтГТУ им И. И. Ползунова. АлтГТУ им. И. И. Ползунова Проблемы эксплуатации Текст.
ООП Лекция 1. Основные понятия. Литература Шилдт Г. С#: полное руководтво.-М.:ООО Вильямс, с. Культин Н.Б. Microsoft Visual C# в задачах и.
Расширение технологии UniTESK средствами генерации структурных тестов Дмитрий Воробьев
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
UniMod 1 UniMod: метод и средство разработки реактивных объектно-ориентированных программ с явным выделением состояний Вадим Гуров eVelopers Corp.
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
Виртуальная машина автоматного программирования Наумов А.С., СПбГУ ИТМО 2006.
Разработка программного обеспечения при объектном подходе Объектно-ориентированный подход.
Транксрипт:

Разработка систем реального времени с использованием UML и каркасов приложений Дмитрий Рыжов Менеджер по продукту

Исходные предпосылки Распространение языка моделирования UML Развитие инструментов разработки на основе визуального моделирования Применение инструментов на всех стадиях процесса разработки Специализация инструментов Инструменты для разработки встраиваемых систем и приложений реального времени Автоматическая генерация кода, тестирование, временной анализ и верификация

Пример разработки секундомера

Требования к секундомеру Секундомер имеет одну кнопку для запуска и остановки и дисплей для отображения. Дисплей отображает минуты и секунды При нажатии и отпускании кнопки в течении 2 секунд секундомер запускается либо останавливается Если кнопка удерживается нажатой более чем 2 секунды, то секундомер сбрасывается в 0 и останавливается

Определение классов и связей между ними

Создание объектов и инициализация связей

Определение сценариев для запуска и сброса секундомера

Определение реакции на события на диаграммах состояний

Установка для таймера свойства Concurrency=guarded В коде появляется макрос GUARD_OPERATION Обработка асинхронных событий становится защищенной (eventGuard != 0) Зашита синхронных операций

Определение компонента и сборка приложения

Отладка и тестирование приложения на уровне модели

Каркас приложения в Telelogic Rhapsody

Каркасы приложений Набор предопределённых взаимодействующих классов Предоставляют сервисы при разработке приложений определённого типа Разработка приложений путём наследования и переопределения

Преимущества использования каркасов Отсутствие необходимости создания приложений с нуля Определяют архитектуру целевых систем Представляют открытые конструкции, могут переопределяться в приложениях

Генерация кода приложений реального времени на основе каркаса В сгенерированном коде используется API каркаса Каркас реализует основные абстракции приложений реального времени Значительная часть функциональности содержится в классах каркаса Классы каркаса могут быть адаптированы под конкретные нужды Каркас – это библиотека, независимая от генератора кода Каркас не ограничивает приложения от использования других библиотек и сервисов ОС

Компоненты каркаса Telelogic Rhapsody Object Execution Framework (OXF) OS adapter level Сервисные классы Animation framework Object Execution Framework Operating System Adapter Layer Сервисные классы CPU Существующий код ОСРВ Каркас приложения Сгенерированный код

Виды событий Асинхронные события События времени События вызова (синхронные)

Наследование от классов каркаса

Активный класс Наследуется от класса OMThread каркаса Запускает в отдельном потоке функцию Execute Содержит очередь событий Предоставляет функцию queue для помещения событий в очередь В Execute разгребает очередь, передавая события адресатам на обработку в функцию handleEvent Позволяет перекрыть Execute для реализации другого поведения

Реактивный класс Наследуется от класса OMReactive каркаса Предоставляет функцию send для передачи классу асинхронных событий Помещает полученные асинхронные события в связанный с ним активный класс для диспетчеризации Получает события от активного класса на обработку, вызывающего его функцию handleEvent Вызывает виртуальную функцию rootState_processEvent для обработки событий По умолчанию код для функции rootState_processEvent генерируется на основании диаграммы состояний

Посылка асинхронного события

Диспетчеризация асинхронных событий

Классы каркаса для управления таймаутами

Таймауты Таймауты – это особый вид событий на которые можно определять реакции на диаграмме состояний Таймауты создаются в сгенерированном коде при входе в состояние и уничтожаются при выходе Всеми таймаутами управляет объект TimeoutsManager При истечении таймаута TimeoutsManager помещает его в очередь активного объекта для диспетчеризации Таймауты диспетчеризуются активными объектами наравне с другими событиями в очереди

Планирование таймаутов

Синхронные события вызова События вызова генерируются при вызове тригерных операций класса В операции создаётся одноимённое событие и сразу же передаётся на обработку в handleEvent На диаграмме состояний можно определять переходы и реакции на такие события Реализация для тригерных операций генерируется автоматически

Объекты создаваемые каркасом

Связывание реактивных объектов с активными По умолчанию связывается с активным объектом MainThread Связывается с самим собой, если класс объявлен активным Связывается с содержащим его активным объектом Может быть связан с любым активным объектом путём вызова функции setActiveContext

Разновидности каркасов Object Execution Framework (использует ОС) Interrupt Driven Framework (не использует ОС) Synchronous Framework (не использует ОС)

196135, г. Санкт-Петербург, пр. Юрия Гагарина 23 тел.: (812) Спасибо за внимание! , г. Москва, пр. Андропова 22/30 тел.: (495)