- •С.М. Шаврин, л.Н. Лядова, с.И. Чуприна Моделирование и проектирование информационных систем
- •Содержание
- •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. Учебно-методическое обеспечение курса Рекомендуемая литература (обязательная)
- •Рекомендуемая литература (дополнительная)
- •Список адресов в Интернет
- •Моделирование и проектирование информационных систем Учебно-методическое пособие
Диаграмма сотрудничества
На диаграммах сотрудничества выделяют два аспекта – это сотрудничество и взаимодействие. Определим эти понятия.
Определение. Сотрудничество – это состав объектов взаимодействия и связи между ними.
Определение. Взаимодействие – это последовательность сообщений, которыми обмениваются объекты взаимодействия.
Данные аспекты диаграммы сотрудничества связаны следующим образом. На диаграмме может присутствовать как сотрудничество с взаимодействием, так и одно сотрудничество. В рамках одного сотрудничества может осуществляться несколько взаимодействий (отображается на разных диаграммах).
Сотрудничество формирует контекст, в котором происходит взаимодействие объектов. Для описания сотрудничества используются практически те же самые элементы, что и для концептуальной модели (рис. 74).
Рис. 74. Пример неименованного и именованного объекта
В ходе взаимодействия объекты могут создаваться и уничтожаться. Созданные объекты помечаются как {new}, уничтоженные – {deleted}, а созданные и затем уничтоженные (временные) – {transient} (рис. 75).
Рис. 75. Пометка созданного объекта
Связи между объектами показываются при помощи дуг (рис. 76). Причем, в отличие от ассоциаций, в данном случае множественность не указывается. Каждая связь связывает ровно два объекта, а соответствующие ассоциации определяют, какие объекты в каких связях могут участвовать.
Рис. 76. Пример связи
Допускается использование агрегации и ролей (рис. 77).
Для моделирования внешней среды используются акторы (рис. 78).
Рис. 77. Использование ролей и агрегации
Рис. 78. Моделирование внешней среды
Перейдем к рассмотрению взаимодействия. Взаимодействие объектов осуществляется путем обмена сообщениями. Сообщение может принимать различные формы, например: вызов метода, посылка сигнала или инициирование события. На диаграммах сотрудничества используются синхронные и асинхронные сообщения, для изображения которых используются те же графические элементы, что и для диаграмм последовательностей. Сообщения могут передаваться только вдоль линий связи между объектами (рис. 79).
Рис. 79. Отправка сообщений
Каждое сообщение имеет метку, которая включает как минимум имя сообщения и круглые скобки. Полный формат метки сообщения имеет следующий вид:
<Предшественники> / <Номер> [<Условие>]: <Переменная> := <Имя> ( <Аргументы> )
Предшественники – это список номеров сообщений, обработка которых должна завершиться прежде, чем данное сообщение может быть послано. Если у сообщения есть предшественники, то после них ставится слэш. В примере на рис. 80 четыре класса обмениваются асинхронными сообщениями. Суть данного взаимодействия может сводиться, например, к следующему. По запросу пользователя объект класса А опрашивает состояние удаленных объектов б1 и б2, после чего результаты опроса сообщает объекту класса В. Соответственно, сообщение 3 может быть отправлено только после того, как объект класса А получит сообщения 1.1 и 1.2.
Рис. 80. Пример обмена асинхронными сообщениями
Номер сообщения определяет его положение в цепочке сообщений. Нумерация бывает плоской и иерархической. При плоской нумерации с каждым сообщением связывается натуральное число, определяющее абсолютный порядковый номер сообщения. Однако такую нумерацию неудобно использовать в случае с асинхронными сообщениями, т.к. в этом случае определить абсолютный порядковый номер бывает невозможно. В связи с этим на практике применяется иерархическая нумерация, при которой сообщению присваивается относительный номер «внутри» родительского сообщения – сообщения, в ходе обработки которого было сгенерировано данное. Например, сообщение сообщ_5 на рис. 80 было сгенерировано в ответ на сообщение сообщ_4 с номером 2 и, следовательно, имеет номер 2.1.
Для отображения параллельных сообщений к номеру сообщения дописывается буква, например, 3.1а и 3.1б. Это означает, что порядок отправки сообщений неважен (т.е. при наличии возможности их можно отсылать одновременно). Например, для сообщений сообщ_2 и сообщ_4 на рис. 80 порядок их отправки не важен, и диаграмму можно нарисовать так, как показано на рис. 81.
Рис. 81. Параллельные сообщения
Условие, как и на диаграммах последовательностей, определяет условие посылки сообщения, или итерацию, например, [продажа не создана] или *[для всех товарных позиций]. При помощи условий и параллельных сообщений можно организовать взаимоисключающие сообщения, например, 1a [условие] и 1б [not условие].
Переменная – это имя переменной, куда помещается результат обработки сообщения, например:
тп := найтиТоварнуюПозицию(код)
Этот идентификатор может быть использован в качестве аргументов других сообщений или в условиях.
Имя – это имя сообщения. Требования к именованию сообщений такие же, как и для диаграммы последовательностей. В UML выделяется два стандартных сообщения Create и Destroy, которые отвечают за создание и уничтожение объектов соответственно.
Аргументы – это список параметров сообщения, заключенный в круглые скобки. Если сообщение не имеет параметров, то пишутся пустые скобочки.
