Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ (1184226), страница 7
Текст из файла (страница 7)
Структурные средстваОсновным структурным средством языка диаграмм взаимодействияявляется композиция и декомпозиция посредством состояний. Композициядиаграмм посредством состояний позволяет описывать сложное множестводопустимых трасс по частям (т.н. горизонтальная композиция).Дополнительным структурным средством является иерархическаядекомпозиция объекта (т.н. вертикальная декомпозиция).4.4.1. СостоянияСостояния предназначены для того, чтобы объединять несколькодиаграмм для описания сложного поведения множества объектов. Состояние- это особое событие на трассе объекта. В отличие от прочих событий, одно ито же состояние может разделяться одним, двумя и более объектами.
Почислу объектов на диаграмме, разделяющих некоторое состояние, различаютглобальные состояния (общее для всех объектов), разделяемые состояния(разделяемые несколькими, но не всеми объектами) и локальные состояния(разделяемое единственным объектом).Состояние называется начальным (для объекта на диаграмме), еслиданное состояние предшествует всем остальным событиям на трассе данногообъекта. Состояние называется завершающим (для объекта на даннойдиаграмме), если на диаграмме нет событий, которым данное состояниепредшествует. Остальные состояния называются промежуточными (дляобъекта на данной диаграмме).Наибольший интерес для композиции представляют глобальныесостояния.
Глобальное состояние называется начальным (на некоторойдиаграмме), если оно является начальным для всех объектов на даннойдиаграмме. Глобальное состояние называется завершающим (на диаграмме),если оно является завершающим для всех объектов на диаграмме. Остальныеглобальные состояния называются промежуточными глобальнымисостояниями.35Графический синтаксис:<condition area> ::= <local condition area><shared condition area><local condition area> ::= <condition symbol>contains <condition name><condition symbol> ::=<shared condition area> ::= <condition start area>|<condition intermediate area>|<condition end area><condition start area> ::= <condition start symbol>is associated with <condition name>is connected to {<condition intermediate area>| <condition end area> }<condition start symbol> ::=<condition intermediate area>::= <condition intermediate symbol>is connected to {<condition intermediate area>| <condition end area> }<condition intermediate symbol> ::=<condition intermediate symbol1>|<condition intermediate symbol2><condition intermediate symbol1> ::=<condition intermediate symbol2> ::=<condition end area> ::= <condition end symbol><condition end symbol> ::=<condition name> ::= <name>36Дополнительные правила построения диаграмм:Состояния и сообщения:Если два объекта разделяют одно и то же состояние, то сопряженныесобытия приема и посылки сообщений должны происходить либо оба досоответствующего состояния, либо оба после соответствующего состояния(т.е.
символы передачи сообщений не должны пересекать символысостояний).Семантика:1. Состояние является событием для объекта.2. Разделяемые состояния не определяют отношения порядка междусобытиями различных объектов.3. Состояния определяют возможные композиции и декомпозиции диаграммвзаимодействия.4. Семантика диаграммы с состояниями полностью эквивалентна семантикеданной диаграммы с удаленными состояниями.4.4.2. Декомпозиция диаграммОпределим секцию,как такую диаграмму, у которой имеютсяначальное и завершающее глобальные состояния и не имеетсяпромежуточных состояний. Глобальные состояния разбивают диаграмму насекции (т.е. участки трассы между глобальными состояниями).В общем случае, декомпозиция диаграмм посредством состоянийопределяется следующим образом.
Пусть некоторая диаграмма (MSC)содержит промежуточные состояния Si. Тогда MSC может быть разбита надве диаграммы (MSC1 и MSC2) таким образом, что состояния Si становятсязавершающими на MSC1 и начальными на MSC2.4.4.3. Композиция секцийПравило композиции для секций определяется следующим образом.Пусть имеется две секции, причем множества объектов у них совпадают.Тогда, если на первой секции имеется завершающее глобальное состояние снекоторым именем, а на второй секции- начальное состояния с тем жеименем, то вторая секция может служить продолжением первой.Операцию продолжения секции можно уточнить следующим образом:для каждого объекта на новой диаграмме последовательность событий будетсостоять из всех событий, описанных на первой диаграмме (в той же37последовательности); затем всех событий, описанных на второй диаграмме (втой же последовательности).Заметим, что вместе две диаграммы, одна из которых может бытьпродолжением другой, описывают новое поведение соответствующегомножества объектов.В общем случае, правило композиции диаграмм посредствомсостояний формулируется следующим образом.
Пусть две диаграммыописывают некоторое общее множество объектов I (дополнительно, каждаядиаграмма может описывать объекты, отсутствующие на другой диаграмме).Тогда, одна диаграмма (MSC1) может служить продолжением другойдиаграммы (MSC2), если на MSC1 объекты из множества I оканчиваетсясостояниями с именами Si, и объекты из множества I на MSC2 начинаются ссоответствующих состояний. При этом некоторые (или даже все) состоянияSi могут быть разделяемыми.Трассы объектов, не входящие во множество I (на MSC1 и MSC2),добавляются к объединенной диаграмме. Очевидно, что множествовзаимодействий между объектами из MSC1 и MSC2 должно быть пусто дляобъектов, не входящих в общее множество I.Ситуация, когда объект на MSC1 посылает сообщение в окружение, аэто сообщение на самом деле предназначается одному из объектов на MSC2(т.н.
композиция посредством окружения) не выразима средствами языкадиаграмм взаимодействия.4.4.4. Виды композиции диаграммРассмотрим основные способы организации набора диаграмм в целяхописания сложного поведения множества объектов.Последовательная композицияПо определению, последовательной композицией называется такаяорганизация набора диаграмм, при которой каждая диаграмма набора (кромепервой) является продолжением некоторой другой (т.е. начальные состоянияодной диаграммы совпадают с завершающими состояниями другойдиаграммы).Последовательная композицияописывает сложное поведение,состоящее из нескольких последовательных этапов. Заметим, что поведение,описываемое последовательной композицией нескольких диаграмм можно,вообще говоря, описать единственной диаграммой без состояний.38Альтернативная композицияПо определению, альтернативной композицией называется такаяорганизация набора диаграмм, когда все диаграммы набора (кроме первой)имеют одинаковые начальные состояния, совпадающие с завершающимисостояниями первой диаграммы.Альтернативная композиция описывает сложное поведение, состоящееих взаимоисключающих последовательностей событий.
Заметим, чтоповедение, описываемое альтернативной композицией нескольких диаграммнельзя, вообще говоря, описать единственной диаграммой без состояний.Циклическая композицияПо определению, циклической композицией называется такаяорганизация набора диаграмм, когда завершающие состояния однойдиаграммы (MSC2) совпадают с начальными состояниями другой диаграммы(MSC1), причем MSC2 является продолжением диаграммы MSC1 (возможно сучастием других диаграмм).Частным случаем циклической композиции является одна диаграмма,которая имеет одинаковые начальные и завершающие состояния.Циклическая композиция описывает поведение, состоящее изповторяющейся последовательности событий. Заметим, что поведение,описываемое циклической композицией нескольких диаграмм, допускаетбесконечное множество конечных последовательностей событий.
Такоеповедение не может быть описано единственной диаграммой без состояний.Параллельная композицияПо определению, параллельной композицией называется такаяорганизация диаграмм, когда события одной диаграммы (без измененияпоследовательности) могут произвольным образом перемешиваться ссобытиями другой диаграммы.Параллельная композиция является очень мощным средством описаниясложного поведения.
Очевидно, что поведение, описываемое параллельнойкомпозицией диаграмм нельзя, вообще говоря, описать единственнойдиаграммой. Параллельная композиция диаграмм не выразима средствамистандарта языка диаграмм взаимодействия 1992 г. (но имеется в стандарте1996 г.).4.4.5. Иерархическая декомпозиция объектовВзаимодействие компонентов составного объекта может быть описаноотдельно на дополнительной диаграмме (т.н. диаграмме декомпозиции).Данное средство поддерживает иерархию описаний поведения сложнойсистемы.
Диаграмма декомпозиции отличается от родительской диаграммы39взаимодействия только использованием ключевого слова submsc. Диаграммадекомпозиции связана с родительской диаграммой, на которойсоответствующий объект содержит ключевое слово decomposed (именаобъекта с ключевым словом decomposed на родительской диаграмме и имядиаграммы декомпозиции должны совпадать).Заметим, что правила связывания объекта с диаграммой декомпозицииприводит к неоднозначности при наличии одноименных объектов сключевым словом decomposed на нескольких диаграммах.
Считается, чтодополнительная привязка может осуществляться инструментальнымсредством поддержки.Для снятия неоднозначности привязки диаграммы декомпозиции ксоответствующей основной диаграмме договоримся на каждой диаграммедекомпозиции обязательно указывать имя основной диаграммы. Для этогобудем использовать комментарий при заголовке диаграммы декомпозиции соследующим текстом:/* from <parent diagram name> */,где <parent diagram name> есть имя родительскойсоответствующим ключевым словом msc или submsc).диаграммы(сГрафический синтаксис:<submsc diagram>::=<submsc symbol>contains {<submsc heading> {<instance area>|<external message area>}*}<submsc symbol> ::= <frame symbol><submsc heading> ::= submsc <submsc name><submsc name> ::= <name>В соответствии с дополнительным соглашением:<submsc heading> ::= submsc <submsc name>/* from <parent diagram name> */<parent diagram name> ::= msc <msc name> | submsc <submsc name>Дополнительные правила построения диаграмм:Связь объекта с ключевым словом decomposed и соответствующейдиаграммой декомпозиции:1.