
- •Проектирование информационных систем Учебное пособие
- •Оглавление
- •1. Методологии и технологии проектирования ис
- •2. Методология rad
- •3. Структурный подход в проектировании информационных систем
- •3.1 Методология функционального моделирования
- •Основные методологии обследования организаций
- •Основные элементы и понятия idef0
- •Особенности национальной практики применения функционального моделирования средствами idef0
- •3.2. Моделирование данных
- •3.3. Диаграммы потоков данных
- •Внешние сущности
- •Системы и подсистемы
- •Накопители данных
- •Потоки данных
- •4. Объектно-ориентированный подход в проектировании информационных систем
- •4.1. Основные понятия объектно-ориентированного программирования
- •4.2. Основные понятия объектно-ориентированного проектирования
- •5. Унифицированный язык моделирования uml
- •5.1. Основные сведения
- •5.2. Диаграммы вариантов использования
- •5.3. Диаграммы взаимодействия
- •5.4. Диаграммы классов
- •6. Инструментальные средства разработки информационных систем
- •6.1. Общая характеристика Case – средств проектирования информационных систем
- •6.2. ModelMaker как средство визуального проектирования концептуальной модели информационной системы
- •6.3. Выполнение учебного проекта с использованием case – средства ModelMaker
- •6.3.1. Постановка задачи проектирования системы регистрации для учебного заведения
- •Составление глоссария проекта
- •Описание дополнительных спецификаций
- •6.3.2. Создание главной диаграммы модели информационной системы
- •6.3.3. Составление списка вариантов использования
- •Вариант использования «Войти в систему» Login
- •Вариант использования «Зарегистрироваться на курсы» (Register for Courses)
- •Вариант использования «Закрыть регистрацию» (Close Registration)
- •6.3.4. Анализ системы
- •6.3.5. Распределение поведения, реализуемого вариантом использования, между классами
- •6.3.6. Построение диаграммы классов и модуля проекта
- •6.3.7. Документирование работы
- •8. Курсовое проектирование
- •Цели и задачи курсового проектирования
- •8.2. Тематика и примерная структура курсовой работы
- •8.3. Задания к курсовой работе
- •Заключение
- •Глоссарий
- •Библиографический список
- •Проектирование информационных систем
5.3. Диаграммы взаимодействия
Моделирование взаимодействий заключается в распределении поведения между граничными, сущностными и управляющими объектами. Необходимо решить, какие объекты отвечают за каждый конкретный аспект поведения.
Граничные объекты служат посредниками при взаимодействии внешних объектов с системой. Как правило, для каждой пары «действующее лицо – вариант использования» определяется один граничный объект. Именно он позволяет действующему лицу взаимодействовать с системой. Возможны следующие граничные объекты:
пользовательский интерфейс:
экранные формы, диалоговые окна;
системный и аппаратный интерфейсы (используемые протоколы, без деталей их реализации) и другие;
Объекты – сущности – представляют собой ключевые абстракции (понятия) создаваемой системы. Источники выявления объектов – сущностей: описание потоков событий вариантов использования, глоссарий проекта (перечень ключевых слов). Обычно для каждого класса – сущности создают таблицу в базе данных;
Управляющие объекты – обеспечивают координацию объектов в системе. Могут отсутствовать в некоторых вариантах использования, ограничивающихся простыми манипуляциями с хранимыми данными. Как правило, для каждого варианта использования определяется один управляющий объект. Он отвечает за координацию, но сам не несет в себе никакой функциональности. Обычно он посылает другим объектам множество сообщений. В системе могут быть управляющие объекты, общие для нескольких вариантов использования. Примеры управляющих объектов: координатор ресурсов, обработчик ошибок и др.
Во время выполнения программы объекты взаимодействуют, посылая друг другу сообщения.
Сообщение (message) - средство, с помощью которого объект-отправитель запрашивает у объекта-получателя выполнение одной из его операций.
Информационное (informative) сообщение - сообщение, снабжающее объект-получатель информацией для обновления его состояния.
Сообщение-запрос (interrogative) -сообщение, запрашивающее выдачу информации об объекте-получателе.
Императивное (imperative) сообщение - сообщение, запрашивающее у объекта-получателя выполнение действий.
Существует два вида диаграмм взаимодействия: диаграммы последовательности и кооперативные диаграммы. На диаграммах последовательности посылаемые сообщения упорядочены по времени. На кооперативных диаграммах основное внимание уделяется отношениям между действующими объектами.
Рассмотрим структуру диаграммы последовательности.
Диаграммы последовательности отражают поток событий, происходящих в рамках варианта использования. Например, вариант использования «Снять деньги со счета» предусматривает несколько возможных последовательностей, таких, как снятие денег, попытка снять деньги, не имея достаточного их количества на счете, попытка снять деньги по неправильному PIN-коду и некоторых других. Под сценарием понимается конкретный экземпляр потока событий.
На диаграмме последовательности изображаются исключительно те объекты, которые непосредственно участвуют во взаимодействии. Для диаграммы последовательности ключевым моментом является именно динамика взаимодействия объектов во времени. При этом диаграмма последовательности имеет как бы два измерения. Одно — слева сверху вниз в виде вертикальных линий, каждая из которых изображает линию жизни отдельного объекта, участвующего во взаимодействии. Второе – перечень сообщений, посылаемых отправителями к получателям.
Графически каждый объект изображается прямоугольником и располагается в верхней части своей линии жизни (рисунок 18). Внутри прямоугольника записываются имя объекта и имя класса. Эти имена разделяются двоеточием. При этом вся запись подчеркивается, что является признаком объекта, который, как известно, представляет собой экземпляр класса.
Рисунок 18 – Различные графические примитивы диаграммы последовательности
Крайним слева на диаграмме изображается объект, который является инициатором взаимодействия. Правее изображается другой объект, который непосредственно взаимодействует с первым. Таким образом, все объекты на диаграмме последовательности образуют некоторый порядок, определяемый степенью активности этих объектов при взаимодействии друг с другом.
Некоторые объекты могут создаваться в ходе взаимодействия. Их линия жизни начинается с момента приема сообщения «Create» (создать объект). В этом случае прямоугольник такого объекта изображается не в верхней части диаграммы последовательности, а в той ее части, которая соответствует моменту создания объекта (объект 6 на рисунке 19). При этом прямоугольник объекта вертикально располагается в том месте диаграммы, которое по оси времени совпадает с моментом его возникновения в системе. Очевидно, объект обязательно создается со своей линией жизни и, возможно, с фокусом управления.
Объекты могут уничтожаться в ходе взаимодействия. Их линия жизни заканчивается в момент приема сообщения «Destroy» (Уничтожить объект). Для обозначения момента уничтожения объекта в языке UML используется специальный символ в форме латинской буквы "X" (объект 6 на рисунок 19). Ниже этого символа пунктирная линия не изображается, поскольку соответствующего объекта в системе уже нет, и этот объект должен быть исключен из всех последующих взаимодействий.
Рисунок 19 – Графическое изображение различных вариантов линий жизни и фокусов управления объектов
В процессе функционирования объектно-ориентированных систем одни объекты могут находиться в активном состоянии, непосредственно выполняя определенные действия или в состоянии пассивного ожидания сообщений от других объектов. Чтобы явно выделить подобную активность объектов, в языке UML применяется специальное понятие, получившее название фокуса управления (focus of control). Фокус управления изображается в форме вытянутого узкого прямоугольника (см. рисунок 19), верхняя сторона которого обозначает начало получения фокуса управления объекта (начало активности), а ее нижняя сторона — окончание фокуса управления (окончание активности). Этот прямоугольник располагается ниже обозначения соответствующего объекта и может заменять его линию жизни (объект 4 на рисунке 19), если на всем ее протяжении он является активным.
Объекты могут посылать друг другу сообщения. Отправления сообщений (которые могут обозначать события или вызовы операций) показываются горизонтальными стрелками с тем же синтаксисом, что в описании соответствующего варианта использования. Линии, обозначающие посылку сообщения, проводятся от вертикали одного объекта к вертикали другого объекта. Первое сообщение показывается на самом высоком уровне, второе ниже и т.д. Посылаемые сообщения нумеруются. Другими словами, сообщения, расположенные на диаграмме последовательности выше, инициируются раньше тех, которые расположены ниже. При этом масштаб на оси времени не указывается, поскольку диаграмма последовательности моделирует лишь временную упорядоченность взаимодействий типа "раньше–позже".
Каждое сообщение приводит к вызову той или иной функции объекта-получателя. Именно поэтому диаграммы последовательности хорошо выполняют задачу визуализации распределения поведения. При разработке диаграммы последовательности основное внимание уделяется скорее событиям, чем операциям. События помогают определить границы системы. Перечень операций определяется позднее, при формировании структуры классов системы.
Рассмотрим примеры диаграмм последовательностей.
Диаграмма последовательности, изображенная на рисунке 20, отображает поток событий в рамках варианта использования «Снять деньги со счета». Все действующие лица показаны в верхней части диаграммы; в приведенном выше примере изображено действующее лицо Клиент (Customer). Объекты, требуемые системе для выполнения варианта использования «Снять деньги со счета», также представлены в верхней части диаграммы. Стрелки соответствуют сообщениям, передаваемым между действующим лицом и объектом или между объектами для выполнения требуемых функций.
В ее верхней части в одной линии расположены объекты, участвующие в реализации одного из сценариев данного варианта использования. Каждый объект изображается в виде прямоугольника с указанием имени. Под каждым объектом рисуется вертикальная пунктирная линия. Ее называют линией жизни объекта. Отправления сообщений (которые могут обозначать события или вызовы операций) показываются горизонтальными стрелками с тем же синтаксисом, что в описании соответствующего варианта использования. Линии, обозначающие посылку сообщения, проводятся от вертикали одного объекта к вертикали другого объекта. Первое сообщение показывается на самом высоком уровне, второе ниже и т.д. Посылаемые сообщения нумеруются.
Каждое сообщение приводит к вызову той или иной функции объекта-получателя. Именно поэтому диаграммы последовательности хорошо выполняют задачу визуализации распределения поведения. При разработке диаграммы последовательности основное внимание уделяется скорее событиям, чем операциям. События помогают определить границы системы. Перечень операций определяется позднее, при определении структуры классов системы.
Рисунок 20 – Диаграмма последовательности для основного потока событий варианта использования «Снять деньги со счета»
На рисунке 21 приведен пример диаграммы последовательности для моделирования телефонного разговора.
На кооперативных диаграммах объекты показываются также в виде прямоугольников. Стрелки обозначают сообщения, обмен которыми осуществляется в рамках одного варианта использования. Временная последовательность сообщений указывается путем нумерации сообщений.
Рисунок 21 – Диаграмма последовательности для моделирования телефонного разговора