- •С.М. Шаврин, л.Н. Лядова, с.И. Чуприна Моделирование и проектирование информационных систем
- •Содержание
- •I. Организационно-методический раздел 5
- •II. Содержание курса 6
- •III. Примерное распределение часов курса по формам и видам работ 153
- •IV. Форма итогового контроля 156
- •V. Учебно-методическое обеспечение курса 156
- •I. Организационно-методический раздел Цели и задачи курса
- •Требования к уровню освоения содержания курса
- •Место курса в системе основной образовательной программы
- •II. Содержание курса Связь между разделами
- •Конспект лекций
- •Введение
- •Понятие информационной системы
- •Проблемы сложных задач
- •Введение в теорию моделирования
- •Понятие моделирования и модели. Принципы моделирования и классификация моделей
- •Метамоделирование
- •Классификация информационных систем по уровню и составу моделей
- •Жизненный цикл программного обеспечения
- •Понятие жизненного цикла. Процессы жизненного цикла
- •Модели жизненного цикла
- •Структурный подход
- •Сущность и основные принципы структурного подхода
- •Метод функционального моделирования sadt
- •Моделирование потоков данных
- •Моделирование структур данных
- •Объектный подход
- •Сущность и основные принципы объектного подхода
- •Пример объектно-ориентированного анализа и проектирования
- •Унифицированный язык моделирования uml
- •Обзор языка uml
- •Моделирование функциональных требований и диаграммы прецедентов
- •Типичные ошибки
- •Моделирование бизнес-процессов и диаграммы активностей
- •Элементы диаграммы активностей
- •Концептуальное моделирование и диаграммы понятий
- •Понятие
- •Ассоциации
- •Атрибуты
- •Ограничения
- •Обобщение
- •Прямые и косвенные экземпляры
- •Абстрактные понятия
- •Многомерная множественная классификация
- •Агрегация
- •Правила идентификации отношения агрегации
- •Порядок построения концептуальной модели
- •Рекомендации по построению диаграмм понятий
- •Моделирование поведения системы и диаграмма последовательностей
- •Модель поведения системы
- •Объекты
- •Сообщения
- •Описание системных операций
- •Типичные ошибки
- •Рекомендации по построению диаграмм последовательностей
- •Проектирование поведения системы и диаграммы сотрудничества
- •Диаграммы взаимодействия
- •Диаграмма сотрудничества
- •Работа с коллекциями объектов
- •Сообщения классу
- •Видимость объектов
- •Типичные ошибки
- •Рекомендации по построению диаграмм сотрудничества
- •Проектирование статической структуры системы и диаграмма классов
- •Диаграмма классов
- •Операции
- •Информация о типах
- •Информация об области видимости
- •Вычислимые атрибуты
- •Направление навигации
- •Зависимости
- •Рекомендации по построению диаграмм классов
- •Модель реализации и диаграмма компонентов
- •Модель реализации
- •Диаграмма компонентов
- •Компоненты
- •Стереотипы
- •Пиктограммы
- •Интерфейсы
- •Зависимости
- •Рекомендации по построению диаграммы компонентов
- •Модель и диаграмма развертывания
- •Модель развертывания
- •Диаграмма развертывания
- •Стереотипы
- •Шаблоны проектирования
- •Введение в шаблоны проектирования
- •Обязанности
- •Дополнительная информация
- •Шаблоны проектирования grasp
- •Шаблоны graps
- •Шаблон Expert (Эксперт)
- •Шаблон Creator (Создатель)
- •Шаблон Low Coupling (Низкое Связывание)
- •Шаблон High Cohesion (Высокое Зацепление)
- •Шаблон Controller (Контроллер)
- •Учебное задание
- •Примерный перечень вопросов к зачету по всему курсу
- •Вопрос для итоговой аттестации
- •III. Примерное распределение часов курса по формам и видам работ
- •IV. Форма итогового контроля
- •V. Учебно-методическое обеспечение курса Рекомендуемая литература (обязательная)
- •Рекомендуемая литература (дополнительная)
- •Список адресов в Интернет
- •Моделирование и проектирование информационных систем Учебно-методическое пособие
Шаблоны проектирования
Введение в шаблоны проектирования
Тематический контекст
Краткое содержание
Обязанности, классификация обязанностей.
Понятие и назначение шаблонов проектирования.
Стандартный вид описания шаблона проектирования.
Обязанности
Занимаясь объектно-ориентированным проектированием, и в частности построением диаграмм взаимодействия, разработчик на самом деле занимаемся распределением обязанностей между объектами системы. Все обязанности можно разделить на действия и знания. К первой группе обязанностей относятся операции, за выполнение которых отвечает объект. Например, объектам класса «Продажа» может быть вменено в обязанность создавать товарные позиции. К обязанностям из группы действий относятся следующие виды обязанностей:
выполнение некоторых действий самим объектом;
инициация действий других объектов;
управление и координирование действий других объектов.
Ко второй группе обязанностей относятся обязанности, связанные с наличием некоторого рода информации. Например, объектам класса «Продажа» может быть вменено в обязанность знание даты продажи. К обязанностям из группы знаний относятся следующие виды обязанностей:
наличие информации о закрытых инкапсулированных данных;
наличие информации о связанных объектах;
наличие информации о вычислимых величинах.
Заметим, что один объект может выполнять несколько обязанностей. И наоборот, одну обязанность могу реализовывать несколько объектов. Например, за реализацию возможности отправки электронной почты, скорее всего, будет отвечать целая группа объектов.
Диаграммы взаимодействий отражают распределение обязанностей между объектами. Если на диаграмме объект (или класс) получает сообщение, то ему вменяется в обязанность его обработать. Кроме того, отправителю сообщения вменяется в обязанность видеть получателя, т.е. распределение обязанностей определяется взаимодействием (поток сообщений) и сотрудничеством (связи между объектами).
Человеческий опыт распределения обязанностей сконцентрирован в шаблонах проектирования (Design Patterns). Шаблоны не содержат новых идей, они систематизируют и формализуют существующие знания, принципы и удачные решения в области проектирования. Практически все шаблоны преследуют цель повышения гибкости, расширяемости системы.
По сути, шаблон проектирования – это обобщенное описание некоторой часто встречающейся задачи вместе с рекомендуемым способом ее решения, который был уже не единожды опробован на практике и доказал свою эффективность.
Шаблоны оформляются в виде структурированного описания, которое обычно включает следующие разделы:
название шаблона;
описание проблемы или задачи;
описание решения;
пример использования;
рекомендации по использованию;
описание достоинств и недостатков.
Стоит заметить, что у шаблонов проектирования нет недостатков в традиционном понимании этого слова. Скорее это цена, которую приходится платить за полезный эффект, получаемый от использования шаблона.
Вопросы для самоконтроля
Что такое шаблон проектирования и зачем он нужен?
Какие виды обязанностей Вы знаете?
Как выглядит описание шаблона проектирования?
