- •Первое определение системы. Модель чёрного ящика.
- •Сложности выявления целей
- •Второе определение системы
- •Третье определение системы.
- •Классификация систем
- •По происхождению
- •Целостность системы.
- •Анализ систем на основе функционально-структурного подхода.
- •Модель "черного ящика"
- •Модель состава системы Основные положения.
- •Теория множеств как средства отображения модели состава.
- •Отношения на множествах.
- •Операции над множествами.
- •Упорядоченное множество
- •Модель структуры системы
- •Математический аппарат, используемый для построения модели структуры системы.
- •Соответствия.
- •Классификация соответствий.
- •Графы. Теория графов. Основные определения.
- •Особые типы графов.
- •Отношения на графах.
- •Комплексные элементы графа.
- •Частные случаи графов.
- •Методы задания графов.
- •Структурная схема системы
- •Динамика системы
- •Функционирование и развитие
- •Построении динамических моделей систем.
- •Типы динамических моделей
- •Общая математическая модель динамики
- •Понятие системы управления.
- •Классификация систем в зависимости от положения системы управления.
- •Классификация систем по используемому принципу управления.
- •Работа по заданной траектории
- •Регулирование.
- •Понятие больших и сложных систем.
- •Ресурсный подход к оценки сложности и величины системы.
- •Методы анализа систем.
- •Анализ структуры системы на основе не взвешенных графов.
- •Задача нахождения циклов и цепей в графовой модели структуры системы.
- •Задача поиска цепи на не взвешенных графах.
- •Задача соединения всех элементов системы без дублирующих связей.
- •Анализа структуры системы на основе взвешенных графов.
- •Взвешенные графы.
- •Оптимизационные задачи на взвешенных графах.
- •Задача поиска наименьшего остового дерева.
- •Задача поиска цепи наименьшего веса между двумя вершинами взвешенного графа. Общая постановка задачи.
- •Методы решения задачи.
- •I)Метод направленного поиска (динамического программирования) он же алгоритм Дейкстры. (Дайкстры)
- •Методы решения задачи коммивояжера.
- •Метод ветвей и границ.
- •Исследование структуры систем с помощью потоковых моделей.
- •5.1. Комплексные характеристики сетевого графа.
- •5.2. Алгоритм расчета пропускной способности сети (величины установившегося потока).
- •Исследование переходных процессов систем на основе теории конечных автоматов.
- •Объектно-ориентированный подход к анализу и разработке систем (ооп).
- •Основные положения объектно-ориентированного подхода.
- •Основные элементы объектной модели
- •Язык uml как средство построения моделей систем на основе ооп.
- •Строительные блоки uml
- •Автомат или модель состояний.
- •Моделирование динамические связи систем на основе моделей состояний объектов.
- •Процесс обмена данными между экземплярами объектов системы.
- •Понятие обмена данными. Реализация обмена.
- •Модели состояний объектов:
- •Информация и информационные системы.
- •Определение информации
- •Информационноя система
Автомат или модель состояний.
Автомат – отображает жизненные циклы объекта или другой сущности в системе.
Чаще всего автомат или модель состояний рассматривается по отношению к объекту определённого класса.
В определении объекта, как элемента объектной модели сказано, что Объект обладает тремя составляющими
Состояние (state)
Поведение (behavior)
Уникальность (identity)
Рис. Пример автомата.
Автомат обладает следующими составляющими.
Состояние (State) - это ситуация в жизни объекта, на протяжении которой он
удовлетворяет некоторому условию (обычно речь идёт об атрибутах объекта, то есть значения атрибутов удовлетворяют некоторому условию) ,
выполняет определенную деятельность, характ для данного состояния
или ожидает какого-то события.
Объект остается в некотором состоянии в течение конечного отрезка времени.
Событие (Event) - это отображение существенного факта (инциндента), имеющего место в пространстве и во времени, это некий стимул, инициирующий переход из одного состояния в другое. Событие может быть как внешним по отношению к объекту, так и внутренним. Состояние изображается в виде прямоугольника с закругленными углами.
Переход (Transition) -это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить определенные действия и перейти во второе состояние, как только произойдет указанное событие и будут удовлетворены определенные условия. Переход обозначается линией со стрелкой. Стрелка соединяет исходное состояние (из которого происходит переход) и целевое (в которое происходит переход)
Деятельность (Activity) - это протяженное во времени неатомарное вычисление внутри автомата.
Действие (Action) - это атомарное вычисление, которое приводит к изменению состояния модели или возврату значения.
Для автомата подразумевается, что
возможные состояния рассматриваемой сущности известны и
определенны возможные последовательности смены состояния.
Возм события тоже опред заранее.
Для построения автомата (модели состояний) необходимо определить
возможные состояния объекта,
возможные переходы, то есть возможные последовательности смены состояний
события, вызывающие переходы.
Состояние (State) . Определение состояний объекта автомата
Состояние определяют следующие элементы:
имя - текстовая строка, которая отличает одно состояние от всех остальных. Имя состояния должно быть уникальным внутри объемлющего пакета;
значение состояния,
то есть какой ситуации в реальной системе соответствует данное состояние
условия, которым отвечают значения атрибутов в данном состоянии.
Действия и деятельности выполняемые в состояннии
действия при входе/выходе - действия, выполняемые при входе в состояние и выходе из него;
entry/имяДействия(параметры)
exit/имяДействия(параметры)
деятельность состояния -do/имяДействия(параметры)
внутренние переходы - переходы, обрабатываемые без выхода из состояния – имяПерехода/имяДействияОбработчика(параметры)
подсостояния - внутри состояния могут существовать подсостояния, как непересекающиеся (активизируемые последовательно), так и параллельные (активные одновременно);
отложенные события - список событий, которые не обработаны в этом состоянии, а отложены и поставлены в очередь для обработки объектом в некотором другом состоянии. имяCобытия/defer
Начальное и конечное состояния. В автомате объекта могут быть определены два специальных состояния.
начальное состояние, в котором автомат или подсостояние находятся по умолчанию в исходный момент времени. Изображается оно в виде закрашенного кружка.
конечное состояние, в котором завершается выполнение автомата или объемлющего состояния. Оно представлено закрашенным кружком, заключенным в окружность.
Примечание: На самом деле начальное и конечное состояния - это псевдосостояния: они не имеют ни одной из характеристик нормального состояния, кроме имени. Однако переход из начального состояния в конечное может обладать всеми свойствами, включая сторожевое условие и действие (но не событие-триггер).
Требования к действиям, выполняемым в состояниях.
Действия, выполняемые в состоянии могут включать только элементы, ввденные в описание объекта, для которого разрабатывается автомат, или уже введённые в описание автомата. Могут выполнятся следующие типы действий.
изменение значений атрибутов,
выполнение проверки условий, в который участвуют атрибуты)
вызовы операций (объекта, который владеет автоматом, а также любых других видимых объектов),
создание и уничтожение другого объекта
посылка объекту сигнала (события)
Переходы. Определение переходов объекта автомата.
Переход - это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить определенные действия и перейти во второе состояние, как только произойдет указанное событие и будут удовлетворены указанные условия. Говорят, что при таком изменении состояния переход срабатывает. Пока переход не сработал, объект находится в исходном состоянии; после срабатывания он находится в целевом состоянии. Например, Обогреватель может перейти из состояния Ожидание в состояние Активация при возникновении события tooCold (слишкомХолодно) с параметром desiredTemp (желаемаяТемпература).
Переход определяют пять элементов:
исходное состояние - состояние, из которого происходит переход. Если объект находится в исходном состоянии, то исходящий переход может сработать, когда объект получит событие-триггер, инициирующее этот переход, причем должно быть выполнено сторожевое условие (если оно задано);
событие-триггер – то есть событие, при получении которого объектом, находящимся в исходном состоянии, может сработать переход (при этом должно быть выполнено сторожевое условие);
сторожевое условие - булевское выражение, которое вычисляется при получении события-триггера. Если значение истинно, то переходу разрешено сработать, если ложно - переход не срабатывает. Если при этом не задано никакого другого перехода, инициируемого тем же самым событием, то событие теряется;
действие - атомарное вычисление, которое может непосредственно воздействовать на объект, владеющий автоматом, или оказать косвенное воздействие на другие объекты, находящиеся в области видимости;
целевое состояние - состояние, которое становится активным после завершения перехода.
У перехода может быть несколько исходных состояний (в этом случае он представляет собой слияние нескольких параллельных состояний), а также несколько целевых состояний (в этом случае он представляет собой разделение на несколько параллельных состояний)
Выделяются следующие типы событий-триггеров.
сигналы,
вызовы,
истечение промежутка времени или
У сигнала и вызова могут быть параметры, значения которых доступны переходу, в том числе при вычислении сторожевого условия и выполнении действия.
Выделяется особый вид переходов – нетриггерные, то есть переходы, для которых не требуется события-триггера. Нетриггерный переход, называемый также переходом по завершении. Не триггерный переход срабатывает, когда все действия, определённые для исходного состоянии завершаются.
Более сложные аспекты состояний и переходов
К числу таких дополнительных возможностей относятся действия при входе и выходе, внутренние переходы, деятельности и отложенные события.
Описание событий.
При описании событий необходимо отразить следующие его аспекты:
значение – краткая характеристика того, чему соответствует событие в реальном мире.
предназначение события – указание состояние объекта, в котором данное событие воспринимается.
Указание на переходы, которые могут сработать под действием данного событие.
Данные, переносимые событием - события могут переносить данные, которые определяют значения атрибутов, состояния, в какое переводит данное событие объект.
В реальном мире один инцидент (событие) может вызвать изменения нескольких реальных объектов. В ООП считается, что каждое событие действует на отдельный объект, поэтому, если необходимо чтобы одно событие действовало на несколько объектов требуется или искусственно ввести соответствующие количество отдельных событий или построить объекты таким образом, чтобы они входили в какой либо объект верхнего уровня. События предназначенное для всех объектов будет действовать на объект верхнего уровня.
Порядок разработки модели состояний.
Обычно автомат не работает обособленно, автомат взаимодействует с другими автоматами объектов, и с внешней системой.
Выявляются объекты, взаимодействующей в решении рассматриваемой задачи.
Определяется состав модели для каждого объекта.
То есть выявляются
все состояния,
переходы,
события.
Строится графически модель состояний для каждого объекта, участвующего во взаимодействии. На модели отображаются состояния, переходы, указываются события переходов со сторожевыми условиями и отмечаются где эти события порождаются, в каких состояниях.. Каждое событие должно быть отнесено к какому либо состоянию объекта, должно быть определено условие его порождения.
Описываются состояния.
Для состояния определяется
имя,
значение,
действия,
деятельность.
Описываются действия и деятельности состояний. Действия и деятельности описываются как методы классов.
nameAction()
{a=b;
If c<d sob1(sdd);
}
sob1(sdd) - выработка события sob1 событие несёт данные sdd,
При описании состояний необходимо контролировать, что бы все включённые в модель события были распределены по деятельностям и действиям состояний.
Описываются переходы.
Начальное, конечное состояние перехода,
Выявляются события, вызывающие переход. Определяется локализация событий, то есть принадлежность их каким либо объектам, или системе в целом, или событие может быть определено как внешнее.
Для каждого перехода – выявляется сторожевое условие, то есть условие, при выполнение которого переход срабатывает. Подразумевается, что является необходимым условием срабатывания перехода, окончательную возможность срабатывания определяет дополнительное условие.
Например нажатие кнопки вызова лифта является необходимым условием его прибытия. Дополнительным условием является его не занятость в настоящее время.
Если переход триггерный, до реализуется в виде метода. Метод должен быть открытым, так как подразумевается, что переход вызывается событием, которое может быть связано с другим объектом, то есть переход может вызываться из другого объекта.
Метод, соответствующий переходу, обычно включает проверку сторожевого условия и выполнение действий, соответствующих переходу, если условие выполняется. (изменение значений атрибутов, остановка таймера, и т.д.)
perS1_S2()
{ if (<условие>)
{a=d;
}
/////////
}
Если переход по завершению, то его можно реализовать в виде атомарных вычислений по изменению атрибутов, вычисления добавляются к соответствующей деятельности состояния, из которого происходит переход.
Описываются события для каждого объекта
События, это внутренние элементы объектов, в которых они вызываются, поэтому они описываются в виде приватных методов. Описание события обычно включает вызов метода соответствующего переходу.
Тоже в виде методов
private sob()
{
d.d1_d2()
// d – объект в котором, производится переход
}
Во многих случаях для события достаточно выделить некоторый блок кода, не выделяя его в отдельный метод.