This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Понятие автомата можно рассматривать и с других точек зрения, например:
– Конечный автомат - математическая модель устройства с конечной памятью. Конечный автомат перерабатывает множество входных дискретных сигналов в множество выходных сигналов. Различают синхронные и асинхронные конечные автоматы.http://www.glossary.ru/cgi-bin/gl_sch2.cgi?RKutl,t:l!giyusgy
– Автомат - устройство или совокупность устройств, выполняющих операции без непосредственного участия человека.
– Finite state machine (FSM) (a.k.a. finite state automaton) An abstract machine that defines a finite set of conditions of existence (called “states”), a set of behaviors or actions performed in each of those states, and a set of events that cause changes in states according to a finite and well-defined rule set.http://www.quantum-leaps.com/glossary.htm
Простейший пример автомата - ситуация с исправностью некоторого технического устройства: два самых общих состояния: "исправен" и "неисправен" и два перехода: "выход из строя" и "ремонт.
Состояние (State) объекта - ситуация в его жизни, на протяжении которой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события.
Событие (Event) - спецификация существенного факта, имеющего место в пространстве и во времени, некий стимул, инициирующий переход из одного состояния в другое.
Когда происходит событие, в зависимости от текущего состояния объекта имеет место та или иная деятельность.
Деятельность (Activity) - занимающее некоторое время неатомарное вычисление внутри автомата.
Результатом деятельности является некоторое действие (Action), составленное из атомарных вычислений, которое приводит к изменению состояния модели или возврату значения.
Записываются в виде отдельной строки и имеют следующий формат: метка-действия/выражение-действия
Метка указывает на условия, при которых будет выполняться деятельность, определенная выражением действия
Перечень меток фиксирован в языке UML:– Entry (входное действие)– Exit (выходное действие )– Do (выполняющуюся деятельность )– Include (обращения к подавтомату )
Сигнатура события описывает некоторое событие с необходимыми аргументами:
имя события(список параметров)
Сторожевое условие представляет собой некоторое булевское выражение и может отсутствовать. Если оно принимает значение «истина», то переход срабатывает
Выражение действия выполняется в том и только в том случае, когда переход срабатывает. Это атомарная операция, выполняемая сразу после срабатывания соответствующего перехода до начала каких бы то ни было действий в целевом состоянии.
– Если не наблюдается никакой активности пользователя, активизируется хранитель экрана (заставка)
– В состояние «Отображение заставки» GUI переходит при условии истечения заданного промежутка времени и возвращается в состояние «Работа» при нажатии клавиши или перемещении указателя «мыши»
диаграмма состояний - не обязательна и "присоединяется" к тому элементу, который, ведет себя нетривиально
из каждого состояния не может быть самопроизвольного перехода другое состояние
объект в каждый момент должен находиться в единственном состоянии
никакие два перехода из одного состояния не могут сработать одновременно
некоторые дополнительные конструкции не были рассмотрены:– исторические состояния– точки динамического выбора (dynamic choice points)– точки соединения (junction points)
Информацию о них можно найти в оригинальной документации по UML.
выбрать контекст для автомата (класс, прецедент, систему) выбрать начальное и конечное состояния объекта определить устойчивые состояния объекта разумно/частично упорядочить устойчивые состояния какие события могут инициировать переходы между состояниями? присоединить действия к переходам и/или к состояниям как можно упростить автомат? проверить достижимость любого из состояний убедиться в отсутствии тупиковых состояний трассировать автомат
Вопросы:– Чем диаграммы состояний принципиально отличаются от диаграмм
классов, объектов и прецедентов?– Что такое переход, событие, действие?– Что такое безусловный переход?– Чем отличаются последовательные и подчиненные подсостояния– Что такое псевдосостояние? Приведите примеры.
Упражнения:– Вы проектируете тостер. Постройте диаграмму состояний хлеба в
тостере. Используйте триггерные события, действия и переходы.– Постройте диаграмму состояний банкомата. – Для рассмотренного примера с графическим интерфейсом
пользователя, постройте диаграмму состояния «Отображение заставки», которая включала бы параллельные подсостояния*.
Цель проекта "Виртуоз" - подготовка преподавателей к внедрению в ВУЗах России и других стран СНГ новой специальности – "Информационные технологии". Основная задача проекта - совершенствование методологии преподавания программной инженерии. Реализация этой программы направлена на создание надёжной образовательной основы для дальнейшего развития отечественной ИТ-индустрии.
В рамках проекта (август-декабрь 2004 г.) - обучение современным методикам программной инженерии, передовым информационным технологиям, получение опыта работы по созданию учебных курсов, соответствующих международным образовательным стандартам IEEE/ACM Computing Curricula 2001: Computer Science и Software Engineering, а также прохождение стажировки в корпорации Intel.
Проект "Виртуоз" выполнялся в Нижегородском государственном университете им. Н.И. Лобачевского по инициативе компании Intel при поддержке Microsoft, IBM, Borland, Лаборатория Касперского и др.