tehnologia (1018792), страница 40
Текст из файла (страница 40)
8.2 приведены основные компоненты WINP- интерфейсаWindows и даны рекомендации по их использованию.8.6. Реализация диалогов в графическом пользовательском интерфейсеКак правило, сложное программное обеспечение с развитым пользовательскиминтерфейсом использует диалоги обоих типов: управляемые пользователем и управляемыесистемой.Реализация диалогов, управляемых пользователем. Для реализации диалогов,управляемых пользователем, применяют меню различных видов:241242основное, панели инструментов, контекстные и кнопочные, т.
е. сформированные изотдельных кнопок. Как альтернативу меню целесообразно использовать директивную формудиалога, поставив в соответствие основным командам определенные комбинации клавиш.Кроме того, целесообразно предусмотреть возможность управления меню клавиатурой, чтоособенно важно, если большую часть времени работы с системой пользователь вводит текстили данные, т. е. взаимодействует с клавиатурой.Меню. Меню проектируют на основе графов диалогов разрабатываемогопрограммного обеспечения. При этом, если число операций не превышает 5, то обычноиспользуют кнопки.
Если число операций не более 9 — 10, то- одноуровневое меню. И,наконец, если число реализуемых операций более 10, то используют «ниспадающее»двухуровневое иерархическое меню.Ниспадающее меню. Первый уровень иерархического меню должен содержать именаосновных групп операций. Традиционно первым является пункт Файл, вторым — Правка,третьим — Вид, а последним — Справка. Такое распределение пунктов специфично дляпрограмм обработки данных, размещенных в файлах, например, текстовых и графическихредакторов. В последнее время с таким распределением пунктов возникают проблемы, таккак большинство программ уже не работает с данными традиционным способом.
Так, впримере 8.4 все данные находятся не в файлах, а в базе данных.Количество уровней иерархического меню не должно превышать 2 — 3, так как прибольшем числе уровней требуемую операцию будет сложно искать. Причем желательно,чтобы число операций в окне меню не превышало 7 — 8, по той же причине.Если число операций превышает 70 — 80, то возникает проблема, как построитьнаглядное меню с таким большим числом операций.
Интересное решение было предложеноразработчиками Microsoft Word. Они реализовали адаптивное иерархическое меню, гдесодержимое окна меню второго уровня постоянно меняется, отображая только те операции,которые использует пользователь. Если пользователь не находит нужной операции, то черезнесколько секунд или при нажатии специальной кнопки Word демонстрирует окно менюполностью.Пример 8.4. Разработать основное меню системы решения комбинаторнооптимизационных задач.Поскольку пользователю может понадобиться сравнить несколько вари- антоврешений, целесообразно разрабатывать многодокументный интерфейс, каждый документкоторого соответствует заданию. В качестве отдельного документа также должнырассматриваться данные, которые могут обрабатываться разными алгоритмами иликорректироваться для использования в других задачах.На рис.
8.11 представлен граф абстрактного диалога системы, на основе которогонеобходимо построить меню. К операциям, предусмотренным гра-243фом диалога, следует добавить служебные операции обслуживания файла задания,управления дочерними окнами и работы со справочной информацией, а затем полученноемножество операций разбить на группы.Вариант 1. Стандартизованный вариант меню для данной системы представлен нарис. 8.16. Пункт Файл объединяет все операции с информационными блоками обоих типов:проектами и данными. Пункт Правка— стандартные операции правки.
Пункт Проект —операции управления проектом. Пункт Выполнить — два вида операции выполнения. ПунктОкна — операции управления окнами многодокументного интерфейса. И, наконец, пунктСправка — стандартные операции работы со справочной информацией. Этот вариант, скореевсего, будет интуитивно понятен пользователям, имеющим большой опыт работы со средамипрограммирования, так как он разработан по типу таких сред (сравните, например, синтерфейсом Delphi). В основе данного интерфейса лежит понятие «проект».
Для каждогопроекта определяют решаемую задачу, к проекту присоединяют данные (новые или выбранные из уже существующих) и выбирают алгоритм решения задачи. При выполнениипроекта результаты заносятся в протокол проекта. Полученный244245протокол можно сохранить или просто закрыть без сохранения. При необходимостисохраненный протокол можно удалить.Новые данные можно создавать отдельно от проекта, но при этом необходимо указатьзадачу. Можно модифицировать данные, в том числе и изменить тип решаемой задачи, исохранить данные с новым идентификатором. Уже сохраненные данные можно удалить.Для просмотра результатов необходимо открыть уже выполненные проекты.
Ихможно распечатать и/или удалить.Вариант 2. «Нестандартный» вариант, основанный на интуитивной мо- делипользователя, т. е. концептуальной модели предметной области (см. рис. 6.9), представлен нарис. 8.17. В этом меню два типа блоков данных управляются операциями, отнесенными кразным группам «Задание» и «Данные». В результате удается частично разгрузить первыйпункт меню, но необходимо дублировать операции с блоками данных (создание, открытие,закрытие и т.
п.). Чтобы еще сократить количество пунктов в первой и во второй группах,можно использовать адаптивный вариант.Панель инструментов. На панель инструментов помещают пиктограммы частоиспользуемых операций. Если множество таких операций существенно зависит отспецифики выполняемых с разрабатываемым программным обеспечением работ, тоцелесообразно обеспечить пользователю возможность формирования панелей инструментовпо собственному усмотрению. В качестве примера можно посмотреть, как реализованаоперация настройки (Сервис\Настройка) Microsoft Word.246Контекстные меню. Контекстные меню включают операции, вероятность обращенияк которым из данной зоны окна приложения с точки зрения разработчика максимальна.
Впроцессе тестирования «удобства использования» (см. ~ 9.6) содержание контекстного менюможет уточняться. Так же, как и в случае основного меню, нежелательно, если числоопераций этого меню превышает 6 — 8. Причем, чтобы облегчить пользователю поискнужной операции целесообразно операции контекстного меню горизонтальными линиямиделить на группы.Реализация диалогов, управляемых системой. Для реализации диалогов,управляемых системой, обычно используют диалоговые окна. Причем, если числонастраиваемых в процессе диалога элементов невелико, и диалогу соответствуетпоследовательный сценарий, то проектируют одно диалоговое окно, включающее всенеобходимые компоненты.
Такое окно часто называют формой Если же диалог имеет сильноразветвленную структуру, в которой следующий вопрос зависит от уже полученных ответов,или число на- страиваемых в процессе диалога элементов велико, то для каждого шагадиалога проектируют свое диалоговое окно.Проектирование форм заключается в выборе необходимых компонентов интерфейсаи размещении их в пределах диалогового окна.
Если количество компонентов более 4 — 5,то целесообразно их визуально разделить, используя рамки.Проектирование последовательностей диалоговых окон. Как уже упоминалось выше,в основе диалогов, управляемых системой, лежит жестко или нежестко заданный сценарий.Именно этот сценарий должен быть реализован последовательностью диалоговых окон.Независимо от степени жесткости сценария при проектировании такой последовательностинеобходимо предусмотреть возможность возврата на предыдущий шаг.Пример 8.5. Реализовать диалог Новое задание системы решения комбинаторнооптимизационных задач.Граф диалога представлен на рис.
8.12. Этот управляемый системой диалог допускаетвозвраты на предыдущие шаги. Соответственно для него последовательность действийопределена не жестко. В данном случае можно предложить два варианта реализациидиалога: с использованием одной формы и с использованием последовательностидиалоговых окон.Вариант 1.
Реализация диалога с использованием формы предполагает, что все шагивыполняются в одном окне. Следовательно, необходимо организовать выбор типа задачи,ввод/выбор данных, выбор алгоритма. После выполнения задания необходимо такжепредусмотреть возможность его сохранения, сохранения с другим именем и закрытия (рис.8.18). Результаты целесообразно демонстрировать в отдельном окне, которое будетоткрываться при нажатии кнопки. Показать результаты, так как у каждого типа задачи своирезультаты.247Вариант 2.
Последовательность диалоговых окон реализует последовательный илидревовидный сценарий. Поэтому преобразуем сценарий диалога (см. рис. 8.13), кпоследовательному с возможностью возврата на один шаг (рис. 8.19).Первое окно реализует выбор типа задачи (рис. 8.20, а). Результат выборафиксируется в специальном документе — Протоколе. Второе — определение способазадания данных (рис. 8.20, б), третье — непосредственно задание данных в зависимости отвыбранного способа (рисунок отсутствует, так как формы определения данных зависят отзадачи и их целесообразно проектировать отдельно для каждой задачи вместе с формамивывода результатов).
Четвертое — выбор алгоритма (рис. 8.20, в). Пятое — инициациювыполнения (рис. 8.20, г). Шестое — демонстрирует результат (рисунок отсутствует).Седьмое — определяет, что следует сделать с результатом (рис. 8.20, д). Все диалогистроятся по максимально схожей схеме, что упрощает пользователю ориентацию в них.Оба рассмотренных варианта имеют недостатки. Так, реализация в виде формысодержит слишком много кнопок, регулирующих процесс, а реализация в видепоследовательности диалогов предлагает слишком много шагов, одновременно усложняядоступ к данным и результатам, представляемым в виде отдельных форм.Варианты 3.
Рассмотрим вариант реализации, который улучшает навигацию за счетиспользования закладок. Это позволяет визуально разнести248кнопки, четко обозначив, что кнопки нижнего ряда относятся к протоколу в целом. В такоминтерфейсе достаточно просто посмотреть данные и результаты — для этого просто переходим надругую страницу (рис. 8.21).249250Интерфейс, полученный в результате реализации диалогов, проверяют на полноту, азатем предлагают пользователю для тестирования удобства применения. При наличиисомнений можно предложить несколько вариантов. После одобрения интерфейса егореализуют, кодируя соответствующие процедуры.8.7.