Интеграция разнородных ресурсов, направленных на решение исследовательских задач в области науки и образования, выдвигает требования к информационным системам: мобильность, интероперабельность, модифицируемость. Такие системы являются достаточно сложными и их проектирование осуществляется путем моделирования и исследования характеристик структуры, что позволяет значительно снизить риски создания АС и максимально удовлетворить ключевые требования.
Преимущество объектно-ориентированного подхода оказывается большим, чем может показаться с первого взгляда. Выявление объектов, изучение его свойств (статические модели) и поведения с другими объектами (динамические модели) позволяет разработчику формировать и оценивать проектные решения по структуре системы на этапе предварительного проектирования. ООМ обладает достаточно мощным инструментом построения распределенных открытых систем и позволяет моделировать системы для исследовательских задач с учетом заявленных требований.
Литературы
1. S.A. Zhukova, S.Zh. Kozlova, I.N. Efimov, E.A. Ermolaeva Technologies of development of the open systems and their application in science and education: the review of papers and development perspective (Технологии построения открытых систем в формировании научнообразовательной среды: обзор работ и перспективы развития) // 12 международная конференция Computer Science and Information Technologies (CSIT’2010) (Информатика и Информационные технологии), Уфимский государственный авиационный технический университет (УГАТУ), С. 208-212.
2. Разработка модели автоматизированной системы интеграции открытых виртуальных лабораторных комплексов. Этап 2: «Построение концепции автоматизированной системы открытых виртуальных лабораторных комплексов» (промежуточный)» / Отчет о научноисследовательской работе (промежуточный)/ Ижевский государственный технический университет; рук. И.Н.Ефимов. - Ижевск, 2010. - 199 с. - ГР № 02.740.11. 0658
3. Арлоу, Нейштадт. UML 2 и Унифицированный процесс: практический объектно-
ориентированный анализ и проектирование. - Символ-Плюс, 2-е изд. - 2007. - с. 624
4. К. Ларман. Применение UML 2.0 и шаблонов проектирования. - Вильямс, 3-е изд. - 2007. -с.730
УДК 004.457
МОДЕЛИРОВАНИЕ ПОВЕДЕНИЯ ОБЪЕКТОВ С ПОМОЩЬЮ КОНЦЕПЦИИ
КОНЕЧНЫХ АВТОМАТОВ1
Галиаскаров Эдуард Геннадьевич, к.х.н., доцент, доцент, Ивановский государственный химикотехнологический университет, Россия, Иваново, [email protected]
Особенности дискретно-детерминированного подхода чаще всего рассматриваются на базе теории автоматов. Теория автоматов - раздел теоретической кибернетики, в котором изучаются математические модели - автоматы. Автомат перерабатывает дискретную информацию и меняет свои внутренние состояния в допустимые моменты времени. Если конечное множество объектов можно интерпретировать как алфавит, а сами объекты рассматривать как буквы этого алфавита, набор из этих букв представляет собой упорядоченную совокупность, называемую словом, то автомат представляет собой некий черный ящик, который преобразует буквы входного сигнала в буквы выходного сигнала. Конечным автоматом будем называть такой автомат, у которого множество состояний конечно [1]. Для того чтобы задать конечный автомат (finite automata), необходимо задать одношаговую функцию перехода
1 Статья рекомендована к опубликованию в журнале "Информационные технологии и вычислительные системы"
96
z(t) = €[z(t -1), x(t)]
и функцию выхода
У (t) = z(t -1),x(t)].
Автомат задается F-схемой вида:
F = (Z, A ,Y Z
где Z -конечное множество состояний; X - входной сигнал (алфавит); Y - выходной алфавит; (р,, - функции перехода и выхода; Z0 - начальное состояние алфавита
Автомат функционирует в дискретные моменты времени, которые называются тактами.
Любой автомат может быть задан с помощью таблиц переходов и выходов. Автомат также может быть задан с помощью ориентированного графа. В последнем случае это легко сделать на UML.
Рассмотрим довольно простую, но достаточно иллюстративную задачу. Предположим, что необходимо сконструировать автомат для продажи билетов. Требования к системе просты. Этот автомат принимает монеты достоинством 1, 2, 3 и 5 руб. и выдает билеты стоимостью 5 руб.
Сначала опишем данное устройство в каноническом виде. Данное устройство можно представить как конечный асинхронный автомат Мили с множеством состояний Z ={0, 1, 2, 3, 4}, где каждое состояние представляет собой сумму монет в монетоприемнике, причем Z = 0 означает отсутствие монет в монетоприемнике как в режиме ожидания, так и в режиме выдачи билета, когда сумма монет превысит 4, входным алфавитом X = {1, 2, 3, 5} и выходным алфавитом Y = {0, 1}, где 0 соответствует ситуации "билет не выдается", а 1 -ситуации "билет выдается". Функция переходов •(t) определяется соотношением z(t) = (z (t -1) + x(t ))mod, 5
а функция выходов |(t) - соотношением „0, когда z(t -1) + x(t) < 4
y(t) = {
[1, если z(t -1) + x(t) > 4
В качестве иллюстрации построим таблицы переходов и выходов рассматриваемого
автомата:
Таблица переходов
Z
x 0 1 2 3 4
1 1 2 3 4 0
2 2 3 4 0 0
3 3 4 0 0 0
5 0 0 0 0 0
Таблица выходов
x z
0 1 2 3 4
1 0 0 0 0 1
2 0 0 0 1 1
3 0 0 1 1 1
5 1 1 1 1 1
Формализуем описание рассматриваемой системы с помощью UML [2].
Использование автомата для продажи билетов исключительно просто и представляется одним единственным вариантом использования (рис. 1).
Типичный процесс приобретения билета можно отразить на диаграмме деятельности (рис. 2). В соответствии со сценарием использования и условием задачи структурную модель автомата для продажи билетов можно изобразить на диаграмме классов, представленной на рис. 3.
Как следует из математического описания, рассматриваемую систему можно представить в виде асинхронного автомата Мили. Введем некоторые обозначения для упрощения изображения параметров на диаграммах состояния:
X - номинал монеты;
Z - сумма денег в монетоприемнике;
97
L - размер сдачи;
Y - выдан или нет билет
Рис. 1 - Диаграмма использования автомата продажи билетов
Согласно исходной постановке задачи, т.е. автомату Мили, автомат для продажи билетов в процессе деятельности находится в одном из пяти возможных состояниях, представленных на рис. 4.
Рис. 2 - Типичный сценарий использования автомата продажи билетов
class Автомат продажи билетов J
«enumerations Монета Дь то мот продажи (млотоь
Сумма ч монетоприемнике
1 руб. < J принять Деньги(Монета)
2 руб. покозотьСуммуО
3 руб. быдатьСдачуО
5 руб. кыдатьБилетО
Рис. 3. Диаграмма классов автомата продажи билетов
Диаграмма получилась довольно большой и сложной. А что будет, если к монетам добавится возможность использовать и бумажные банкноты? Очевидно, что диаграмма значительно усложнится. Можно ли найти иной способ отображения поведения автомата? Да, такой способ есть. Опишем автомат через два состояния: состояние S0 - прием монет, и состояние S1 — выдача билета. Таким образом, начальную постановку задачи в виде автомата Мили, мы заменили автоматом Мура, у которого выходная функция зависит только от состояния. Входная переменная X может принимать значение 1, 2, 3 или 5. Выходная переменная Y - 0 или 1. Введем внутреннюю переменную Z - сумма денег в монетоприемнике. Переход из
98
состояния S0 в состояние S1 происходит по условию (Z >= 5). В начальный момент времени система находится в состоянии S0, а сумма денег Z = 0.
Рис. 4 - Исходный вариант диаграммы состояний автомата продажи билетов
Рис. 5 - Вариант диаграммы состояний автомата продажи билетов как автомата Мура
Для того, чтобы убедится в корректности предложенных моделей, можно реализовать эти модели в замечательном инструменте Matlab и провести имитационное моделированиу. С этой целью необходимо использовать toolbox Simulink, предназначенный для визуального моделирования самых разнообразных систем. В состав Simulink входит другой замечательный инструмент Stateflow, предназначенный для описания и моделирования дискретных систем на базе теории конечных автоматов [3]. При этом используемая в Stateflow графическая система обозначения Харела практически полностью соответствует синтаксису и семантике построения диаграмм состояний UML [2], что позволяет без труда перенести результаты UML моделирования в модель Simulink.
Автор выражает благодарность за полезные дискуссии Денису Юрьевичу Иванову, одному из авторов книги «Моделирование на UML».
Литература
1. Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. Для вузов - 3-е изд., перераб. и доп. -М.: Высш. шк., 2001. -343 с.: ил..
2. Новиков Ф.А., Иванов Д.Ю. Моделирование на UML. Теория, практика, видеокурс. -СПб.: Профессиональная литература, Наука и техника, 2010. - 640 с.: ил.
3. Гультяев А.К. MATLAB 5.2. Имитационное моделирование в среде Windows: Практическое пособие. - СПб.: КОРОНА принт, 1999. - 288 с.
99