ФКН ВШЭ, 2024/2025
- Общая идея курса
- Информация о курсе
Общие понятия о методологиях разработки ПО
- Что такое методология разработки ПО
- Общее понятие
- Основные элементы
- Факторы, влияющие на выбор методологии
- Внешние факторы
- Внутренние факторы
Жизненный цикл проектирования, разработки и внедрения ПО
- Этапы жизненного цикла проектирования, реализации и внедрения ПО
- Формирование требований
- Разработка концепции
- Техническое задание
- Эскизный проект
- Понятие о 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 | 07/10/2024 (2 пары) | Знакомство + Введение + Общие понятия о методологиях разработки ПО + Жизненный цикл проектирования, разработки и внедрения ПО | Нет докладов | ||
Неделя №2 | 21/10/2024 (2 пары) | Базовые методологии разработки ПО (ч.1) | 1. dismissed 2. dismissed 3. dismissed | ||
Неделя №3 | 25/11/2024 (2 пары) | Базовые методологии разработки ПО (ч.1 / продолжение) + Базовые методологии разработки ПО (ч. 2) | 4. dismissed 5. dismissed 6. dismissed | ||
Неделя №4 | 09/12/2024 (2 пары) | Семейство гибких методологий + CI/CD | 7. dismissed 8. dismissed 9. dismissed | ||
Неделя №5 | ??? (2 пары) | Принципы проектирования ПО, ч.1 | 10. Тепляков Геннадий Дмитриевич 11. Филев Виктор Леонидович 12. | ||
Неделя №6 | 13. Ваньжа Кирилл Евгеньевич 14. Зуев Аким Иванович 15. Черкесов Азамат Заурович | ||||
Неделя №7 | 16.Газиев Саидрасул Исламбекович 17. Дёшина Кристина Валентиновна 18. Рабинович Майя | ||||
Неделя №8 | 19.Комкова Полина Дмитриевна 20. Тупицин Тимофей Романович 21. Ляпина Екатерина Максимовна | ||||
Неделя №9 | 22.Клименко Георгий Сергеевич 23. Быков Дмитрий Александрович 24. Пирогов Даниил Игоревич | ||||
Неделя №10 | 25.Бюрчиев Тимур Зольванович 26.Колобанов Никита Дмитриевич 27.Якимов Георгий Юрьевич 28.Солод Алексей Александрович 29.Тимошкин Александр Игоревич | ||||
Неделя №11 | 30.Мендус Кирилл Дмитриевич 31.Веселинович Александра Александровна 32. Щербаков Денис Олегович 33. Коробов Вячеслав Сергеевич 34.Глижинский Вячеслав Александрович | ||||
Итого | 10 пар |
Если вы не успели рассказать доклад, но при этом хотите заработать какие-то баллы за него - вы можете подготовить презентацию (подробную) для выбранной вами темы и выложить ее в список ниже.
Если доклад подготовлен, но не рассказан, то вы получите оценку за него со штрафом в 40% (т.е. оценка за доклад будет умножена на 0.6)
В формате ФИО - Тема - Ссылка на материалы
3-4 страничное эссе с обзором докладов, обсуждавшихся на семинарской части
Готовое эссе присылайте на почту [email protected], обязательно укажите тему письма "Отчетное эссе Методологии разработки", а в теле письма укажите свое ФИО и номер группы.
На знание базовых методологий разработки, их сильных и слабых сторон
Темы устного опроса - лекции №3, №4, №5, №6 (Базовые методологии разработки ПО (ч.1, ч.2) + Семейство гибких методологий)
Вы можете сдавать в любой день по вашему желанию, но рекомендую лучше сдавать 11.03 (пока есть слоты), чтобы в сессию нам не пришлось сидеть до ночи, пока все не сдадут.
Итоговая оценка = Математическое округление (0.4 * Научный доклад + 0.3 * Отчетное эссе + 0.3 * Устный опрос)
Сроки выставления оценок:
- Оценка за доклады - ориентировочно XX
- Оценка за эссе - ориентировочно XX
- Оценка за устный опрос - XX
- Итоговая оценка за курс: XX (оптимистично), XX (пессимистично)