УДК 681.3 О.В. КОНЮХОВА O.V. KONYUHOVA СПЕЦИФИКАЦИЯ ГРАФИЧЕСКОГО ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ СИСТЕМЫ АНАЛИЗА ТРЕБОВАНИЙ К ГРАФИЧЕСКОМУ ПОЛЬЗОВАТЕЛЬСКОМУ ИНТЕРФЕЙСУ ИНТЕРАКТИВНЫХ ПРОГРАММНЫХ СИСТЕМ: ОПИСАНИЕ МЕТОДОВ THE SPECIFICATION OF GRAPHICAL USER INTERFACE FOR ANALYSIS SYSTEM REQUIREMENTS TO GRAPHICAL USER INTERFACE OF INTERACTIVE SOFTWARE: DESCRIPTION OF THE METHODS В статье описывается формирование спецификации требований к графическому пользовательскому интерфейсу на примере построения дерева целей в нотации CMN-GOMS для системы анализа требований к графическому пользовательскому интерфейсу программных систем на уровне методов. Ключевые слова: графический пользовательский интерфейс, спецификация требований к графическому пользовательскому интерфейсу, система анализа требований к графическому пользовательскому интерфейсу, дерево целей, описание методов, действия пользователей. The article describes the structure of the system requirements analysis to the graphical interface of software; the formation of the specification requirements graphically user interface on the example of building a tree of goals in the CMN-GOMS notation for system requirements analysis to the graphical user interface of software. Keywords and Phrases: graphical user interface, the specification requirements for the graphical user interface, the system requirements analysis to the graphical user interface, the tree of goals, task analysis language, description of the methods, user’s actions. ВВЕДЕНИЕ В данной статье автор продолжает исследование вопроса, поднятого в работе [1], о возможности применения нотации CMN-GOMS [2, 3] для описания графического пользовательского интерфейса (ГПИ) интерактивных программных систем. В соответствии с метамоделью ГПИ Arch [2], неотъемлемой частью ГПИ является диалоговая компонента, которой при разработке ГПИ уделяется традиционно мало внимания. Именно она, во многом, определяет дружественность ГПИ по отношению к пользователю автоматизированной программной системы. Нотация CMN-GOMS позволяет в удобной и наглядной форме описать порядок решения задачи с учётом позиции пользователей. Более того, данная нотация даёт возможность взаимодействовать между собой разработчикам ГПИ и конечным пользователям в удобных и понятных для обеих сторон терминах. Применение системы анализа требований, структура которой приведена в [1], позволяет снизить затраты на разработку ГПИ, в том числе, на ранних этапах его создания. Для демонстрации возможностей описания ГПИ рассмотрим пример использования нотации CMN-GOMS для спецификации ГПИ самой системы анализа требований к ГПИ. 1 СПЕЦИФИКАЦИЯ ГПИ НА УРОВНЕ МЕТОДОВ Структура дерева целей, представленного на рисунке 1, отражает ход решения задачи – процесс построения спецификации ГПИ для графического редактора системы анализа требований к ГПИ – с учётом знаний, опыта, предпочтений конечных пользователей (в данном случае самого автора). Например, чтобы построить спецификацию требований к ГПИ, необходимо последовательно достичь две подцели: «Сформировать спецификацию требований к ГПИ» и «Завершить работу над спецификацией». Более подробно с описанием построения дерева целей можно познакомиться в работе [1]. Листьями дерева целей (выделены тёмно-серым цветом на рисунке 1) являются базовые цели, определяющие те функции, которые должны быть реализованы на уровне диалога ГПИ. Методы, используемые для достижения базовых целей, позволяют описать непосредственное взаимодействие конечного пользователя с автоматизированной программной системой, т.е., диалог. Рисунок 1 – Дерево целей для системы анализа требований к ГПИ Выделенные базовые цели, в свою очередь, могут быть достигнуты различными способами: с использованием различных устройств ввода (мыши, клавиатуры и т.п.) и интерактивных графических компонент (меню, кнопки, списки и т.п.). Следовательно, и на уровне методов может быть организован диалог пользователя с программной системой с учётом его знаний, опыта, предпочтений. Таким образом, при одинаковой функциональности системы возможна организация различных вариантов диалога с пользователем. Более того, описание диалога пользователя с системой на уровне методов позволяет определить совокупность действий пользователя (событий со стороны пользователя), допускаемых и обрабатываемых автоматизированной программной системой. При создании ГПИ интерактивных систем недостаточно внимания уделяется логике диалога, особенно на ранних этапах разработки ГПИ. В публикациях, посвященных проектированию ГПИ, содержатся общие рекомендации по организации диалога (например, «не держите пользователя в режимах») [4, 5], а основное внимание уделяется вопросам эргономики ГПИ. Это особенно актуально для современных графических интерфейсов, использующих принципы свободной навигации и прямого манипулирования. Давая пользователям определённую свободу, разработчикам необходимо не только предоставить им средства для осуществления диалога с системой, но и управлять логикой диалога во избежание критических ситуаций, когда какие-либо действия пользователя могут привести к непредсказуемой реакции системы («зависанию», внезапному прекращению работы с потерей несохранённых данных и т.п.). в результате на этапах проектирования и тестирования ГПИ отладка логики диалога сводится к обнаружению потенциально «опасных» действий пользователя, которые могут привести к нежелательному поведению интерактивной системы, и программированию соответствующих действий со стороны автоматизированной системы. С усложнением ГПИ (с увеличением степени свободы пользователя) число потенциально «опасных» действий только возрастает, что усложняет задачу управления диалогом. При этом предугадать возможные сочетания действий пользователя достаточно сложно. Наиболее целесообразно, по мнению автора, определить набор действий пользователя, допускаемых интерактивной программной системой в ходе диалога с пользователем. Другими словами в каждый момент времени взаимодействия с пользователем автоматизированная система должна создавать условия, при которых пользователь может выполнять только корректные действия. Таким образом, в процессе диалога пользователю предоставляется выбор в совершении им определённых действий, но только в рамках «правильных» действий. Для описания ГПИ на уровне методов должны быть согласованы вопросы об используемых физических устройствах ввода и интерактивных графических компонентах ГПИ, с помощью которых пользователями может осуществляться взаимодействие с программной системой. В качестве примера ГПИ для системы анализа требований к ГПИ рассмотрим простой интерфейс-меню с элементами свободной навигации и прямого манипулирования. Возможный вариант интерфейса представлен на рисунке 2. Основными функциями, в соответствии с построенным деревом целей (Рисунок 1, [1]), выполняются пользователем (в данном случае разработчиком ГПИ) с использованием меню (главного и контекстного); операции по перемещению узлов дерева на экране и изменению параметров (размеров) узлов осуществляется прямым манипулированием указанного объекта. Исходя из этого, на рисунках 3 и 4 приведены основные методы достижения базовых целей с рисунка 1. Рисунок 2 – Внешний вид интерфейса Рисунок 3 – Описание методов Рисунок 4 – Описание методов (продолжение) С целью экономии места базовые цели вынесены отдельно на рисунках 3 и 4 и обозначены прямоугольниками, закрашенными тёмно-серым цветом. Методы достижения базовых целей обозначены прямоугольниками со скруглёнными углами, а действия пользователей (операторы) – прямоугольниками с двойными боковыми границами. Методы, которые соответствуют уже ранее описанным методам в дереве целей, выделены светлосерым цветом. Также для указания операторов, в соответствии с предложенным в [6] синтаксисом, используются следующие сокращения: ПКМ – «Переместить_курсор_мыши», НКМ – «Нажать_кнопку_мыши», ОКМ – «Отпустить_кнопку_мыши», ДНКМ – «Дважды_нажать_кнопку_мыши», НКК – «Нажать_клавишу_клавиатуры», ОКК – «Отпустить_клавишу_клавиатуры». Чтобы завершить работу по формированию спецификации ГПИ, можно воспользоваться кнопкой «Выход» главного меню или стандартной кнопкой закрытия окна Windows («крестик»). Соответствующие методы и операторы представлены на рисунке 4. При этом выбор между методами определяется в соответствии с опытом и предпочтением пользователя. Достижение цели по созданию нового файла осуществляется с помощью опции главного меню соответствующим методом, описание которого представлено на рисунке 3: перемещением курсора и одинарным кликом кнопки мыши производится указание пункта меню «Файл» и его опции «Создать». Для открытия файла используется метод «Открыть файл с помощью меню», который, в свою очередь, требует последовательного выполнения трёх подметодов: «Вызвать окно открытия файла», «Найти файл», «Завершить работу с диалоговым окном» (Рисунок 3). Первый подметод осуществляет вывод на экран стандартное диалоговое окно открытия файла. В нём второй подметод позволяет найти требуемый файл путём последовательного указания диска. Каталога и имени файла. При этом указанные действия могут осуществляться пользователем многократно, о чём свидетельствует наличие циклов. Последний подметод позволяет завершить работу по открытию файла либо с подтверждением открытия выбранного файла либо с отменой, что достигается одинарным кликом мыши на соответствующих кнопках диалогового окна. Выбор осуществляется самим пользователем. Для достижения базовой цели «Сохранить изменения в файле» (Рисунок 3) можно воспользоваться одним из двух методов: «Сохранить изменения в текущем файле» или «Сохранить изменения в новом файле», выбор между которыми осуществляется пользователем. Первый метод выполняется последовательностью элементарных операторов с использованием пунктов главного меню. Для выполнения второго метода требуется последовательно выполнить три подметода: «Вызвать окно сохранения файла», «Указать путь к файлу», «Завершить работу по сохранению файла». Для осуществления первого подметода необходимо последовательно выполнить элементарные операторы с применением соответствующих пунктов главного меню, что приводит к выводу на экран диалогового окна сохранения файла. Второй подметод практически аналогичен подметоду «Найти файл», используемого при открытии файла, за исключением того, что после последовательного указания диска и каталога с клавиатуры в соответствующе окно вводится имя файла. Завершается работа по сохранению файла также либо с подтверждением, либо с отменой, что осуществляется путём выбора пользователем одного из соответствующих подметодов. Базовая цель «Напечатать дерево целей» (Рисунок 3) достигается многократным вызовом метода «Печатать дерево целей с помощью меню», который, в свою очередь, осуществляется последовательностью операторов, выполняющих одинарные клики мышью на соответствующих пунктах главного меню. Чтобы получить текстовую спецификацию ГПИ на языке анализа задач (ЯАЗ) [6], следует выполнить соответствующий метод с использованием опций главного меню: последовательность операторов по одинарному нажатию кнопки мыши на пунктах меню. Аналогичным образом осуществляется получение спецификации на языке действий пользователя (ЯДП), который описан в [2]. Для удаления узла из дерева целей сначала необходимо выделить мышью требуемый узел, а затем выполнить его удаление. Соответствующие методы базовой цели «Удалить узел» представлены на рисунке 4. В свою очередь, выделение узла мышью может осуществляться многократным указанием узла с помощью мыши: последовательным выполнением трёх операторов. Чтобы выполнить удаление узла, можно вызвать главное меню (воспользоваться левой кнопкой мыши) или контекстное меню (воспользоваться правой кнопкой мыши). Указанные подметоды представлены на рисунке 4. При этом каждый из них осуществляется последовательностью операторов, которые также приведены на рисунке 4. Выбор между подметодами выполняется пользователем, исходя из своего опыта и предпочтений. Цель по уменьшению масштаба дерева целей достигается с помощью единственного метода, использующего главное меню, который, в свою очередь, представляет собой последовательное выполнение элементарных операторов (кликов мышью по опциям меню). Данный метод представлен на рисунке 4 соответствующим фрагментом дерева целей. Аналогичным образом достигается цель «Увеличить масштаб» с рисунка 1, за исключением того, что используется опция главного меню «Масштаб» - «Увеличить». Добавление новых узлов различных видов (целей, методов, операторов и т.п.), базовые цели которых представлены на рисунке 1, выполняется очень похоже. Например, для добавления новой цели следует последовательно выполнить два метода: выделить мышью родительский узел в дереве целей и выполнить добавление цели (Рисунок 4). В последнем случае метод осуществляется альтернативным выбором между двумя подметодами: «Добавить цель через главное меню» и «Добавить цель через контекстное меню». Выбор между ними осуществляется пользователем на основании своего опыта и предпочтений. Реализация первого подметода осуществляется последовательными кликами левой кнопкой мыши по соответствующим опциям главного меню. Реализация второго подметода заключается в выводе на экран контекстного меню нажатием правой кнопки мыши и указанием нужного пункта. Добавление других видов узлов осуществляется аналогичным образом с тем лишь отличием, что в выделенных подметодах на последнем шаге указывается нужный пункт меню (главного или контекстного). Достижение цели по изменению названия узла заключается в выделении требуемого узла мышью с последующим редактированием названия узла. Для редактирования имени узла можно воспользоваться двойным кликом левой кнопки мыши или контекстным меню, о чём свидетельствуют соответствующие подметоды с фрагмента дерева целей на рисунке 4. Выбор между ними осуществляется пользователем на основании своего опыта и предпочтений. При выполнении первого подметода после двойного клика мышью на имени узла с клавиатуры вводится новое название узла и подтверждается нажатием клавиши «Enter». Отличие второго подметода заключается в выводе на экран контекстного меню и указании соответствующей опции; дальнейшие действия – как в первом подметоде. Для изменения размеров узла необходимо последовательно выполнить следующие методы, представленные на рисунке 4: «Выделить узел мышью», «Выделить контрольную точку», «Переместить контрольную точку в новую позицию» и «Завершить изменение позиции». Их реализация очевидна и не требует специальных комментариев: после нажатия кнопки мыши на контрольной точке узла курсор мыши может многократно перемещаться в новую позицию, которая фиксируется после отпускания кнопки мыши. Изменение положения узла на экране осуществляется практически аналогично описанной выше цели по изменению размеров узла. Разница заключается в том, что вместо контрольной точки мышью указывается сам узел. Соответствующие методы представлены на рисунке 4. Для достижения базовых целей, связанных с перемещением узла по дереву целей (Рисунок 4) используются практически идентичные методы, отличающиеся только отдельными операторами по указанию опций меню. Например, для перемещения узла вверх по иерархии необходимо сначала выделить мышью требуемый узел, а затем перемесить его вверх по дереву целей. В последнем случае можно воспользоваться главным или контекстным меню, о чём свидетельствуют подметоды «Переместить вверх через главное меню» и «Переместить вверх через контекстное меню». Их реализация осуществляется последовательным выполнением операторов, представленных на рисунке 4. Таким образом, после окончательного построения дерева целей получаем информацию о виде, количестве и порядке выполнения пользователем «правильных» (ожидаемых) действий при осуществлении диалога с системой анализа требований к ГПИ. Это же справедливо для любой интерактивной программной системы. Полученные сведения используются на последующих этапах разработки ГПИ, как описано в [2]. ЗАКЛЮЧЕНИЕ Несмотря на кажущуюся простоту, нотация CMN-GOMS позволяет решать две важные задачи при разработке ГПИ интерактивных программных систем: 1) выявлять необходимую функциональность системы на уровне диалога с учётом возможностей и предпочтений пользователей, а также особенностей решаемой пользователем задачи; 2) выявлять совокупность допустимых событий со стороны пользователя, на которые в процессе диалога должна реагировать интерактивная программная система. Нежелательные действия пользователя, не входящие в данную совокупность могут быть «сокрыты» программной системой. СПИСОК ЛИТЕРАТУРЫ 1. Конюхова, О.В. Спецификация графического пользовательского интерфейса для системы анализа требований к графическому пользовательскому интерфейсу интерактивных программных систем: описание целей [Электронный ресурс]/ О.В. Конюхова.Информационные системы и технологии: Материалы II международной научно-технической интернет- конференции, май 2013.- Орёл: Госуниверситет- УНПК, 2013.- Режим доступа: irsit.ru/article357 2. Конюхова, О.В. Графический пользовательский интерфейс для автоматизированных систем раскроя изделий сложной формы [Текст]: дис. канд. техн. наук 05.13.06: защищена 27.06.2006: утв. 13.10.2006/ Конюхова О.В.- Орёл, 2006.- 171 с. 3. John Bonnie E., David Kieras E. The GOMS Family of User Interface Analysis Techniques: Comparison and Contrast// ACM Transactions on Computer – Human Interaction, Vol. 3, No. 4, December 1996.- P. 320-351 4. Раскин, Д. Интерфейс: новые направления в проектировании компьютерных систем [Текст]/ Д. Раскин. – СПб.: Символ-Плюс, 2003. – 272 с. 5. Логунова, О.С. Человеко-машинное взаимодействие: теория и практика [Текст]/ О.С. Логунова, И.М. Ячиков, Е.А. Ильина. – М.: Феникс, 2006. – 286 с. 6. Конюхова, О.В. Синтаксис языка анализа задач для спецификации графического пользовательского интерфейса интерактивных компьютерных систем [Электронный ресурс]/ О.В. Конюхова// Методологические и теоретические аспекты создания и развития информационных технологий: Материалы V международной научно-технической конференции «Информационные технологии в науке, образовании и производстве.- Орёл, 2012.- 1 эл.опт. диск (CD-ROM): цв. Конюхова Оксана Владимировна ФГБОУ ВПО «Государственный университет – учебно-научно-производственный комплекс», г. Орёл К.т.н., доцент кафедры «Информационные системы» Тел. +7 (4862) 76-19-10 E-mail: oks1112@yandex.ru