Форум Сообщества Аналитиков
Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: Ice от 15 Января 2008, 15:13:30
-
Речь идет о диаграмме состояний для описания ЖЦ.
Есть состояния, есть сигналы кот. можно выдать из определенного состояния.
Есть переходы между состояниями. Что есть сигналом, а что переход?
-
Диаграмма состояний есть суть конечного автомата. Автомат может быть детерминированным или вероятностным.
Постулируется, что автомат задается конечным алфавитом входных сигналов, алфавитом выходов, состояний и переходов из состояния в состояния.
Диаграмма состояний графическое представление конечного автомата, связывающая события и состояния.
Событие есть проишествие, случившееся в определенный момент времени. События бывают различных видов:
событие сигнала, изменения и времени.
Сигнал - явная односторонняя передача информации от одного объекта другому. Событие сигнала - событие получения или отправки сигнала. Сигнал - это сообщение, событие сигнала - это происшествие.
Событие изменения - событие, вызванное выполнением логического выражения.
Событие времени - событие, вызванное достижением момента абсолютного времени или истечения временного интервала.
Состояние - абстракция значений и связей объекта.
Переход - мгновенная смена одного состояния другим.
Переход запускается, когда происходит связанное с ним событие (передача сигнала, наступление изменения, времени). Переход в другое состояние зависит от исходного состояния и полученного события.
Таким образом, переход показывает возможность перехода из состояния А в состояние Б при получение сигнала С, если это не препятствует сторожевое условие Д.
-
А как это выглядит на простом примере?
Два состояния, переход между ними, сигналы - например? вот конкретная ситуация: описать с помощью state mashine ЖЦ дефекта. У него (дефекта) есть состояния, например: "Новый, не подтвержден" и "Подвержден". Что будет переходом между состояниями, а что сигналом/ами?
-
ну сложно вот так без ясного описания и понимания. ну пусть будет так:
-
c cостояниями и событиями более-менее разобрались :)
Произошло событие и одно состояние сменилось другим (произошел переход, а возможен переход без события?)
А где в этом примере сигналы?
-
возможно и без актуализированного события, хотя событие таки происходит, окончание пребывания в исходном состоянии, которое автоматом переводит систему в иное состояние. Хотя выход из состояние конечно возможен только при возникновении события, но оно не обязательно должно актуализироваться повторюсь.
система виндоус находится в постоянном ожидании. объект вообще в ООП находится в ожидании события: сообщения например от мышки, времени (например таймаута при запросе странички html у удаленного url), некоторого условия
в данном случае сигналом будет сообщение Обнаружен дефект, конечно не очень понятно, но можно представить, что объект делает самопроверку и соотвествее носылаей сам себе сообщение если обнаружен дефект
-
в данном случае сигналом будет сообщение Обнаружен дефект, конечно не очень понятно, но можно представить, что объект делает самопроверку и соотвествее носылаей сам себе сообщение если обнаружен дефект
мне кажется, у Ice в данном случае дефект - это абстрактный объект в какой-то баг-трекинговой системе, со своим ЖЦ.
Какой-то ВНЕШНИЙ объект формирует и посылает сообщение, по которому должен родиться новый абстракный объект: Дефект.
Скорее всего - это сообщение генерируется не автоматически, а из пользовательского диалога.
может, я повторяю уже понятое, но на всякий случай ещё раз:
в наших простых случаях переход их состояния в состояние выполняется ТОЛЬКО по событию:
событие инициирует этот переход.
События могут быть разными, в частности - приход сигнала.
Переход запускается, когда происходит связанное с ним событие
(передача сигнала, наступление изменения, времени).
...
Переход в другое состояние зависит от исходного состояния и полученного события.
не передача сигнала, а ПРИЁМ сигнала объектом,
событие не получают и не передают, оно ПРОИСХОДИТ,
а объект на него, на это событие, должен ОТРЕАГИРОВАТЬ
запуском соответствующего перехода.
-
События могут быть разными, в частности - приход сигнала.
не передача сигнала, а ПРИЁМ сигнала объектом,
событие не получают и не передают, оно ПРОИСХОДИТ,
а объект на него, на это событие, должен ОТРЕАГИРОВАТЬ
запуском соответствующего перехода.
Ошибочка Ваша :) конечно событие не передают, передают сигнал.
Причем передача именно односторонняя передача информации (сигнала) отличает сигнала от вызова процедуры, в последнем случае важен ответ. при передачи сигнала естественно возникает отправка его от объекта-источника и получение объектом приемником. Передача подразумевает отправка и прием сигнала. Причем объекту отправившему сигнал по барабану получен ли он, если не сказано иначе :)