ФКН ВШЭ, 2022/2023
- Общая идея курса
- Информация о курсе
Общие понятия о методологиях разработки ПО
- Что такое методология разработки ПО
- Общее понятие
- Основные элементы
- Факторы, влияющие на выбор методологии
- Внешние факторы
- Внутренние факторы
Жизненный цикл проектирования, разработки и внедрения ПО
- Этапы жизненного цикла проектирования, реализации и внедрения ПО
- Формирование требований
- Разработка концепции
- Техническое задание
- Эскизный проект
- Понятие о MVP и примеры MVP
- Технический проект
- Рабочая документация
- Поставка / ввод в действие
- Варианты поставки и развертывания
- Сопровождение
Базовые методологии разработки ПО (ч.1)
- Каскадная модель
- Общее описание
- Хорошие примеры
- Плохие примеры
- V-модель
- Общее описание
- Хорошие примеры
- Плохие примеры
Базовые методологии разработки ПО (ч.1 / продолжение)
- Инкрементная модель
- Общее описание
- Итерационная модель
- Общее описание
- "Тонкие" примеры
- Плохие примеры
- Хорошие примеры
Базовые методологии разработки ПО (ч. 2)
- Спиральная модель
- Общее описание
- Плохие примеры
- Хорошие примеры
- RAD-модель
- Общее описание
Семейство гибких методологий
- Общее понятие о семействе гибких методологий
- Agile-манифест
- Что означает и как использовать
- Роль agile-манифеста в не-agile методологиях
- SCRUM
- Общая схема методологии
- Плохой пример
- Общие соображения, когда работает плохо
- Хороший пример
- Общие соображение, когда работает хорошо
- KANBAN
- Общая схема методологии
- Плохой пример
- Общие соображения, когда работает плохо
- Хороший пример
- Общие соображения, когда работает хорошо
CI/CD
- Понятие о CI/CD/CD
- Зачем это вообще нужно?
- Как это устроено?
- Роль CI/CD/CD в процессе разработки ПО
- Пример "как это работает у нас"
Принципы проектирования ПО, ч.1
- Что такое архитектура ПО?
- Что такое проектирование ПО?
- По каким критериям можно оценить архитектуру?
- Критерии хорошей архитектуры
- Эффективность
- Гибкость
- Расширяемость
- Масштабируемость, тестируемость, возможность повторного использования, сопровождаемость
- Критерии неудачной архитектуры
- Жесткость
- Хрупкость
- Неподвижность
- Критерии хорошей архитектуры
- Принцип High Cohesion / Low Coupling (было в докладе Алексея Битюгова)
Принципы проектирования ПО, ч.2
- Принципы SOLID
- Закон Деметры
- YAGNI
- DRY / DIE
- KISS
Инструменты моделирования и проектирования - UML
- Что такое UML?
- Базовое понятие о нотации UML
- Диаграмма вариантов использования
- Диаграмма классов
- Диаграмма размещения
- Диаграмма последовательности
- Диаграмма деятельности
- Диаграмма состояний
30-минутный доклад на семинарской части курса, подготовленный студентом самостоятельно.
Основные требования к докладу:
- Требуется подготовить презентацию
- В презентации обязательны ссылки на источники
- Доклад может содержать информацию по одному или нескольким пунктам (лучше всего) из списка ниже:
- Обзор научной статьи / доклада на научной конференции на тему "методологии разработки ПО"
- Нужно не просто пересказать статью / доклад, а провести его анализ: выделить сильные и слабые стороны, сомнительные тезисы и т.д.
- Обзор публикации / доклада / выступления на конференции средней / крупной IT-компании с рассказом о том, как у них в компании устроены процессы разработки
- Опять же, не просто пересказ, нужно провести анализ
- В идеале рассматривать материалы из серии "как было" - "что сделали" - "как стало", и провести анализ, что и почему стало лучше
- Обзор инструментов автоматизации процессов разработки / управления проектами
- Опять же, важно провести анализ
- Приоритет малоизвестным или сложным для освоения решениям (не нужно рассказывать про trello или рассказывать, как настроить простейший CI/CD в github actions)
- Например, можно подготовить подробный доклад про возможности и настройку Jenkins
- Обзор статей / докладов на тему IaaC и других современных трендов в организации процессов управления инфраструктурой
- Обзор научной статьи / доклада на научной конференции на тему "методологии разработки ПО"
- Презентацию + краткое описание доклада + ссылки на все источники нужно залить в этот файл README.md через pull-request
Неделя | Даты | Лекция | Докладчик(и) | Тема доклада | Ссылка на материалы |
---|---|---|---|---|---|
Неделя 1 | 13.09.2022 (1 пара) | Введение + Общие понятия о методологиях разработки ПО | Нет докладов | ||
Неделя 2 | 04.10.2022 (2 пары) | Жизненный цикл проектирования, разработки и внедрения ПО + Базовые методологии разработки ПО (ч.1) | Нет докладов | ||
Неделя 3 | 11.10.2022 (2 пары) | Базовые методологии разработки ПО (ч.1 / продолжение) + Базовые методологии разработки ПО (ч. 2) | Нет докладов | ||
Неделя 4 | 08.11.2022 (2 пары) | Семейство гибких методологий | Битюгов Алексей | GRASP паттерны | Презентация в Google Slides, материалы |
Неделя 5 | 17.01.2023 (2 пары) | CI/CD + Принципы проектирования ПО, ч.1 | Нет докладов | ||
Неделя 6 | 24.01.2023 (2 пары) | Лекция №9 | (Докладчик №1) (Докладчик №2) | ||
Неделя 7 | 31.01.2023 (2 пары) | Лекция №10 | (Докладчик №3) (Докладчик №4) | ||
Неделя 8 | 14.02.2023 (2 пары) | Нет лекции | (Докладчик №5) (Докладчик №6) (Докладчик №7) | ||
Неделя 9 | 28.02.2023 (2 пары) | Нет лекции | (Докладчик №8) (Докладчик №9) (Докладчик №10) | ||
Неделя Х | 07.03.2023 (2 пары*) | Нет лекции | (Докладчик №14) (Докладчик №15) (Докладчик №16) | ||
Неделя 10 | 14.03.2023 (2 пары) | Нет лекции | (Докладчик №11) (Докладчик №12) (Докладчик №13) | ||
Неделя 11 | 21.03.2023 (3 пары) | Устный опрос | |||
Итого | 22 пары |
3-4 страничное эссе с обзором докладов, обсуждавшихся на семинарской части
На знание базовых методологий разработки, их сильных и слабых сторон
Итоговая оценка = Математическое округление (0.4 * Научный доклад + 0.3 * Отчетное эссе + 0.3 * Устный опрос)