Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование информационных систем. Раздел 5. Индустриальное проектирование информационных систем. Объектно-ориентированная Case-технология проектир

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
839 Кб
Скачать

Составное состояние

Для упрощения моделирования сложного поведения информационных систем вводят понятие составного состояния.

Составное состояние – сложное состояние, состоящее из других вложенных в него состояний, называемых подсостояниями.

Подсостояния изображаются внутри символа составного состояния, как показано на рисунке 27.

Рисунок 27 – Составное состояние с двумя вложенными в него последовательными подсостояниями

При этом любое из подсостояний, в свою очередь, может являться составным состоянием и содержать внутри себя другие вложенные подсостояния. Количество уровней вложенности составных состояний не фиксировано в языке UML.

Выделяют последовательные и параллельные подсостояния. Последовательные подсостояния используются для моделирования

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

Параллельные подсостояния имеют место в случае, если объект может одновременно находиться в каждом из этих подсостояний. Однако отдельные параллельные подсостояния могут, в свою очередь, состоять из нескольких последовательных подсостояний (рисунок 28).

41

Рисунок 28 – Графическое изображение составного состояния с вложенными параллельными подсостояниями

При выделении состояний и переходов следует помнить, что длительность срабатывания отдельных переходов должна быть существенно меньшей, чем нахождение моделируемого объекта в соответствующих состояниях. Каждое из состояний должно характеризоваться определенной устойчивостью во времени. Из каждого состояния на диаграмме не должно быть самопроизвольного перехода в любое другое состояние.

3.2. Диаграммы взаимодействия объектов

Различные составные элементы систем не существуют изолированно, а оказывают определенное влияние друг на друга, что и отличает систему как целостное образование от простой совокупности элементов.

В языке UML взаимодействие элементов рассматривается в информационном аспекте их коммуникации, т. е. взаимодействующие объекты обмениваются между собой некоторой информацией.

Информация между элементами системы передается в форме сообщений, приобретая при этом дополнительное свойство оказывать направленное влияние на своего получателя.

42

Особенности взаимодействия элементов моделируемой системы могут быть представлены на диаграммах взаимодействия объектов (interaction diagram).

Таким образом, для каждого прецедента использования может быть построена модель динамического взаимодействия объектов, которая представляется в одной из двух форм:

в форме диаграммы последовательности (sequence diagram), служащей для визуализации временных аспектов взаимодействия;

в форме кооперативной диаграммы (collaboration diagram), предназначенной для спецификации структурных аспектов взаимодействия.

Диаграмма последовательности

Для диаграммы последовательности ключевым моментом является именно динамика взаимодействия объектов во времени, т. е. ее использование обусловлено представлением временных особенностей передачи и приема сообщений между объектами. На ней отображаются только те объекты, которые непосредственно участвуют во взаимодействии, и не показываются возможные статические ассоциации с другими объектами.

Графически каждый объект изображается прямоугольником, внутри которого записываются имя объекта и имя класса, разделенные двоеточием. При этом вся запись подчеркивается (рисунок 29). От прямоугольника вниз проводится пунктирная вертикальная линия. Эта линия называется линией жизни объекта.

Линия жизни служит для обозначения периода времени, в течение которого объект существует в системе и, следовательно, может потенциально участвовать во всех ее взаимодействиях. Если объект существует в системе постоянно, то и его линия жизни должна продолжаться по всей плоскости диаграммы последовательности, от самой верхней ее части до самой нижней.

43

Рисунок 29 – Графическое представление элементов диаграммы последовательности

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

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

При этом предполагается, что время передачи сообщения достаточно мало по сравнению с процессами выполнения действий объектами. Считается также, что за время передачи сообщения с соответствующими объектами не может произойти никаких событий, другими словами, состояния объектов остаются без изменения.

Объекты на диаграмме размещаются вдоль оси Х, а сообщения, упорядоченные по времени, – вдоль оси Y. Крайним слева на диаграмме изображается объект, который является инициатором взаимодействия. Начальному моменту времени соответствует самая верхняя часть диаграммы.

44

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

Фокус управления изображается в форме вытянутого узкого прямоугольника, отображающего период времени, в течение которого объект выполняет действие (рисунок 29). Вершина прямоугольника отмечает начало действия, а основание – его завершение. Этот прямоугольник располагается ниже обозначения соответствующего объекта и может заменять его линию жизни, как у Объекта_1 на рисунке 29, если на всем ее протяжении он является активным.

Отдельные объекты, выполнив свою роль в системе, могут быть уничтожены. Для таких объектов линия жизни обрывается в момент их уничтожения. Для обозначения момента уничтожения объекта в языке UML используется специальный символ в форме латинской буквы «X» (Объект_3 на рисунке 29). Ниже этого символа пунктирная линия не изображается, поскольку соответствующего объекта в системе уже нет, и этот объект должен быть исключен из всех последующих взаимодействий.

Кооперативная диаграмма

Вторым видом диаграммы взаимодействия является кооперативная диаграмма. Кооперативная диаграмма (collaboration diagram) – это диа-

грамма взаимодействия, которая выделяет структурную организацию объектов, посылающих и принимающих сообщения; на этой диаграмме не указывается время в виде отдельного измерения. Ее главная особенность заключается в возможности графически представить не только последовательность взаимодействия, но и все структурные отношения между объектами, участвующими в этом взаимодействии.

Понятие кооперации (collaboration) является одним из фундаментальных в языке UML. Оно служит для обозначения множества взаимодействующих с определенной целью объектов в общем контексте моделируемой системы. Цель самой кооперации состоит в том, чтобы специфицировать особенности реализации отдельных наиболее значимых опе-

45

раций в системе. Кооперация определяет структуру поведения системы в терминах взаимодействия участников этой кооперации.

Так как на этой диаграмме не указывается время в виде отдельного измерения, последовательность взаимодействий определяется с помощью порядковых номеров.

Таким образом, с помощью кооперативной диаграммы можно описать взаимодействие как своеобразный временной «срез» совокупности объектов, взаимодействующих междусобойдлявыполненияопределеннойзадачи.

Объекты

Объекты являются основными элементами, из которых строится кооперативная диаграмма.

Для графического изображения объектов используется символ прямоугольника, содержащий имя объекта, его класс и, возможно, значения атрибутов. Формат строки специфицирования объекта имеет вид:

<Имя объекта> / <Имя роли класса>: <Имя класса> При этом вся запись подчеркивается.

Имя роли класса может не указываться. В этом случае оно исключается из строки текста вместе с последующим двоеточием.

Проанализируем примеры записи объектов на кооперативных диаграммах (рисунок 30).

а) б) в)

Рисунок 30 – Примеры записи объектов на кооперативных диаграммах

На рисунке 30 а) показан объект с именем «клиент», играющий роль «инициатор запроса», на рисунке 30 б) представлено обозначение анонимного объекта, который играет роль инициатора запроса. В обоих случаях не указан класс, на основе которого будут созданы эти объекты. Обозначение класса присутствует на рисунке 30 в), при этом объект также является анонимным.

В контексте языка UML все объекты делятся на две категории: пассивные и активные. Пассивный объект оперирует только данными и

46

не может инициировать деятельность по управлению другими объектами. Однако пассивные объекты могут посылать сигналы в процессе выполнения запросов, которые они получают.

Активный объект может инициировать деятельность по управлению другими объектами, на диаграммах он обозначается прямоугольником с более широкими границами.

Составные объекты

На кооперативных диаграммах вводятся обозначения составных объектов, имеющих собственную структуру. Составной объект является экземпляром составного класса, который связан отношением агрегации или композиции со своими частями.

На кооперативных диаграммах составной объект изображается как обычный объект, состоящий из двух секций: верхней и нижней. В верхней секции записывается имя составного объекта, а в нижней – его составные части, как показано на рисунке 31. При этом в качестве частей могут выступать другие составные объекты.

Рисунок 31 – Графическое изображение составного объекта на кооперативной диаграмме

Связи

Связь как элемент языка UML может иметь место между двумя и более объектами. Бинарная связь на кооперативной диаграмме изобража-

47

ется отрезком прямой линии, соединяющей два прямоугольника объектов. На каждом из концов этой линии могут быть явно указаны имена ролей данной ассоциации. Рядом с линией в ее средней части может записываться имя соответствующей ассоциации.

Связь может иметь некоторые стереотипы, которые записываются рядом с одним из ее концов и указывают на особенность реализации данной связи. В языке UML для этой цели могут использоваться следующие стереотипы:

«association» – ассоциация (предполагается по умолчанию, поэтому этот стереотип можно не указывать);

«parameter» – параметр метода. Соответствующий объект может быть только параметром некоторого метода;

«local» – локальная переменная метода. Ее область видимости ограничена соседним объектом;

«global» – глобальная переменная. Ее область видимости распространяется на всю диаграмму кооперации;

«self» – рефлексивная связь объекта с самим собой, которая допускает передачу объектом сообщения самому себе, изображается петлей в верхней части прямоугольника объекта.

На рисунке 32 представлены примеры связей с различными стереотипами. Некоторая компания с именем «c», состоит из отделов (анонимный объект «Отдел»), которые, в свою очередь, состоят из сотрудников (анонимный объект «Сотрудник»). Рефлексивная связь указывает на тот факт, что менеджер отделаявляетсявтожевремя иегосотрудником.

c : Компания

<< local >> является подразделением

:Отдел

<<local >> выполняет работу

<< self >> менеджер

: Сотрудник

Рисунок32 – Графическоеизображениесвязейсразличнымистереотипами

48

Сообщения

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

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

Процесс построения кооперативной диаграммы должен быть согласован с процессами построения диаграммы классов и диаграммы последовательности. Таким образом, необходимо следить за использованием только тех объектов, для которых определены порождающие их классы. Также не допускается различный порядок следования сообщений для моделирования одного и того же взаимодействия на кооперативной диаграмме и диаграмме последовательности, т. е. необходимо согласовывать последовательности передаваемых сообщений.

Таким образом, кооперативная диаграмма обеспечивает концептуально согласованный переход от статической модели диаграммы классов к динамическим моделям поведения, представляемым диаграммами последовательности, состояний и деятельности.

3.3. Диаграммы деятельностей

При моделировании поведения проектируемой системы возникает необходимость не только представить процесс изменения ее состояний, но и детализировать особенности алгоритмической и логической реализации выполняемых системой операций.

Диаграммы взаимодействий не отражают детально порядок выполнения операций в части разветвлений, циклических повторений, парал-

лельности действий. Диаграмма деятельностей (activity diagram) ис-

правляет эти недостатки.

49

Диаграммы деятельностей играют важную роль при анализе прецедентов использования, являясь мощным средством представления и анализа их поведения при взаимодействии.

Под деятельностью будем понимать некоторую работу, которая может быть декомпозирована на совокупность действий.

Диаграмма деятельностей может отражать взаимодействие объектов из нескольких прецедентов использования. Блок, соответствующий одной деятельности, можетотражатьнесколькособытийибытьдекомпозирован.

Применяемая в диаграммах деятельности графическая нотация во многом похожа на нотацию диаграммы состояний, поскольку на диаграммах деятельноститакже присутствуютобозначениясостоянийипереходов.

Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, и переход в следующее состояние срабатывает только при ее завершении. Графически диаграмма деятельности представляется в форме графа, вершинами которого являются состояния действия, адугами– переходыотодногосостояниядействия кдругому.

Графически состояние действия изображается прямоугольником, боковые стороны которого заменены выпуклыми дугами, как показано на рисунке 33. Внутри этой фигуры записывается выражение действия, которое должно быть уникальным в пределах одной диаграммы деятельности.

Выражение действия

Рисунок 33 – Графическое изображение состояния действия

Рекомендуется в качестве имени простого действия использовать глагол.

Каждая диаграмма деятельности должна иметь единственное начальное и единственное конечное состояния. Они имеют такие же обозначения, как и на диаграмме состояний. При этом каждая деятельность начинается в начальном состоянии и заканчивается в конечном состоянии. Саму диаграмму деятельности принято располагать таким образом, чтобы действия следовали сверху вниз или слева направо.

Переходы между состояниями действия переводят систему в последующее состояние сразу, как только закончится действие в предыду-

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]