Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную информацию об использовании файлов cookies можно найти здесь, наши правила обработки персональных данных – здесь. Продолжая пользоваться сайтом, вы подтверждаете, что были проинформированы об использовании файлов cookies сайтом НИУ ВШЭ и согласны с нашими правилами обработки персональных данных. Вы можете отключить файлы cookies в настройках Вашего браузера.

  • A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2023/2024

Конструирование программного обеспечения

Статус: Курс по выбору (Программная инженерия)
Направление: 09.03.04. Программная инженерия
Когда читается: 2-й курс, 2-4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 8
Контактные часы: 136

Программа дисциплины

Аннотация

Дисциплина охватывает ключевые аспекты современных методов и средств создания программного обеспечения с применением инструментов и технологий используемых в промышленной разработке. В процессе освоения курса студенты получат представление о программировании как технологическом процессе, познакомятся с ключевыми архитектурами программного обкспечения и паттернами проектирования, приобретут навыки применения инструментальных средств в разработке и тестировании ПО и развертывания программ.
Цель освоения дисциплины

Цель освоения дисциплины

  • Целью освоения дисциплины является теоретическая и практическая подготовка студентов в области технологий разработки программ в такой степени, чтобы они могли выбирать необходимые технические, алгоритмические, программные и технологические решения, уметь объяснить принципы их функционирования и правильно их использовать. Иметь представление о каждом этапе жизненного цикла программы от проектирования до внедрения и сопровождения. Знать современные стандарты качества программного обеспечения и перспективные направления развития технологии разработки ПО для дальнейшего профессионального развития в этой области.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знание принципов объектно-ориентированного программирования, основных программных архитектур и паттернов проектирования программного обеспечения
  • Умение создавать клиент-серверные приложения с базами данных
  • Навыки применения инструментальных средств в разработке и тестировании
  • Знание ключевых аспектор слоистой архитектуры как совокупность важнейших решений организации программной системы.
  • Проектировать слой доступа к данным (DAL).
  • Уметь реализовывать внедрение зависимостей
  • Проектировать приложения приложение согласно правилам (рекомендациям) архитектурных решений MVP и MVC
  • Gроектровать приложение согласно правилам архитектурного паттерна MVVM двумя различными подходами: ViewModel first и View first.
  • Замечать в коде типичные проблемы, которые можно решить пораждающими паттернами.
  • Уметь замечать в коде типичные ошибки, которые можно решить структурными паттернами.
  • Уметь находить типичные ошибки в коде, которые можно решить поведенческими паттернами.
  • Уметь строить приложения в стиле REST
  • Уметь проектировать клиент-серверное взаимодействие через gRPC
  • Настраивать непрерывную интеграцию и непрерывную поставку.
  • Использовать инструментальные средства для развёртывания проекта
  • Уметь применять различные виды тестирования ПО
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Основы ООП, принципы и концепции программирования
  • Основы языка UML
  • Основы языка программирования Kotlin
  • Применение паттернов проектирования в разработке
  • Основы проектирования БД
  • Основы многопоточности
  • Основы сетевого взаимодействия
  • Архитектурные паттерны
  • Фреймворки
  • Основы создания клиентских приложений на Kotlin
Элементы контроля

Элементы контроля

  • неблокирующий Активность_2М
    Учитывается активность на лекциях и семинарах
  • неблокирующий ДЗ_2М
  • неблокирующий КР_2М
  • неблокирующий Активность_3М
    активность на лекциях и семинарах
  • неблокирующий ДЗ_3М
  • неблокирующий КР_4М
    темы по всему курсу
  • неблокирующий КР_3М
    финальный коллоквиум на последнем занятии в 3м модуле (практическая задача и устный вопрос, на который нужно ответить без подготовки
  • неблокирующий ДЗ_4
  • неблокирующий Активность_4М
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 3 модуль
    НАКОП_Mx — накопленные баллы в модуле x АУД_Mx — аудиторная активность на лекциях и семинарах в модуле x ДЗ_Mx — оценка за все ДЗ в модуле x КР_M2 — оценка за итоговую контрольную работу (коллоквиум) в модуле 2 Модули 2 и 3 НАКОП_M2 = 0,3 * АУД_M2 + 0,4 * ДЗ_M2 + 0,3 * КР_M2 НАКОП_M3 = 0,4 * АУД_M3 + 0,6 * ДЗ_M3 НАКОП_СР_М2_3 = (НАКОП_M2 + НАКОП_M3) / 2 ПРОМ_ЭКЗ_M3 — оценка за блокирующий экзамен (промежуточная аттестация) в модуле 3, полностью блокирует ПРОМ_ОЦЕН_M3 АВТОМАТ_M3 = (НАКОП_СР_М2_3 ≥ 8) Если (АВТОМАТ_M3), то ПРОМ_ЭКЗ_M3 = НАКОП_СР_М2_3 ПРОМ_ОЦЕН_M3 = 0,65 * НАКОП_СР_М2_3 + 0,35 * ПРОМ_ЭКЗ_M3 (округляется к ближайшему целому)
  • 2023/2024 учебный год 4 модуль
    Формула оценки за курс КПО НАКОП_Mx — накопленные баллы в модуле x АУД_Mx — аудиторная активность на лекциях и семинарах в модуле x ДЗ_Mx — оценка за все ДЗ в модуле x КР_M2 — оценка за итоговую контрольную работу (коллоквиум) в модуле 2 Модуль 4 НАКОП_M4 = 0,4 * АУД_M4 + 0,6 * ДЗ_M4 СР_НАКОП = (ПРОМ_ОЦЕН_M3 + НАКОП_M4) / 2 ПРОМ_ЭКЗ_M4 — оценка за блокирующий экзамен (промежуточная аттестация) в модуле 4, полностью блокирует ПРОМ_ОЦЕН_M4 и, соответственно, ФИН_ОЦЕН ПРОМ_ОЦЕН_M4 = 0,7 * НАКОП_М4 + 0,3 * ПРОМ_ЭКЗ_M4 Автомат за экзамен в модуле 4: АВТОМАТ_M4 = (СР_НАКОП ≥ 8) Если (АВТОМАТ_M4), то ПРОМ_ЭКЗ_М4 = СР_НАКОП ФИН_ОЦЕН — итоговая оценка за курс в модуле 4, которая идет в аттестат (округляется к ближайшему целому) ФИН_ОЦЕН = 0,65 * ПРОМ_ОЦЕН_M3 + 0,35 * ПРОМ_ОЦЕН_M4 Любое ДЗ в модуле х, где НАКОП_Mx < 4, можно пересдать со штрафом 50 %. Пересдача ДЗ возможна до начала сессии модуля х. При сдаче ДЗ в модуле х после дедлайна, начисляется штраф в 10 % от оценки за каждые сутки, но не более 50 %. Сдача ДЗ возможна до начала сессии модуля х. ПРОМ_ЭКЗ_Мх – промежуточный экзамен в модуле х (где х = 3 или х = 4) – включает решение практической задачи студентом на компьютере и его ответы на короткие устные вопросы преподавателя.
Список литературы

Список литературы

Рекомендуемая дополнительная литература

  • Приемы объектно-ориентированного проектирования. Паттерны проектирования : пер. с англ., Гамма Э., 2013

Авторы

  • Александров Дмитрий Владимирович
  • Гринкруг Ефим Михайлович
  • Буцкая Евгения Александровна