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

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



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

Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
Применение автоматного программирования во встраиваемых системах В. О. Клебан, А. А. Шалыто Санкт-Петербургский государственный университет информационных.
Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Научный руководитель Шалыто А. А. Кафедра компьютерных технологий Кафедра.
Графическая нотация наследования автоматных классов Данил Шопырин ЗАО «Транзас Технологии» Анатолий Шалыто СПбГУ ИТМО.
Автор: Вельдер С. Э., аспирант Руководитель: Шалыто А. А., доктор технических наук, профессор, заведующий кафедрой «Технологии программирования» Верификация.

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

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

2 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Проектная документация (1)

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

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

5 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Открытая проектная документация Почему проектная документация? Качество проекта повышается Верификация упрощается Модификация становится легче и безопаснее Почему открытая проектная документация? Открытая проектная документация добавляет свободу Понимание проекта упрощается Становится возможным использование проектных решений, разработанных ранее и другими людьми Становится возможным применять проекты для обучения студентов специалистов

6 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Почему открытая проектная документация? Открытая = Должна быть доступна для дальнейшего использования Движение за открытую проектную документацию – свободное, однако находится в другой плоскости по сравнению с Движением за свободное программное обеспечение (Free Software Foundation) или Движением за открытые исходные коды (Open Source Foundation) Результаты и идеи Движения за открытую проектную документацию могут быть применены не только к свободному программному обеспечению, но и к коммерческому, секретному и другим видам программного обеспечения

7 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Документация на программное обеспечение В инженерной практике проектов без проектной документации не бывает На – не проектов, а значительно меньше Код должен основываться на проектной документации, а не наоборот Документация должна описывать не только конечный продукт, но и процесс его создания

8 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию SWITCH-технология Автоматное программирование Предложено в 1991 году Основано на явном выделении состояний Проектирование, управляемое моделями Область использования – системы со сложным поведением Может использоваться на различных аппаратных платформах Программируемых логических контроллерах Микроконтроллерах Микропроцессорах

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

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

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

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

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

14 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Образовательный эксперимент (3) Состав проекта Проектная документация (не менее 60 часов) Описание задачи Описание интерфейса пользователя Принятые проектные решения Описания автоматов и классов Схемы автоматов и классов Протоколы проверки Список литературы Исходный код (не менее 20 часов) Анатолий Шалыто тратит около 10–15 часов на проект

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

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

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

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

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

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

21 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Дизель-генератор Изоморфный исходный код 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 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Дизель-генератор Протоколы

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

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

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

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

27 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Программа для игры RoboCode Интерфейс автомата

28 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Программа для игры RoboCode Граф переходов

29 Linux Summit 2004, Хельсинки Движение за открытую проектную документацию Программа для игры RoboCode Отладка по протоколам

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

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

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

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

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

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