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

Паттерны проектирования программного обеспечения

Статус: Курс по выбору (Бизнес-информатика)
Направление: 38.03.05. Бизнес-информатика
Когда читается: 3-й курс, 3 модуль
Формат изучения: без онлайн-курса
Преподаватели: Старичков Никита Юрьевич
Язык: русский
Кредиты: 3
Контактные часы: 30

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

Аннотация

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

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

  • Изучить базовые методологии описания архитектуры ПО
  • Изучить базовые принципы проектирования ПО
  • Изучить классические паттерны объектно-ориентированного проектирования
  • Выработать базовые навыки проектирования ПО в концепции ООП
Планируемые результаты обучения

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

  • Знать и понимать критерии хорошей и неудачной архитектуры.
  • Знать и понимать принципы SOLID, закон Деметры и принцип "high cohesion / low coupling"
  • Знать базовую нотацию UML2. Знать базовые диаграммы UML2 (классов, последовательности, действий). Уметь описывать архитектуру ПО с помощью диаграмм UML2
  • Знать классификацию паттернов проектирования. Понимать, что такое паттерны и антипаттерны проектирования
  • Знать порождающие паттерны, решаемые ими проблемы, и уметь применять их на практике
  • Знать структурные паттерны, решаемые ими проблемы, и уметь применять их на практике
  • Знать поведенческие паттерны, решаемые ими проблемы, и уметь применять их на практике
Содержание учебной дисциплины

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

  • Критерии хорошей и неудачной архитектуры ПО
    Эффективность, гибкость, расширяемость и др. положительные критерии архитектуры ПО. Жесткость, хрупкость и неподвижность архитектуры ПО.
  • Базовые принципы описания архитектуры ПО.
    Знакомство с UML 2. Базовые диаграммы (классов, последовательности, действий)
  • Базовые принципы проектирования
    Принципы SOLID. Закон Деметры. High cohesion / low coupling.
  • Понятие о паттернах проектирования
    Паттерны и антипаттерны. Предназначение и описание. Классификация.
  • Порождающие паттерны
    Фабричный метод. Абстрактная фабрика. Строитель. Прототип. Одиночка.
  • Структурные паттерны
    Адаптер. Мост. Компоновщик. Декоратор. Фасад. Легковес. Заместитель
  • Поведенческие паттерны
    Цепочка обязанностей. Команда. Итератор. Посредник. Снимок (хранитель). Наблюдатель. Состояние. Стратегия. Шаблонный метод. Посетитель. Понятие о двойной диспетчеризации.
Элементы контроля

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

  • неблокирующий Проект
  • неблокирующий Устный экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (3 модуль)
    0.5 * Проект + 0.5 * Устный экзамен
Список литературы

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

Рекомендуемая основная литература

  • Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон. - Санкт-Петербург : Питер, 2020. - 368 с. - ISBN 978-5-4461-1213-5. - URL: https://ibooks.ru/bookshelf/361851/reading (дата обращения: 12.10.2020). - Текст: электронный.
  • Приемы объектно - ориентированного проектирования : паттерны проектирования, Гамма, Э., 2014
  • Раджпут Динеш. Spring. Все паттерны проектирования. - Санкт-Петербург : Питер, 2019. - 320 с. - ISBN 978-5-4461-0935-7. - URL: https://ibooks.ru/bookshelf/359638/reading (дата обращения: 12.10.2020). - Текст: электронный.
  • Фримен Э. Паттерны проектирования / Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс. - Санкт-Петербург : Питер, 2017. - 656 с. - ISBN 978-5-496-00782-5. - URL: https://ibooks.ru/bookshelf/354827/reading (дата обращения: 12.10.2020). - Текст: электронный.

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

  • Буч Г., Рамбо Д., Якобсон И. - Язык UML. Руководство пользователя - Издательство "ДМК Пресс" - 2008 - 496с. - ISBN: 5-94074-334-X - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1246
  • Гома Х. - UML. Проектирование систем реального времени, параллельных и распределенных приложений - Издательство "ДМК Пресс" - 2007 - 704с. - ISBN: 5-94074-101-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1232
  • Фримен Э. Изучаем программирование на JavaScript / Э. Фримен, Э. Робсон. - Санкт-Петербург : Питер, 2015. - 640 с. - ISBN 978-5-496-01257-7. - URL: https://ibooks.ru/bookshelf/342857/reading (дата обращения: 12.10.2020). - Текст: электронный.