Диаграммы конечных автоматов.
Диаграмма деятельности описывает статическое состояние системы. В отличие от этого диаграмма конечных автоматов описывает динамическое состояние системы или ее поведение. Конечные автоматы бывают 2-х видов – поведенческие и протокольные. Основными элементами конечных автоматов являются состояния и переходы. Замечание: к этим элементам могут добавляться события. Поведенческий автомат позволяет моделировать динамическое поведение объекта, выражающееся в виде конечного набора состояний и перехода между ними. В ответ на событие, конечный автомат осуществляет переход из одного состояния в другое. Конечные автоматы используются для моделирования поведения в таких объектах как: · классы, · варианты использования, · подсистемы, · системы. Существуют объекты, у которых никакого поведения нет (например, интерфейсов и портов). Они просто описывают протокол использования. Подобного рода автоматы называются протокольными. Они используют состояния, события и переходы для определения протокола некоторого объекта. Протокол включает: · условия, при которых могут вызываться операции объектов, · результаты вызова операций · порядок вызова операций. Конечные автоматы чаще всего используются для моделирования поведения классов. У каждого класса может быть только один поведенческий автомат, но несколько протокольных. При этом, для всех экземпляров моделируемого класса, автомат описывает всевозможные состояния, события и переходы. Замечание: одной из важнейших проблем использования конечных автоматов является их тестирование. В практике существует несколько программных продуктов, которые предназначены для имитации построенных конечных автоматов. Рассмотрим в качестве примера состояние электрической лампочки. Диаграмма конечных автоматов для электрической лампочки имеет вид:
Состояние объекта меняется со временем, но в любой момент оно определяется: значениями атрибутов объекта, отношениями с другими объектами, осуществляемыми действиями. Каждое состояния поведенческого объекта может содержать от 0 и более действий или операций. У состояний протокольных автоматов нет действий и операций. Замечание: в рамках данных диаграмм действия считаются непрерывными и мгновенными. В любом состоянии может быть любое число действий и внутренних переходов. Внутренний переход позволяет зафиксировать тот факт, что что-то произошло, и это заслуживает отражения в модели, но не обуславливает переход в другое состояние. В языке UML принята следующая нотация для отображения состояния:
} имя состояния выходные и выходные данные внутренние переходы
внутренняя деятельность
Как правило, у каждого состояния есть 2 специальных действия (вход и выход/entry и exit), ассоциированные со специальными событиями. Событие entry происходит мгновенно и автоматически при входе в состояние.
Замечание: внутренние деятельности или внутренние переходы длятся некоторое установленное время, и могут быть прерваны. Деятельность внутри события обозначается ключевым словом «do». Для внутренних действий или переходов так же предусмотрен соответствующий синтаксис – синтаксис внутреннего действия: имяСобытия/некоторое действие. Замечание: при моделировании внутренних событий следует подробно расписывать то, что должно происходить. Для моделирования переходов между состояниями также предусмотрен определенный синтаксис. Замечание: сторожевое событие часто называется условием. /12.10.12/ Книги: Тверски – «Принятие решения в неопределенности. Правила и предубеждения»
|