Введение

Моделирование пользовательского интерфейса — это методика разработки, используемая программистами компьютерных приложений. Современные пользовательские интерфейсы (UI) представляют собой сложные программные компоненты, играющие важную роль в удобстве использования приложения. Разработка пользовательских интерфейсов требует, следовательно, не только руководств и отчетов о лучших практиках, но и процесса разработки, включающего создание визуальных моделей и стандартизированной нотации для их визуализации. Термин "моделирование пользовательского интерфейса" чаще всего используется в контексте информационных технологий. Модель пользовательского интерфейса — это представление о том, как конечные пользователи взаимодействуют с компьютерной программой или другим устройством, а также о том, как система на это реагирует. Задача моделирования состоит в том, чтобы отобразить все "непосредственно воспринимаемые аспекты объекта или устройства" [Trætteberg2002]. Моделирование пользовательских интерфейсов — это устоявшаяся дисциплина. Например, методы моделирования могут описывать объекты взаимодействия, задачи и диалоги нижнего уровня в пользовательских интерфейсах. Использование моделей в процессе разработки пользовательского интерфейса помогает зафиксировать требования пользователей, избежать преждевременной фиксации на конкретных макетах и виджетах, а также сделать явными взаимосвязи между различными частями интерфейса и их функциями [SilvaPaton2003].

Мария

MARIA XML (Model based lAnguage foR Interactive Applications) — это универсальный, декларативный, многоуровневый язык разметки пользовательского интерфейса на основе XML для моделирования интерактивных приложений в любых средах.

UML

Некоторые аспекты моделирования пользовательского интерфейса могут быть реализованы с использованием UML. Однако язык не предназначен прежде всего для этого типа моделирования, что может приводить к некоторой искусственности моделей.

Диамодл

DiaMODL сочетает язык, ориентированный на потоки данных (абстракция Pisa interactor), с UML Statecharts, ориентированным на поведение. Он позволяет моделировать как потоки данных, так и поведение объектов взаимодействия и может использоваться для документирования функциональности и структуры конкретных пользовательских интерфейсов.

Гималия

Himalia сочетает гипермедийные модели с парадигмой управления и композиции. Это полноценный язык пользовательского интерфейса, который можно использовать как для описания, так и для выполнения, поэтому инструмент для разработчиков можно отнести к генераторам.

Подходы

Существует несколько подходов к моделированию пользовательского интерфейса.

Дизайн, ориентированный на использование

В проектировании, ориентированном на пользователя, задача моделирования заключается в демонстрации того, как будет выглядеть реализованная система и как должно происходить взаимодействие с пользователем. Это, пожалуй, наиболее признанный подход, успешно применявшийся в разнообразных проектах как небольшого, так и крупного масштаба. Его преимущества особенно заметны при решении сложных задач.

Альтернативные подходы к моделированным ИУ

Известные проблемы подходов, основанных на моделях, включают повторение информации и отсутствие механизмов для эффективного решения сквозных задач [Cerny2013]. Решения, основанные на моделях, могут хорошо работать самостоятельно, но интеграция с альтернативными подходами усложняет разработку и поддержку.

Код-инспекция

Эти подходы основаны на существующих кодовых базах языков программирования общего назначения (GPL) [Cerny2012]. Они анализируют код посредством метапрограммирования и создают структурную модель, которая преобразуется в пользовательский интерфейс. Этот подход решает задачу представления информации в различных формах. Однако, эти подходы не подходят для адаптивных и контекстно-зависимых пользовательских интерфейсов.

Генеративное программирование

Эти подходы объединяют методы предметной области с генеративным программированием (GPL). Вопросы, затрагивающие несколько аспектов, решаются на этапе компиляции, что не обеспечивает прямой поддержки адаптивных пользовательских интерфейсов, которым требуется информация во время выполнения.

Ориентированные на аспекты пользовательские интерфейсы

Решение на основе аспектов, предложенное в работах [Cerny2013][Cerny2013a][AspectFaces], объединяет преимущества анализа кода и генеративного программирования. Оно анализирует существующий код и применяет аспектно-ориентированные методы для решения сквозных задач. Работает во время выполнения, снижает избыточность информации и одновременно отделяет задачи, связанные с пользовательским интерфейсом, что позволяет использовать каждый компонент независимо от других. В исследовании [Cerny2013] авторы сократили объем кода пользовательского интерфейса на 32% благодаря аспектно-ориентированному подходу, примененному к промышленной системе. Основные преимущества включают шаблонизацию для настройки представления, раздельное определение задач и, в основном, универсальные правила преобразования, применимые к различным данным.

Модели содержания

Такие модели демонстрируют содержимое пользовательского интерфейса и его различные компоненты. Детали оформления и поведения в этом типе моделей не рассматриваются, так как это форма модели проектирования, ориентированной на пользователя.