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

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

Upload: oliver

Post on 23-Feb-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Движение за открытую проектную документацию. Анатолий Шалыто [email protected]. Кафедра “ Компьютерные технологии ” Санкт-Петербургский государственный университет информационных технологий, механики и оптики. Проектная документация (1). Проектная документация (2). Коммерческие проекты - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Движение за открытую проектную документацию

Linux Summit 2004, Хельсинки

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

Анатолий Шалыто[email protected]

Кафедра “Компьютерные технологии”Санкт-Петербургский государственный университет

информационных технологий, механики и оптики

Page 2: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 2

Linux Summit 2004, Хельсинки

Проектная документация (1)

Должнобыть хоро-

шо докумен-тировано

Управлениеответствен-

нымиобъектами

Остальное

Коммерческое

Остальное

Документи-ровано вобъеме,

требуемомзаказчиком

?Образова-

тельное

Программное обеспечение

НекоммерческоеСовместное использование

коммерческого и некоммерческогопрограммного обеспечения

Документи-ровано по

усмотрениюразработ-

чика

Должнобыть хоро-

шо докумен-тировано

Page 3: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 3

Linux Summit 2004, Хельсинки

Проектная документация (2) Коммерческие проекты

Управление ответственными объектами Основная – по стандартам Дополнительная – по требованию заказчика

Остальные По требованию заказчика

Некоммерческие проекты Образовательные

Качественная Остальные

По желанию разработчика

Page 4: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 4

Linux Summit 2004, Хельсинки

Документация на аппаратуру и документация на ПО

Аппаратуру проектируют одни люди, а изготавливают другие

Документация на аппаратуру Проектная документация Основные проектные

решения Результаты приемки Руководство

пользователя

Программное обеспечение проектируют и изготавливают одни и те же люди

Документация на программное обеспечение Руководство

пользователя Руководство

разработчика Исходный код (для

проектов с открытым исходным кодом)

Page 5: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 5

Linux Summit 2004, Хельсинки

Открытая проектная документация

Почему проектная документация? Качество проекта повышается Верификация упрощается Модификация становится легче и безопаснее

Почему открытая проектная документация? Открытая проектная документация добавляет свободу Понимание проекта упрощается Становится возможным использование проектных

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

обучения студентов специалистов

Page 6: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 6

Linux Summit 2004, Хельсинки

Почему открытая проектная документация?

Открытая = Должна быть доступна для дальнейшего использования

Движение за открытую проектную документацию – свободное, однако находится в другой плоскости по сравнению с Движением за свободное программное обеспечение (Free Software Foundation) или Движением за открытые исходные коды (Open Source Foundation) Результаты и идеи Движения за открытую

проектную документацию могут быть применены не только к свободному программному обеспечению, но и к коммерческому, секретному и другим видам программного обеспечения

Page 7: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 7

Linux Summit 2004, Хельсинки

Документация на программное обеспечение

В инженерной практике проектов без проектной документации не бывает На www.sourceforge.net – не 76000 проектов, а

значительно меньше Код должен основываться на проектной

документации, а не наоборот Документация должна описывать не

только конечный продукт, но и процесс его создания

Page 8: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 8

Linux Summit 2004, Хельсинки

SWITCH-технология Автоматное программирование

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

сложным поведением Может использоваться на различных

аппаратных платформах Программируемых логических контроллерах Микроконтроллерах Микропроцессорах

Page 9: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 9

Linux Summit 2004, Хельсинки

РазновидностиSWITCH-технологии

Логическое управление Процедурное программирование с явным

выделением состояний Объектно-ориентированное

программирование с явным выделением состояний

Классические вычислительные алгоритмы

Page 10: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 10

Linux Summit 2004, Хельсинки

Основные понятия SWITCH-технологии

Состояние Совокупность состояний

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

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

Page 11: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 11

Linux Summit 2004, Хельсинки

Автоматы в автоматном программировании

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

терминах автоматов

Page 12: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 12

Linux Summit 2004, Хельсинки

Образовательный эксперимент (1)

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

информатике Медалисты чемпионата мира по

программированию

Page 13: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 13

Linux Summit 2004, Хельсинки

Образовательный эксперимент (2)

1998-2001 Обычное образование 1 Лекции и экзамены

2001-2002 Обычное образование 2 Лекции, курсовые работы и экзамены

2002-2003 Экспериментальное обучение Лекции и проекты Создание подробной проектной документации Более 40 полностью выполненных проектов

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

Page 14: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 14

Linux Summit 2004, Хельсинки

Образовательный эксперимент (3)

Состав проекта Проектная документация (не менее 60 часов)

Описание задачи Описание интерфейса пользователя Принятые проектные решения Описания автоматов и классов Схемы автоматов и классов Протоколы проверки Список литературы

Исходный код (не менее 20 часов) Анатолий Шалыто тратит около 10–15 часов на проект

Page 15: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 15

Linux Summit 2004, Хельсинки

Примеры проектов

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

Page 16: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 16

Linux Summit 2004, Хельсинки

Три примера

Моделирование дизель-генератора Процедурное программирование

Программа для игры RoboCode Объектно-ориентированное

программирование Технология разработки визуализаторов

Объектно-ориентированная визуализация вычислительных алгоритмов

Page 17: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 17

Linux Summit 2004, Хельсинки

Дизель-генератор План выполнения проекта

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

Page 18: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 18

Linux Summit 2004, Хельсинки

Дизель-генераторСхема взаимодействия автоматов

Page 19: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 19

Linux Summit 2004, Хельсинки

Дизель-генераторСхема связей автомата

Page 20: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 20

Linux Summit 2004, Хельсинки

Дизель-генераторГраф переходов автомата

Page 21: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 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;

Page 22: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 22

Linux Summit 2004, Хельсинки

Дизель-генераторПротоколы

Page 23: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 23

Linux Summit 2004, Хельсинки

Программа для игры RoboCodehttp://robocode.alphaworks.ibm.com

Лучшие результаты1. GlowBlowMelee 1.1 2. Cigaret 1.20 3. Cynical4. GlowBlow 5. Cynical_3

Page 24: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 24

Linux Summit 2004, Хельсинки

Программа для игры RoboCodeПлан выполнения проекта

Анализ Структурирование (выделение классов) Диаграмма классов Все этапы из плана реализации проекта

дизель-генератора

Page 25: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 25

Linux Summit 2004, Хельсинки

Программа для игры RoboCode Диаграмма классов

Page 26: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 26

Linux Summit 2004, Хельсинки

Программа для игры RoboCode Схема структуры класса

Page 27: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 27

Linux Summit 2004, Хельсинки

Программа для игры RoboCode Интерфейс автомата

Page 28: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 28

Linux Summit 2004, Хельсинки

Программа для игры RoboCode Граф переходов

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

Движение за открытую проектную документацию — http://is.ifmo.ru 29

Linux Summit 2004, Хельсинки

Программа для игры RoboCode Отладка по протоколам

Page 30: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 30

Linux Summit 2004, Хельсинки

Технология разработки визуализаторов

АлгоритмМалхотра,

Кумара,Махешвари

поискамаксимального

потока

Page 31: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 31

Linux Summit 2004, Хельсинки

Технология разработки визуализаторовСтруктура визуализатора

Модель Система взаимосвязанных автоматов,

сгенерированная по XML–описанию Вид

Интерфейс пользователя, основанный на библиотеке Vizi

Контроллер Библиотека Vizi

Page 32: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 32

Linux Summit 2004, Хельсинки

Технология разработки визуализаторов Проектная документация (1)

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

Page 33: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 33

Linux Summit 2004, Хельсинки

Технология разработки визуализаторов Проектная документация (2)

Глава 7. Описание конфигурации Заключение Список литературы Приложения

Реализация алгоритма Преобразованная реализация XML–описание визуализатора Сгенерированные исходные коды Код интерфейса пользователя

Page 34: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 34

Linux Summit 2004, Хельсинки

Визуализированные алгоритмы

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

Брюина

Page 35: Движение за открытую проектную документацию

Движение за открытую проектную документацию — http://is.ifmo.ru 35

Linux Summit 2004, Хельсинки

Ссылки

Примеры проектов http://is.ifmo.ru/?i0=projects – Проектная

документация http://is.ifmo.ru/?i0=works – Статьи http://unimod.sourceforge.net/ – Проект UniMod

(на английском)