Программа лекций и презентации по курсу «Введение в программную инженерию»
- Лекция 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. Развитие стартапа (презентация)
- История зарождения технологического предпринимательства.
- Правовой статус и жизненный цикл стартапа.
- Типы финансирования и логика инвестора.
- Особенности развития научных проектов и проектов СПО.
Темы проектов
Ниже приводятся категории проектов, которые могут использоваться в качестве практических работ по нашему предмету:
- Вклад с душой в университетские инициативы. Разрешается использовать в качестве проекта любой вклад в развитие платформы невизуальных приложений LUWRAIN.
- Общие проекты. Список общих проектов приводится ниже.
- Запасные проекты. Если не удалось выбрать проект из предложенных в первых двух категориях, то можно взять любой API с сайта Rapid API и сделать для него клиент. Для бакалавров предпочтительным способом является библиотека Java, построенная по разумным архитектурным принципам. Для магистрантов допустимо минимальное консольное приложение на Python или Node.js.
Общие проекты
- Клиент для автоматизированного доступа к метапоисковой системе Searx. Список функционирующих копий можно получить в обновляемом JSON-файле. Необходимо производить поисковый запрос к любой копии системы с передачей параметров и парсить результат. Язык реализации Java.
- Клиент для любого облачного хранилища файлов (Яндекс.Диск, Google Drive и пр.).
Рекомендуемая литература
- Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. – СПб.: Питер, 2002.
- Арлоу Дж., Нейштадт А. UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование, 2-е изд. – СПб.: Символ-Плюс, 2013.
- Ларман К. Применение UML и шаблонов проектирования. (второе издание) – М.: Вильямс, 2002. Или 3-е издание, 2019.
- Крачтен Ф. Введение в Rational Unified Process (второе издание) – М.: Вильямс, 2002.
- Поллис Г., Огастин Л., Лоу К., Мадхар Д. Разработка программных проектов: на основе Rational Unified Process (RUP) – М.: ООО «Бином-Пресс», 2005.
- Ауэр К., Миллер Р. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца. – СПб.: Питер, 2004.
- Мацяшек Л.А. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML. – М: Изд. Дом «Вильямс», 2002.
- Kniberg H. Scrum and XP from the Trenches (2nd Edition). 2015.