Skip to content

Latest commit

 

History

History
255 lines (186 loc) · 20 KB

README.md

File metadata and controls

255 lines (186 loc) · 20 KB

year status progress

НИС "Методологии разработки ПО"

ФКН ВШЭ, 2024/2025

План занятий

✅ Введение

  • Общая идея курса
  • Информация о курсе

✅ Лекция 1

Общие понятия о методологиях разработки ПО

  • Что такое методология разработки ПО
    • Общее понятие
    • Основные элементы
  • Факторы, влияющие на выбор методологии
    • Внешние факторы
    • Внутренние факторы

✅ Лекция 2

Жизненный цикл проектирования, разработки и внедрения ПО

  • Этапы жизненного цикла проектирования, реализации и внедрения ПО
    • Формирование требований
    • Разработка концепции
    • Техническое задание
    • Эскизный проект
      • Понятие о MVP и примеры MVP
    • Технический проект
    • Рабочая документация
    • Поставка / ввод в действие
      • Варианты поставки и развертывания
    • Сопровождение

✅ Лекция 3

Базовые методологии разработки ПО (ч.1)

  • Каскадная модель
    • Общее описание
    • Хорошие примеры
    • Плохие примеры
  • V-модель
    • Общее описание
    • Хорошие примеры
    • Плохие примеры

✅ Лекция 4

Базовые методологии разработки ПО (ч.1 / продолжение)

  • Инкрементная модель
    • Общее описание
  • Итерационная модель
    • Общее описание
    • "Тонкие" примеры
    • Плохие примеры
    • Хорошие примеры

✅ Лекция 5

Базовые методологии разработки ПО (ч. 2)

  • Спиральная модель
    • Общее описание
    • Плохие примеры
    • Хорошие примеры
  • RAD-модель
    • Общее описание

✅ Лекция 6

Семейство гибких методологий

  • Общее понятие о семействе гибких методологий
  • Agile-манифест
    • Что означает и как использовать
    • Роль agile-манифеста в не-agile методологиях
  • SCRUM
    • Общая схема методологии
    • Плохой пример
    • Общие соображения, когда работает плохо
    • Хороший пример
    • Общие соображение, когда работает хорошо
  • KANBAN
    • Общая схема методологии
    • Плохой пример
    • Общие соображения, когда работает плохо
    • Хороший пример
    • Общие соображения, когда работает хорошо

✅ Лекция 7

CI/CD

  • Понятие о CI/CD/CD
  • Зачем это вообще нужно?
  • Как это устроено?
  • Роль CI/CD/CD в процессе разработки ПО
  • Пример "как это работает у нас"

✅ Лекция 8

Принципы проектирования ПО, ч.1

  • Что такое архитектура ПО?
  • Что такое проектирование ПО?
  • По каким критериям можно оценить архитектуру?
    • Критерии хорошей архитектуры
      • Эффективность
      • Гибкость
      • Расширяемость
      • Масштабируемость, тестируемость, возможность повторного использования, сопровождаемость
    • Критерии неудачной архитектуры
      • Жесткость
      • Хрупкость
      • Неподвижность
  • Принцип High Cohesion / Low Coupling

✅ Лекция 9

Принципы проектирования ПО, ч.2

  • Принципы SOLID
  • Закон Деметры
  • YAGNI
  • DRY / DIE
  • KISS

✅ Лекция 10

Инструменты моделирования и проектирования - UML

  • Что такое UML?
  • Базовое понятие о нотации UML
  • Диаграмма вариантов использования
  • Диаграмма классов
  • Диаграмма размещения
  • Диаграмма последовательности
  • Диаграмма деятельности
  • Диаграмма состояний

🔥 Лекция 11

Антипаттерны

  • Понятие о паттернах и антипаттернах
  • Разные группы антипаттернов
    • Антипаттерны в ООП
    • Антипаттерны в кодировании
    • Методологические антипаттерны
    • Антипаттерны управления конфигурацией
    • Другие

Правила оценивания

Отчетные мероприятия

Научный доклад

30-минутный доклад на семинарской части курса, подготовленный студентом самостоятельно.

Основные требования к докладу:

  • Требуется подготовить презентацию
    • В презентации обязательны ссылки на источники
  • Доклад может содержать информацию по одному или нескольким пунктам (лучше всего) из списка ниже:
    • Обзор научной статьи / доклада на научной конференции на тему "методологии разработки ПО"
      • Нужно не просто пересказать статью / доклад, а провести его анализ: выделить сильные и слабые стороны, сомнительные тезисы и т.д.
    • Обзор публикации / доклада / выступления на конференции средней / крупной IT-компании с рассказом о том, как у них в компании устроены процессы разработки
      • Опять же, не просто пересказ, нужно провести анализ
      • В идеале рассматривать материалы из серии "как было" - "что сделали" - "как стало", и провести анализ, что и почему стало лучше
    • Обзор инструментов автоматизации процессов разработки / управления проектами
      • Опять же, важно провести анализ
      • Приоритет малоизвестным или сложным для освоения решениям (не нужно рассказывать про trello или рассказывать, как настроить простейший CI/CD в github actions)
        • Например, можно подготовить подробный доклад про возможности и настройку Jenkins
    • Обзор статей / докладов на тему IaaC и других современных трендов в организации процессов управления инфраструктурой
  • Презентацию + краткое описание доклада + ссылки на все источники нужно залить в этот файл README.md через pull-request

‼️ 🛑 ОБРАТИТЕ ВНИМАНИЕ: на НИС записано 30 человек. Слотов на доклады в расписании - 34. Этого хватает с запасом на всех. Если вы не запишетесь вовремя, слоты пройдут "впустую", а потом вам не хватит слота на доклад - то выступить уже не получится, можно будет только сдать материалы по докладу со штрафом в 40% оценки. Дополнительных слотов для "опоздавших" не предусмотрено.

Можно занимать слоты уже сейчас - вписывая свое ФИО. К дате доклада должно быть указано не только ФИО, но и тема доклада + загружены все материалы и добавлена ссылка на них.

Понедельный план-график

Неделя Даты Лекция Докладчик(и) Тема доклада Ссылка на материалы
Неделя №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 13/01/2025 (2 пары) Принципы проектирования ПО, ч.1 10.Тепляков Геннадий Дмитриевич 11.Филев Виктор Леонидович 12. 1. Scrum в Netflix 1. Материалы
Неделя №6 27/01/2025 (2 пары) Принципы проектирования ПО, ч.2 13.Ваньжа Кирилл Евгеньевич 14.Зуев Аким Иванович 15.Черкесов Азамат Заурович 13.Lean в стратапах 14.Scrum в IT и армии 15.Как MSF* помогла Microsoft стать IT- гигантом? 13. Материалы 14. Материалы 15. Материалы
Неделя №7 10/02/2025 (2 пары) Инструменты моделирования и проектирования - UML, ч.1 16.Газиев Саидрасул Исламбекович 17.Дёшина Кристина Валентиновна 18.Рабинович Майя 16. AGILE но не в IT 17. Как Spotify использует Agile для управления инновационными проектами 18. Docker как часть методологии разработки 16.Материалы 17.Материалы 18.Материалы
Неделя №8 17/02/2025 (1 пара) нет лекции 19.Комкова Полина Дмитриевна 20.Тупицин Тимофей Романович 21.Ляпина Екатерина Максимовна 19.Kubernetes в современных методологиях разработки ПО 20.Анализ статьи «The Terrors and Joys of Terraform» 21.Как Amazon улучшили AGILE принципы? 19.Материалы 20.Материалы 21.Материалы
Неделя №9 24/02/2025 (2 пары) Инструменты моделирования и проектирования - UML, ч.2 22.Клименко Георгий Сергеевич 23.Быков Дмитрий Александрович 24.Пирогов Даниил Игоревич 22.Базовые паттерны микросервисной архитектуры 23.Философия Clean Code 24.Использование ИИ в Agile 22.Материалы 23.Материалы 24.Материалы
Неделя №10 03/03/2025 (2 пары) нет лекции 25.Бюрчиев Тимур Зольванович 26.Колобанов Никита Дмитриевич 27.Якимов Георгий Юрьевич 28.Солод Алексей Александрович 29.Тимошкин Александр Игоревич 25.Jenkins 26.Coolify или как забыть про DevOps 27.Использование Jenkins оптимизации процессов разработки ПО 28.От каскадного подхода к гибкости: современные методологии разработки и революция Infrastructure as Code 29.Duolingo 25.Материалы 26.Материалы 27.Материалы 28.Материалы 29.Материалы
Неделя №11 10/03/2025 (2 пары) нет лекции 30.Мендус Кирилл Дмитриевич 31.Веселинович Александра Александровна 32.Щербаков Денис Олегович 33.Коробов Вячеслав Сергеевич 34.Глижинский Вячеслав Александрович 30.Planning poker: как выглядит покер в Agile? 31.Важность Chaos Engineering в современных системах 32.Agile в Web3 на примере NEAR Protocol 33.Как Сбер использует Agile 30.Материалы 31.Материалы 32.Материалы 33.Материалы
Неделя №12 17/03/2025 (1 пара) Антипаттерны нет докладов
Неделе №13 24/03/2025 УСТНЫЙ ОПРОС

Подготовленные, но не рассказанные доклады

Если вы не успели рассказать доклад, но при этом хотите заработать какие-то баллы за него - вы можете подготовить презентацию (подробную) для выбранной вами темы и выложить ее в список ниже.

Если доклад подготовлен, но не рассказан, то вы получите оценку за него со штрафом в 40% (т.е. оценка за доклад будет умножена на 0.6)

В формате ФИО - Тема - Ссылка на материалы

Крайнов Григорий Николаевич - Методология Cleanroom - https://disk.yandex.ru/d/4MaATRRYXBAblw

Отчетное эссе

3-4 страничное эссе с обзором докладов, обсуждавшихся на семинарской части

‼️ 21 марта включительно

Готовое эссе присылайте на почту [email protected], обязательно укажите тему письма "Отчетное эссе Методологии разработки", а в теле письма укажите свое ФИО и номер группы.

Планируется, что эссе будут проверены к устному опросу 24.03

Устный опрос

На знание базовых методологий разработки, их сильных и слабых сторон

Темы устного опроса - лекции №3, №4, №5, №6 (Базовые методологии разработки ПО (ч.1, ч.2) + Семейство гибких методологий)

‼️ Устный опрос пройдет 24 марта

Организационные моменты по устному опросу будут опубликованы позже

Формула оценки

Итоговая оценка = Математическое округление (0.4 * Научный доклад + 0.3 * Отчетное эссе + 0.3 * Устный опрос)

Сроки выставления оценок:

  • Оценка за доклады - ориентировочно XX
  • Оценка за эссе - ориентировочно XX
  • Оценка за устный опрос - XX
  • Итоговая оценка за курс: XX (оптимистично), XX (пессимистично)