2019/2020
Технологии программирования
Статус:
Дисциплина общефакультетского пула
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1, 2 модуль
Язык:
русский
Кредиты:
2
Контактные часы:
58
Программа дисциплины
Аннотация
Курс состоит из лекций и семинарских занятий. Лекционный материал включает краткий обзор важных с точки зрения процесса разработки понятий: методы отладки и этапы исправления дефектов ПО, критерии хорошей и неудачной архитектуры, этапы проектирования и разработки, антипаттерны, методологии разработки. Семинарский материал состоит из детального обзора паттернов проектирования, а также рассказа о важных инструментах программиста: системы контроля версий, системы сборки, gdb, valgrid, развертывание и настройка систем непрерывной интеграции. Цель курса — дать слушателям, которые параллельно изучают языки программирования, алгоритмы и т. п., информацию и дополнительные знания, какими инструментами можно пользоваться и на что обращать внимание при создании рыночного программного продукта.
Цель освоения дисциплины
- Рассматриваются общие подходы к созданию программных продуктов. Кратко охватываются вопросы архитектуры ПО, проектирования ПО, паттернов проектирования, devops
Планируемые результаты обучения
- Знать основы проектирования ПО
- Знать основы и инструменты разработки ПО
Содержание учебной дисциплины
- Паттерны проектированияa) порождающие b) структурные c) поведенческие
- Антипаттерныa) в ООП b) в кодировании c) методологические d) управления конфигурацией e) прочие
- Инструменты разработки ПОa) основы bash, простейшие скрипты b) системы контроля версий, примеры c) системы сборки, рассказ о cmake d) gdb, valgrind e) инструменты для кросс-компиляции f) инструменты Сontinious Integration / Delivery / Deployment
- Критерии хорошей архитектурыa) эффективность i. надежность ii. безопасность iii. производительность iv. масштабируемость b) гибкость c) расширяемость d) другие
- Критерии неудачной архитектурыa) жесткость b) хрупкость c) неподвижность
- Принципы проектированияa) high cohesion + low coupling b) SOLID c) закон Деметры
- Этапы проектирования и разработкиa) формирование требований b) разработка концепции c) техническое задание d) эскизный проект e) технический проект f) рабочая документация g) поставка / ввод в действие h) сопровождение
- Методологии разработкиa) каскадная модель b) V-модель c) инкрементная модель d) итерационная модель e) спиральная модель f) RAD-модель g) гибкие методологии
- Этапы исправления дефектов ПОa) воспроизведение b) анализ c) дизайн исправления d) исправление e) валидация исправления f) интеграция исправления g) дополнительные валидации
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.3 * Работа не семинарах + 0.7 * Экзамен
Список литературы
Рекомендуемая основная литература
- Лаврищева Е. М. - ПРОГРАММНАЯ ИНЖЕНЕРИЯ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ СЛОЖНЫХ СИСТЕМ 2-е изд., испр. и доп. Учебник для вузов - М.:Издательство Юрайт - 2019 - 432с. - ISBN: 978-5-534-07604-2 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/programmnaya-inzheneriya-i-tehnologii-programmirovaniya-slozhnyh-sistem-436514
Рекомендуемая дополнительная литература
- Барков И.А. - Объектно-ориентированное программирование: учебник - Издательство "Лань" - 2019 - 700с. - ISBN: 978-5-8114-3586-9 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/119661
- Зыков С.В. - Введение в теорию программирования. Объектно-ориентированный подход - Национальный Открытый Университет "ИНТУИТ" - 2016 - 188с. - ISBN: 5-9556-0009-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100717
- Сысоев А.В., Козинов Е.А., Мееров И.Б. - Технологии программирования на базе Microsoft Solutions Framework - Национальный Открытый Университет "ИНТУИТ" - 2016 - 154с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100518