Использование методов искусственного интеллекта для проектирования пользовательского интерфейса

Грибова В.В., Клещев А.С.
Владивосток, Институт автоматики и процессов управления ДВО РАН

Грибова В.В., Клещев А.С. Использование методов искусственного интеллекта для проектирования пользовательского интерфейса // Информационные технологии. №8. — 2005. — c.58-62.

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

Введение

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

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

Целью данной работы является представление общей концепции онтологоориентированного подхода к разработке пользовательского интерфейса.

Требования современного этапа к разработке программных систем

Производство программного обеспечения является одной из областей бизнеса. Цель любого бизнеса - получение наибольшей прибыли. Прибыль от разработки программного обеспечения зависит от трех основных составляющих: количества продаж программного продукта, продолжительности его эксплуатации, а также себестоимости разработки и сопровождения. Количество продаж и продолжительность времени эксплуатации программного продукта напрямую связаны с затратами на его сопровождение. Разные пользователи предъявляют к программному продукту разные требования. Кроме того, при изменении условий эксплуатации программного продукта, возникают новые требования к нему, обусловленные непрерывным развитием бизнес-процессов. Таким образом, для получения максимальной прибыли от программного продукта, необходимо уменьшать стоимость не только его первичной разработки, но, прежде всего, стоимость сопровождения. В структуре затрат на производство программного продукта, как следует из многих источников, например [1], сопровождение системы превышает стоимость разработки в 3-4 раза. Таким образом, основной резерв для увеличения прибыли — это уменьшение стоимости сопровождения программного продукта.

Какие решения при производстве программных продуктов предлагаются для уменьшения затрат на разработку и последующее сопровождение? Можно выделить следующие основные методы: наличие механизмов повторного использования компонентов программного средства; модульная структура его организации, допускающая раздельную модификацию каждого модуля; поддержка описания программного средства на языках высокого уровня с помощью специализированного инструментария; автоматическая генерация (полная или частичная) программного средства по этому высокоуровневому описанию.

Оценка современного инструментария для разработки пользовательского интерфейса

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

  1. Интегрированные среды программирования, в рамках которых имеются средства для проектирования пользовательских интерфейсов, - Построители интерфейса (Interface Builders), например, в системе программирования Delphi, Visual Studio и др.
  2. Специализированные средства для разработки пользовательского интерфейса — Системы управления пользовательским интерфейсом (User Interface Management Systems) и Средства проектирования интерфейса, основанные на моделях (Model-Based Interface Development Systems).

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

Основная идея Систем управления пользовательским интерфейсом (СУПИ) [2] — расширить возможности высокоуровневого описания пользовательского интерфейса, которые в Построителях интерфейса ограничиваются визуальной составляющей и автоматически генерировать код интерфейса по этой спецификации. Таким образом, кодирование заменяется на высокоуровневую спецификацию; эта спецификация допускает либо автоматическую трансляцию в исполняемую программу, либо ее интерпретацию во время исполнения для создания нужного интерфейса. Концептуальная основа СУПИ [3,4] - раздельная реализация и модификация интерфейса и прикладной программы. Средства реализации интерфейсов этой группы не поддерживают высокоуровневое описание и, соответственно, автоматическую генерацию всего интерфейса, например, спецификацию его поведения – сценарий диалога [5].

Средства проектирования интерфейса, основанные на моделях (МОС) являются развитием предыдущего подхода, но позволяют, в отличие от СУПИ, специфицировать весь интерфейс, при этом разделить спецификацию интерфейса на модули – составляющие интерфейса и далее, по построенной высокоуровневой спецификации автоматически сгенерировать код интерфейса. Основной целью таких средств является автоматическая генерация пользовательского интерфейса на основе декларативных описаний. Модель является основным информационным компонентом любой МОС. Данное направление активно развивается и в настоящее время известен ряд МОС: Mastermind [6], Mecano [7], ITS [8], Tellach [9] и др.

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

Основная идея разработки пользовательского интерфейса на основе онтологий

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

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

Новыми идеями ООП по сравнению с МОП являются следующие: модель интерфейса содержит только ту информацию о нем, которая может измениться при изменении требований к интерфейсу или прикладной программе; с каждой составляющей модели интерфейса связана своя (отличная от других) система понятий, а сама эта составляющая — это информация, представленная в этой системе понятий (таким образом, различные составляющие модели интерфейса определяются различными системами понятий — универсальными онтологиями, в которых представляется информация об этих составляющих); каждая составляющая интерфейса представляется моделью специализированной онтологии, определенной в терминах соответствующей универсальной онтологии; редактор, управляемый моделями универсальных онтологий, является инструментальным средством для формирования и модификации составляющих модели интерфейса.

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

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

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

При раздельной реализации и модификации интерфейса и прикладной программы, интерфейс не имеет доступа к коду прикладной программы и деталям её реализации. Непосредственное взаимодействие между ними происходит посредством манипуляции вспомогательными объектами, которые предоставляют интерфейсу и прикладной программе доступ к функциям друг друга. Эта информация является компонентом модели интерфейса. Универсальная онтология определяет абстрактные термины для описания информации о протоколах, с помощью которых происходит коммуникация, адресах серверов, с которыми проводятся соединения, методах передачи сообщений, а также переменных, типах их значений, общих для интерфейса и прикладной программы.

Между перечисленными компонентами существуют определенные соответствия, которые также определяются соответствующими универсальными онтологиями.

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

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

Модель пользовательского интерфейса

Модель пользовательского интерфейса должна содержать всю информацию об этом пользовательском интерфейсе, которая может подвергнуться изменению в его жизненном цикле. Модель конкретного пользовательского интерфейса создается на основе онтологий, которые описывают информацию о каждой составляющей модели интерфейса - универсальных онтологий. В общем случае каждая из универсальных онтологий для описания составляющих компонентов модели интерфейса O=<Name, OS>, где Name — множество имен, Name ={<n, {sn}>}, n — имя термина, sn — характеристика (атрибут) этого термина. OS — множество онтологических соотношений. Формирование информации для конкретнго пользовательского интерфейса сводится к выделению подмножества O' из соответствующей универсальной онтологии O и уточнении значений ее характеристик. Таким образом, на основе универсальной модели онтологии, можно сформировать информацию для произвольного количества пользовательских интерфейсов (произвольное количество подмножеств). Те есть существует отображение Υ: O→2O' В интерфейсе можно выделить следующие универсальные онтологии O= {D, G, L, S, I}, где D — онтология предметной области, G — онтология выразительных средств интерфейса, L – онтология прикладной программы, S — онтология сценария диалога, I — онтология связи, I=I1υI 2, где I1 — онтология связи между онтологиями предметной области и выразительных средств, I2 — между онтологиями предметной области и прикладной программы. Соответственно, O'={D', G', L', S', I'}. Онтология связи I1 есть отображение NameD'→NameG', онтология связи I2 определяет взаимнооднозначное соответствие NameD'→NameL'.

Как было отмечено, модель конкретного пользовательского интерфейса формируется путем выделения подмножества O' из O и уточнения значений ее характеристик. Таким образом, модель пользовательского интерфейса IM= <D', G', L', S', I'>.

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

Заключение

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

Список литературы

  1. Соммервил И. Инженерия программного обеспечения: Пер. с англ.-М.:Издательский дом «Вильямс», 2002.-624с.:с ил.
  2. Singh G. and Green M. A High-level User Interface Management System// In Proceedings SIGCHI'89. April 1989, P. 133-138.
    Lowgren J. Knowledge –Based Design Support and Discourse Management in User Interface Management Systems. Linkoping Studies in Science and Technology. Dissertations No. 239, 1989.
  3. Гультяев А.К., Машин В.А. Проектирование и дизайн пользовательского интерфейса.– СПб.: КОРОНА принт, 2000.– 352с.
  4. Myers B.A. User Interface Software Tools. ACM. Transactions on Computer-Human Interaction, Vol.2, No.1, March 1995. P. 64-103.
  5. Szekely P., Sukaviriya P., Castells P., Muthukumarasamy J., Salcher E. Declarative Interface Models for User Interface Construction Tools: the Mastermind Approach. In Engineering for Human-Computer Interaction, L. Bass and C. Unger Eds. Chapman & Hall, 1996. http://www.isi.edu/isd/Mastermind/mastermind-ia.htm
  6. Puerta A. R. Supporting User–Centred Design of Adaptive User Interfaces via Interface Models. First Annual Workshop On Real–Time Intelligent User Interfaces for Decision Support and Information Visualization, San–Francisco, January 1998.
  7. Wiecha C., Bennett W., Boies S., Gould J., Green S. ITS: A Tool for rapidly Developing Interactive Applications. ACM Transactions on Information Systems, 1990. Vol.8. No.3.Da Silva P.P., Griffiths T. and Paton N.W., Generating User Interface Code in a Model-Based User Interface Development Environment, Proc. Advanced Visual Interfaces, V. di Gesu, et al. (eds), ACM Press, 2000.