UniMod 1 UniMod: метод и средство разработки реактивных объектно-ориентированных программ с явным выделением состояний Вадим Гуров eVelopers Corp.

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



Advertisements
Похожие презентации
Текстовый язык автоматного программирования В. С. Гуров, М. А. Мазин, А. А. Шалыто.
Advertisements

Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Научный руководитель Шалыто А. А. Кафедра компьютерных технологий Кафедра.
Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Применение автоматного программирования во встраиваемых системах В. О. Клебан, А. А. Шалыто Санкт-Петербургский государственный университет информационных.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Виртуальная машина автоматного программирования Наумов А.С., СПбГУ ИТМО 2006.
Движение за открытую проектную документацию Анатолий Шалыто Кафедра Компьютерные технологии Санкт-Петербургский государственный университет.
Разработка программного обеспечения при объектном подходе Объектно-ориентированный подход.
Разработка объектно- ориентированного ПО Итеративная модель разработки (развитие водопадной модели) анализ проектирование кодирование тестирование.
Автор: Вельдер С. Э., аспирант Руководитель: Шалыто А. А., доктор технических наук, профессор, заведующий кафедрой «Технологии программирования» Верификация.
1 Диаграммы реализации (implementation diagrams).
Графическая нотация наследования автоматных классов Данил Шопырин ЗАО «Транзас Технологии» Анатолий Шалыто СПбГУ ИТМО.
Визуальное моделирование требований к Интернет - решениям Автор : Кашин А. А. Руководитель : Кознов Д. В.
Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Анатолий Шалыто Кафедра Компьютерные технологии Санкт-Петербургский.
Разработка программного средства 3Genetic для генерации автоматов управления системами со сложным поведением Государственный контракт «Технология.
Жизненный цикл программного обеспечения Подготовил студент 1 курса Лось Павел.
Применение автоматного программирования для моделирования группового управления движением одного класса беспилотных летательных объектов Паращенко Д.А.,
Этапы решения задач на компьютере 1. Постановка задачи. 2. Построение математической модели. 3. Составление алгоритма. 4. Запись алгоритма на языке программирования(кодирование)
Декомпозиция сложных дискретных систем, формализованных в виде вероятностных МП-автоматов. квалификационная работа Выполнил: Шляпенко Д.А., гр. ИУ7-83.
Транксрипт:

UniMod 1 UniMod: метод и средство разработки реактивных объектно-ориентированных программ с явным выделением состояний Вадим Гуров eVelopers Corp.

UniMod 2 Мотивация Семантический разрыв между фазами проектирования и реализации Классические методы проектирования объектно- ориентированных систем не имеют четкого описания того, как проектировать поведенческую часть Нет связи с кодом В основном проектирование ограничено созданием концептуальной модели предметной области Нет методов для проектирования сложной логики UML-диаграммы взаимодействия и последовательности бесполезны UML-диаграммы состояний в том, виде как они описаны в стандарте использовать сложно

UniMod 3 Постановка задачи (1) UML + SWITCH-технология Затрагиваются только фазы проектирования и реализации Рассматриваются только реактивные системы Основное внимание уделяется моделированию логики поведения системы Исполняемый графический язык Отсутствие обратной генерации модели по коду Проверка правильности модели Полнота и непротиворечивость графа переходов Достижимость состояний

UniMod 4 Постановка задачи (2) Существующие подходы и технологии: MDA (AndroMDA) UML Editors – only class-diagram round-trip Model compilers – (Telelogic TAU2, ILogix Statemate) UML VM (Matilda) State machine compilers (smc) Domain Specific Languages (Microsoft DSL Tools) Language Oriented Programming (Intellij MPS) Generative Programming

UniMod 5 Предлагаемый метод 1.Создать концептуальную модель предметной области в виде UML диаграммы классов используя классические методы 2.Выделить поставщики событий, автоматы и объекты управления. Оставшиеся классы – контейнеры для данных. 3.Создать диаграмму связей автоматов Поставщики событий поместить справа Объекты управления слева Автоматы посередине Создать связи между поставщиками событий, автоматами и объектами управления 4.В поставщиках событий определить множество производимых событий ( ex ) 5.В объектах управления создать два множества методов соответствующих: Входным воздействиям ( xj ) Выходным воздействиям ( zk ) 6.Для каждого автомата создать диаграмму состояний 7.Реализовать поставщики событий и объекты управления вручную или выбрать готовые из репозитория 8.Запустить модель прямо из среды разработки, либо преобразовать модель в XML-описание для последующей интерпретации, либо преобразовать модель в код на целевом языке программирования для последующей компиляции Проектирование Реализация

UniMod 6 Пример использования метода (1)

UniMod 7 Пример использования метода (2)

UniMod 8 Пример использования метода (3)

UniMod 9 Синтаксис диаграмм

UniMod 10 Операционная семантика модели Поставщики событий – активные объекты, обладающие потоками выполнения События могут обрабатываться синхронно и асинхронно Интерпретационный и компилируемый подходы

UniMod 11 Ядро Мета-модель конечного автомата Алгоритмы разбора, трансляции и интерпретации условий на переходах Алгоритмы валидации модели Интерпретатор XML-описания модели Генератор кода для целевого языка на основе XML- описания модели Базовая версия отладчика модели Eclipse Plug-in Графический редактор UML-диаграммы классов и состояний Интерактивный валидатор модели Средства запуска и графической отладки модели Программный пакет UniMod

UniMod 12 Демонстрация работы редактора

UniMod 13 Демонстрация работы отладчика

UniMod 14 Архитектура EclipseJVM Runtime Model Design-time Model JDWP UniMod Debugger Protocol

UniMod 15 Область применения (1) J2EE приложения (интерпретируемый и компилируемый подходы). Для описания переходов между страницами, для описания жизненного цикла бизнес сущностей. J2SE приложения (интерпретируемый и компилируемый подходы) J2ME приложения (только компилируемый подход). Для создания игр.J2ME приложения Symbian С++ приложения (только компилируемый подход)

UniMod 16 Область применения (2) Система автоматического завершения ввода Отладчик диаграмм Интерпретатор/компилятор блок схем Описание и эмуляция бизнес процессов

UniMod 17 Область применения (3) Создать набор поставщиков событий и объектов управления для некоторой предметной области Визуально конструировать программы

UniMod 18 Преимущества предлагаемого подхода Использует UML-нотацию и, частично, операционную семантику Позволяет уменьшить семантический разрыв между фазами проектирования и реализации Использует формальные методы проверки модели системы, что позволяет избежать появления многих ошибок на стадии реализации Ускоряет процесс разработки и позволяет избежать проблемы синхронизации технической спецификации и кода Самодокументируемый, т.к. диаграммы созданные на стадии проектирования являются документацией и программой одновременно

UniMod 19 Общая информация о проекте Проект ведется специалистами компании eVelopers Corp. UniMod является проектом с открытым исходным кодом и размещен на сайте SourceForge Проект развивается в рамках движения за открытую проектную документацию

UniMod 20 Спасибо!