1 / 35

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

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

oliver
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Проектная документация (2) • Коммерческие проекты • Управление ответственными объектами • Основная – по стандартам • Дополнительная – по требованию заказчика • Остальные • По требованию заказчика • Некоммерческие проекты • Образовательные • Качественная • Остальные • По желанию разработчика Движение за открытую проектную документацию — http://is.ifmo.ru

  4. Аппаратуру проектируют одни люди, а изготавливают другие Документация на аппаратуру Проектная документация Основные проектные решения Результаты приемки Руководство пользователя Программное обеспечение проектируют и изготавливают одни и те же люди Документация на программное обеспечение Руководство пользователя Руководство разработчика Исходный код (для проектов с открытым исходным кодом) Документация на аппаратуру и документация на ПО Движение за открытую проектную документацию — http://is.ifmo.ru

  5. Открытая проектная документация • Почему проектная документация? • Качество проекта повышается • Верификация упрощается • Модификация становится легче и безопаснее • Почему открытая проектная документация? • Открытая проектная документация добавляет свободу • Понимание проекта упрощается • Становится возможным использование проектных решений, разработанных ранее и другими людьми • Становится возможным применять проекты для обучения • студентов • специалистов Движение за открытую проектную документацию — http://is.ifmo.ru

  6. Почему открытая проектная документация? • Открытая = Должна быть доступна для дальнейшего использования • Движение за открытую проектную документацию – свободное, однако находится в другой плоскости по сравнению с Движением за свободное программное обеспечение (Free Software Foundation)или Движением за открытые исходные коды (Open Source Foundation) • Результаты и идеи Движения за открытую проектную документацию могут быть применены не только к свободному программному обеспечению, но и к коммерческому, секретному и другим видам программного обеспечения Движение за открытую проектную документацию — http://is.ifmo.ru

  7. Документация на программное обеспечение • В инженерной практике проектов без проектной документации не бывает • На www.sourceforge.net– не 76000 проектов, а значительно меньше • Код должен основываться на проектной документации, а не наоборот • Документация должна описывать не только конечный продукт, но и процесс его создания Движение за открытую проектную документацию — http://is.ifmo.ru

  8. SWITCH-технологияАвтоматноепрограммированиеSWITCH-технологияАвтоматноепрограммирование • Предложено в 1991 году • Основано на явном выделении состояний • Проектирование, управляемое моделями • Область использования – системы со сложным поведением • Может использоваться на различных аппаратных платформах • Программируемых логических контроллерах • Микроконтроллерах • Микропроцессорах Движение за открытую проектную документацию — http://is.ifmo.ru

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

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

  11. Автоматы в автоматном программировании • Средства спецификации алгоритмов • Изоморфное отображение в исходный код • Программа работает и протоколируется в терминах автоматов Движение за открытую проектную документацию — http://is.ifmo.ru

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

  13. Образовательный эксперимент (2) • 1998-2001 Обычное образование 1 • Лекции и экзамены • 2001-2002 Обычное образование 2 • Лекции, курсовые работы и экзамены • 2002-2003 Экспериментальное обучение • Лекции и проекты • Создание подробной проектной документации • Более 40 полностью выполненных проектов • Эксперимент продолжается Движение за открытую проектную документацию — http://is.ifmo.ru

  14. Образовательный эксперимент (3) • Состав проекта • Проектная документация (не менее 60 часов) • Описание задачи • Описание интерфейса пользователя • Принятые проектные решения • Описания автоматов и классов • Схемы автоматов и классов • Протоколы проверки • Список литературы • Исходный код (не менее 20 часов) • Анатолий Шалыто тратит около 10–15 часов на проект Движение за открытую проектную документацию — http://is.ifmo.ru

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

  16. Три примера • Моделирование дизель-генератора • Процедурное программирование • Программа для игры RoboCode • Объектно-ориентированное программирование • Технология разработки визуализаторов • Объектно-ориентированная визуализация вычислительных алгоритмов Движение за открытую проектную документацию — http://is.ifmo.ru

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

  18. Дизель-генераторСхема взаимодействия автоматов Движение за открытую проектную документацию — http://is.ifmo.ru

  19. Дизель-генераторСхема связей автомата Движение за открытую проектную документацию — http://is.ifmo.ru

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

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

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

  23. Программа для игры RoboCode http://robocode.alphaworks.ibm.com Лучшие результаты • GlowBlowMelee 1.1 • Cigaret 1.20 • Cynical • GlowBlow • Cynical_3 Движение за открытую проектную документацию — http://is.ifmo.ru

  24. Программа для игры RoboCodeПлан выполнения проекта • Анализ • Структурирование (выделение классов) • Диаграмма классов • Все этапы из плана реализации проекта дизель-генератора Движение за открытую проектную документацию — http://is.ifmo.ru

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

  26. Программа для игры RoboCodeСхема структуры класса Движение за открытую проектную документацию — http://is.ifmo.ru

  27. Программа для игры RoboCodeИнтерфейс автомата Движение за открытую проектную документацию — http://is.ifmo.ru

  28. Программа для игры RoboCodeГраф переходов Движение за открытую проектную документацию — http://is.ifmo.ru

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

  30. Технология разработки визуализаторов Алгоритм Малхотра, Кумара, Махешвари поискамаксимальногопотока Движение за открытую проектную документацию — http://is.ifmo.ru

  31. Технология разработки визуализаторовСтруктура визуализатора • Модель • Система взаимосвязанных автоматов, сгенерированная по XML–описанию • Вид • Интерфейс пользователя, основанный на библиотеке Vizi • Контроллер • Библиотека Vizi Движение за открытую проектную документацию — http://is.ifmo.ru

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

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

  34. Визуализированные алгоритмы • Алгоритм Малхотра, Кумара, Махишвари • Алгоритм Диница • Алгоритм Хопкрофта-Крапа • Минимальное дерево путей • Алгоритмы на 2–3 деревьев • Битоническая задача коммивояжера • Алгоритм Укконена • Алгоритм Прима • Алгоритм построения простых строк и циклов деБрюина Движение за открытую проектную документацию — http://is.ifmo.ru

  35. Ссылки • Примеры проектов • http://is.ifmo.ru/?i0=projects – Проектная документация • http://is.ifmo.ru/?i0=works – Статьи • http://unimod.sourceforge.net/ – Проект UniMod (на английском) Движение за открытую проектную документацию — http://is.ifmo.ru

More Related