Види інтерфейсів користувача. Розвиток інформаційних технологій

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

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

Визначення інтерфейсу.

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

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

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

Види інтерфейсів

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

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

Розрізняють два варіанти організації всередині машинного інтерфейсу:

Багатозв'язковий інтерфейс, у якому кожен блок ПК пов'язані з іншими блоками своїми локальними проводами;

Однозв'язковий інтерфейс, в результаті якого всі блоки ПК пов'язані один з одним через загальну чи системну шину.

2. Зовнішній інтерфейс – система зв'язку системного блоку з периферійними пристроями ЕОМ чи іншими ЕОМ

Тут можна також виділити кілька типів зовнішнього інтерфейсу:

Інтерфейс периферійних пристроїв, що підключаються за допомогою шин вводу-виводу (ISA, EISA, VLB, PCI, AGP, USB IEEE 1384 SCSI та ін.);

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

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

Інтерфейс є орієнтованим на людину, якщо вона відповідає потребам людини та враховує її слабкості.

Машинна частина інтерфейсу - Частина інтерфейсу, реалізована в машині (апаратно-програмної її частини) з використанням можливостей обчислювальної техніки.

Людська частина інтерфейсу - Це частина інтерфейсу, що реалізується людиною з урахуванням її можливостей, слабкостей, звичок, здатності до навчання та інших факторів.

Найбільш поширені інтерфейси визначені державними та міжнародними стандартами.

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

Класифікація інтерфейсів користувача

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

Розрізняють три види інтерфейсів користувача: командний, WIMP та SILK – інтерфейси.

Взаємодія перерахованих інтерфейсів з операційними системами та технологіями показано на рис.1:

Рис. 1. Взаємодія інтерфейсів користувача їх технологій та операційних систем.

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

Пакетні технології.

Історично цей вид технології з'явився першим на електромеханічних обчислювальних машинах К. Цюзе, Г. Айкіна, а потім на електронних обчислювальних машинах Еккерта і Моучлі, на вітчизняних ЕОМ Лебедєва, Брусенцова, ЕОМ IBM-360, ЄС ЕОМ і так далі. Ідея його проста й у тому, що у вхід комп'ютера подається послідовність програм, набитих, наприклад, на перфокартах і послідовність символів, визначальних порядок виконання цих програм. Людина тут мало впливає на роботу машини. Він може призупинити роботу машини, змінити програму і знову запустити ЕОМ.

Технологія командного рядка.

При цій технології як спосіб введення інформації оператором в ЕОМ служить клавіатура, а комп'ютер виводить інформацію людині за допомогою алфавітно-цифрового дисплея (монітора). Комбінацію монітор-клавіатура стали називати терміналом чи консоллю. Команди набираються в командному рядку, що є символом запрошення і миготливим курсором, при цьому набрані символи можна прати і редагувати. Після натискання клавіші «Enter» («Введення») ЕОМ приймає команду і починає виконувати. Після початку наступного рядка комп'ютер видає на монітор результати своєї роботи. Найбільш поширеним командний інтерфейс був у операційній системі MS DOS.

2. ООМУ (вікно, образ, меню, покажчик)WIMP (window, image, menu, pointer) - інтерфейс.Характерною рисою цього інтерфейсу і те, що діалог користувача з комп'ютером ведеться за допомогою командного рядка, а з допомогою вікон, графічних образів меню, курсору та інших елементів. Хоча в інтерфейсі подаються команди машині, але це робиться через графічні образи.

Ідея графічного інтерфейсу зародилася в середині 70-х у дослідному центрі фірми Xerox Palo Alto Research Center (PARC). Причиною графічного інтерфейсу стало зменшення часу реакції комп'ютера на команду, збільшення обсягу оперативної пам'яті, і навіть розвиток елементної бази, технічних показників ЕОМ і зокрема моніторів. Після появи графічних дисплеїв з можливістю виведення будь-яких графічних зображень різного кольору, графічний інтерфейс став невід'ємною частиною всіх комп'ютерів. Поступово проходив процес уніфікації у використанні клавіатури та миші прикладними програмами. Злиття цих двох тенденцій призвело до створення такого інтерфейсу користувача, за допомогою якого при мінімальних витратах часу і коштів на переучування персоналу можна працювати з будь-якими програмними додатками

Цей вид інтерфейсу реалізовано у вигляді двох рівнів:

Простий графічний інтерфейс;

Повний WINP – інтерфейс.

Простий графічний інтерфейс , який на першому етапі дуже схожий на технологію командного рядка з наступними відмінностями:

При відображенні символів для підвищення виразності зображення допускалося виділення частини символів кольором, інверсним зображенням, підкресленням і мерехтінням;

Курсор міг бути представлений деякою областю, виділеною кольором і охоплює декілька символів і навіть частину екрана;

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

Крім часто використовуваних клавіш управління курсором стали використовуватися маніпулятори типу миші, трекболу і т.п., які дозволяли швидко виділяти потрібну область екрану і переміщати курсор;

Широке використання кольорових моніторів.

Поява простого графічного інтерфейсу збігається з поширенням операційної системи MS DOS. Типовим прикладом його використання є файлова оболонка Norton Commander та текстові редактори MaltiEdit, ChiWriter, Microsoft Word для DOS, Лексикон та ін.

Повний WIMP -інтерфейс , став другим етапом розвитку графічного інтерфейсу, який характеризується такими особливостями:

Вся робота з програмами, файлами та документами відбувається у вікнах;

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

Усі дії з об'єктами здійснюються за допомогою меню, що стає основним елементом керування;

Маніпулятор виступає як головний засіб управління.

Слід зазначити, що WIMP-інтерфейс вимагає для реалізації підвищеної вимоги до продуктивності комп'ютера, обсягу його пам'яті якісного растрового кольорового дисплея програмного забезпечення, орієнтованого цей вид інтерфейсу. В даний час WIMP інтерфейс став стандартом де-факто, а операційна система Microsoft Windows стала яскравим його представником.

3. РОЯЗ (мова, образ, мова, знання)SILK (speech, image, language, knowledge) - інтерфейс.Цей інтерфейс найбільш наближений до звичайної людської форми спілкування. У рамках цього інтерфейсу йде звичайна розмова людини та комп'ютера. У цьому комп'ютер знаходить собі команди, аналізуючи людську мову і знаходячи у ній ключові фрази. Результати виконання команд він також перетворює на зрозумілу людині форму. Цей вид інтерфейсу вимагає великих апаратурних витрат, тому перебуває у стадії розробки та вдосконалення і поки що використовується лише у військових цілях.

SILK-інтерфейс для спілкування людини з машиною використовує:

Мовленню технологію;

біометричну технологію (мімічний інтерфейс);

Семантичний (суспільний) інтерфейс.

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

Біометрична технологія («Мімічний інтерфейс») виникла наприкінці 90-х і нині перебуває у стадії розробки. Для керування комп'ютером використовується вираз обличчя, напрям погляду, розмір зіниці та інші ознаки людини. Для ідентифікації користувача використовується малюнок райдужної оболонки його очей, відбитки пальців та інша унікальна інформація, яка зчитується з цифрової камери, а потім за допомогою програми розпізнавання образів цього зображення виділяються команди.

Семантичний (суспільний) інтерфейс виник ще наприкінці 70-х років ХХ століття з розвитком штучного інтелекту. Його важко назвати самостійним видом інтерфейсу, оскільки він включає інтерфейс командного рядка, і графічний, і мовний, і мімічний інтерфейси. Основною його особливістю є відсутність команд під час спілкування з комп'ютером. Запит формується природною мовою, у вигляді пов'язаного тексту та образів. Насправді - це моделювання спілкування людини з комп'ютером. В даний час використовується для військових цілей. Такий інтерфейс вкрай необхідний для ведення повітряного бою.

"Передавальний механізм" - Підсумок уроку. Технологія 3 клас. Навчання конструювання різних технічних моделей із приводом механізму. Перехресна передача - коли колеса крутяться у різних напрямках. Види передач: 1 – ремінна; 2 – ланцюгова; 3 – зубчаста. Вироби, що мають передачу: транспортер, кран, млин. Головна частина конструкції млина – передавальний механізм.

«Інтерфейси комп'ютера» - Інтерфейс користувача. Програмне забезпечення. Службові програми. Персональний комп'ютер як система. Забезпечується операційною системою комп'ютера. Вкажіть входи та виходи. Апаратний інтерфейс. Апаратно-програмний інтерфейс. Операційна система. Текстові файли Системні програми Апаратно-програмний інтерфейс – взаємодія апаратного та програмного забезпечення комп'ютера.

«Технології під час уроків» - Форми організації може бути різні: урок, групова, індивідуальна, парна. Активний та інтерактивний методи застосовуються мною з 5 по 11 класи. Види технологій: Технологія особистісно-орієнтованого навчання. Технологія навчання. Технологія особистісно-орієнтованого навчання Проектно-дослідницька технологія.

«Освітні технології у школі» - Лабораторія невирішених проблем. Методична підтримка творчих проектів ОУ та викладачів. Ігрові технології. Зростання показника використання ІКТ у процесі. Розповсюдження передового педагогічного досвіду. Зниження кількості другорічників. Зростання майстерності педагогів, впливом геть якість уроку.

«Технологія 6 – 7 – 8 клас» - У чому вимірюється електрична енергія? Яка мірка визначає розмір плечового виробу? Що, за народними уявленнями, означало початок всього живого? Яка деталь надає руху всім робочим органам швейної машини? Початкова сировина для виготовлення карети для Попелюшки. Яку функцію виконують жолобки на лезі голки?

«Розділи технології» - А у нас із блискучого бісеру – Незвичайна краса. Предмет – технологія. Шматкове шиття здавна відоме багатьом народам. Національні свята та обряди, національний одяг. Розповідають про традиції різних народів, національні свята та обряди. Після випікання пампушки трохи охолодити, натерти товченим часником.

  • ООП
  • Минулого понеділка мені пощастило потрапити на співбесіду на Senior .Net Developer в одну міжнародну компанію. Під час співбесіди мені запропонували пройти тест, де низка питань була пов'язана з Net. Зокрема в одному з питань треба було дати оцінку (істина/брехня) низці тверджень, серед яких було таке:

    В.Net будь-який масив елементів, наприклад int, за умовчанням реалізує IList, що дозволяє використовувати його як колекцію в операторі foreach.

    Швидко відповівши це питання негативно і окремо дописавши полях. що для foreach необхідна реалізація не IList, а IEnumerable, я перейшов до наступного питання. Однак дорогою додому мене мучило питання: чи реалізує масив все-таки цей інтерфейс чи ні?

    Про IList я невиразно пам'ятав, що цей інтерфейс дає мені IEnumerable, індексатор і властивість Count, що містить кількість елементів колекції, а також ще пару властивостей, що рідко використовуються, типу IsFixedCollection(). Масив має властивість Length для свого розміру, а Count в IEnumerable є методом розширення від LINQ, що було б неможливо, якби цей метод був реалізований у класі. Таким чином, виходило, що масив не міг реалізовувати інтерфейс IList, проте якесь невиразне почуття не давало мені спокою. Тож увечері після інтерв'ю я вирішив провести невелике дослідження.

    Клас System.Array

    Оскільки Reflector.Net у мене не був встановлений, я просто написав коротку програму на C#, щоб дізнатися, що за інтерфейси реалізуються цілим масивом.

    Var v = new int (1, 2, 3); var t = v. GetType(); var i = t.GetInterfaces(); foreach(var tp in i) Console.WriteLine(tp.Name);

    Ось повний список отриманих інтерфейсів із вікна консолі:

    ICloneable IList ICollection IEnumerable IStructuralComparable IStructuralEquatable IList`1 ICollection`1 IEnumerable`1 IReadOnlyList`1 IReadOnlyCollection`1

    Таким чином, масив в.Net все-таки реалізує інтерфейс IList та його узагальнений варіант IList<> .

    Щоб отримати більш повну інформацію, я побудував діаграму класу System.Array.

    Мені відразу впала в очі моя помилка: Count було властивістю не IList, а ICollection, ще попереднього інтерфейсу в ланцюжку успадкування. Тим не менш, сам масив вже не мав такої властивості, як і багатьох інших властивостей інтерфейсу IList, хоча інші властивості цього інтерфейсу, IsFixedSize та IsReadOnly були реалізовані. Як таке взагалі можливе?

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

    Порівняння явної та неявної реалізації інтерфейсів

    Порівняємо ці два види реалізації інтерфейсів:.
    Критерії
    Неявна (implicit) реалізація
    Явна (explicit) реалізація
    Базовий синтаксис
    interface ITest ( void DoTest(); ) public class ImplicitTest: ITest ( public void DoTest() ( ) )
    interface ITest ( void DoTest(); ) public class ExplicitTest: ITest ( void ITest.DoTest() ( ) )
    Видимість
    Неявна імплементація завжди була відкритою (public), тому до методів і властивостей можна звертатися безпосередньо.
    var imp = New ImplicitTest(); imp.DoTest();
    Очевидна імплементація завжди закрита (private).
    Щоб отримати доступ до імплементації, необхідно кастувати інстанцію класу до інтерфейсу (upcast to interface).
    var exp = New ExplicitTest(); ((ITest)exp).DoTest();
    Поліморфія
    Неявна імплементація інтерфейсу може бути віртуальною (virtual), що дозволяє переписувати цю імплементацію у класах-нащадках.
    Явна імплементація завжди статична. Вона не може бути переписана (override) або перекрита (new) у класах-нащадках. Прим. 1
    Абстрактний клас та реалізація
    Неявна реалізація може бути абстрактною і реалізовуватися лише у класі-нащадку.
    Явна реалізація може бути абстрактної, але сам клас може мати інші абстрактні методи і бути абстрактним. Прим. 2

    Примітки:
    Прим. 1 - Як справедливо зауважує у коментарях, реалізація може бути перевизначена при повторній явній імплементації інтерфейсу в класі-нащадку (див. перший коментар до статті).

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

    Навіщо потрібна явна реалізація інтерфейсів

    Явна реалізація інтерфейсу, відповідно до MSDN , необхідна у разі, коли кілька інтерфейсів, реалізованих класом, мають метод з однаковою сигнатурою. Ця проблема в загальному вигляді відома в англомовному світі під крижаною кров назвою «deadly diamond of death», що перекладається російською як «проблема ромба». Ось приклад такої ситуації:

    /* Listing 1 */ interface IJogger ( void Run(); ) interface ISkier ( void Run(); ) public class Athlete: ISkier, IJogger ( public void Run() ( Console. Jogger?"); ) )

    До речі, цей приклад є коректним кодом C#, тобто він (коректно) компілюється і запускається, при цьому метод Run() є одночасно і методом самого класу, і реалізацією аж двох інтерфейсів. Таким чином, ми можемо мати одну реалізацію для різних інтерфейсів і самого класу. Перевірити це можна наступним кодом:

    /* Listing 2 */ var sp = new Athlete(); sp.Run(); (sp as ISkier). Run (); (sp as IJogger). Run ();

    Результатом виконання цього коду буде "Am I an Athlete, Skier or Jogger?", виведений у консолі тричі.

    Саме тут ми можемо використати явну реалізацію інтерфейсу для того, щоб поділити всі три випадки:

    /* Listing 3 */ public class Sportsman ( public virtual void Run() ( Console.WriteLine("I am a Sportsman"); ) ) public class Athlete: Sportsman, ISkier, IJogger ( public override void Run() ( Console. WriteLine("I am an Athlete"); ) void ISkier.Run() ( Console.WriteLine("I am a Skier"); ) void IJogger.Run() ( Console.WriteLine("I am a Jogger"); )

    В даному випадку при виконанні коду з Listing 2 ми побачимо в консолі три рядки, "I am an Athlete", "I am a Skier"і "I am a Jogger".

    Плюси та мінуси різної реалізації інтерфейсів

    Видимість реалізації та вибіркова реалізація
    Як уже було показано вище, неявна (implicit) реалізація синтаксично не відрізняється від звичайного методу класу (причому якщо цей метод вже був визначений у предку класі, то в такому синтаксисі метод буде прихований (hidden) в нащадку і код буде без проблем скомпілюваний c compiler warning про приховування методу.). Більше того, можлива вибіркова реалізація окремих методів одного інтерфейсу як явним, так і неявним чином:

    /* Listing 4 */ public class Code ( public void Run() ( Console.WriteLine("I am a class method"); ) ) interface ICommand ( void Run(); void Execute(); ) public class CodeCommand: Code , ICommand ( // implicit interface method implementation // => public implementation // implicit base class method hiding (warning here) public void Run() ( base.Run(); ) // explicit interface method implementation // => private implementation void ICommand.Execute() () )

    Це дозволяє використовувати реалізацію окремих методів інтерфейсу як рідних методів класу і вони доступні, наприклад, через IntelliSense, на відміну від явної реалізації методів, які є приватними і видні лише після касти до відповідного інтерфейсу.

    З іншого боку, можливість приватної реалізації методів дозволяє приховувати низку методів інтерфейсу, повністю його імплементуючи. Повертаючись до нашого першого прикладу з масивами в.Net, можна побачити, що масив приховує, наприклад, імплементацію властивості Count інтерфейсу ICollection, виставляючи назовні цю властивість під ім'ям Length (ймовірно це є спробою підтримки сумісності з С++ STL і Java). Отже, ми можемо приховувати окремі методи реалізованого інтерфейсу і приховувати (=робити публічними) інші.

    Тут, правда, виникає така проблема, що в багатьох випадках абсолютно неможливо здогадатися про те, які інтерфейси реалізовані класом «неявно», оскільки ні методи, ні властивості цих інтерфейсів не видно в IntelliSense (тут також є показовим приклад з System.Array). Єдиним способом виявлення таких реалізацій є використання рефлексії, наприклад, за допомогою Object Browser у Visual Studio.

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

    /* Listing 5 */ interface IFingers ( void Thumb(); void IndexFinger(); // an obsolete interface method // void MiddleFinger(); ) public class HumanPalm: IFingers ( public void Thumb() () public void IndexFinger( ) () // here is a "dangling" public method public void MiddleFinger() () ) public class AntropoidHand: IFingers ( void IFingers.Thumb() () void IFingers.IndexFinger() () // here compiler error void IFingers.MiddleFinger() () )

    У разі приватної реалізації інтерфейсів всі класи з явною реалізацією неіснуючого більш методу просто перестануть компілюватися, проте після видалення непотрібної реалізації (або її рефакторингу в новий метод), що стала, у нас не буде «зайвого» публічного методу, не прив'язаного до якого-небудь інтерфейсу. Звичайно, можливо, буде потрібно рефакторинг залежностей від самого інтерфейсу, але тут, принаймні, не буде порушення принципу «program to interfaces, no implementations».

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

    /* Listing 6 */ interface IProperty ( int Amount ( get; set; ) ) public class ClassWithProperty: IProperty ( // implicit implementation, public public int Amount ( get; set; ) public ClassWithProperty() public setter Amount = 1000; ) ) public class ClassWithExplicitProperty: IProperty ( // explicit implementation, private int IProperty.Amount ( get; set; ) 1000;)))

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

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

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

    лекція 23-24

    Тема 3.2 Розробка інтерфейсів користувача

    1. Типи інтерфейсів і етапи їх розробки.

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

    3. Користувальницька та програмна моделі інтерфейсу.

    4. Класифікації діалогів та загальні принципи їх розробки.

    5. Основні компоненти графічних інтерфейсів.

    6. Реалізація діалогів у графічному інтерфейсі користувача.

    7. Інтерфейси користувача прямого маніпулювання та їх проектування.

    8. Інтелектуальні елементи інтерфейсів користувача.

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

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

    1. Типи інтерфейсів користувача та етапи їх розробки

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

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

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

    Повідомлення– порція інформації, що у діалоговому обміні.

    Види повідомлень:

    Вхідні повідомлення, які генеруються людиною за допомогою засобів введення: клавіатури, маніпуляторів (миша, тощо);

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

    Користувач генерує повідомлення типу:

    Запит інформації,

    Запит допомоги

    Запит операції або функції,

    Введення або зміна інформації,

    Вибір поля кадру.

    Отримує у відповідь:

    Підказки чи довідки,

    Словоформа– відрізок тексту між двома сусідніми пробілами або розділовими знаками.

    Морфологічний аналізобробка словоформ поза зв'язком із контекстом.

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

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

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

    Недолікифразової форми:

    великі витрати ресурсів;

    відсутність гарантії однозначної інтерпретації формулювань;

    Необхідність введення довгих граматично правильних фраз.

    Гідністьфразової форми – вільне спілкування із системою.

    Директивна форма - Використання команд (директив) спеціально розробленої формальної мови.

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

    Команду можна вводити:

    У вигляді рядка тексту спеціально розробленого формату (команди MS DOS в командному рядку);

    натисканням деякої комбінації клавіш (комбінації «швидкого доступу» Windows-додатків);

    З допомогою маніпулювання мишею («перетягуванням» піктограм);

    Комбінацією другого та третього способів.

    Перевагидирективної форми:

    Невеликий обсяг інформації, що вводиться;

    Гнучкість – можливості вибору операції, що обмежується набором допустимих команд;

    Орієнтація на діалог, керований користувачем;

    Використання мінімальної області екрана або використання її взагалі;

    Можливість поєднання з іншими формами.

    Недолікидирективної форми:

    Практична відсутність підказок на екрані, що вимагає запам'ятовування команд та їх синтаксису;

    Майже повна відсутність зворотного зв'язку стан ініційованих процесів;

    Необхідність навичок введення текстової інформації чи маніпуляцій мишею;

    Відсутність можливості налаштування користувачем.

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

    Таблична форма – користувач вибирає відповідь із запропонованих програмою. Мова діалогу має найпростіший синтаксис та однозначну семантику, що досить легко реалізувати. Форма зручна для користувача, тому що вибрати завжди простіше, що суттєво для користувача-непрофесіонала. Цю форму можна використовувати, якщо безліч можливих відповідей на конкретне питання, звичайно. Якщо кількість можливих відповідей велика (більше 20), то застосування табличної форми може бути недоцільним.

    Перевага табличної форми:

    Наявність підказки;

    Скорочення кількості помилок уведення: користувач не вводить інформацію, а вказує на неї;

    Скорочення часу навчання користувача;

    Можливість поєднання з іншими формами;

    У деяких випадках можливість налаштування користувачем.

    Недолікитабличної форми:

    Необхідність наявності навиків навігації по екрану;

    Використання порівняно великої площі екрана зображення візуальних компонентів;

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

    Типи та форми діалогу вибирають незалежно один від одного: будь-яка форма застосовна для обох типів діалогів.

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

    Асинхронні– діалоги, які виникають з ініціативи системи чи користувача у разі порушення сценарію нормального процесу. Їх використовують для видачі екстрених повідомлень від системи чи користувача.

    Розробка діалогів.Стадії проектування та реалізації діалогів:

    Визначення безлічі необхідних діалогів, їх основних повідомлень та можливих сценаріїв – проектування абстрактних діалогів;

    Визначення типу та форми кожного діалогу, а також синтаксису та семантики використовуваних мов – проектування конкретних діалогів;

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

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

    Крім сценаріїв використовують діаграми станів інтерфейсуабо графи діалогу.

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

    Кожен маршрут на графі відповідає можливим варіантом діалогу.


    Малюнок 3 – Графи абстрактного діалогу:

    а – діалог, керований системою; б – діалог, керований користувачем

    5. Основні компоненти графічних інтерфейсів

    Графічні інтерфейси користувача підтримуються операційними системами Windows, Apple Macintosh, OS/2 і т. д. Для таких інтерфейсів розроблені набори стандартних компонентів взаємодії з користувачем для кожної операційної системи.

    Інтерфейси будуються за технологією WIMP: W – Windows (вікна), I – Icons (піктограми), M – Mouse (миша), P – Pop-up (спливаючі або випадаючі меню). Основні елементи графічних інтерфейсів: вікна, піктограми, комоненти введення-виводу та миша, яку використовують як вказівний пристрій та пристрій прямого маніпулювання об'єктами на екрані.

    Вікна.Вікно –прямокутна, обмежена рамкою область фізичного екрану. Вікно може змінювати розміри та розташування в межах екрана.

    Основні вікна (вікна додатків);

    Дочірні чи підлеглі вікна;

    Вікна діалогу;

    Інформаційні вікна;

    Вікна меню.

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

    Дочірнє вікно Windows використовують у багатодокументних програмних інтерфейсах (MDI). Це вікно не містить меню. У рядку заголовка – спеціальне ім'я, що ідентифікує пов'язаний із ним документ чи файл. Піктограми всіх дочірніх вікон однакові.

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

    Рядок заголовка з кнопкою системного меню;

    Компоненти, які забезпечують користувачеві можливість вводу чи вибору відповіді;

    Допоміжні компоненти, що забезпечують підказку (поле перегляду або кнопку довідки).

    Розмір вікна не змінюємо, але на екрані його можна переміщати.

    Інформаційні вікнадвох типів:

    Вікна повідомлень;

    Вікна допомоги.

    Вікна повідомлень містять заголовок з кнопкою системного меню, текст повідомлення, одна або кілька кнопок реакції користувача (Yes, No, Cancel).

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

    Вікна меню Windows використовують як панелі ієрархічного меню або як контекстні меню.

    Кожному рядку вікна меню може відповідати:

    Команда;

    Меню наступного рівня, що забезпечується стрілкою;

    Вікно діалогу, що позначається трьома точками.

    Додається клавіша швидкого виклику.

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

    Види піктограм:

    Програмні, пов'язані із відповідною програмою;

    піктограми дочірніх вікон, що забезпечують доступ до різних документів;

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

    Піктограми об'єктів для прямого маніпулювання об'єктами.

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

    За реакцією на дію розрізняють типи адресатів:

    Вказівка ​​та вибір (розгортання піктограм, визначення активного вікна);

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

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

    Компоненти введення-виведення. Інтерфейси включають кілька меню: основне або «спадне» ієрархічне меню, піктографічні меню (панелі інструментів) та контекстні меню для різних ситуацій. Будь-яке із зазначених меню є компонентом вводу-виводу, що реалізує діалог з користувачем, використовуючи табличну форму.

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

    Інші форми введення-виведення:

    Фразова,

    Таблична,

    Змішана.

    6. Реалізація діалогів у графічному інтерфейсі користувача

    Діалоги обох типів:

    Керовані користувачем,

    Керовані системою.

    Реалізація діалогів, керованих користувачем.Для реалізації застосовують меню різних видів:

    Основне,

    Панелі інструментів,

    Контекстні та кнопкові.

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

    Меню.Меню проектують на основі графів діалогів програмного забезпечення, що розробляється. Якщо число операцій не перевищує 5, зазвичай використовують кнопки. Якщо кількість операцій трохи більше 9-10, то – однорівневе меню. Якщо кількість операцій більше 10, то використовують «знижуюче» дворівневе ієрархічне меню.

    Спадне меню. Перший рівень ієрархічного меню має містити імена основних груп операцій.

    Традиційно (зазвичай у текстових та графічних редакторах):

    1. пункт Файл,

    2. пункт Правка,

    3. пункт Вид,

    останній пункт Довідка.

    Кількість рівнів ієрархічного меню має перевищувати 2-3 (складно шукати). Число операцій у вікні не повинно перевищувати 7-8 операцій.

    Якщо кількість операцій перевищує 70-80. Розробники Microsoft Word запропонували адаптивнеієрархічного меню, де вміст вікна меню другого рівня постійно змінюється, відображаючи лише операції, які використовує користувач. Якщо користувач не знаходить потрібної операції, через кілька секунд або при натисканні спеціальної кнопки Word демонструє вікно меню повністю.

    7 Інтерфейси прямого маніпулювання та їх проектування

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

    Інтерфейси використовують директивну форму діалогу: введення команди здійснюється під час виконання певних дій із піктограмою об'єкта мишею. Основними елементами цих інтерфейсів є: метафори, об'єкти, уявлення об'єктів та технології Drag and Drop («перетягнув і покинув»).

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

    Інтерфейс прямого маніпулювання повинен забезпечити користувачеві середовище, що містить знайомі елементи, з якими користувач не раз зустрічався у професійній діяльності або в побуті, та надавати можливість маніпулювання окремими об'єктами. (Метафора "Викидання сміття" - видалення файлів).

    Подібні елементи повинні поводитися схожим чином, елементи, виділені одним кольором, повинні перебувати у певному зв'язку один з одним.

    Доцільно не робити зображення надто реалістичними, щоб не обдурити очікування користувача.

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

    https://pandia.ru/text/78/247/images/image005_68.gif">Програма, що реалізує анімаційні інтерфейси, ніколи не простоює, тому що під час очікування введення команди користувача вона продовжує відображати відповідні кадри. В основі таких програм лежить тимчасове програмування. На відміну від подійного програмування, яке дозволяє пов'язувати зображення на екрані із зовнішніми та внутрішніми подіями в системі, тимчасове програмування забезпечує зміну проектованої послідовності кадрівзалежно від стану процесів, що моделюються, і дій користувача.

    Об'єкти інтерфейсу прямого маніпулювання та їх подання.

    Три основні типи об'єктів інтерфейсів прямого маніпулювання:

    Об'єкти-дані,

    Об'єкти контейнери,

    Об'єкти пристрою.

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

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

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

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

    Ім'я піктограми формують для кожного типу об'єктів. p align="justify"> Піктограмам об'єктів-даних надають імена, відповідні іменам збережених даних, а тип даних кодується самою піктограмою. Ім'я піктограми-контейнера або піктограми пристрою позначає сам об'єкт, тому не залежить від вмісту.

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

    ТехнологіяDragandDrop. Основні принципи прямого маніпулювання, описані в посібнику з розробки інтерфейсів користувача IBM:

    Результат переміщення об'єкта має відповідати очікуванням користувача;

    Користувачі не повинні зненацька втрачати інформацію;

    Користувач повинен мати можливість скасувати неправильну дію.

    Вихідне виділення – використовується як зворотний зв'язок користувачеві, щоб повідомити йому, що об'єкт захоплений, Windows з цією метою використовується виділення кольором;

    Візуалізація переміщення – використовується для ідентифікації дії, що виконується;

    Цільове виділення – використовується для ідентифікації пункту призначення, показуючи, таким чином, куди «впаде» об'єкт, якщо його відпустити зараз;

    Візуалізація дії – використовується для позначення часу очікування завершення операції, зазвичай із цією метою застосовують анімацію або зміну форми курсору на «пісочний годинник».

    Існує два види пунктів призначення: один приймає об'єкт, а інший його копію (Користувач «кидає» документ у «кошик» – знищується сам документ, а якщо принтер, то передається копія документа).

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

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

    Аналіз об'єктів, визначення їх типіві уявлень, а також переліку операцій із цими об'єктами;

    Уточнення взаємодії об'єктівта побудова матриці прямого маніпулювання;

    Визначення візуальних уявленьоб'єктів;

    Розробка меню вікон об'єктіві контекстних меню;

    створіння прототипуінтерфейсу;

    Тестування на зручність використання.

    8 Інтелектуальні елементи інтерфейсів користувача

    Елементи інтерфейсів користувача: Майстер, Порадник, Агент. Зроблено безліч спроб створення соціалізованого інтерфейсу користувача. В основі такого інтерфейсу лежить ідея створення персоніфікованого, тобто «має особистість», інтерфейсу. Розважальні програми, такі як Cats (кішки) і Dogs (собаки), що реалізують складну поведінку домашніх тварин у різних ситуаціях, показують, що технічно це завдання.

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

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

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

    При цьому необхідно:

    Надати користувачеві можливість повернення на попередній крок;

    Передбачити можливість скасування роботи Майстра;

    Нумерувати кроки і повідомляти користувачеві кількість кроків Майстра, особливо якщо таких кроків більше трьох;

    Пояснити користувачеві кожен крок;

    По можливості, демонструвати результат вже виконаних операцій на кожному кроці.

    Програмні агенти. Використовуються для виконання рутинної роботи. Основними функціями Агентів-Помічників є: спостереження, пошук управління. Розрізняють:

    програми-агенти, які налаштовуються виконання зазначених завдань;

    програми-агенти, здатні навчатися (фіксуючи дії користувача (на кшталт магнітофона)).

    Як будь-який технічний пристрій, комп'ютер обмінюється інформацією з людиною за допомогою набору певних правил, обов'язкових як для машини, так і для людини. Ці правила у комп'ютерній літературі називаються інтерфейсом. Інтерфейс має бути зрозумілим і незрозумілим, дружнім і ні. До нього підходять багато прикметників. Але в одному він постійний: він є, і нікуди від нього не дінешся.

    Інтерфейс- це правила взаємодії операційної системи з користувачами, а також сусідніх рівнів у мережі ЕОМ. Від інтерфейсу залежить технологія спілкування людини із комп'ютером.

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

    Пакетні технології.Історично цей вид технології з'явився першим. Вона існувала вже на релейних машинах Зюса і Цюзе (Німеччина, 1937 рік). Ідея її проста: на вхід комп'ютера подається послідовність символів, у яких за певними правилами вказується послідовність запущених виконання програм. Після виконання чергової програми запускається таке інше і т.д. Машина за певними правилами знаходить для себе команди та дані. Як цю послідовність може виступати, наприклад, перфострічка, стопка перфокарт, послідовність натискання клавіш електричної друкарської машинки (типу CONSUL). Машина також видає свої повідомлення на перфоратор, алфавітно-цифровий принтер (АЦПУ), стрічку пишучої машинки.

    Така машина є "чорною скринькою" (точніше "біла шафа"), до якої постійно подається інформація і яка також постійно "інформує" світ про свій стан. Людина тут має малий вплив працювати машини - може лише призупинити роботу машини, змінити програму і знову запустити ЕОМ. Згодом, коли машини стали потужнішими і могли обслуговувати відразу кількох користувачів, вічне очікування користувачів типу: "Я послав дані машини. Чекаю, що вона відповість. І чи відповість взагалі?" - стало, м'яко кажучи, треба дати. До того ж обчислювальні центри, слідом за газетами, стали другим великим "виробником" макулатури. З цієї причини з появою алфавітно-цифрових дисплеїв почалася ера по-справжньому користувальницької технології - командного рядка.

    Командний інтерфейс.

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

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

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

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

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

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

    WIMP - інтерфейс(Window – вікно, Image – образ, Menu – меню, Pointer – покажчик). Характерною особливістю цього виду інтерфейсу є те, що діалог з користувачем ведеться не за допомогою команд, а за допомогою графічних образів - меню, вікон, інших елементів. Хоча і в даному інтерфейсі подаються команди машин, але це робиться "посередньо", через графічні образи. Ідея графічного інтерфейсу зародилася в середині 70-х років, коли в дослідному центрі Xerox Palo Alto Research Center (PARC) було розроблено концепцію візуального інтерфейсу. Причиною графічного інтерфейсу стало зменшення часу реакції комп'ютера на команду, збільшення обсягу оперативної пам'яті, і навіть розвиток технічної бази комп'ютерів. Апаратною основою концепції, звичайно ж, стала поява алфавітно-цифрових дисплеїв на комп'ютерах, причому на цих дисплеях вже були такі ефекти, як "мерехтіння" символів, інверсія кольору (зміна накреслення білих символів на чорному зворотному фоні, тобто чорних символів на білому тлі ), підкреслення символів. Ці ефекти поширилися не на весь екран, а лише на один або більше символів. Наступним кроком стало створення кольорового дисплея, що дозволяє виводити, разом з цими ефектами, символи в 16 кольорах на фоні з палітрою (тобто колірним набором) з 8 кольорів. Після появи графічних дисплеїв, з можливістю виведення будь-яких графічних зображень у вигляді безлічі точок на екрані різного кольору, фантазії у використанні екрану взагалі не стало меж! Перша система з графічним інтерфейсом 8010 Star Information System групи PARC, таким чином, з'явилася за чотири місяці до появи першого комп'ютера фірми IBM в 1981 році. Спочатку візуальний інтерфейс використовувався лише у програмах. Поступово він почав переходити і на операційні системи, що використовуються спочатку на комп'ютерах Atari та Apple Macintosh, а потім і на IBM - сумісних комп'ютерах.

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

    Графічний інтерфейс користувача за час свого розвитку пройшов дві стадії та реалізований на двох рівнях технологій: простий графічний інтерфейс та "чистий" WIMP - інтерфейс.

    На першому етапі графічний інтерфейс дуже схожий на технологію командного рядка. Відмінності від технології командного рядка полягали в наступному:

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

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

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

    Крім клавіші Enter, на клавіатурі все частіше стали використовуватися "сірі" клавіші керування курсором (див. розділ, присвячений клавіатурі у випуску 3 даної серії.)

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

    Підбиваючи підсумки, можна навести такі відмінні риси цього інтерфейсу:

    Ú Виділення областей екрана.

    Ú Перевизначення клавіш клавіатури, виходячи з контексту.

    Ú Використання маніпуляторів та сірих клавіш клавіатури для керування курсором.

    Ú Широке використання кольорових моніторів.

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

    Типовим прикладом використання цього виду інтерфейсу є файлова оболонка Nortron Commander та текстовий редактор Multi-Edit. А текстові редактори Лексикон, ChiWriter і текстовий процесор Microsoft Word for Dos є прикладом того, як цей інтерфейс перевершив сам себе.

    Другим етапом у розвитку графічного інтерфейсу став "чистий" інтерфейс WIMP. Цей підвид інтерфейсу характеризується такими особливостями:

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

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

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

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

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

    Яскравим прикладом програм із графічним інтерфейсом є операційна система Microsoft Windows.

    SILK- інтерфейс (Speech – мова, Image – образ, Language – мова, Knowlege – знання). Цей вид інтерфейсу найбільш наближений до звичайної людської форми спілкування. У рамках цього інтерфейсу йде звичайна "розмова" людини та комп'ютера. У цьому комп'ютер знаходить собі команди, аналізуючи людську мову і знаходячи у ній ключові фрази. Результат виконання команд він також перетворює на зрозумілу людині форму. Цей вид інтерфейсу найбільш вимогливий до апаратних ресурсів комп'ютера, і у зв'язку з цим його застосовують в основному для військових цілей.

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

    Слова мають вимовлятися чітко, в одному темпі. Між словами, обов'язкова пауза. Через нерозвиненість алгоритму розпізнавання мови такі системи потребують індивідуального попереднього налаштування на кожного конкретного користувача.

    "Мовленнєва" технологія є найпростішою реалізацією SILK - інтерфейсу.

    Біометрична технологія ("Мімічний інтерфейс".)

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

    mob_info