Бакалавриат
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) – включает решение практической задачи студентом на компьютере и его ответы на короткие устные вопросы преподавателя.