Презентации и программа лекций

Учебный курс «Введение в программную инженерию»

  • Лекция 1. Введение (презентация)
    1. Цель и задачи программной инженерии.
    2. Понятия проекта, реализации проекта, методологии и метода.
    3. Историческая классификация методологий разработки ПО.
  • Лекция 2. Унифицированный процесс (презентация)
    1. История Унифицированного процесса.
    2. Понятия варианта использования.
    3. Понятие архитектуры.
    4. Итеративность и инкрементность.
    5. Фазы Унифицированного процесса.
  • Лекция 3. Фаза анализа и четыре «П» (презентация)
    1. Определение и назначение вариантов использования.
    2. Понятия актантов и ролей.
    3. Классы и их типы.
    4. Персонал, проект, продукт, процесс.
    5. Оценка и классификация рисков.
  • Лекция 4. Архитектура и архитектурные образцы (презентация)
    1. Архитектурные блоки и образцы.
    2. Порядок разработки архитектуры.
    3. Клиент-серверная архитектура.
    4. Микросервисная архитектура.
    5. Асинхронный ввод/вывод.
    6. Распределённые системы.
    7. Одноранговая архитектура.
    8. Распределённые хеш-таблицы.
  • Лекция 5. Реализация + тестирование (презентация)
    1. Модель реализации, билды и итерации.
    2. Модель тестирования и тестовые примеры.
    3. Перспективные практики тестирования.
    4. Behaviour-Driven Development и Behave.
    5. PlantUML .
  • Лекция 6. Введение в Agile и диаграммы (презентация)
    1. История гибких методологий разработки.
    2. Ценности и принципы Agile.
    3. Scrum.
    4. Идея UML, достоинства и недостатки.
    5. Диаграммы UML: вариантов использования, компонентов, классов, последовательности и активности.
    6. Другие типы диаграмм: Ганта, IDEF0 и DFD.
  • Лекция 7. XP, RAD, FDD и DSDM (презентация)
    1. Extreme Programming.
    2. Rapid Application Development.
    3. Feature Driven Development.
    4. Dynamic Systems Development Method.
  • Лекция 8. Развитие стартапа (презентация)
    1. История зарождения технологического предпринимательства.
    2. Правовой статус и жизненный цикл стартапа.
    3. Типы финансирования и логика инвестора.
    4. Особенности развития научных проектов и проектов СПО.

Темы проектов

  1. Настольный кроссплатформенный клиент Git для базовых операций на Java с использованием библиотеки JGit (без задействования консольной утилиты git).
  2. Интерактивный веб-чат с использованием WebSockets (реализация сервера любая).
  3. Калькулятор на языке Groovy.
  4. Транслятор на Java документов из Markdown в DocX (рекомендуется использовать org.commonmark).
  5. Представление интерактивного дерева на веб-странице с использованием React или ZK (серверная часть любая).)