Например, Бобцов

КОНЕЧНО-АВТОМАТНАЯ РЕАЛИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ВСТРАИВАЕМОЙ СИСТЕМЫ НА ОСНОВЕ АСПЕКТНО-ОРИЕНТИРОВАННОГО ОПИСАНИЯ

В.М. Васюков

УДК 004.5
КОНЕЧНО-АВТОМАТНАЯ РЕАЛИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ВСТРАИВАЕМОЙ СИСТЕМЫ НА ОСНОВЕ АСПЕКТНО-ОРИЕНТИРОВАННОГО ОПИСАНИЯ
В.М. Васюков
Предлагается методика перехода от описания пользовательского интерфейса встраиваемой системы с использованием аспектно-ориентированного подхода к описанию в виде конечного автомата. Применимость предлагаемого способа демонстрируется на примере устройства индикации какой-либо физической величины. Производится описание последовательных переходов от первоначального описания пользовательского интерфейса в терминах аспектноориентированного подхода к ориентированному графу, описывающему возможные варианты изменения состояний пользовательского интерфейса, и от ориентированного графа к детерминированному конечному автомату, математическое описание которого дает возможность использовать его как каркас будущего прототипа пользовательского интерфейса. Рассмотренный в работе порядок перехода от описания пользовательского интерфейса встраиваемой системы в терминах аспектно-ориентированного подхода к описанию пользовательского интерфейса встраиваемой

Научно-технический вестник информационных технологий, механики и оптики, 2012, № 6 (82)

81

КОНЕЧНО-АВТОМАТНАЯ РЕАЛИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА …

системы в виде конечного автомата демонстрирует применимость аспектно-ориентированного подхода для разработки и прототипирования пользовательских интерфейсов встраиваемых систем. Ключевые слова: аспектно-ориентированный подход, интерфейс, конечный автомат.

Введение

В аспектно-ориентированном подходе, предложенном широкой общественности в 1998 г. [1] как новая парадигма программирования, предлагается проводить декомпозицию предметной области по сквозной функциональности. В качестве примеров использования данного подхода часто приводятся задачи ведения журналов выполнения программы или контроля предоставления доступа к ресурсам, отмечая, что данный вариант декомпозиции позволяет уменьшить сложность реализации решаемой задачи. При рассмотрении пользовательских интерфейсов встраиваемых систем можно выделить сквозную функциональность, связанную с различной реакцией элементов пользовательского интерфейса в зависимости от состояния системы. В настоящей работе рассматривается возможность описания пользовательского интерфейса в терминах аспектно-ориентированного подхода целиком, с последующим переходом к конечному автомату, отслеживающему изменение режимов работы пользовательского интерфейса.

Описание пользовательского интерфейса в терминах аспектно-ориентированного подхода

Рассмотрим воздействие пользователя на элемент интерфейса как единицу сквозной функциональности a, а текущее состояние системы – как точку среза p. Для аспекта характерно наличие несколь-
ких точек среза, т.е. какого-то непустого их множества a =  p1, p2 ,..., pn = P . При таком подходе поль-
m
зовательский интерфейс можно представить как сумму аспектов A =  ai , множество срезов которой i =1
может быть получено аналогичным способом: Pсистемы = P1  P2  ...  Pm . Полное множество точек сре-
зов Pсистемы включает в себя подмножества p11, p12 ,..., pmn точек срезов конкретных аспектов a1, a2 ,..., am и позволяет получить полное описание состояний интерфейса встраиваемой системы. Если какой-либо аспект ai не имеет в своем подмножестве p1, p2 ,..., pn точек среза точку из множества Pсистемы точек сре-
зов, его поведение в данной точке описывается идентично одной из имеющихся p1, p2 ,..., pn точек среза. В качестве примера опишем как сумму аспектов А устройство индикации какой-либо физической
величины с возможностью задания трех диапазонов (норма, предупреждение, авария). Описываемое устройство имеет три кнопки и четырехразрядный индикатор (рис. 1). Воздействие пользователя на систему возможно через нажатие одной из трех имеющихся кнопок. Описание аспектов, соответствующих нажатию кнопок, представлено в табл. 1. В зависимости от режима системы будет меняться и выводимая на индикатор величина. Описание аспекта «вывод» представлено в табл. 2.

Аспект

Точка среза (состояние системы / режим)

Поведение элемента

Нажатие кнопки «1»

p11

Изменение порога предупреждения

Уменьшение значения порога предупреждения

p12 Изменение порога аварии

Уменьшение значения порога аварии

p13

Выбор для изменения порога предупреждения

Переход к p11

p14

Выбор для изменения порога аварии

Переход к p12

Нажатие кнопки «2»

p12

Изменение порога предупре- Увеличение значения порога преду-

ждения

преждения

p22 Изменение порога аварии

Нажатие кнопки «3»

p31

Изменение порога предупреждения

Увеличение значения порога аварии Внесение изменений и переход к p35

p32 Изменение порога аварии

Внесение изменений и переход к p 35

p33

Выбор для изменения порога предупреждения

Переход к p34

p34

Выбор для изменения порога аварии

Переход к p35

p35

Индикация значения измеренной величины

Переход к p33

Таблица 1. Описание нажатий кнопок

82 Научно-технический вестник информационных технологий, механики и оптики,
2012, № 6 (82)

В.М. Васюков
Аспект Вывод

Точка среза (состояние системы / режим)

Поведение элемента

p14

Изменение порога предупреждения

Вывод порога предупреждения

p42 Изменение порога аварии Вывод порога аварии

p43

Выбор для изменения порога предупреждения

Вывод порога предупреждения

p44

Выбор для изменения порога аварии

Вывод порога аварии

p45

Индикация значения измеренной величины

Вывод измеренной величины

Таблица 2. Описание работы индикатора

Рис. 1. Внешний вид устройства
В табл. 1, 2 индексами для элементов pij служат i – номер аспекта; j – номер состояния по порядку. Для различных аспектов i состояния j с одинаковыми номерами тождественны. Получим множество срезов:
p11  p12  p13  p14  p12  p22  p31  p32  p33  p34  p35  p14  p42  p43  p44  p45 =
 p11  p12  p13  p14  p35 = Pсистемы .
Описание ориентированного графа
Полученное описание позволяет представить порядок изменения режимов интерфейса в виде орграфа. Формальное определение орграфа [2] выглядит как D = (V , E) , где E есть множество упорядоченных пар вершин v V . Так как интерфейс встраиваемой системы изменяет свое состояние (режим) в определенном порядке, то можно представить переходы между элементами множества Pсистемы как матрицу смежности M с размерностью, определяемой кардинальным числом [3], Pсистемы . Используя матрицу смежности M, можно построить множество E, а множеством V будет являться Pсистемы .
Создадим матрицу смежности M, размерностью Pсистемы = 5 для нашего примера (табл. 3), в качестве ребер ориентированного графа будем использовать информацию о переходах между состояниями из табл. 1:
p11 p12 p13 p14 p35 p11 – – 1 – – p12 – – – 1 – p13 – – – – 1 p14 – – 1 – – p35 1 1 – 1 –
Таблица 3. Матрица смежности M
Таким образом, рассматривая пользовательский интерфейс встраиваемой системы как сумму аспектов А, можно построить ориентированный граф состояний системы (рис. 2).
Описание конечного автомата
Опишем пользовательский интерфейс как детерминированный конечный автомат [4] с помощью диаграммы состояний (рис. 3):

Научно-технический вестник информационных технологий, механики и оптики, 2012, № 6 (82)

83

КОНЕЧНО-АВТОМАТНАЯ РЕАЛИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА …
 вершины – состояния конечного автомата, в данном примере они определены на множестве Pсистемы как состояния системы pij .
 ребра – переходы из одного состояния pkm в другое pst , определены как матрица смежности M размерностью Pсистемы = 5 ;
 нагрузка – символы, при которых осуществляется данный переход, в случае если переход из состояния pm в состояние pk возможен при появлении одного из нескольких символов, то над дугой диаграммы (ветвью графа) должны быть написаны они все; нагрузка описывается множеством воздействий, осуществляемых пользователем, в данном примере это нажатия на кнопки, описываемые как аспекты a1, a2, a3, эти же символы будут использоваться для обозначения осуществления переходов.

Рис. 2. Ориентированный граф
Полученное математическое описание конечного автомата дает возможность использовать его либо как каркас будущего прототипа пользовательского интерфейса, либо, при сохранении в каком-либо виде, как описание поведения пользовательского интерфейса для интерпретатора. Применение интерпретатора дает возможность использовать единый вид описания конечного автомата как для различных операционных систем, так и для различных микроконтроллеров, что позволяет применять эволюционное прототипирование, с каждой итерацией разработки приближая прототип к реальной системе.

а3 а3
а1 а3
а3
а1

а3

Рис. 3. Диаграмма состояний конечного автомата
Заключение
Рассмотренная в данной работе методика перехода от описания пользовательского интерфейса встраиваемой системы в терминах аспектно-ориентированного подхода к описанию пользовательского интерфейса встраиваемой системы в виде конечного автомата демонстрирует применимость данной методики для разработки и прототипирования пользовательских интерфейсов встраиваемых систем. Использование аспектно-ориентированного подхода в рамках встраиваемых систем, характеризующихся большим числом состояний, позволяет разработчику сконцентрироваться на описании поведения элементов пользовательского интерфейса в конкретных состояниях, скрывая от него механизм контроля состояний, что снижает трудоемкость реализации прототипа.
84 Научно-технический вестник информационных технологий, механики и оптики,
2012, № 6 (82)

Ю.Н. Матвеев, А.К. Шулипа
Литература
1. Kiczales G., Lamping J., Mendhekar A., etc. Aspect-oriented programming // Proceedings of the European Conference on Object-Oriented Programming (ECOOP). – Finland, Springer-Verlag LNCS 1241. – June 1997. – P. 220–242.
2. Кристофидес Н. Теория графов. Алгоритмический подход. – М.: Мир, 1978. – 432 с. 3. Куратовский К., Мостовский А. Теория множеств. – М.: Мир, 1970. – 416 с. 4. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. – М.:
Вильямс, 2002. – 528 с.
Васюков Василий Михайлович – Балтийский государственный технический университет «Военмех» им. Д.Ф. Устинова, аспирант, witcher237@rambler.ru

Научно-технический вестник информационных технологий, механики и оптики, 2012, № 6 (82)

85