Движение за открытую проектную документацию Анатолий Шалыто shalyto@mail.ifmo.ru Кафедра Компьютерные технологии Санкт-Петербургский государственный университет.

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



Advertisements
Похожие презентации
Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Анатолий Шалыто Кафедра Компьютерные технологии Санкт-Петербургский.
Advertisements

Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Научный руководитель Шалыто А. А. Кафедра компьютерных технологий Кафедра.
Применение автоматного программирования во встраиваемых системах В. О. Клебан, А. А. Шалыто Санкт-Петербургский государственный университет информационных.
Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
Виртуальная лаборатория для первоначального обучения проектированию программ Н. Н. Красильников, В. Г. Парфенов, Ф. Н. Царев, А. А. Шалыто Кафедра компьютерных.
Нейро-автоматное управление Юрий Губин, СПбГУ ИТМО Анатолий Шалыто, СПбГУ ИТМО.
UniMod 1 UniMod: метод и средство разработки реактивных объектно-ориентированных программ с явным выделением состояний Вадим Гуров eVelopers Corp.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Автоматное программирование А.А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2007 г.
Использование автоматного программирования для построения систем управления мобильными роботами В. О. Клебан, А. А. Шалыто Кафедра компьютерных технологий.
Автор: Вельдер С. Э., аспирант Руководитель: Шалыто А. А., доктор технических наук, профессор, заведующий кафедрой «Технологии программирования» Верификация.
Введение в задачи исследования и проектирования цифровых систем Санкт-Петербургский государственный университет Факультет прикладной математики - процессов.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Презентация дисциплины по выбору Для студентов, обучающихся по направлению «Прикладная информатика» (магистерская программа «Прикладная информатика.
Определение требований к системе автоматизации дистанционного образования ФИТа на основе анализа ПО «Прометей» Студент: Саватеев О. Руководитель: Васючкова.
Лекция 5 Способы конструирования программ. Основы доказательства правильности.
Докладчик: Бульёнов А. В., аспирант Научный руководитель: Шалыто А. А., д. т. н., профессор, зав. кафедрой КТ Методы автоматного программирования в разработке.
Студент: Ладыгина А. Руководитель: Васючкова Т.С., к.ф.м.н., доцент кафедры систем информатики НГУ, с.н.с.
Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода Руководитель проекта – А. А. Шалыто Докладчик.
Транксрипт:

Движение за открытую проектную документацию Анатолий Шалыто Кафедра Компьютерные технологии Санкт-Петербургский государственный университет информационных технологий, механики и оптики

2Движение за открытую проектную документацию Проектная документация (1)

3Движение за открытую проектную документацию Проектная документация (2) Управление ответственными объектами Основная по стандартам Дополнительная по требованию заказчика Коммерческие проекты По требованию заказчика Проекты с открытым исходным кодом По желанию разработчика

4Движение за открытую проектную документацию Документация на аппаратуру и документация на ПО Документация на аппаратуру Проектная документация Основные проектные решения Результаты приемки Руководство пользователя Документация на программное обеспечение Руководство пользователя (и разработчика) Исходный код (для проектов с открытым исходным кодом)

5Движение за открытую проектную документацию Открытая и свободная проектная документация Предлагаемый подход применим для Свободного ПО Коммерческого ПО с открытыми исходными кодами Что бы быть полезной, проектная документация должна быть открытой (поставляться с продуктом, аналогично open source) Наилучшим вариантом является свободная открытая документация

6Движение за открытую проектную документацию Открытая проектная документация Зачем проектная документация? Улучшение качества продукта Повышение качества тестирования Упрощение модификации Почему открытая проектная документация? Понимание проекта Использование проектных решений из других проектов Для обучения

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

8Движение за открытую проектную документацию SWITCH-технология – Автоматное программирование Предложено в 1991г. Основано на явном выделении состояний Проектирование, управляемое моделями Область использования – сложные системы: Системное ПО Прикладное ПО Реактивные системы Компиляторы... Используется в: Программируемых логических контроллерах Микроконтроллерах Микропроцессорах

9Движение за открытую проектную документацию Разновидности SWITCH-технологии Логическое управление Процедурное программирование с явным выделением состояний Объектно-ориентированное программирование с явным выделением состояний Классические вычислительные алгоритмы

10Движение за открытую проектную документацию Основные понятия SWITCH-технологии Состояние Входные переменные + События = Входные воздействия Состояния + Входные воздействия = Автоматы без выхода Автоматы без выхода + Выходные воздействия = Автоматы Многозначное кодирование состояний Наблюдаемость по состояниям Система взаимосвязанных автоматов Протоколирование Проектная документация

11Движение за открытую проектную документацию Автоматы в автоматном программировании Средства спецификации алгоритмов Изоморфное отображение на исходный код Программа работает в терминах автоматов

12Движение за открытую проектную документацию Образовательный эксперимент (1) Кафедра компьютерных технологий СПбГУ ИТМО Избранные студенты со всей России Медалисты международных олимпиад по информатике Медалисты чемпионата мира по программированию

13Движение за открытую проектную документацию Образовательный эксперимент (2) Обычное образование 1 Лекции и экзамены Обычное образование 2 Лекции, курсовые работы и экзамены Экспериментальное обучение Лекции и проекты Создание подробной проектной документации Более 40 полностью выполненных проектов Эксперимент продолжается

14Движение за открытую проектную документацию Образовательный эксперимент (3) Состав проекта Проектная документация (не менее 40 часов) Описание задачи Описание интерфейса пользователя Принятые проектные решения Описания автоматов и классов Схемы автоматов и классов Протоколы проверки Список литературы Исходный код (не менее 10 часов) Преподаватель тратит около часов на проект

15Движение за открытую проектную документацию Примеры проектов Игры Скелетная анимация Управляющие системы Графические интерфейсы пользователя Параллельные задачи Транслитерация Многое другое

16Движение за открытую проектную документацию Три примера Моделирование дизель-генератора Процедурное программирование Программа для игры RoboCode Объектно-ориентированное программирование Технология разработки визуализаторов Объектно-ориентированная визуализация вычислительных алгоритмов

17Движение за открытую проектную документацию Дизель-генератор План выполнения проекта Анализ Структурирование (выделение автоматов) Схема взаимодействия автоматов Словесное описание автоматов Схема связей автомата (интерфейс) Графы переходов Изоморфное построение исходного кода Проверочные протоколы

18Движение за открытую проектную документацию Дизель-генератор Схема взаимодействия автоматов

19Движение за открытую проектную документацию Дизель-генератор Схема связей автомата

20Движение за открытую проектную документацию Дизель-генератор Граф переходов автомата

21Движение за открытую проектную документацию Дизель-генератор Изоморфный исходный код void A0(int e, dg_t *dg) { int y_old = dg->y0; switch(dg->y0) { case 0: A8(e, dg); if (x220(dg)) dg->y0 = 4; else if (dg->y7 == 2) dg->y0 = 7; else if (dg->y8 == 2) dg->y0 = 1; break; case 1: A4(e, dg); A3(e, dg); A1(e, dg); if (dg->y4 != 0) dg->y0 = 6; else if (dg->y7 == 2 || dg->y7 == 4) dg->y0 = 8; else if (dg->y3 != 0) dg->y0 = 5; else if (dg->y1 == 0) dg->y0 = 0; else if (dg->y1 == 3) dg->y0 = 7; …

22Движение за открытую проектную документацию Дизель-генератор Проверочные протоколы

23Движение за открытую проектную документацию Программа для игры RoboCode Лучшие результаты 1. GlowBlowMelee Cigaret Cynical 4. GlowBlow 5. Cynical_3

24Движение за открытую проектную документацию Программа для игры RoboCode План выполнения проекта Анализ Структурирование (выделение классов) Диаграмма классов Автоматная декомпозиция классов + все этапы из плана реализации проекта дизель-генератора

25Движение за открытую проектную документацию Программа для игры RoboCode Диаграмма классов

26Движение за открытую проектную документацию Программа для игры RoboCode Схема структуры класса

27Движение за открытую проектную документацию RoboCode Agent Интерфейс автомата

28Движение за открытую проектную документацию RoboCode Agent Граф переходов

29Движение за открытую проектную документацию Отладка по протоколам

30Движение за открытую проектную документацию Технология разработки визуализаторов Алгоритм Малхотры, Кумара- Махешвари поиска максимального потока

31Движение за открытую проектную документацию Технология разработки визуализаторов Структура визуализатора Модель Система взаимосвязанных автоматов, сгенерированная по XML-описанию Вид Интерфейс пользователя, основанный на библиотеке Vizi Контроллер Библиотека Vizi

32Движение за открытую проектную документацию Технология разработки визуализаторов Проектная документация (1) Аннотация Введение Глава1. Анализ литературы Глава 2. Описание алгоритма Глава 3. Реализация алгоритма Глава 4. Описание модели данных Глава 5. Преобразование реализации Глава 6. Описание интерфейса

33Движение за открытую проектную документацию Технология разработки визуализаторов Проектная документация (2) Глава 7. Описание конфигурации Заключение Список литературы Приложения Реализация алгоритма Преобразованная реализация XML-описание визуализатора Сгенерированные исходные коды Код интерфейса пользователя

34Движение за открытую проектную документацию Визуализированные алгоритмы Алгоритм Малхотры Кумара-Махишвари Алгоритм Диница Алгоритм Хопкрофта-Крапа Минимальное дерево путей Алгоритмы на 2-3 деревьев Битоническая задача коммивояжера Алгоритм Укконена Алгоритм Прима Алгоритм построения простых строк и циклов де Брюина

35Движение за открытую проектную документацию Ссылки Примеры проектов – Проектная документация – Статьи – Проект UniMod (на английском)