- •Содержание
- •1 Лекция №1. Программные средства автоматизации персонального компьютера. Технология программирования. Основные понятия и подходы
- •2 Лекция № 2. Разработка сложных программных систем
- •3 Лекция № 3. Жизненный цикл программного обеспечения
- •4 Лекция № 4. Быстрая разработка приложений. Технологичность программного обеспечения
- •6 Лекция № 6. Структурное и «неструктурное» программирование
- •7 Лекция № 7. Определение требований к программному обеспечению и исходных данных для его проектирования
- •8 Лекция № 8. Принципиальные решения начальных этапов проектирования
- •9 Лекция № 9. Алгоритмические языки и предъявляемые к ним требования
- •10 Лекция № 10. Структурный подход. Анализ требований, определение спецификаций
- •11 Лекция № 11. Структурный подход. Проектирование программного обеспечения
- •12 Лекция № 12. Объектный подход. Проектирование программного обеспечения
- •13 Лекция № 13. Пользовательские интерфейсы
- •14 Лекция № 14. Особенности разработки пользовательских интерфейсов
- •15 Лекция № 15. Компоненты пользовательских интерфейсов. Технология Drag&Drop
- •16 Лекция № 16. Тестирование и отладка программных продуктов
- •17 Лекция № 17. Составление программной документации
- •Приложение а
- •Приложение г Проектирование программного обеспечения
- •Список литературы
15 Лекция № 15. Компоненты пользовательских интерфейсов. Технология Drag&Drop
Содержание лекции: диалоговые средства связи пользователей с ПК; технология Drag&Drop; интеллектуальные элементы пользовательских интерфейсов.
Цель лекции: ознакомиться с компонентами пользовательских интерфейсов и технологиями, применяемыми при их создании.
Диалог - это процесс обмена информацией между пользователем и программной системой, осуществляемый через интерактивный терминал и по определенным правилам. Различают тип диалога и его форму. Тип диалога определяет, кто из «собеседников» управляет обменом информацией. Соответственно различают диалоги, управляемые программой и управляемые пользователем. Диалог, управляемый программой, предусматривает наличие жесткого, линейного или древовидного сценария диалога, заложенного в ПО. Его сопровождают большим количеством подсказок, уточняющих, какую информацию необходимо вводить на каждом шаге. Диалог, управляемый пользователем, подразумевает, что сценарий диалога зависит от пользователя, применяющего систему для выполнения операций, а система обеспечивает возможность реализации различных сценариев пользователя.
Диалог невозможен без понятного «собеседникам» языка, описание которого включает синтаксис (правила, определяющие допустимые конструкции языка или его форму) и семантику (правила, определяющие смысл синтаксически корректных конструкций языка или его содержание). В зависимости от вида синтаксиса и семантики различают три формы диалога: фразовую, директивную и табличную.
Фразовая форма предполагает «общение» на естественном языке или его подмножестве. Содержание диалога в данной форме составляют повелительные, повествовательные и вопросительные предложения, а также ответы на вопросы. Общение может осуществляться в свободном формате, но возможна и фиксация отдельных фраз. Поскольку организовать диалог на естественном языке достаточно сложно, чаще всего используют диалоги, предполагающие односложные ответы. В этом случае программа содержит ограниченное описание синтаксиса и семантики используемого ограниченно-естественного языка. Для интеллектуальных систем интерфейсы создаются на базе ограниченного подмножества предложений естественного языка. Синтаксис и семантика языков диалога, реализуемых в таких интерфейсах, достаточно сложны. При обработке фраз в этих случаях оперируют понятием словоформа. Таким образом, интерфейс, реализующий фразовую форму диалога, должен преобразовывать сообщения из естественно-языковой формы в форму внутреннего представления и обратно, выполнять анализ и синтез сообщений пользователя и системы, отслеживать и запоминать пройденную часть диалога. Недостатками фразовой формы при использовании подмножества естественного языка являются: большие затраты ресурсов, отсутствие гарантии однозначной интерпретации формулировок, необходимость ввода длинных грамматически правильных фраз. Достоинство состоит в относительно свободном общении с системой.
Директивная форма предполагает использование команд (директив) специально разработанного формального языка. Командой в этом случае называют предложение этого языка, описывающее комбинированные данные, которые включают идентификатор инициируемого процесса и данные для него. Достоинствами директивной формы являются сравнительно небольшой объем вводимой информации, гибкость, ориентация на диалог, управляемый пользователем, использование минимальной области экрана, возможность совмещения с другими формами. Недостатки: практическое отсутствие подсказок на экране; почти полное отсутствие обратной связи о состоянии инициированных процессов; необходимость навыков ввода текстовой информации или манипуляций мышью; отсутствие возможности настройки пользователем. Директивная форма удобна для профессионалов, которые быстро запоминают синтаксис команд или комбинации клавиш.
Табличная форма предполагает, что пользователь выбирает ответ из вариантов, предложенных программой. Язык диалога для табличной формы имеет простейший синтаксис и однозначную семантику. Однако применение табличной формы возможно не всегда: ее можно использовать только, если ограничено множество возможных ответов на конкретный вопрос (менее 20). Достоинствами табличной формы являются: наличие подсказки; сокращение количества ошибок ввода (пользователь не вводит информацию, а указывает на нее); сокращение времени обучения пользователя; возможность совмещения с другими формами; возможность настройки пользователем. Недостатки: необходимость наличия навыков навигации по экрану; использование сравнительно большой площади экрана для изображения визуальных компонентов; интенсивное использование ресурсов компьютера, связанное с необходимостью постоянного обновления информации на экране.
Типы и формы диалога выбирают независимо друг от друга: любая форма применима для обоих типов диалогов (рисунок 15.1).
Рисунок 15.1 - Соответствие типов диалогов и его форм
Сложное программное обеспечение взаимодействует с пользователем посредством диалогов различных типов и форм в зависимости от решаемых задач. Для выдачи экстренных сообщений от системы или пользователя используют синхронные и асинхронные диалоги. В процессе проектирования и реализации используют абстрактные, конкретные и технические диалоги.
Пользовательские интерфейсы большинства современных программ строятся по технологии WIMP [14]: W - Windows (окна), I - Icons (пиктограммы), М - Mouse (мышь), Р - Pop-up (всплывающие или выпадающие меню). Основными элементами графических интерфейсов являются: окна, пиктограммы, компоненты ввода-вывода и мышь, используемая в качестве указующего устройства и устройства прямого манипулирования объектами на экране.
Окно - прямоугольная, ограниченная рамкой область физического экрана. Окно может менять размеры и местоположение в пределах экрана. Все окна можно разделить на основные окна (окна приложений); дочерние или подчиненные окна, окна диалога, информационные окна и окна меню.
Пиктограмма - это небольшое окно с графическим изображением, отражающим содержимое буфера, с которым она связана. Различают программные пиктограммы, пиктограммы дочерних окон, пиктограммы панели инструментов, пиктограммы объектов.
Прямое манипулирование изображением - это возможность замены команды воздействия на некоторый объект физическим действием в интерфейсе, осуществляемым с помощью мыши. При этом любая область экрана рассматривается как адресат, который может быть активизирован при подведении курсора и нажатии клавиши мыши. По реакции на воздействие различают следующие типы адресатов: указание и выбор, буксировка и «резиновая нить» (перенос объекта или его границ), экранные кнопки и «скользящие» барьеры (выполнение дискретных или циклических действий).
Для предоставления пользователям дополнительной информации в графических интерфейсах применяются динамические визуальные сигналы (изменение изображения объекта на экране при выполнении действий).
В окнах приложений могут размещаться специальные компоненты ввода-вывода информации. Интерфейс обычно включает несколько меню: основное или «ниспадающее» иерархическое меню, пиктографические меню (панели инструментов) и контекстные меню - компоненты ввода-вывода, реализующие диалог с пользователем в табличной форме. Кроме меню в интерфейсе используют и другие компоненты ввода-вывода, которые можно разделить на три группы в зависимости от формы реализуемого диалога: фразовую, табличную или смешанную. Директивная форма диалога предполагает ввод комбинаций клавиш или перемещение пиктограмм, а потому не требует использования компонентов ввода-вывода.
Возможность прямого манипулирования, предусмотренная в WIMP-интерфейсах, позволяет разрабатывать для приложений объектно-ориентированные интерфейсы прямого манипулирования. Интерфейсы данного типа на внешнем уровне используют директивную форму диалога: ввод команды осуществляется при выполнении определенных действий с пиктограммой объекта мышью. Их основными элементами являются: метафоры, объекты, представления объектов и технология Drag&Drop [1].
Технология Drag&Drop («перетащил и бросил») определяет основные принципы прямого манипулирования, описанные в руководстве по разработке пользовательских интерфейсов фирмы IBM (CUA - Common User Access):
результат перемещения объекта должен соответствовать ожиданиям;
пользователи не должны неожиданно терять информацию;
пользователь должен иметь возможность отменить действие.
Эта технология также определяет основные принципы визуализации операции прямого манипулирования:
исходное выделение - используется в качестве обратной связи пользователю, чтобы сообщить ему, что объект захвачен;
визуализация перемещения - идентификация выполняемого действия;
целевое выделение - идентификация пункта назначения;
визуализация действия - используется для обозначения времени ожидания завершения операции (изменение формы курсора на «песочные часы»).
В последние годы появилось много новых перспективных элементов пользовательских интерфейсов, привносящих в них элементы искусственного интеллекта: Мастер, Советчик, Агент. Сделано множество попыток создания социализированного пользовательского интерфейса, в основе которого интерфейса лежит идея создания персонифицированного («имеющего личность») интерфейса. Однако в этой области существуют психологические проблемы. Например, «безобидный» Советчик Microsoft Office вызывает у многих пользователей резко отрицательную реакцию.
Советчики представляют собой форму подсказки, вызываемой с помощью меню справки, командной строки окна или всплывающего меню. Они помогают пользователям в выполнении конкретных задач, в случае, если пользователь представляет, что ему нужно сделать.
Программа-мастер служит для выполнения общераспространенных, но редко выполняемых отдельным пользователем задач (установка программ или оборудования). Выполнение подобных действий требует принятия сложных взаимосвязанных решений, последовательность которых диктует программа-мастер. Интеллектуальные Мастера способны демонстрировать в окне просмотра результаты ответов пользователя на предыдущие вопросы на каждом шаге, помогая сориентироваться в ситуации.
Программные агенты - это элемент ПО, которому пользователь может передать часть своих обязанностей, используемый для выполнения рутинной работы. Их основные функции: наблюдение, поиск и управление. Различают:
программы-агенты, настраиваемые на выполнение указанных задач;
программы-агенты, способные обучаться, например, фиксируя действия пользователя (по типу магнитофона).
Дополнительную информацию по теме можно получить в [1, 5, 14, 18].