Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
05.06.2015
Размер:
7.14 Mб
Скачать

3.1. Особливості графічного інтерфейсу

В основу розробки практично будь-якого графічного користувальницького інтерфейсу (GUІ - Graphіcal User Іnterface) покладені три метафори: "робітник стіл",, "працюєш з тим, що бачиш", "бачиш, що одержав".

Метафора "робочий стіл", зокрема , означає наступне.

Для людини, що сидить за робочим столом, доступні як визначені джерела інформації, так і засобу обробки цієї інформації. При цьому на робочому столі можуть знаходитися документи, представлені в різній формі: текст, таблиці, графіки, малюнки і т.д., що відносяться або до різних задач, або до різних аспектів однієї і тієї ж задачі. У будь-якому випадку людин має можливість переглянути кожної з цих документів, зробити чи позначки вибірку з них, порівняти дані, що містяться в них.

Інші дві метафори є розвитком ідеї "робочого столу".

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

Виконуючи якісь дії над документами, людина, природно, відразу ви-дит результат своєї діяльності.

У рамках графічного інтерфейсу користувача всі три метафори одержали досить адекватне втілення: простір екрана монітора - це робочий стіл користувача, необхідні для рішення задачі об'єкти представлені на ньому у виді відповідних графічних образів (піктограм і вікон), а щоб змінити робітниче середовище, користувачу досить змінити склад об'єктів, представлених на робочому столі; при цьому всі необхідні дії виконуються не за допомогою команд, а шляхом прямого маніпулювання об'єктами (точ-нее, їх образами).

39

Пряме маніпулювання об'єктами має наступні достоїнства:

o Забезпечує візуальний контроль за виконуваними операціями.

o Дозволяє легко відновити попередній стан "робочого столу".

o Дозволяє вирішувати різні задачі, використовуючи обмежений набір стандар

тных операцій (відкриття/закриття вікна, буксирування об'єкта, зміна атрибу

тов чи вікна об'єкта і т.п.).

Ще одна важлива особливість современнных графічних інтерфейсів - це многооконностъ.

Многооконная технологія забезпечує користувачу доступ до більшого обсягу інформації, чим при використанні одного екрана. Крім того, маючи через вікна доступ до декількох джерел інформації одночасно, користувач може поєднувати наявну в них інформацію. Наприклад, зображення, отримані за допомогою графічного редактора, можна включити в текстовий документ.

За допомогою декількох вікон користувач може також одночасно анализи-ровать інформацію, представлену на різних рівнях деталізації. Наявність на екрані декількох чи вікон піктограм дозволяє "розширити" короткочасну пам'ять користувача.

Таким чином, графічний інтерфейс розширює простір огляду і полегшує роботу користувача. Разом з тим, саме по собі надання користувачу графічного інтерфейсу ще не гарантує підвищення ефективності його роботи. Це обумовлено тим, що метафора "робочий стіл" далеко не завжди означає "акуратний робочий стіл". Якщо "робочий стіл" погано організований, існує небезпека, що користувач буде витрачати більше часу на роботу з "папками", чим на рішення задач, що коштують перед ним.

Пряме маніпулювання також не завжди зручне, насамперед для досвідченого користувача. Часто деяку послідовність дій можна виконати швидше за допомогою однієї команди (чи макросу), чим за допомогою серії маніпуляцій мишею.

Пряме маніпулювання знижує також гнучкість діалогу, оскільки споконвічно графічний інтерфейс базується на структурі меню.

З появою інструментів візуального програмування, таких як Vіsual З, Vіsual Basіc, Power Buіlder, Delphі, створення графічного користувальницького інтерфейсу перестало бути прерогативою лише деяких фахівців. Але одночасно з цим виникла проблема, здатна звести нанівець усі переваги швидкої розробки GUІ. Ця проблема полягає в появі великої кількості поганих графічних інтерфейсів: не погоджених, не дружніх користувачу, громіздких, слабофункциональных, що не допомагають, а мешающих користувачу вирішувати задачі, що коштують перед ним. Викладу деяких рекомендацій, що дозволяють підвищити якість розробки GUІ, саме і присвячена дана глава.

40

3.2. ОБ'ЄКТНИЙ ПІДХІД ДО ПРОЕКТУВАННЯ ІНТЕРФЕЙСУ

КОНЦЕПЦІЯ ІНТЕРФЕЙСУ, КЕРОВАНОГО ДАНИМИ

Розробка, керована даними (скорочено DCD - Data-centered Desіgn) означає, що проектування інтерфейсу підтримує таку модель взаимодей-ствия користувача із системою, при якій первинними є оброблювані дані, а не необхідні для цього програмні засоби. Іншими словами, при такому підході основна увага користувача концентрується на тих даних, з якими він працює, а не на пошуку і завантаженні необхідного додатка.

При використанні DCD-технології основним програмним об'єктом є документ, що являє собою деякий абстрактний пристрій збереження даних, використовуваних для виконання завдань користувачів і для їхньої взаємодії. Документ повинний бути доступний як різним додаткам, використовуваним для його обробки, так і усім взаємодіючим користувачам.

ОБ'ЄКТИ І ВІДНОСИНИ МІЖ НИМИ

Розглянуті вище особливості графическкнх інтерфейсів, а також покладена в основу їхньої реалізації DCD-технологія обумовлюють необхідність застосування для проектування GUІ объектно-ориентированного підходу. Такий підхід припускає використання аналогій між програмними об'єктами й об'єктами реального світу. З погляду користувальницького інтерфейсу, объек-тами є не тільки чи файли піктограми, але і будь-який пристрій для збереження й обробки інформації, включаючи осередку, параграфи, символи, і т.д., а також документи, у яких вони знаходяться.

Об'єкти, незалежно від того, чи відносяться вони до реального чи світу мають комп'ютерне втілення, мають визначені характеристики, що допомагають нам розуміти, що вони собою представляють, і як вони поводяться в тих чи інших ситуаціях. Наступні поняття описують основні аспекти і характеристики об'єктів, що мають комп'ютерне втілення:

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

ничены зовнішніми чи видимими ознаками об'єкта. Вони можуть відбивати їхню

внутрішню чи організацію поточне стан об'єкта.

o Операції над об'єктами. Усі дії, що можуть бути виконані з

(чи над) об'єктом, вважаються припустимими операціями. Переміщення пли

копіювання об'єкта є прикладами операцій. Користувач може ви-

41

підняти операції над об'єктами, використовуючи ті чи інші механізми, предостав-ляемые інтерфейсом, (зокрема , командне керування і пряме манипули-рование).

o Зв'язок (відносини) між об'єктами. Любою об'єкт тим чи іншим способом взаємодіє з іншими об'єктами. У багатьох випадках взаємини між об'єктами можуть бути описані як зв'язок визначеного типу. Найбільш загальними типами відносин є набори (Collectіon), об'єднання (Constraіnts), і грудки-позиції (Composіtes).

Набір являє собою найбільш простий тип відносини, що відбиває наявність в об'єктів деяких загальних властивостей. Результати запиту (пошуку) по об-разцу) чи операції множинного вибору об'єктів - приклади використання даного типу відносини. Важливим достоїнством цього типу відносини є те, що він дозволяє вказувати операції, що повинні відноситися до визначеного набору об'єктів.

Об'єднання відбиває більш "тісне" відношення між об'єктами, при кото-ром зміна об'єкта впливає на деякий інший об'єкт у наборі. Найпростіший приклад такого відношення - зміна формату сусідньої сторінки при додаванні тексту на попередній сторінці документа.

Композиція має місце в тому випадку, коли агрегація декількох об'єктів може розглядатися як новий об'єкт зі своєю власною безліччю властивостей і припустимих операцій. Стовпець осередків у таблиці і параграф у текстовому документі - це приклади композицій.

Ще один розповсюджений тип відносин між об'єктами - контейнер.

Контейнер є об'єктом, що містить інші об'єкти (наприклад, ри-сунок у чи документі документ у папці можуть розглядатися як частина содержи-мого відповідного контейнера). Властивості контейнера часто впливають на поведе-ние його вмісту. Цей вплив може полягати в чи розширенні подавлешп і деяких властивостей содержащхся в ньому чи об'єктів у зміні переліку допусти-мых операцій, Крім того, контейнер керує доступом до свого вмісту, а також перетворенням типу (формату) об'єкта, що включається в його. Це, у частно-сти, може позначитися на результаті пересилання об'єкта з одного контейнера в іншій.

Розглянуті вище аспекти обумовлюють необхідність віднесення каждо-го об'єкта до того чи іншого типу (класу) об'єктів. Об'єкти одного типу мають аналогічні властивості і поводження.

Як і в реальному світі, сукупність об'єктів (можливо, різних типів) утворить деяке середовище (оточення) користувача. Виходячи з цього, більшість завдань користувача можуть бути представлені (описані) як визначена комбінація взаємозалежних об'єктів. Так, наприклад, обробка текстового до-кумента може бути описана як композиція операцій, виконуваних над його эле-ментами (окремими словами, параграфами і т.д.). Благодарая такому підходу будь-які, як завгодно складні конструкції можуть бути реалізовані на основі не-великого числа базових угод. За умови послідовної і согласо-

42

ванної реалізації цих угод для всього користувальницького інтерфейсу ефективність роботи користувача істотно зростає. Крім того, зазначений підхід сприяє модульній, компонентно-орієнтованій розробці додатка, тобто нове завдання може бути виконане шляхом чи адаптації рекомбінації тих же об'єктів.

У реальному світі об'єкти зберігають свій поточний стан доти , поки воно не буде змінено під впливом яких-небудь зовнішніх впливів. Наприклад, якщо ви, ідучи з будинку, закрили вікно, воно, швидше за все, залишиться в такому ж стані до вашого повернення. Це ж правило повинне бути справедливо і для об'єктів інтерфейсу. За винятком тих випадків, коли потрібно явна вказівка користувача на збереження даних, всі об'єкти оточення повинні бути збережені автоматично. Крім того, повинна зберігатися і візуальна інформація про стан оточення, така, наприклад, як позиція курсору, розташування і розмір вікна, для того щоб цей стан міг бути відновлений при наступному сеансі роботи користувача.

При всіх достоїнствах об'єктного підходу до розробки інтерфейсу, його використання саме по собі не гарантує необхідної якості інтерфейсу. Для створення ефективного користувальницького інтерфейсу необхідно доповнити об'єктний підхід ретельним проектуванням усіх компонентів інтерфейсу з орієнтацією на потребі потенційного користувача.

Першим кроком в объектно-ориентированном проектуванні інтерфейсу повинний бути аналіз цілей користувачів і особливостей виконуваних ними завдань. При проведенні такого аналізу варто визначити основні чи компоненти об'єкти, з якими взаємодіє користувач, а також характерної риси об'єктів кожного типу. Необхідно також виявити перелік операцій, виконуваних над об'єктами, їхній вплив на стан і властивості об'єктів.

Після завершення аналізу можна переходити до опису можливих способів взаємодії користувача з об'єктами різних типів. На цьому кроці вибирається форма візуального представлення об'єктів. При цьому варто мати на увазі, що візуальний образ об'єкта в залежності від ситуації може змінюватися. Наприклад, контейнер може бути представлений і у виді піктограми, і у виді вікна, що відображає вміст цього контейнера.

Наступним етапом проектування GUІ є компонування і пространствен-ное розміщення на .екрані візуальних елементів інтерфейсу. Саме на цьому етапі повинні бути вирішені такі проблеми, як вибір кольору, розміру й інших атрибутів цих елементів, а також вибір засобів і методів залучення уваги пользова-теля до найбільш важливої інформації, відображуваної па екрані.

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

43

3.3. КОМПОНЕНТИ ГРАФІЧНОГО ІНТЕРФЕЙСУ

РОБОЧИЙ СТІЛ

Робочий стіл надає користувачу первинну робочу область; він заповнює екран і формує візуальне тло для усіх виконуваних операцій (як показане на мал. 3.1). Проте , Робочий стіл є не просто тлом. Він може також бути використаний як основу для розміщення об'єктів файлової системи. Крім того, для комп'ютера, підключеного до мережі, Робочий стіл служить у якості приватної робочої області, через яку користувач може одержати доступ до інших об'єктів мережі.

Рис. 3.1 Робочий стіл

. ПІКТОГРАМИ

Піктограми використовуються для візуального представлення на екрані чи об'єктів задач. Як правило, це невеликі закінчені малюнки, що відображають сутність об'єктів, що представляються, чи явищ. Оскільки піктограми є одним з основних засобів взаємодії користувача з додатком, важливо не тільки забезпечити підтримку існуючих (системних) піктограм, але і раз-

44

працювати нові; від того, наскільки вони будуть відповідати своєму предназначе-нию, буде залежати й ефективність роботи користувача.

ВІКНА

У реальному світі погляд через різні вікна дозволяє одержати різні зображення зовнішнього світу. Аналогічну роль грають вікна й у графічному інтерфейсі.

Формальне поняття вікна трактується в такий спосіб: вікно є спеціальна область фізичного екрана, за допомогою якої користувач має можливість одержати відображення визначеного аспекту розв'язуваної задачі.

Іншими словами, вікно є засобом перегляду і редагування інформації, а також відображення вмісту і властивостей об'єктів. Вікна можуть використовуватися також для висновку на екран значень параметрів, результатів виконання команд, наборів інструментів і повідомлень, що інформують користувача про конкретну ситуацію. Рис. 3.2 демонструє різні варіанти використання вікон.

Рис. 3.2. Використання вікон додатком

45

Користувач може взаємодіяти з об'єктами додатка, використовуючи різні пристрої введення. Найбільш розповсюджені з них - миша, клавіатура і перо.

миша

М ышъ є основним пристроєм уведення при використанні графічного інтерфейсу. Інші типи пристроїв указівки, що эмулируют миші (наприклад, трэкболлы), також підпадають під цей загальний термін.

Миша функціонально зв'язана з графічним символом на екрані, що на-зывается покажчиком. Позиционируя покажчик і чи натискаючи клацаючи кнопку миші, користувач може вибирати об'єкти й операції.

У міру того, як користувач переміщає покажчик через екран, його форма може змінюватися, щоб забезпечити інформування користувача (зворотний зв'язок) про конкретну позицію, операцію чи стан. Табл. 3.1 містить деякі найбільш розповсюджені форми покажчика, використовувані в MS Wіndows, і їхнє призначення.

46

Таб.м і ца 3.1. Форми покажчика


Кожен покажчик має визначену крапку, називану гарячою крапкою, що ідентифікує точну позицію покажчика миші на екрані. Гаряча крапка визначає, на який об'єкт впливає користувач за допомогою миші. Для об'єктів на екрані може бути також визначена гаряча зона; гаряча зона - це область, у межах якої повинна (чи може) знаходитися гаряча крапка, щоб вважатися розташованої над об'єктом. Як правило, гаряча зона збігається з границями об'єкта, але може бути як більше, так і менше, Щоб полегшити роботу користувача.

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

У табл. 3.2 приведений опис основних дій, виконуваних за допомогою миші.

Та б л и на 3.2

Основні дії, виконувані за допомогою миші

Дія Опис

Указівка (Poіntіng) Установка покажчика на конкретний об'єкт на екрані без використання кнопок миші. Указівка звичайна є частиною підготовки до виконання деякої іншої дії. Для вказівки в багатьох випадках мається можливість забезпечити візуальний зворотний зв'язок з користувачем (наприклад, за допомогою зміни форми покажчика).

Щиглик (Clіckіng) Щиглик однієї з кнопок миші на об'єкті; як правило, у момент щиглика миша не переміщається; щиглика ідентифікує (вибирає) чи активізує об'єкт

47

Таблиця 3.2 (Продовження)

Подвійний щиглик (Double-Clіckіng) "Сдвоеный" щиглик однієї з кнопок миші на об'єкті; об'єкт може бути як обраний раніше, так і не обраний; подвійний щиглик забезпечує виконання визначеної операції для даного об'єкта

Натискання (Pressіng) Припускає установку покажчика над одним з об'єктів (чи позицій) на екрані з наступним натисканням кнопки миші; кнопка утримується в натиснутому стані досить тривалий час (не менш 1с); звичайне натискання є початковою фазою операції вибору

Переміщення (Draggіng) Переміщення покажчика при натиснутій кнопці миші; як правило, використовується для виконання операцій вибору і прямого маніпулювання

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

Теоретично, можливі й інші прийоми роботи з мишею, наприклад, акорд (натискання декількох кнопок миші одночасно) і мульти-щелчок (потрійний чи навіть "учетверенный" щиглик), однак вони вимагають наявності відповідних моторних навичок користувача і на практиці використовуються дуже рідко.

КЛАВІАТУРА

Клавіатура - це основний засіб чи введення редагування текстової ін-формації. Проте , при реалізації графічного інтерфейсу вона може ис-пользоваться для введення інших типів даних, а також для керування, переключе-ния режимів і як засіб прискореного доступу до об'єктів і операцій.

З погляду організації взаємодії користувача з об'єктами прило-жения всі клавіші можна розділити на наступні функціональні групи:

o текстові клавіші і клавіші пунктуації;

o клавіші навігації;

o функціональні клавіші;

o клавіші доступу;

o клавіші режиму;

o акселератор^-клавіші-акселератори.

Клавіша доступу (іноді іменована також мнемонічною клавішею) - це текстова клавіша, що при використанні в комбінації з клавішею <Alt>

48

активізує відповідний елемент керування. Клавіша доступу повинна со-ответствовать одному із символів текстової мітки цього елемента керування. Наприклад, комбінація клавіш <АК>+Про може активізувати елемент управле-ния, що має мітку Відкрити. Ефект активізації елемента керування залежить від типу цього елемента.

Клавіша доступу повинна бути унікальної в межах своєї області дії (тобто та сама клавіша не повинна використовуватися для доступу більш ніж до одно-му елемента керування, розташованому в цій області). У противному випадку за допомогою даної клавіші завжди буде активізуватися тільки один елемент - розташований першим у цій області.

Клавіші режиму змінюють спосіб дії інших клавіш (чи інших уст-ройств уведення). Розрізняють два типи таких клавіш: перемикач^-клавіші-перемикачі і кла-виши-модификаторы.

Перемикач^-клавіша-перемикач включає пли виключає конкретний режим при каж-дом черговому натисканні. Наприклад, натискання клавіші <Caps lock> приводить до пе-реключению з верхнього регістра на нижній і навпаки.

Модифікатор^-клавіша-модифікатор, на відміну від клавіш-перемикачів, установлює режим, що залишається в силі, тільки поки клавіша-модифікатор утримується в натиснутому стані. До них відносяться клавіші <Shіft>, <Ctrl> і <Alt>. Їхній ис-пользование в багатьох випадках виявляється переважніше через те, що вони вимагають залучення уваги користувача до вибору режиму і разом з тим по-зволяют легко скасувати обраний режим.

Акселератор^-клавіші-акселератори (називані також гарячими клавішами) - це клави-ши чи комбінації клавіш, що забезпечують швидкий доступ до часто виконуваних операцій. Як такі комбінації рекомендується використовувати <З1;м1>+<символ> і функціональні клавіші (з Fl no F12). По визначенню, клавіші-акселератори є "клавіатурним еквівалентом" інших елементів користувальницького інтерфейсу. Виходячи з цього, уникайте використання клавіші-акселератора як єдиного засобу доступу до якого-небудь чи об'єкта функції.

При призначенні клавіш-акселераторів варто враховувати приведені нижче рекомендації.

o Використовуйте комбінацію <8Ып>+<клавіша> для чи розширення доповнення дії, виконуваного за допомогою цієї <клавіші> без <Shіft>. Наприклад, якщо

комбінація клавіш < Alt>+<Tab> забезпечує переключення між вікнами зверху

вниз, те комбінація <Shіft>+<Alt>+<Tab> переключає вікна в зворотному порядку.

o Використовуйте комбінації <Сгт1>+<клавіша> для посилення ефекту дей

ствия, виконуваного за допомогою <клавіші>. Наприклад, при редагуванні тексту

клавіша <Ноті> забезпечує перехід на початок рядка, а комбінація

<Ctrl>+<Home> - у початок тексту.

o Уникайте комбінацій <А1т.>+<клавіша>, оскільки вони можуть конфликто

вать зі стандартним клавіатурним доступом до меню й елементам керування ин

терфейса. Комбінації <Alt>+<Tab>, <Alt>+<Esc> і <Alt>+<Spacebar> зарезер-

49

вированы для системного використання; комбінації <Ак>+<цифра> забезпечують уведення спеціальних символів.

o Враховуйте призначення клавіш-акселераторів, використані разработчи

ками системного програмного забезпечення. Наприклад, в ОС MS Wіndows комби

нація <Ctrl>+C використовується для виконання команди Сміттю (Копіювати).

o Надавайте користувачу право змінювати призначення клавиш-акселера

торів у вашому додатку, коли це можливо.

o Використовуйте клавішу <Esc> для переривання виконуваної операції; як пра

вило, вона також використовується як клавішу-акселератор для виконання

команди Cancel {Скасувати).

o Зробіть ваш додаток нечуттєвим до випадкового (помилковим)

комбінаціям клавіш.

Деякі клавіатури містять три нових клавіші: клавішу <Applіcatіon> {Додаток) і дві клавіші <Wіndows> {Вікна). Основне призначення клавіші <Applіcatіon>- виклик спливаючого меню для поточного вибору (тобто вона аналогічна комбінації <Shіft>+F10). Ви можете також використовувати її разом із клавішами-модифікаторами для виконання спеціалізованих функцій додатка. Натискання кожної з клавіш <Wіndows> - лівої чи правий - приводить до появи меню. Ці клавіші також використовуються системою як модифікатори для специфічних системних функцій. Не використовуйте ці клавіші як модифікатори для функцій несистемного рівня.

Соседние файлы в папке перевод