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