КОНЕЧНО-АВТОМАТНАЯ РЕАЛИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ВСТРАИВАЕМОЙ СИСТЕМЫ НА ОСНОВЕ АСПЕКТНО-ОРИЕНТИРОВАННОГО ОПИСАНИЯ
В.М. Васюков
УДК 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
УДК 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