Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Архитектура и проектирование программных систем

Описание поведения системы

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

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

Диаграммы последовательностей системы представляют собой графическую модель, которая для определенного варианта использования показывает динамику взаимодействия объектов во времени [6, 8]. Для построения диаграммы последовательностей необходимо:

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

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

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

Если объекты разрушаются в какой-то момент для освобождения ресурсов системы, то их линия жизни обрывается в момент уничтожения. Для обозначения такого момента в языке иМИ используется специальный символ в форме латинской буквы х (объект 3 на рис. 5.28). Ниже этого символа пунктирная линия не изображается, поскольку соответствующего объекта в системе уже нет (и этот объект должен быть исключен из всех последующих взаимодействий).

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

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

Элементы диаграммы последовательностей

Рис. 5.28. Элементы диаграммы последовательностей

Основное содержимое диаграммы последовательности - сообщения. Они изображаются стрелками, направленными от одной линии жизни к другой. Стрелка указывает на приемник сообщения. Если сообщение асинхронное, то стрелка рисуется уголком, а если синхронное (вызов), то закрашивается треугольником. Ответ на синхронное сообщение (возврат из вызова) показывается пунктирной стрелкой уголком. Сообщение вызова может быть опущено, поскольку каждый вызов неявно подразумевает возврат, но иногда удобно таким образом продемонстрировать возвращаемое значение.

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

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

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

Действия - это элементы, с помощью которых реализуется поведение в рабочем потоке. Действия отображаются прямоугольниками с закругленными углами (рис. 5.29). Внутри этой фигуры записывается выражение действия, которое должно быть уникальным в пределах одной диаграммы деятельности. Действия можно определить, изучив спецификацию прецедентов использования и определив, какое поведение необходимо для пошагового выполнения прецедента использования. Действие может быть записано на естественном языке, некотором псевдокоде или языке программирования. Рекомендуется в качестве имени простого действия использовать глагол с пояснительными словами.

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

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

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

Г >

Разработать план проекта

Ч_4

Действие

1пс1ех:= питЬег+1

Поток

управления

Элементы диаграммы деятельности

Рис. 5.29. Элементы диаграммы деятельности

Данные

Рис. 5.30. Изображение данных и потоков данных

Разделение и слияние потока управления. В рабочем потоке могут быть действия, которые могут выполняться параллельно. Узел разделения показывает, какие действия можно выполнять одновременно. Узел слияния показывает объединение потоков выполнения, поэтому соответствующие действия должны завершиться перед выполнением дальнейшей работы. Узлы разделения и слияния обозначаются отрезками (рис. 5.31).

Начальный и конечный узлы. Для обозначения начального и конечного узлов рабочего потока используются специальные символы. Начальный узел изображается целого залитого круга, а конечный - в виде черного круга, окаймленного линией окружности несколько большего диаметра (так называемый «бычий глаз»). Возможный пример использования начального и конечного узлов показан на рис. 5.32.

Разделение и слияние потоков управления

Рис. 5.31. Разделение и слияние потоков управления

Обозначение начального и конечного узлов

Рис. 5.32. Обозначение начального и конечного узлов

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

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

Простейший пример автомата с двумя состояниями демонстрирует ситуация с исправностью компьютера. Здесь рассматриваются два самых общих состояния («исправен» и «неисправен») и два перехода («выход из строя» и «ремонт»). Графически эта информация может быть представлена в виде диаграммы состояний компьютера (рис. 5.33).

Диаграмма состояний компьютера

Рис. 5.33. Диаграмма состояний компьютера

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

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

Имя состояния - это строка текста, начинающаяся с заглавной буквы, которая раскрывает содержательный смысл данного состояния. Имя является обязательным элементом. Рекомендуется в качестве имени использовать глаголы в настоящем времени («печатает», «ожидает», «получает» и т.п.) или соответствующие причастия («занят», «свободен», «получено» И Т.П.).

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

< метка действия 7’ выражение действия >.

Метка действия указывает на обстоятельства или условия, при которых будет выполняться деятельность, определенная выражением действия. При этом выражение действия может использовать любые атрибуты и связи, которые принадлежат области имен или контексту моделируемого объекта. Если список выражения действий пустой, то разделитель в виде наклонной черты 7’может не указываться. На рис. 5.34 показан пример состояния «Считывает запись» после открытия файла, содержащего несколько записей.

/

Считывает запись символ / считать символ конец строки / проверить на конец строки

V___)

Рис. 5.34. Пример изображения состояния с пояснением

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

В этом случае говорят, что переход срабатывает. До срабатывания перехода объект находится в предыдущем от него (перехода) состоянии, называемом исходным состоянием, или в источнике (не путать с начальным состоянием - это разные понятия), а после его срабатывания объект находится в последующем от него (перехода) состоянии (целевом состоянии).

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

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

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

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ   След >
 

Популярные страницы