Генерация контекстно-зависимой помощи Интерфейс, разработанный в соответствии со стандартами качества, обязательно содержит помощь конечному пользователю программного средства. Особенно это актуально в настоящее время, когда пользователями являются специалисты различных предметных областей, а функциональность программных средств значительно возросла. В результате количество пользователей, знающих всю функциональность, неуклонно снижается (по статистике, пользователи используют только около 10% всей функциональности программных средств).
Помощь, предоставляемая конечному пользователю, может быть контекстно-зависимой и контекстно-независимой. Преимущества контекстно-зависимой помощи обсуждались в главе 1. Поэтому актуальной является разработка контекстно-зависимой помощи.
В данной работе предлагается метод генерации контекстно-зависимой помощи по проекту задач пользователя [146], который отражает логическую структуру программного средства (содержит иерархию задач пользователя и связи между ними.
Основные требования к контекстно-зависимой помощи:
- помощь должна объяснять пользователю функциональность программного средства - задачи, которые он может выполнить, и выдавать подробные инструкции по их выполнению в зависимости от контекста;
- помощь должна вызываться по требованию пользователя;
- при генерации помощи необходимо учитывать состояние задач: если некоторая задача решена пользователем, то ответы на вопросы пользователя должны генерироваться с учетом этого состояния;
- помощь должна быть расширяемой (количество вопросов, на которые пользователь может получить ответы, может быть расширено без переработки исходных кодов);
- форма представления помощи должна быть различной в зависимости от его предпочтений.
Для реализации контекстно-зависимой помощи в соответствии с перечисленными требованиями, предложены следующие основные принципы ее разработки.
1. С каждым вопросомпользователя связать алгоритм, который генерирует ответ на поставленный вопрос. Входными данными для каждого такого алгоритма являются: текущее состояние, в котором находится пользователь, а также информация о задачах, решенных им на предыдущих шагах. Основная идея каждого алгоритма - зная текущее состояние, произвести обход дерева задач пользователя (проект задач пользователя представляется размеченным деревом) и, анализируя отношения между задачами, сформировать ответ на поставленный вопрос. Таким образом, пользователь обращается к алгоритмам генерации помощи через множество предоставляемых ему вопросов.
2. Автоматически, при генерации интерфейса, встроить в описание каждого состояния Statei, определенного в сценарии диалога (состояние определяется событием, происходящим в интерфейсном элементе) агента. Задача агента – по происшедшему в интерфейсном элементе событию определить текущее состояние и признак завершенность задачи. (метод реализации агентов см. гл. 6).
3. Алгоритмы реализации помощи описывать на абстрактном языке, отражающем специфику алгоритмов помощи (язык содержит набор специализированных функций для работы с деревьями, а также позволяет использовать в инструкциях ссылки на элементы модели онтологии и компоненты проекта интерфейса) и помещать в базу алгоритмов помощи. Спецификация абстрактного языка и пример описания алгоритмов приведены в Приложении 4 В, Г.
4. Для реализации различных форм представления помощи обеспечить поьзователю «интерфейс помощи», содержащий вопросы, на которые он может получить ответы. Ответ генерировать:
a. в виде списка задач и текстовой информации, объясняющей пользователю, что необходимо сделать с этими задачами;
b. последовательной подсветкой элементов интерфейса, связанных с выполнением задач, для их быстрого нахождения;
c. в форме интерактивного ролика для просмотра действий, которые он должен совершиь, перед выполнением задачи.
Интерактивные обучающие ролики представляют собой набор действий, автоматически выполняемых системой помощи в прикладной программе. Ролики не выполняют задачи пользователя, они только эмулируют выполнение этих задач. Для пользователя выполнение подобного ролика выглядит как видеозапись. Запись роликов происходит с помощью отдельного средства, входящего в систему контекстно-зависимой помощи (см. гл. 6). Их формирование осуществляет разработчик после того, как прикладная программа с контекстно-зависимой помощью полностью сгенерирована. Разработчик ролика осуществляет действия в программном средстве, которые он хочет записать на ролик. Генератор роликов через агентов, встроенных в прикладную программу, получает информацию о действиях, выполняемых разработчиком роликов, и последовательно их записывает. Когда все действия записаны, происходит сохранение и привязка созданного ролика к конкретной задаче в проекте задач пользователя. Воспроизведение интерактивных роликов происходит по требованию пользователя через интерфейс системы помощи.
Обсуждение
В данной главе представлена модель генерации кода пользовательского интерфейса и контекстно-зависимой помощи по модели его проекта.
1. Модель поддерживает генерацию диалога, основанного на экранных формах (WIMP-интерфейсов), текстах и графических сценах. Для диалогов, основанных на экранных формах и текстах, разработаны абстрактные языки, независимые от платформы и языка реализации интефейса, в которые отображаются компоненты пректа интерфейса. Далее с абстрактного языка осуществляется преобразование в код на конкретные языки и платформы. Для генерации диалога, основанного на текстах, описана вычислительная модель его формирования. В МОС отображение компонентов модели интерейса осуществляется на конкретный целевой язык, поддерживается генерация только одного типа диалога в рамках одного инструментального средства.
2. Обсуждая проблему обеспечения помощи конечным пользователям интерфейса, можно выделить два основных аспекта. Первый аспект связан с обеспечением помощи пользователю в процессе его взаимодействия с прогамным средством и направлен на упрощение его обучения работы с интерейсом, объяснению ему задач, которые он может выполнить с помощью прогаммного средства, а также путей их решения. Второй аспект связан с объяснением результатов работы для повышения доверия к программному средству.
а) Для поддержки обучения пользователей предлагается контекстно-зависимая помощь, основанная на задачах пользователя (объясняет пользователю задачи, которые он может выполнить с помощью программного средства). Некоторые МОС (см. гл. 1) также содержат средства генерации контекстно-зависимой помощи, однако, основной недостаток средств генерации помощи – их жесткая встроенность в генератор кода пользовательского интерфейса, что делает невозможным их усовершенствование (редактирование) в случае необходимости, а также добавление новых видов помощи без изменения программного кода. В данной работе алгоритмы помощи описываются на специализированном абстрактном языке и помещаются в базу алгоритмов помощи, которая доступна для редактирования. Также возможно добавление новых видов помощи в базу алгоритмов, при этом не требуется вносить изменения в генератор кода пользовательского интерфейса. В МОС помощь выдается в виде текста. В данной работе также предлагается текстовое описание помощи с дополнительной подсветкой необходимых элементов управления в интерфейсе, а также генерация интерактивных обучающих роликов, которые «привязываются» к необходимой задаче. Ролики формируются методом непосредственного манипулирования, без написания кода, что не предлагает ни одна из известных МОС.
б) В настоящее время функция объяснения результатов работы часто возлагается на пользовательский интерфейс [223] (до недавнего времени формирование объяснений обычно возлагалось на прикладную программу - машину логического вывода и формировалось на основе анализа протокола решения задачи). В связи с этим, как замечено в [160], наиболее перспективной является разработка новых методов объяснений, основанных на «обосновании», без анализа протокола, поскольку метод решения задачи, заложенный в машине логического вывода, может быть непонятен пользователю. Разрабатывая новые методы генерации объяснений можно убедительно доказать правильность результата, не опираясь на процесс рассуждения, также как «математик убедительно приводит доказательство теоремы, не описывая того, каким образом он пришел к ее открытию». Предложенная в гл. 2 онтология для формирования текстов, может использоваться для генерации объяснений результатов работы программного средства, основанных на методе обоснования. В терминах онтологии формируется соответствующий компонент проекта, в котором описывается шаблон текста (в данном случае шаблон текста объяснения) и методы анализа результатов работы прикладной программы, в результате чего формируется текст объяснения. Данный подход использовался для генерации объяснений в ЭС диагностики заболеваний органов брюшной полости [150].
[1] Программный код – это код на языке реализации, который затем обрабатывается компилятором этого языка.
|