Введение

Система управления пользовательским интерфейсом (UIMS) — это механизм для чёткого разделения логики процессов или бизнес-логики от кода графического пользовательского интерфейса (GUI) в компьютерной программе. UIMS разработаны для поддержки N-уровневых архитектур путём строгого определения и обеспечения границы между бизнес-логикой и GUI. Практически всегда UIMS подразумевает довольно жёсткую архитектуру программного обеспечения, и чаще всего в одной UIMS поддерживается только одна парадигма разделения. UIMS может также включать библиотеки и системы, такие как графические инструменты для создания ресурсов пользовательского интерфейса или хранилищ данных. Как правило, одновременное использование нескольких систем UIMS затруднено, поэтому выбор подходящей модели для UIMS является критически важным решением при проектировании любого проекта. Выбор системы зависит от того, для каких систем вы хотите создавать пользовательские интерфейсы, и от общего стиля вашего приложения. Например, важным фактором при выборе будет то, хотите ли вы создать веб-интерфейс, автономное приложение или и то, и другое. Если вы планируете развёртывание на Macintosh, Windows и Linux, это ещё больше повлияет на ваш выбор системы UIMS. Существует множество подходов к UIMS, описанных в научных публикациях. Однако коммерчески доступных или распространяемых под открытой лицензией систем не так много.

Модели

В часто цитируемой работе Фоули и Уоллес описывают "лингвистическую модель" для управления пользовательским интерфейсом, состоящую из слоя представления, слоя управления диалогом и слоя приложения. Эти слои соответствуют лексическому, синтаксическому и семантическому уровням теории формальных языков. Хотя модель Фоули теоретически полезна, она не предлагает конкретной практической системы для разделения кода. Существует также множество интересных пограничных случаев, которые не укладываются однозначно в один из этих слоев. Более непосредственно применимой теорией управления пользовательским интерфейсом является шаблон проектирования "модель-представление-контроллер", который подробно описан в отдельной статье. Недавним вариантом MVC является модель "модель-представление-представитель", которая схожа с MVC, но предлагает некоторые интересные подходы к решению этой проблемы.

Реализация

Функциональная система рассматривает все действия пользовательского интерфейса как интерфейсы к функциям. Диалоговые окна существуют исключительно для сбора параметров функций, которые вызываются при закрытии окна. Деревья меню – это одно из семейств моделей, следующих этому шаблону. UIMS, основанные на грамматике, предоставляют специализированный язык для описания пользовательского интерфейса. Как правило, это специальный язык, разработанный конкретно для представления элементов пользовательского интерфейса. Модель редактирования является специализацией грамматических UIMS. Она представляет все взаимодействия как непосредственное представление базовых объектов представления, по сути, используя грамматику языка программирования в качестве грамматики графического пользовательского интерфейса. Полоса прокрутки может представлять целое число, флажок – логическое значение, а функция – кнопку или пункт меню. Диалоговое окно или меню представляет собой представление сложного объекта, содержащего свойства и функции. Контроллерный слой автоматически синхронизирует объект с представлением и наоборот, используя двустороннюю связь, обеспечиваемую шаблоном «Наблюдатель». Включение/отключение и проверка на корректность представляют собой особые задачи в модели редактирования, но их можно решить. Коммерческая программа ViewSoft Internet была доступна в 1990-х годах и реализовывала конструктор графического интерфейса общего назначения, основанный на модели редактирования. Transition Networks представляют логику пользовательского интерфейса в виде своеобразной интеллектуальной блок-схемы. В модели Event Language компьютерный язык разработан вокруг обработки событий. Это, по сути, подход, используемый в языках Microsoft .NET C# и Visual Basic .NET с их структурами делегатов и событий. Другие модели включают Hypertalk, производственные системы и декларативные языки.

Лучшие исследователи

Важные исследования в этой области были проведены Брэдом Майерсом, Дэном Олсеном, Скотом Хадсоном и Джеймсом Д. Фоули.