МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Паттерны проектирования и разработки приложений

рабочая программа дисциплины
Закреплена за кафедройКафедра цифровых технологий и бизнес-аналитики
Направление подготовки09.03.03. Прикладная информатика
ПрофильУправление IT-проектами; ERP-системы и прикладное программирование
Форма обученияЗаочная
Общая трудоемкость3 ЗЕТ
Учебный планz09_03_03_Прикладная информатика_Профили-2023
Часов по учебному плану 108
в том числе:
аудиторные занятия 14
самостоятельная работа 90
контроль 4
Виды контроля по курсам
зачеты: 3

Распределение часов по курсам

Курс 3 Итого
Вид занятий УПРПДУПРПД
Лекции 4 4 4 4
Лабораторные 10 10 10 10
Сам. работа 90 90 90 90
Часы на контроль 4 4 4 4
Итого 108 108 108 108

Программу составил(и):
канд. техн. наук, доцент, Стерлягов С.П.

Рецензент(ы):
канд. физ.-мат. наук, доцент, Патудин В.М.

Рабочая программа дисциплины
Паттерны проектирования и разработки приложений

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования - бакалавриат по направлению подготовки 09.03.03 Прикладная информатика (приказ Минобрнауки России от 19.09.2017 г. № 922)

составлена на основании учебного плана:
09.03.03 Прикладная информатика
утвержденного учёным советом вуза от 26.06.2023 протокол № 4.

Рабочая программа одобрена на заседании кафедры
Кафедра цифровых технологий и бизнес-аналитики

Протокол от 14.04.2023 г. № 8
Срок действия программы: 20232025 уч. г.

Заведующий кафедрой
Шаховалов Николай Николаевич


Визирование РПД для исполнения в очередном учебном году

Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2023-2024 учебном году на заседании кафедры

Кафедра цифровых технологий и бизнес-аналитики

Протокол от 14.04.2023 г. № 8
Заведующий кафедрой Шаховалов Николай Николаевич


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

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

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: Б1.В.01

3. Компетенции обучающегося, формируемые в результате освоения дисциплины

ПК-1Способен выполнять моделирование архитектуры предприятия, разработку требований и проектирование программного обеспечения
ПК-1.1 Знает концепцию архитектуры предприятия, нотации моделирования бизнес-процессов и программного обеспечения
ПК-1.2 Умеет описывать архитектуру предприятия, разрабатывать модели бизнес-процессов, выполнять объектно- ориентированный анализ и проектирование программного обеспечения
ПК-1.3 Владеет инструментами моделирования архитектуры предприятия и е? элементов, технологией проектирования программного обеспечения по методологии MDA
ПК-2Способен выполнять работы по созданию, внедрению, сопровождению и модификации информационных систем в прикладных областях
ПК-2.1 Знает модели жизненного цикла и методологии созданию информационных систем
ПК-2.2 Умеет выполнять базовые работы по созданию, внедрению, сопровождению и модификации информационных систем в прикладных областях
ПК-2.3 Владеет технологиями создания, внедрения, сопровождения и модификации информационных систем в прикладных областях
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.Основные принципы построения современного программного обеспечения, типичные формы применения шаблонов проектирования.
Основные паттерны объектно-ориентированного программирования.
Основные принципы разработки на современных объектно-ориентированных языках программирования
Базовые принципы объектно-ориентированного моделирования систем и принципы проектирования сложных систем;
Способы (шаблоны) и этапы построения проекта в среде моделирования;
Технологию разработки проекта программной системы на базе унифицированного языка UML.
3.2.Уметь:
3.2.1.Уметь строить модель программного обеспечения на основе UML-диаграмм, применять основные паттерны проектирования.
Разрабатывать программное обеспечение информационных систем с применением паттернов объектно-ориентированного программирования.
Разрабатывать программные продукты на современных объектно-ориентированных языках программирования.
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.Оценки необходимости и эффективности применения в разработке крупных программных комплексов требуемых паттернов.
Применять паттерны для разработки на современных объектно-ориентированных языках программирования.
Применения современных методов проектирования программного обеспечения; современных методов оценки качества программного обеспечения.

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Курс Часов Компетенции Литература
Раздел 1. Объектно-ориентированный подход к созданию информационных систем
1.1. Основные определения предмета курса и основные понятия. Сравнительный анализ различных парадигм программирования. Структурное программирование. Процедурное программирование. Объектно-ориентированное программирование. Лекции 3 0,5 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
1.2. Изучение конспектов лекций. Подготовка к практическим занятиям. Сам. работа 3 12 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
Раздел 2. Объектно-ориентированный анализ и проектирование
2.1. Декомпозиция. Базовые принципы проектирования. Восходящее и нисходящее проектирование. Объектно-ориентированный подход. Состояние, поведение и идентичность объекта. Принципы объектно-ориентированного проектирования. Архитектурные паттерны. Паттерны проектирования. Паттерны анализа. Паттерны тестирования. Паттерны реализации. Лекции 3 0,5 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
2.2. Использование паттернов проектирования при разработке приложений Лабораторные 3 2 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
2.3. Объектно-ориентированное моделирование, язык UML Модели в различных областях человеческой деятельности. Роль моделирования в процессе разработки. UML и его назначение. Функциональные требования и диаграммы использования. Система, действующие лица и варианты использования. Включение и расширение. Диаграммы активностей. Моделирование бизнес-процессов: диаграммы BPMN и IDEF0. Лекции 3 0,5 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
2.4. Диаграммы классов и моделирование предметной области. Моделирование взаимодействия объектов. Способы моделирования свойств. Ассоциации, обобщение, зависимости. Диаграммы компонент и диаграммы размещения. Моделирование данных: ER, UML диаграммы. Диаграммы состояний и их применение для описания поведения реактивных систем. Диаграммы последовательности и взаимодействия, коммуникационные диаграммы. Лекции 3 0,5 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
2.5. Создание структурных диаграмм UML Лабораторные 3 1 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
2.6. Создание поведенческих диаграмм UML Лабораторные 3 1 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
2.7. Изучение конспектов лекций. Подготовка к практическим занятиям. Сам. работа 3 22 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
Раздел 3. Шаблоны проектирования
3.1. Структурные шаблоны. Паттерн Adapter. Паттерн Bridge. Паттерн Composite. Паттерн Decorator. Рекурсивная композиция, использование полиморфизма и композиции при едином базовом интерфейсе. Выделение алгоритма в объект, шаблон Strategy. Сокрытие реализации. Проектирование удаленного и отложенного выполнения. Лекции 3 0,5 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
3.2. Использование структурных паттернов при разработке приложений Лабораторные 3 1 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
3.3. Порождающие шаблоны. Паттерн Abstract Factory. Паттерн Builder. Паттерн Factory Method. Паттерн Prototype. Паттерн Singleton. Поведенческие шаблоны. Паттерн Chain of Responsibility. Паттерн Command. Паттерн Interpreter. Паттерн Iterator. Паттерн Mediator. Лекции 3 0,5 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
3.4. Использование паттернов поведения при разработке приложений Лабораторные 3 1 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
3.5. Изучение конспектов лекций. Подготовка к практическим занятиям. Сам. работа 3 24 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
Раздел 4. Архитектурные шаблоны
4.1. Архитектурные стили. Понятие архитектурного шаблона и стиля. Основные архитектурные шаблоны. Многоуровневая архитектура. Каналы и фильтры. Клиент — сервер. Модель — представление — контроллер. Управляемая событиями архитектура. Архитектура на основе микросервисов. Лекции 3 1 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
4.2. Разбор архитектур существующих приложений. Лабораторные 3 2 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
4.3. Изучение конспектов лекций. Подготовка к практическим занятиям. Сам. работа 3 16 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
4.4. Подготовка к тесту. Сам. работа 3 16 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1
4.5. Итоговое тестирование Лабораторные 3 2 ПК-2.1, ПК-2.2, ПК-2.3, ПК-1.1, ПК-1.2, ПК-1.3 Л1.2, Л2.1, Л2.2, Л3.1, Л1.1

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
Практические задания
Средствами UML построить объектную модель предметной области, применить при этом один из паттернов, обосновав применение, или обосновать неэффективность применение паттернов в данной модели. Список возможных предметных областей приведен ниже.
1. Страховая компания
Описание предметной области
Вы работаете в страховой компании. Вашей задачей является отслеживание финансовой деятельности компании.
Компания имеет различные филиалы по всей стране. Каждый филиал характеризуется названием, адресом и телефоном. Деятельность компании организована следующим образом: к Вам обращаются различные лица с целью заключения договора о страховании. В зависимости от принимаемых на страхование объектов и страхуемых рисков, договор заключается по определенному виду страхования (например, страхование автотранспорта от угона, страхование домашнего имущества, добровольное медицинское страхование). При заключении договора Вы фиксируете дату заключения, страховую сумму, вид страхования, тарифную ставку и филиал, в котором заключался договор.
Классы объектов
Договоры (Номер договора, Дата заключения, Страховая сумма, Тарифная ставка, Филиал, Вид страхования).
Вид страхования (Вид страхования, Наименование).
Филиал (Филиал, Наименование филиала, Адрес, Телефон).
Развитие постановки задачи
Нужно учесть, что договоры заключают страховые агенты. Помимо информации об агентах (фамилия, имя, отчество, адрес, телефон), нужно еще хранить филиал, в котором работают агенты. Кроме того, исходя из базы данных, нужно иметь возможность рассчитывать заработную плату агентам. Заработная плата составляет некоторый процент от страхового платежа (страховой платеж это страховая сумма, умноженная на тарифную ставку). Процент зависит от вида страхования, по которому заключен договор.
2. Гостиница
Описание предметной области
Вы работаете в гостинице. Вашей задачей является отслеживание финансовой стороны работы гостиницы.
Ваша деятельность организована следующим образом: гостиница предоставляет номера клиентам на определенный срок. Каждый номер характеризуется вместимостью, комфортностью (люкс, полулюкс, обычный) и ценой. Вашими клиентами являются различные лица, о которых Вы собираете определенную информацию (фамилия, имя, отчество и некоторый комментарий). Сдача номера клиенту производится при наличии свободных мест в номерах, подходящих клиенту по указанным выше параметрам. При поселении фиксируется дата поселения. При выезде из гостиницы для каждого места запоминается дата освобождения.
Классы объектов
Клиенты (Клиент, Фамилия, Имя, Отчество, Паспортные данные, Комментарий).
Номера (Номер, Количество человек, Комфортность, Цена).
Поселение (Клиент, Номер, Дата поселения, Дата освобождения, Примечание).
Развитие постановки задачи
Необходимо хранить информацию не только по факту сдачи номера клиенту, но и осуществлять бронирование номеров. Кроме того, для постоянных клиентов, а также для определенных категорий клиентов, предусмотрена система скидок. Скидки могут суммироваться.
Внести в структуру сущностей изменения, учитывающие этот факт, и изменить существующие запросы. Добавить новые запросы.
3. Ломбард
Описание предметной области
Вы работаете в ломбарде. Вашей задачей является отслеживание финансовой стороны работы ломбарда.
Деятельность Вашей компании организована следующим образом: к Вам обращаются различные лица с целью получения денежных средств под залог определенных товаров. У каждого из приходящих к Вам клиентов Вы запрашиваете фамилию, имя, отчество и другие паспортные данные. После оценивания стоимости принесенного в качестве залога товара Вы определяете сумму, которую готовы выдать на руки клиенту, а также свои комиссионные. Кроме того, определяете срок возврата денег. Если клиент согласен, то Ваши договоренности фиксируются в виде документа, деньги выдаются клиенту, а товар остается у Вас. В случае если в указанный срок не происходит возврата денег, товар переходит в Вашу собственность.
Классы объектов
Клиенты (Клиент, Фамилия, Имя, Отчество, Номер паспорта, Серия паспорта, Дата выдачи паспорта).
Категории товаров (Категория товаров, Название, Примечание).
Сдача в ломбард (Категория товаров, Клиент, Описание товара, Дата сдачи, Дата возврата, Сумма, Комиссионные).
Развитие постановки задачи
После перехода прав собственности на товар, ломбард может продавать товары по цене, меньшей или большей, чем была заявлена при сдаче. Цена может меняться несколько раз, в зависимости от ситуации на рынке. (Например, владелец ломбарда может устроить распродажу зимних вещей в конце зимы). Помимо текущей цены, нужно хранить все возможные значения цены для данного товара.
4. Реализация готовой продукции
Описание предметной области
Вы работаете в компании, занимающейся оптово-розничной продажей различных товаров. Вашей задачей является отслеживание финансовой стороны работы компании.
Деятельность Вашей компании организована следующим образом: Ваша компания торгует товарами из определенного спектра. Каждый из этих товаров характеризуется наименованием, оптовой ценой, розничной ценой и справочной информацией. В Вашу компанию обращаются покупатели. Для каждого из них Вы запоминаете в базе данных стандартные данные (наименование, адрес, телефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с покупателем количество купленного им товара и дату покупки.
Классы объектов
Товары (Наименование, Оптовая цена, Розничная цена, Описание).
Покупатели (Телефон, Контактное лицо, Адрес).
Сделки (Дата сделки, Товар, Количество, Покупатель, Признак оптовой продажи).
Развитие постановки задачи
Теперь ситуация изменилась. Выяснилось, что обычно покупатели в рамках одной сделки покупают не один товар, а сразу несколько. Также компания решила предоставлять скидки в зависимости от количества закупленных товаров и их общей стоимости.
5. Ведение заказов
Описание предметной области
Вы работаете в компании, занимающейся оптовой продажей различных товаров. Вашей задачей является отслеживание финансовой стороны работы компании.
Деятельность Вашей компании организована следующим образом: Ваша компания торгует товарами из определенного спектра. Каждый из этих товаров характеризуется ценой, справочной информацией и признаком наличия или отсутствия доставки. В Вашу компанию обращаются заказчики. Для каждого из них Вы запоминаете в базе данных стандартные данные (наименование, адрес, телефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с заказчиком количество купленного им товара и дату покупки.
Классы объектов
Заказчики (Наименование, Адрес, Телефон, Контактное лицо).
Товары (Цена, Доставка, Описание).
Заказы (Заказчик, Товар, Количество, Дата).
Развитие постановки задачи
Теперь ситуация изменилась. Выяснилось, что доставка разных товаров может производиться разными способами, различными по цене и скорости. Нужно хранить информацию по тому, какими способами может осуществляться доставка каждого товара и информацию о том, какой вид доставки (а, соответственно, и какую стоимость доставки) выбрал клиент при заключении сделки.
6. Бюро по трудоустройству
Описание предметной области
Вы работаете в бюро по трудоустройству. Вашей задачей является отслеживание финансовой стороны работы компании.
Деятельность Вашего бюро организована следующим образом: Ваше бюро готово искать работников для различных работодателей и вакансии для ищущих работу специалистов различного профиля. При обращении к Вам клиента-работодателя, его стандартные данные (название, вид деятельности, адрес, телефон) фиксируются в базе данных. При обращении к Вам клиента-соискателя, его стандартные данные (фамилия, имя, отчество, квалификация, профессия, иные данные) также фиксируются в базе данных. По каждому факту удовлетворения интересов обеих сторон составляется документ. В документе указываются соискатель, работодатель, должность и комиссионные (доход бюро).
Классы объектов
Работодатели (Название, Вид деятельности, Адрес, Телефон). Сделки (Работодатель, Должность, Комиссионные). Соискатели (Фамилия, Имя, Отчество, Квалификация, Вид деятельности, Иные данные, Предполагаемый размер заработной платы).
Развитие постановки задачи
Оказалось, что база данных не совсем точно описывает работу бюро. В базе фиксируется только сделка, а информация по открытым вакансиям не храниться. Кроме того, для автоматического поиска вариантов, необходимо вести справочник «виды деятельности».
7. Нотариальная контора
Описание предметной области
Вы работаете в нотариальной конторе. Вашей задачей является отслеживание финансовой стороны работы компании.
Деятельность Вашей нотариальной конторы организована следующим образом: Ваша фирма готова предоставить клиенту определенный комплекс услуг. Для наведения порядка Вы формализовали эти услуги, составив их список с описанием каждой услуги. При обращении к Вам клиента, его стандартные данные (название, вид деятельности, адрес, телефон) фиксируются в базе данных. По каждому факту оказания услуги клиенту составляется документ. В документе указываются услуга, сумма сделки, комиссионные (доход конторы), описание сделки.
Классы объектов
Клиенты (Название, Вид деятельности, Адрес, Телефон).
Сделки (Клиент, Услуга, Сумма, Комиссионные, Описание).
Услуги (Название, Описание).
Развитие постановки задачи
Теперь ситуация изменилась. В рамках одной сделки клиенту может быть оказано несколько услуг. Стоимость каждой услуги фиксирована. Кроме того, компания предоставляет в рамках одной сделки различные виды скидок. Скидки могут суммироваться.
8. Фирма по продаже запчастей
Описание предметной области
Вы работаете в фирме, занимающейся продажей запасных частей для автомобилей. Вашей задачей является отслеживание финансовой стороны работы компании.
Основная часть деятельности, находящейся в Вашем ведении, связана с работой с поставщиками. Фирма имеет определенный набор поставщиков, по каждому из которых известны название, адрес и телефон. У этих поставщиков Вы приобретаете детали. Каждая деталь наряду с названием характеризуется артикулом и ценой (считаем цену постоянной). Некоторые из поставщиков могут поставлять одинаковые детали (один и тот же артикул). Каждый факт покупки запчастей у поставщика фиксируется в базе данных, причем обязательными для запоминания являются дата покупки и количество приобретенных деталей.
Классы объектов
Поставщики (Поставщик, Название, Адрес, Телефон).
Детали (Название, Артикул, Цена, Примечание).
Поставки (Поставщик, Деталь, Количество, Дата).
Развитие постановки задачи
Теперь ситуация изменилась. Выяснилось, что цена детали может меняться от поставки к поставке. Поставщики заранее ставят Вас в известность о дате изменения цены и о его новом значении. Нужно хранить не только текущее значение цены, но и всю историю изменения цен.
9. Курсы по повышению квалификации
Описание предметной области
Вы работаете в учебном заведении и занимаетесь организацией курсов повышения квалификации.
В Вашем распоряжении имеются сведения о сформированных группах студентов. Группы формируются в зависимости от специальности и отделения. В каждой из них включено определенное количество студентов. Проведение занятий обеспечивает штат преподавателей. Для каждого из них у Вас в базе данных зарегистрированы стандартные анкетные данные (фамилия, имя, отчество, телефон) и стаж работы. В результате распределения нагрузки Вы получаете информацию о том, сколько часов занятий проводит каждый преподаватель с соответствующими группами. Кроме того, хранятся также сведения о виде проводимых занятий (лекции, практика), предмете и оплате за 1 час.
Классы объектов
Группы (Специальность, Отделение, Количество студентов).
Преподаватели (Фамилия, Имя, Отчество, Телефон, Стаж).
Нагрузка (Преподаватель, Группа, Количество часов, Предмет, Тип занятия, Оплата).
Развитие постановки задачи
В результате работы с базой данных выяснилось, что размер почасовой оплаты зависит от предмета и типа занятия. Кроме того, каждый преподаватель может вести не все предметы, а только некоторые.
10. Определение факультативов для студентов
Описание предметной области
Вы работаете в высшем учебном заведении и занимаетесь организацией факультативов.
В Вашем распоряжении имеются сведения о студентах, включающие стандартные анкетные данные (фамилия, имя, отчество, адрес, телефон). Преподаватели Вашей кафедры должны обеспечить проведение факультативных занятий по некоторым предметам. По каждому факультативу существует определенное количество часов и вид проводимых занятий (лекции, практика, лабораторные работы). В результате работы со студентами у Вас появляется информация о том, кто из них записался на какие факультативы. Существует некоторый минимальный объем факультативных предметов, которые должен прослушать каждый студент. По окончанию семестра Вы заносите информацию об оценках, полученных студентами на экзаменах.
Классы объектов
Студенты (Фамилия, Имя, Отчество, Адрес, Телефон).
Предметы (Название, Объем лекций, Объем практик, Объем лабораторных работ).
Учебный план (Студент, Предмет, Оценка).
Развитие постановки задачи
Теперь ситуация изменилась. Выяснилось, что некоторые из факультативов могут длиться более одного семестра. В каждом семестре для предмета устанавливается объем лекций, практик и лабораторных работ в часах. В качестве итоговой оценки за предмет берется последняя оценка, полученная студентом.
11. Распределение учебной нагрузки
Описание предметной области
Вы работаете в высшем учебном заведении и занимаетесь распределением нагрузки между преподавателями кафедры.
В Вашем распоряжении имеются сведения о преподавателях кафедры, включающие наряду с анкетными данными сведения об их ученой степени, занимаемой административной должности и стаже работы. Преподаватели Вашей кафедры должны обеспечить проведение занятий по некоторым предметам. По каждому из них существует определенное количество часов. В результате распределения нагрузки у Вас должна получится информация следующего рода: «Такой-то преподаватель проводит занятия по такому-то предмету с такой-то группой».
Классы объектов
Преподаватели (Фамилия, Имя, Отчество, Ученая степень, Должность, Стаж).
Предметы (Название, Количество часов).
Нагрузка (Преподаватель, Предмет, Номер группы).
Развитие постановки задачи
Теперь ситуация изменилась. Выяснилось, что все проводимые занятия делятся на лекционные и практические. По каждому виду занятий устанавливается свое количество часов. Кроме того, данные по нагрузке нужно хранить несколько лет.
12. Распределение дополнительных обязанностей
Описание предметной области
Вы работаете в коммерческой компании и занимаетесь распределением дополнительных разовых работ. Вашей задачей является отслеживание хода выполнения дополнительных работ.
Компания имеет определенный штат сотрудников, каждый из которых получает определенный оклад. Время от времени, возникает потребность в выполнении некоторой дополнительной работы, не входящей в круг основных должностных обязанностей сотрудников. Для наведения порядка в этой сфере деятельности Вы проклассифицировали все виды дополнительных работ, определившись с суммой оплаты по факту их выполнения. При возникновении дополнительной работы определенного вида Вы назначаете ответственного, фиксируя дату начала. По факту окончания Вы фиксируете дату и выплачиваете дополнительную сумму к зарплате с учетом Вашей классификации.
Классы объектов
Сотрудники (Фамилия, Имя, Отчество, Оклад).
Виды работ (Описание, Оплата за день).
Работы (Сотрудник, Вид работ, Дата начала, Дата окончания).
Развитие постановки задачи
Теперь ситуация изменилась. Выяснилось, что некоторые из дополнительных работ являются достаточно трудоемкими и, в то же время, срочными, что требует привлечения к их выполнению нескольких сотрудников. Также оказалось, что длительность работ в каждом конкретном случае составляет разную величину. Соответственно, нужно заранее планировать длительность работы и количество сотрудников, занятых для выполнения работы.
13. Техническое обслуживание станков
Описание предметной области
Ваше предприятие занимается ремонтом станков и другого промышленного оборудования. Вашей задачей является отслеживание финансовой стороны деятельности предприятия.
Клиентами Вашей компании являются промышленные предприятия, оснащенные различным сложным оборудованием. В случае поломок оборудования они обращаются к Вам.
Ремонтные работы в Вашей компании организованы следующим образом: все станки проклассифицированы по странам-производителям, годам выпуска и маркам. Все виды ремонта отличаются названием, продолжительностью в днях, стоимостью. Исходя из этих данных, по каждому факту ремонта Вы фиксируете вид станка и дату начала ремонта.
Классы объектов
Виды станков (Страна, Год выпуска, Марка).
Виды ремонта (Название, Продолжительность, Стоимость, Примечания).
Ремонт (Вид станка, Ремонт, Дата начала, Примечания).
Развитие постановки задачи
Теперь ситуация изменилась. Несложный анализ показал, что нужно не просто подразделять станки по типам, а иметь информацию о том, сколько раз ремонтировался тот или иной конкретный станок.
14. Туристическая фирма
Описание предметной области
Вы работаете в туристической компании. Ваша компания работает с клиентами, продавая им путевки. Вашей задачей является отслеживание финансовой стороны деятельности фирмы.
Работа с клиентами в Вашей компании организована следующим образом: у каждого клиента, пришедшего к Вам, собираются некоторые стандартные данные – фамилия, имя, отчество, адрес, телефон. После этого Ваши сотрудники выясняют у клиента, куда он хотел бы поехать отдыхать. При этом ему демонстрируются различные варианты, включающие страну проживания, особенности местного климата, имеющиеся отели разного класса. Наряду с этим, обсуждается возможная длительность пребывания и стоимость путевки. В случае если удалось договориться, и найти для клиента приемлемый вариант, Вы регистрируете факт продажи путевки (или путевок, если клиент покупает сразу несколько путевок), фиксируя дату отправления. Иногда Вы решаете предоставить клиенту некоторую скидку.
Классы объектов
Маршруты (Страна, Климат, Длительность, Отель, Стоимость).
Путевки (Маршрут, Клиент, Дата отправления, Количество, Скидка).
Клиенты (Фамилия, Имя, Отчество, Адрес, Телефон).
Развитие постановки задачи
Теперь ситуация изменилась. Фирма работает с несколькими отелями в нескольких странах. Путевки продаются на одну, две или четыре недели. Стоимость путевки зависит от длительности тура и отеля. Скидки, которые предоставляет фирма, фиксированы. Например, при покупке более 1 путевки, предоставляется скидка 5
15. Грузовые перевозки
Описание предметной области
Вы работаете в компании, занимающейся перевозками грузов. Вашей задачей является отслеживание стоимости перевозок с учетом заработной платы водителей.
Ваша компания осуществляет перевозки по различным маршрутам. Для каждого маршрута Вы определили некоторое название, вычислили примерное расстояние и установили некоторую оплату для водителя. Информация о водителях включает фамилию, имя, отчество и стаж. Для проведения расчетов Вы храните полную информацию о перевозках (маршрут, водитель, даты отправки и прибытия). По факту некоторых перевозок водителям выплачивается премия.
Классы объектов
Маршруты (Название, Дальность, Количество дней в пути, Оплата).
Водители (Фамилия, Имя, Отчество, Стаж).
Проделанная работа (Маршрут, Водитель, Дата отправки, Дата возвращения, Премия).
Развитие постановки задачи
Теперь ситуация изменилась. Ваша фирма решила ввести гибкую систему оплаты. Так, оплата водителям должна теперь зависеть не только от маршрута, но и от стажа водителя. Кроме того, нужно учесть, что перевозку могут осуществлять два водителя.
16. Учет телефонных переговоров
Описание предметной области
Вы работаете в коммерческой службе телефонной компании. Компания предоставляет абонентам телефонные линии для междугородних переговоров. Вашей задачей является отслеживание стоимости междугородних телефонных переговоров.
Абонентами компании являются юридические лица, имеющие телефонную точку, ИНН, расчетный счет в банке. Стоимость переговоров зависит от города, в который осуществляется звонок, и времени суток (день, ночь). Каждый звонок абонента автоматически фиксируется в базе данных. При этом запоминаются город, дата, длительность разговора и время суток.
Классы объектов
Абоненты (Номер телефона, ИНН, Адрес).
Города (Название, Тариф дневной, Тариф ночной).
Переговоры (Абонент, Город, Дата, Количество минут, Время суток).
Развитие постановки задачи
Теперь ситуация изменилась. Ваша фирма решила ввести гибкую систему скидок. Так, стоимость минуты теперь уменьшается в зависимости от длительности разговора. Размер скидки для каждого города разный.
17. Учет внутриофисных расходов
Описание предметной области
Вы работаете в бухгалтерии частной фирмы. Сотрудники фирмы имеют возможность осуществлять мелкие покупки для нужд фирмы, предоставляя в бухгалтерию товарный чек. Вашей задачей является отслеживание внутриофисных расходов.
Ваша фирма состоит из отделов. Каждый отдел имеет название. В каждом отделе работает определенное количество сотрудников. Сотрудники могут осуществлять покупки в соответствии с видами расходов. Каждый вид расходов имеет название, некоторое описание и предельную сумму средств, которые могут быть потрачены по данному виду расходов в месяц. При каждой покупке сотрудник оформляет документ, где указывает вид расхода, дату, сумму и отдел.
Классы объектов
Отделы (Название, Количество сотрудников).
Виды расходов (Название, Описание, Предельная норма).
Расходы (Вид расходов, Отдел, Сумма, Дата).
Развитие постановки задачи
Теперь ситуация изменилась. Оказалось, что нужно хранить данные о расходах не только в целом по отделу, но и по отдельным сотрудникам. Нормативы по расходованию средств устанавливаются не в целом, а по каждому отделу за каждый месяц. Неиспользованные в текущем месяце деньги могут быть использованы позже.
18. Библиотека
Описание предметной области
Вы являетесь руководителем библиотеки. Ваша библиотека решила зарабатывать деньги, выдавая напрокат некоторые книги, имеющиеся в небольшом количестве экземпляров. Вашей задачей является отслеживание финансовых показателей работы библиотеки.
У каждой книги, выдаваемой в прокат, есть название, автор, жанр. В зависимости от ценности книги Вы определили для каждой из них залоговую стоимость (сумма, вносимая клиентом при взятии книги напрокат) и стоимость проката (сумма, которую клиент платит при возврате книги, получая назад залог). В библиотеку обращаются читатели. Все читатели регистрируются в картотеке, которая содержит стандартные анкетные данные (фамилия, имя, отчество, адрес, телефон). Каждый читатель может обращаться в библиотеку несколько раз. Все обращения читателей фиксируются, при этом по каждому факту выдачи книги запоминаются дата выдачи и ожидаемая дата возврата.
Классы объектов
Книги (Название, Автор, Залоговая стоимость, Стоимость проката, Жанр).
Читатели (Фамилия, Имя, Отчество, Адрес, Телефон).
Выданные книги (Книга, Читатель, Дата выдачи, Дата возврата).
Развитие постановки задачи
Теперь ситуация изменилась. Несложный анализ показал, что стоимость проката книги должна зависеть не только от самой книги, но и от срока ее проката. Кроме того, необходимо добавить систему штрафов за вред, нанесенный книге и систему скидок для некоторых категорий читателей.
19. Прокат автомобилей
Описание предметной области
Вы являетесь руководителем коммерческой службы в фирме, занимающейся прокатом автомобилей. Вашей задачей является отслеживание финансовых показателей работы пункта проката.
В Ваш автопарк входит некоторое количество автомобилей различных марок, стоимостей и типов. Каждый автомобиль имеет свою стоимость проката. В пункт проката обращаются клиенты. Все клиенты проходят обязательную регистрацию, при которой о них собирается стандартная информация (фамилия, имя, отчество, адрес, телефон). Каждый клиент может обращаться в пункт проката несколько раз. Все обращения клиентов фиксируются, при этом по каждой сделке запоминаются дата выдачи и ожидаемая дата возврата.
Классы объектов
Автомобили (Марка, Стоимость, Стоимость проката, Тип).
Клиенты (Фамилия, Имя, Отчество, Адрес, Телефон).
Выданные автомобили (Автомобиль, Клиент, Дата выдачи, Дата возврата).
Развитие постановки задачи
Теперь ситуация изменилась. Несложный анализ показал, что стоимость проката автомобиля должна зависеть не только от самого автомобиля, но и от срока его проката, а также от года выпуска. Также нужно ввести систему штрафов за возвращение автомобиля в ненадлежащем виде и систему скидок для постоянных клиентов.
20. Выдача банком кредитов
Описание предметной области
Вы являетесь руководителем информационно-аналитического центра коммерческого банка. Одним из существенных видов деятельности Вашего банка является выдача кредитов юридическим лицам. Вашей задачей является отслеживание динамики работы кредитного отдела.
В зависимости от условий получения кредита, процентной ставки и срока возврата все кредитные операции делятся на несколько основных видов. Каждый из этих видов имеет свое название. Кредит может получить юридическое лицо (клиент), при регистрации предоставивший следующие сведения: название, вид собственности, адрес, телефон, контактное лицо. Каждый факт выдачи кредита регистрируется банком, при этом фиксируются сумма кредита, клиент и дата выдачи.
Классы объектов
Виды кредитов (Название, Условия получения, Ставка, Срок).
Клиенты (Название, Вид собственности, Адрес, Телефон, Контактное лицо).
Кредиты (Вид кредитов, Клиент, Сумма, Дата выдачи).
Развитие постановки задачи
Теперь ситуация изменилась. После проведения различных исследований выяснилось, что используемая система не позволяет отслеживать динамику возврата кредитов. Для устранения этого недостатка Вы приняли решение учитывать в системе еще и дату фактического возврата денег. Нужно еще учесть, что кредит может гаситься частями, и за задержку возврата кредита начисляются штрафы.
21. Инвестирование свободных средств
Описание предметной области
Вы являетесь руководителем аналитического центра инвестиционной компании. Ваша компания занимается вложением денежных средств в ценные бумаги.
Ваши клиенты – предприятия, которые доверяют Вам управлять их свободными денежными средства на определенный период. Вам необходимо выбрать вид ценных бумаг, которые позволят получить прибыль и Вам и Вашему клиенту. При работе с клиентом для Вас весьма существенной является информация о предприятии – название, вид собственности, адрес и телефон.
Классы объектов
Ценные бумаги (Код ценной бумаги, Минимальная сумма сделки, Рейтинг, Доходность за прошлый год, Дополнительная информация).
Инвестиции (Ценная бумага, Клиент, Котировка, Дата покупки, Дата продажи).
Клиенты (Клиент, Название, Вид собственности, Адрес, Телефон).
Развитие постановки задачи
При эксплуатации базы данных стало понятно, что необходимо хранить историю котировок каждой ценной бумаги. Кроме того, помимо вложений в ценные бумаги, существует возможность вкладывать деньги в банковские депозиты.
22. Занятость актеров театра
Описание предметной области
Вы являетесь коммерческим директором театра, и в Ваши обязанности входит вся организационно-финансовая работа, связанная с привлечением актеров и заключением контрактов.
Вы поставили дело следующим образом: каждый год театр осуществляет постановку различных спектаклей. Каждый спектакль имеет определенный бюджет. Для участия в конкретных постановках в определенных ролях Вы привлекаете актеров. С каждым из актеров Вы заключаете персональный контракт на определенную сумму. Каждый из актеров имеет некоторый стаж работы, некоторые из них удостоены различных наград и званий.
Классы объектов
Актеры (Фамилия, Имя, Отчество, Звание, Стаж).
Спектакли (Название, Год постановки, Бюджет).
Занятость актеров в спектакле (Актер, Спектакль, Роль, Стоимость годового контракта).
Развитие постановки задачи
В результате эксплуатации базы данных выяснилось, что в рамках одного спектакля на одну и ту же роль привлекается несколько актеров. Контракт определяет базовую зарплату актера, а по итогам реально отыгранных спектаклей актеру назначается премия. Кроме того, в базе данных нужно хранить информацию за несколько лет.
23. Платная поликлиника
Описание предметной области
Вы являетесь руководителем службы планирования платной поликлиники. Вашей задачей является отслеживание финансовых показателей работы поликлиники.
В поликлинике работают врачи различных специальностей, имеющие разную квалификацию. Каждый день в поликлинику обращаются больные. Все больные проходят обязательную регистрацию, при которой в базу данных заносятся стандартные анкетные данные (фамилия, имя, отчество, год рождения). Каждый больной может обращаться в поликлинику несколько раз, нуждаясь в различной медицинской помощи. Все обращения больных фиксируются, при этом устанавливается диагноз, определяется стоимость лечения, запоминается дата обращения.
Классы объектов
Врачи (Фамилия, Имя, Отчество, Специальность, Категория).
Пациенты (Фамилия, Имя, Отчество, Год рождения).
Обращения (Врач, Пациент, Дата обращения, Диагноз, Стоимость лечения).
Развитие постановки задачи
В результате эксплуатации базы данных выяснилось, что при обращении в поликлинику пациент обследуется и проходит лечение у разных специалистов. Общая стоимость лечения зависит от стоимости тех консультаций и процедур, которые назначены пациенту. Кроме того, для определенных категорий граждан предусмотрены скидки.
24. Анализ динамики показателей финансовой отчетности различных предприятий
Описание предметной области
Вы являетесь руководителем информационно-аналитического центра крупного холдинга. Вашей задачей является отслеживание динамики показателей для предприятий Вашего холдинга.
В структуру холдинга входят несколько предприятий. Каждое предприятие имеет стандартные характеристики (название, реквизиты, телефон, контактное лицо). Работа предприятия может быть оценена следующим образом: в начале каждого отчетного периода на основе финансовой отчетности вычисляется по неким формулам определенный набор показателей. Принять, что важность показателей характеризуется некоторыми числовыми константами. Значение каждого показателя измеряется в некоторой системе единиц.
Классы объектов
Показатели (Название, Важность, Единица измерения).
Предприятия (Название, Банковские реквизиты, Телефон, Контактное лицо).
Динамика показателей (Показатель, Предприятие, Дата, Значение).
Развитие постановки задачи
В результате эксплуатации базы данных выяснилось, что некоторые показатели считаются в рублях, некоторые в долларах, некоторые в евро. Для удобства работы с показателями нужно хранить изменения курсов валют относительно друг друга.
25. Учет телекомпанией стоимости прошедшей в эфире рекламы
Описание предметной области
Вы являетесь руководителем коммерческой службы телевизионной компании. Вашей задачей является отслеживание расчетов, связанных с прохождением рекламы в телеэфире.
Работа построена следующим образом: заказчики просят поместить свою рекламу в определенной передаче в определенный день. Каждый рекламный ролик имеет определенную продолжительность. Для каждой организации-заказчика известны банковские реквизиты, телефон и контактное лицо для проведения переговоров. Передачи имеют определенный рейтинг. Стоимость минуты рекламы в каждой конкретной передаче известна (определяется коммерческой службой, исходя из рейтинга передачи и прочих соображений).
Классы объектов
Передачи (Название, Рейтинг, Стоимость минуты).
Реклама (Передача, Заказчик, Дата, Длительность в минутах).
Заказчики (Название, Банковские реквизиты, Телефон, Контактное лицо).
Развитие постановки задачи
В результате эксплуатации базы данных выяснилось, что необходимо также хранить информацию об агентах, заключивших договоры на рекламу. Зарплата рекламных агентов составляет некоторый процент от общей стоимости рекламы, прошедшей в эфире.
26. Интернет-магазин
Описание предметной области
Вы являетесь сотрудником коммерческого отдела компании, продающей различные товары через Интернет. Вашей задачей является отслеживание финансовой составляющей работы компании.
Работа Вашей компании организована следующим образом: на Интернет-сайте компании представлены (выставлены на продажу) некоторые товары. Каждый из них имеет некоторое название, цену и единицу измерения (штуки, килограммы, литры). Для проведения исследований и оптимизации работы магазина Вы пытаетесь собирать данные с Ваших клиентов. При этом для Вас определяющее значение имеют стандартные анкетные данные, а также телефон и адрес электронной почты для связи. В случае приобретения товаров на сумму свыше 5000р. клиент переходит в категорию «постоянных клиентов» и получает скидку на каждую покупку в размере 2%. По каждому факту продажи Вы автоматически фиксируете клиента, товары, количество, дату продажи, дату доставки.
Классы объектов
Товары (Название, Цена, Единица измерения).
Клиенты (Фамилия, Имя, Отчество, Адрес, Телефон, email, Признак постоянного клиента).
Продажи (Товар, Клиент, Дата продажи, Дата доставки, Количество).
Развитие постановки задачи
В результате эксплуатации базы данных выяснилось, что иногда возникают проблемы, связанные с нехваткой информации о наличии нужных товаров на складе в нужном количестве. Кроме того, обычно клиенты в рамках одного заказа покупают не один вид товара, а несколько видов. Исходя из суммарной стоимости заказа, компания предоставляет дополнительные скидки.
27. Ювелирная мастерская
Описание предметной области
Вы работаете в ювелирной мастерской. Ваша мастерская осуществляет изготовление ювелирных изделий для частных лиц на заказ. Вы работаете с определенными материалами (платина, золото, серебро, различные драгоценные камни и т.д.). При обращении к Вам потенциального клиента Вы определяетесь с тем, какое именно изделие ему необходимо. Все изготавливаемые Вами изделия принадлежат к некоторому типу (серьги, кольца, броши, браслеты), бывают выполнены из определенного материала, имеют некоторый вес и цену (включающую стоимость материалов и работы).
Классы объектов
Изделия (Название, Тип, Материал, Вес, Цена).
Материалы (Название, Цена за грамм).
Продажи (Изделие, Дата продажи, Фамилия покупателя, Имя покупателя, Отчество покупателя).
Развитие постановки задачи
В процессе опытной эксплуатации базы данных выяснилось, что ювелирное изделие может состоять из нескольких материалов. Кроме того, постоянным клиентам мастерская предоставляет скидки.
28. Парикмахерская
Описание предметной области
Вы работаете в парикмахерской.
Ваша парикмахерская стрижет клиентов в соответствии с их пожеланиями и некоторым каталогом различных видов стрижки. Так, для каждой стрижки определены название, принадлежность полу (мужская, женская), стоимость работы. Для наведения порядка Вы, по мере возможности, составляете базу данных клиентов, запоминая их анкетные данные (фамилия, имя, отчество). Начиная с 5-ой стрижки, клиент переходит в категорию постоянных и получает скидку в 3% при каждой последующей стрижке. После того, как закончена очередная работа, в кассе фиксируются стрижка, клиент и дата производства работ.
Классы объектов
Стрижки (Название, Пол, Стоимость).
Клиенты (Фамилия, Имя, Отчество, Пол, Признак постоянного клиента).
Работа (Стрижка, Клиент, Дата).
Развитие постановки задачи
Теперь ситуация изменилась. У Вашей парикмахерской появился филиал, и Вы хотели бы видеть, в том числе, и раздельную статистику по филиалам. Кроме того, стоимость стрижки может меняться с течением времени. Нужно хранить не только последнюю цену, но и все данные по изменению цены стрижки.
29. Химчистка
Описание предметной области
Вы работаете в химчистке.
Ваша химчистка осуществляет прием у населения вещей для выведения пятен. Для наведения порядка Вы, по мере возможности, составляете базу данных клиентов, запоминая их анкетные данные (фамилия, имя, отчество). Начиная с 3-го обращения, клиент переходит в категорию постоянных клиентов и получает скидку в 3% при чистке каждой последующей вещи. Все оказываемые Вами услуги подразделяются на виды, имеющие название, тип и стоимость, зависящую от сложности работ. Работа с клиентом первоначально состоит в определении объема работ, вида услуги и, соответственно, ее стоимости. Если клиент согласен, он оставляет вещь (при этом фиксируется услуга, клиент и дата приема) и забирает ее после обработки (при этом фиксируется дата возврата).
Классы объектов
Виды услуг (Название, Тип, Стоимость).
Клиенты (Фамилия, Имя, Отчество, Признак постоянного клиента).
Услуги (Вид услуги, Клиент, Дата приема, Дата возврата).
Развитие постановки задачи
Теперь ситуация изменилась. У Вашей химчистки появился филиал, и Вы хотели бы видеть, в том числе, и раздельную статистику по филиалам. Кроме того, вы решили делать надбавки за срочность и сложность работ.
30. Сдача в аренду торговых площадей
Описание предметной области
Вы работаете в крупном торговом центре, сдающим в аренду коммерсантам свои торговые площади.
Вашей задачей является наведение порядка в финансовой стороне работы торгового центра.
Работы Вашего торгового центра построена следующим образом: в результате планирования Вы определили некоторое количество торговых точек в пределах Вашего здания, которые могут сдаваться в аренду. Для каждой из торговых точек важными данными являются этаж, площадь, наличие кондиционера и стоимость аренды в день. Со всех потенциальных клиентов Вы собираете стандартные данные (название, адрес, телефон, реквизиты, контактное лицо). При появлении потенциального клиента Вы показываете ему имеющиеся свободные площади. При достижении соглашения Вы оформляете договор, фиксируя в базе данных торговую точку, клиента, период (срок) аренды.
Классы объектов
Торговые точки (Этаж, Площадь, Наличие кондиционера, Стоимость аренды в день).
Клиенты (Название, Реквизиты, Адрес, Телефон, Контактное лицо).
Аренда (Торговая точка, Клиент, Дата начала, Дата окончания).
Развитие постановки задачи
В результате эксплуатации базы данных выяснилось, что некоторые клиенты арендуют сразу несколько торговых точек. Помимо этого, Вам необходимо собирать информацию об ежемесячных платежах, поступающих Вам от арендаторов.
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
не предусмотрены
5.3. Фонд оценочных средств для проведения промежуточной аттестации
Вопросы к зачету
1. Цель объектно-ориентированного подхода.
2. Класс, объект, экземпляр класса. Методы и поля класса.
3. Область видимости. Статичные методы и поля.
4. Основные принципы объектно-ориентированного подхода. Абстракция.
5. Основные принципы объектно-ориентированного подхода. Инкапсуляция.
6. Основные принципы объектно-ориентированного подхода. Наследование.
7. Основные принципы объектно-ориентированного подхода. Полиморфизм.
8. Понятие паттерна. Преимущества и недостатки их использования.
9. Паттерны проектирования. Общие принципы.
10. Паттерны проектирования. Поиск подходящих объектов.
11. Паттерны проектирования. Определение степени детализации объекта.
12. Паттерны проектирования. Механизмы повторного использования.
13. Паттерны проектирования. Проектирование с учетом будущих изменений.
14. Паттерны GoF.
15. Порождающие паттерны. Описание, UML-диаграмма, реализация на языке программирования.
16. Паттерн Abstract Factory. Описание, UML-диаграмма, реализация на языке программирования.
17. Паттерн Singleton. Описание, UML-диаграмма, реализация на языке программирования.
18. Паттерн Prototype. Описание, UML-диаграмма, реализация на языке программирования.
19. Паттерн Builder. Описание, UML-диаграмма, реализация на языке программирования.
20. Паттерн Factory Method (Virtual Constructor). Описание, UML-диаграмма, реализация на языке программирования.
21. Структурные паттерны.
22. Паттерн Adapter. Описание, UML-диаграмма, реализация на языке программирования.
23. Паттерн Decorator (Wrapper). Описание, UML-диаграмма, реализация на языке программирования.
24. Паттерн Proxy (Surrogate). Описание, UML-диаграмма, реализация на языке программирования.
25. Паттерн Composite. Описание, UML-диаграмма, реализация на языке программирования.
26. Паттерн Bridge (Handle, Body). Описание, UML-диаграмма, реализация на языке программирования.
27. Паттерн Flyweight. Описание, UML-диаграмма, реализация на языке программирования.
28. Паттерн Facade. Описание, UML-диаграмма, реализация на языке программирования.
29. Поведенческие шаблоны. Описание, UML-диаграмма, реализация на языке программирования.
30. Паттерн Interpreter. Описание, UML-диаграмма, реализация на языке программирования.
31. Паттерн Iterator (Cursor). Описание, UML-диаграмма, реализация на языке программирования.
32. Паттерн Command (Action). Описание, UML-диаграмма, реализация на языке программирования.
33. Паттерн Observer (Publish-Subscribe, Delegation Event Model). Описание, UML-диаграмма, реализация на языке программирования.
34. Паттерн Visitor. Описание, UML-диаграмма, реализация на языке программирования.
35. Паттерн Mediator. Описание, UML-диаграмма, реализация на языке программирования.
36. Паттерн State. Описание, UML-диаграмма, реализация на языке программирования.
37. Паттерн Strategy. Описание, UML-диаграмма, реализация на языке программирования.
38. Паттерн Memento. Описание, UML-диаграмма, реализация на языке программирования.
39. Паттерн Chain of Responsibility. Описание, UML-диаграмма, реализация на языке программирования.
40. Паттерн Template Method. Описание, UML-диаграмма, реализация на языке программирования.
41. Антипаттерны. Перечислить, дать краткую характеристику.
42. Рефакторинг. Основные проблемы.

Критерии оценивания
Оценка “зачтено” - практические задания выполнены в срок в объеме не менее 80%. сту-дент демонстрирует правильные, уверенные действия по применению полученных знаний на практике, грамотное и логически стройное изложение материала при аргументации ответов на вопросы.
Оценка «не зачтено» - практические задания не выполнены либо предоставлены не в срок в объеме менее 60%, студент демонстрирует наличие грубых ошибок в ответе, непонима-ние сущности излагаемого вопроса, неумение применять знания на практике, неуверенность и неточность ответов на дополнительные и наводящие вопросы.

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Мейер Б. Объектно-ориентированное программирование и программная инженерия : М. : Национальный Открытый Университет «ИНТУИТ», Университетская библиотека онлайн, 2016 biblioclub.ru
Л1.2 Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования: "ДМК Пресс", 2007 e.lanbook.com
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Каскиаро М., Маммино Л. Шаблоны проектирования Node.js. Воспользуйтесь самыми мощными компонентами и шаблонами платформы Node.js для создания масштабируемых модульных приложений: Другое Издательство "ДМК Пресс", 2017 e.lanbook.com
Л2.2 Сергей Тепляков Паттерны проектирования на платформе .NET: Паттерны проектирования на платформе .NET СПб.: Питер, 2015 sd.blackball.lv
6.1.3. Дополнительные источники
Авторы Заглавие Издательство, год Эл. адрес
Л3.1 Журенков О. В. Объектно-ориентированный анализ и проектирование. Лабораторный практикум с IBM Rational Software Architect Designer: Учебно-методическое пособие по выполнению лабораторных работ Алтайский государственный университет, 2018
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Курс на образовательном портале АлтГУ portal.edu.asu.ru
6.3. Перечень программного обеспечения
IBM Rational Software Architect Designer;
Microsoft Windows или GNU/Linux;
Microsoft Office или Libre Office.
Microsoft VisualStudio.NET
AndroidStudio
6.4. Перечень информационных справочных систем
Не предусмотрены.

7. Материально-техническое обеспечение дисциплины

8. Методические указания для обучающихся по освоению дисциплины

На лекциях преподаватель знакомит слушателей с основными понятиями и положениями по текущей теме. На лекциях слушатель получает только основной объём информации по теме. Только посещение лекций является недостаточным для подготовки к лабораторным занятиям и экзамену. Требуется также самостоятельная работа по изучению основной и дополнительной литературы и закрепление полученных на лабораторных занятиях навыков.
Практические задания по темам выполняются на лабораторных занятиях в компьютерном классе. Если лабораторные занятия пропущены (по уважительной или неуважительной причине), то соответствующие задания необходимо выполнить самостоятельно и представить результаты преподавателю на очередном занятии, консультации или через образовательный портал.
Самостоятельная работа студентов – способ активного, целенаправленного приобретения студентом новых для него знаний, умений и навыков без непосредственного участия в этом процессе преподавателя.
Качество получаемых студентом знаний напрямую зависит от качества и количества необходимого доступного материала, а также от желания (мотивации) студента их получить. При обучении осуществляется целенаправленный процесс взаимодействия студента и преподавателя для формирования знаний, умений и навыков.