Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ (1184226), страница 6
Текст из файла (страница 6)
Символ заголовка объекта не описывает созданиеобъекта. См. раздел "уничтожение объекта".2) Символ окончания трассы описывает выход объекта из-под нашегонаблюдения. Символ окончания трассы объекта не описываетуничтожения объекта. См. раздел "создание объекта".4.2. События4.2.1. СообщениеСообщение моделирует взаимодействие (т.е. обмен информацией)между двумя объектами системы или между объектом и окружениемсистемы.
С точки зрения системы, взаимодействие между двумя объектамиразбивается на два сопряженных события: посылка сообщения однимобъектом и прием сообщения другим объектом. Сообщения, приходящие изокружения системы, моделируются одним событием приема сообщения, асобытия посылаемые в окружение, моделируются одним событием посылкисообщения.Сообщение имеет имя. Имя сообщения задает тип взаимодействия.Диаграмма может описывать несколько обменов сообщениями с одинаковымименем. Для уникальной идентификации конкретного обмена предусмотрент.н.
уникальный идентификатор обмена (message instance name), однако ониспользуется преимущественно в текстовом представлении для снятиянеоднозначности в описании сопряженных событий у различных объектов. Вграфическом представлении такой проблемы не возникает, так каксопряженные события представляются различными концами одного и тогоже графического объекта (стрелки от трассы одного объекта к трасседругого).27Дополнительно, язык диаграмм взаимодействия позволяет описыватьпередачу информации в сообщении. С сообщением может быть связан списокпараметров.
Каждый параметр моделирует передачу конкретнойинформации от одного объекта к другому.Графический синтаксис:<message out area> ::= <flow line symbol><flow line symbol> ::=<message in area> ::=<message symbol>is associated with <msg identification>is connected to {<message out area>|<msc symbol>|<submsc symbol>}[is followed by <message out area>]<message symbol> ::=<external message area> ::=<message symbol>is associated with <msg identification>is connected to{<message out area>{<msc symbol>|<submsc symbol>}}<msg identification> ::= <message name>[,<message instance name>] [(<parameter list>)]<parameter list> ::= <parameter name>[,<parameter list>]<parameter name> ::= <name><message name> ::= <name><messsage instance name> ::= <name>Дополнительные правила построения диаграмм:Ограничения на взаимодействие:1.
Событие приема сообщения не должно предшествовать сопряженному сним событию посылки сообщения (т.е. граф предшествования долженбыть ациклическим);2. Объект не должен посылать сообщений самому себе;3. Для каждого события посылки сообщения должно быть заданосопряженное с ним событие приема сообщения и наоборот;Если на трассе объекта область приема некоторого сообщениясовпадает с областью посылки другого сообщения (т.е. конец одной стрелкии начало другой находятся в одной точке), то считается, что событие приемасообщения предшествует событию посылки сообщения.28Семантика:1. Взаимодействие задает частичное отношение порядка на множествесобытий всей системы: для данного обмена событие посылки сообщенияодного объекта предшествует сопряженному событию приема сообщениядругого объекта.2. События с одинаковыми именами задают взаимодействия одного и тогоже типа.3.
Семантика параметров сообщения не определяется в языке диаграммвзаимодействия.4.2.2. ДействиеДополнительно к описанию взаимодействия объектов, язык диаграммвзаимодействия позволяет описывать действия, выполняемые объектом(например, как реакция на получение некоторого сообщения).Графический синтаксис:<action area> ::= <action symbol> contains <action text><action symbol> ::=<action text> ::= <text>Семантика:1.
Действия локальны по отношению к объекту, который их выполняет.2. Семантика действия не определяется в рамках диаграмм взаимодействия.3. Действие происходит "мгновенно".4.2.3. Создание объектаЯзык диаграмм взаимодействия позволяет описывать динамическоесоздание одних объектов другими объектами. Очевидно, что объект не можетвзаимодействовать с другими объектами до момента своего создания. Присоздании объекта ему можно передать некоторую информацию в виде спискапараметров.Графический синтаксис:<create area> ::= <createline symbol>[is associated with <parameter list> ]is connected to <instance head symbol><createline symbol> ::=29Дополнительные правила построения диаграмм:На данной диаграмме каждый объект может быть создан единственныйраз (т.е.
к символу заголовка объекта может быть присоединенаединственная линия создания объекта).Семантика:1. Создание объекта разделяется на два события: одно для создающегообъекта и другое для создаваемого объекта;2. Создание объекта задает отношение порядка между событиями двухобъектов: считается, что оба события ("создание" и "рождение")происходят одновременно;3. Создание объекта означает начало его трассы, т.е.
никакие события дляданного объекта не могут происходить до его создания;4. Семантика параметров создания объекта не определяется в языкедиаграмм взаимодействия.4.2.4. Уничтожение объектаУничтожение объекта является обратным событием по отношению ксозданию.Графический синтаксис:<stop symbol> ::= HСемантика:Уничтожение объекта означает окончательное завершение трассы данногообъекта, т.е. никакие события для данного объекта не могут происходитьпосле его уничтожения.4.2.5.
ТаймерТаймер является единственным средством задания времени междуотдельными событиями на трассе объекта. Таймер имеет имя и, возможно,длительность. Каждому таймеру соответствуют два события: установкатаймера и срабатывание таймера. Вместо события срабатывания таймераимеется возможность указать сброс таймера.Имеется аналогия между таймерами в языке диаграмм взаимодействияс таймерами в языке SDL. В SDL таймер может быть установлен наопределенный промежуток времени, после истечения которого таймерсрабатывает и посылает сообщение своему владельцу.
Дополнительно,имеется возможность сбросить установленный таймер.30Графический синтаксис:<timer area>::= <timer set area>|<timer reset area><timeout area><timer set area> ::= <set symbol><set symbol> ::=<timer reset area> ::= <reset symbol>is associated with <timer name>[(<duration name>)]is connected to <timer set area><reset symbol> ::=<timeout area> ::= <timeout symbol>is associated with <timer name>[(<duration name>)]is connected to <timer set area><timeout symbol> ::=<duration name> ::= <name><timer name> ::= <name>Дополнительные правила построения диаграмм:Связь между установкой и срабатыванием таймера:Для каждого символа установки таймера должен быть задан символсрабатывания, либо символ сброса таймера.Семантика:1. Время между установкой и срабатыванием таймера не меньшедлительности интервала времени, указанной в символе установки таймера.2.
В случае сброса таймера, время между установкой и сбросом меньшедлительности интервала времени, указанной в символе установки таймера.3. Семантика длительности интервала не определяется в языке диаграммвзаимодействия.4.2.6. Область неупорядоченных событийОбласть неупорядоченных событий служит для описаниянедетерминированных событий. Например, эта конструкция может бытьиспользована для описания приема двух или более сообщений впроизвольном порядке. В языке диаграмм взаимодействия существуютограничения на события, которые могут происходить внутри областинеупорядоченных событий: могут быть только области неупорядоченногоприема сообщений и области неупорядоченной посылки сообщений.31Графический синтаксис:<concurrent area> ::= <coregion start symbol>is followed by {<concurrent out area>|<concurrent in area>}is followed by <coregion end symbol><coregion start symbol> ::=<coregion out area> ::= { <message out area>is followed by <coregion symbol> }+<coregion in area> ::= { <message in area>is followed by <coregion symbol> }+<coregion symbol> ::=<coregion end symbol> ::=Семантика:События внутри области неупорядоченных событий не связаны между собойотношением порядка.4.3.
Семантика диаграмм взаимодействияВ диаграммах взаимодействия не подразумевается наличие глобальнойоси времени. Считается, что на оси каждого объекта время движется сверхувниз. Предположений о наличии шкалы времени для каждого объекта такженет. События на оси объекта полностью упорядочены (за исключениемслучая специальной конструкции - неупорядоченной области). Событияразличных объектов упорядочены только за счет обменов сообщениями:сообщение должно быть послано раньше, чем принято. Больше никакихпредположений об упорядоченности событий не делается.Таким образом, диаграмма взаимодействия задает отношениечастичной упорядоченности на множестве сообщений всей системы (всехобъектов, присутствующих на диаграмме, и соответствующего окружения).Отношение частичной упорядоченности - транзитивное, антисимметричное,рефлексивное бинарное отношение.Каждая диаграмма взаимодействия задает обычно множестводопустимых последовательностей событий.
По определению, допустимойпоследовательностью событий является линейная последовательностьпроекций событий на глобальную ось времени (с определенной шкалой).Заметим, что допустимая последовательность событий также может бытьописана при помощи диаграммы взаимодействия (с усиленной семантикой,предполагающей наличие глобальной оси времени с определенной шкалой).32Рассмотрим пример диаграммы взаимодействия с именем ordering,описывающей систему из трех объекта с именами a, b и c. Типы объектов надиаграмме не указаны.Объект a принимает сообщение с именем m1 из окружения системы;затем посылает сообщение с именем m2 объекту b; затем посылаетсообщение с именем m3 объекту c; затем принимает сообщение с именем m4от объекта b.Объект b принимает сообщение с именем m2 от объекта a; затемпосылает сообщение m4 объекту a.Объект с принимает сообщение m3 от объекта a.
Это единственноесобытие объекта с именем c на данной диаграмме.Ниже приводится графическое представление диаграммы ordering:MSC orderingabcm1m2m3m4Рис. 2. Диаграмма взаимодействия orderingРассмотрим текстовое представление диаграммы ordering:MSC ordering;INST a, b, c;INSTANCE a;IN m1 FROM ENV;OUT m2 TO b;OUT m3 TO c;*IN m4 FROM b;ENDINSTANCE;33INSTANCE b;IN m2 FROM a;OUT m4 TO a;ENDINSTANCE;INSTANCE c;IN m3 FROM a;ENDINSTANCE;ENDMSC;Обозначим событие приема сообщения m через in(m), а событие посылкисообщения m через out (m).Множество событий системы на диаграмме ordering:E={in(m1),out(m2),in(m2),out(m3),in(m3),out(m4),in(m4)}Взаимодействия (обмены сообщениями), описанные наordering, задают следующие частичные отношения порядка насобытий E:in(m2) < out(m2)in(m3) < out(m3)in(m4) < out(m4)Трасса объекта A задает следующее отношение порядка насобытий E: out(m1) < out(m2) < out(m3) < in(m4)Трасса объекта B задает следующее отношение порядка насобытий E: in(m2) < out(m4)диаграммемножествемножествемножествеСоответствующее отношение частичного порядка на множестве E можноописать, задав граф предшествования (компактная форма представлениятранзитивного замыкания отношения порядка на множестве E):in(m1)out(m2)out(m3)in(m4)in(m2)in(m3)out(m4)34Заметим, что любая диаграмма взаимодействия допускает наличиедополнительных наблюдаемых событий между событиями, описанными надиаграмме (в том, числе, наличие дополнительных взаимодействий междуобъектами).4.4.