Форум Сообщества Аналитиков
Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: Decline от 06 Февраля 2008, 12:28:26
-
Здравствуйте.
Насколько я знаю, при моделировании систем различные типы диаграмм оказываются тесно связанными друг с другом(UC-диаграммы состояний, диаграммы классов с диаграммами последовательности и.т.д).
Меня интересует связь между диаграммами последовательности(ДП) и диаграммами состояний(ДС). Используется ли такая при моделировании?
В простейшем случае она может выглядеть так:
для некоторых состояний в ДС инициирующее событие перехода состояния в другое состояние совпадает с некоторым сообщением, которое получает объект(моделируемый вышеописанной ДС) на ДП. И обратно, в некоторых состояниях входной эффект состояния совпадает с некоторым сообщением посылаемым объектом.Если непонятно, могу описать более подробно.
Вопрос возник в связи с научной работой.
-
Это зависит уже от реализации конкретного инструмента. В спеке никаких ограничений по этому поводу нет.
Но такой реализации нигде я не видел. Вот, например, что нашли ребята в ЕА: http://www.uml2.ru/forum/index.php?topic=579.msg7178#msg7178
З.Ы. Хорошо бы нарисовать и прикрепить ДС и ДП и показать на примере здесь, чтобы всем было однозначно ясно
-
К сожалению прямо сейчас не могу нарисовать, но если описать словами:
Пусть на ДП объект X посылает объекту Y сообщение mes()
Тогда для некоторого состояния в ДС Y есть переход по событию mes(). Кроме того в ДС X есть состояние с входным эффектом mes() (/entry mes() ).
Постараюсь вечером прикрепить диаграммы.
Вобще для чего это нужно - мне пришла в голову мысль, а что если связать ДС и ДП так, чтобы на ДП описывался внешний протокол обмена сообщениями, а на ДС соответствующих объектов - логика(концепция, шаги) их обработки. Далее такую систему можно использовать для верификации программных свойств, путем сведения к некоторым мат.моделям.
-
Таким образом на-практике эта связь не используется, да?
Как вы считаете насколько она логична и естественна?
-
Вобще для чего это нужно - мне пришла в голову мысль, а что если связать ДС и ДП так, чтобы на ДП описывался внешний протокол обмена сообщениями, а на ДС соответствующих объектов - логика(концепция, шаги) их обработки. Далее такую систему можно использовать для верификации программных свойств, путем сведения к некоторым мат.моделям.
Не совсем вас понимаю, как потом можно это будет использовать для мат. моделирования. Ведь ДС описывает больше переходы внутри одной ф-ции или объекта, а ДП описывает взаимодействие с внешними объектами\системами. Ну есть у вас входное состояние и что? Как оно поможет вам на ДС, где будет описано именно действия внутри объекта?
-
Таким образом на-практике эта связь не используется, да?
Как вы считаете насколько она логична и естественна?
используется, используется!
у меня в процесе сбора и согласования требований
- вначале создаются текстовые сценарии взаимодействия, потом
- они уточняются в Communication диаграммах, потом
- для каждого объекта по всему набору Communication-диаграмм собирается
набор приходящих сообщений-сигналов и набор посылаемых сигналов.
- Набор состояний, как правило, удаётся получить от заказчика напрямую.
Остаётся увязать всё это в диаграммы состояний.
Сбор соответствия Communication message - State-Chart signal приходится пока делать вручную и
независимо отображать результат в ЭА диаграммах.
-
Не совсем вас понимаю, как потом можно это будет использовать для мат. моделирования. Ведь ДС описывает больше переходы внутри одной ф-ции или объекта, а ДП описывает взаимодействие с внешними объектами\системами. Ну есть у вас входное состояние и что? Как оно поможет вам на ДС, где будет описано именно действия внутри объекта?
Да, именно. Объект получил сообщение/вызов метода (getmes()), для выполнения метода объект вызывает внутренние подметоды(или например в зависимости от состояния может обработать запрос различными путями) - это и описывается в ДС. Когда он обработал запрос он переходит в состояние входным действием которого будет ответ на запрос (return result).
Эта система очень похожа на сети Петри высокого уровня, собственно их я и предполагаю использовать для мат.моделирования и верификации.
-
используется, используется!
у меня в процесе сбора и согласования требований
- вначале создаются текстовые сценарии взаимодействия, потом
- они уточняются в Communication диаграммах, потом
- для каждого объекта по всему набору Communication-диаграмм собирается
набор приходящих сообщений-сигналов и набор посылаемых сигналов.
- Набор состояний, как правило, удаётся получить от заказчика напрямую.
Остаётся увязать всё это в диаграммы состояний.
Сбор соответствия Communication message - State-Chart signal приходится пока делать вручную и
независимо отображать результат в ЭА диаграммах.
Спасибо!
Ибо мне показалось что идея не совсем бредовая, поэтому хотелось уточнить )
-
Меня интересует связь между диаграммами последовательности(ДП) и диаграммами состояний(ДС). Используется ли такая при моделировании?
На диаграмме последовательности можно показывать как объект меняет свое состояние.
-
Связь есть, и она проходит через головы тех, кто строит модель. ДП определяет некоторые трассы, а ДС --, образно говоря, карту, по которой эти трассы проходят и правила передвижения.
Приводимый пример не точен в этой части:
Пусть на ДП объект X посылает объекту Y сообщение mes(). ... в ДС X есть состояние с входным эффектом mes() (/entry mes() ).
Первое, отправка сообщения Y.mess() может быть в любом эффекте, не обязательно в эффекте входного действия.
Второе, ДП может моделировать трассу, на которой X и Y не взаимодействуют или взаимодействуют так, что вызов Y.mess() не происходит.
Третье. Y может игнорить отправляемые ему вызовы Y.mess(). Значит, неточно и это:
...для некоторого состояния в ДС Y есть переход по событию mes().