Виды интерфейсов пользователя. Развитие информационных технологий

Взаимодействие оператора с вычислительной машиной является важным звеном вычислительного процесса при решении различных прикладных задач как научного, так и производственного плана. Создание программ в области организации рыночных отношений при создании информационных сайтов различных организаций и предприятий, при создании программ управления производственными процессами, учета выпускаемой продукции и ее реализации, управления качеством и даже при такой задаче, как сортировка электронной почты секретарем, требуется разработка удобного для пользователя взаимодействия с ЭВМ.

Проектирование – итерационный процесс, при помощи которого требования к ПС транслируются в инженерные представления ПС. Обычно в проектировании выделяют две ступени: предварительное проектирование и детальное проектирование. Предварительное проектирование формирует абстракции архитектурного уровня, детальное проектирование уточняет эти абстракции. Кроме того, во многих случаях выделяют интерфейсное проектирование, цель которого – сформировать графический интерфейс пользователя (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 у меня не был установлен, я просто написал короткую программку на С# чтобы узнать, что за интерфейсы реализуются целочисленным массивом.

    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.WriteLine("Am I an Athlete, Skier or 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 the compiler error void IFingers.MiddleFinger() {} }

    В случае приватной реализации интерфейсов все классы с явной реализацией несуществующего более метода просто перестанут компилироваться, однако после удаления ставшей ненужной реализации (или ее рефакторинга в новый метод) у нас не будет «лишнего» публичного метода, не привязанного к какому-либо интерфейсу. Конечно, возможно потребуется рефакторинг зависимостей от самого интерфейса, но здесь, по крайней мере, не будет нарушения принципа «program to interfaces, not 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() { // internal invocation of the public setter Amount = 1000; } } public class ClassWithExplicitProperty: IProperty { // explicit implementation, private int IProperty.Amount { get; set; } public ClassWithExplicitProperty() { // internal invocation isn"t possible // compiler error here Amount = 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">Программа, реализующая анимационные интерфейсы, никогда не простаивает, так как во время ожидания ввода команды пользователя она продолжает отображать соответствующие кадры. В основе таких программ лежит временное программирование . В отличие от событийного программирования, которое позволяет связывать изображение на экране с внешними и внутренними событиями в системе, временное программирование обеспечивает изменение проецируемой последовательности кадров в зависимости от состояния моделируемых процессов и действий пользователя.

    Объекты интерфейса прямого манипулирования и их представления.

    Три основные типа объектов интерфейсов прямого манипулирования:

    Объекты-данные,

    Объекты контейнеры,

    Объекты устройства.

    Объекты-данные снабжают пользователя информацией (тексты, изображения, электронные таблицы, музыка, видео). В рамках операционной системы таким объектам соответствуют приложения, которые запускаются при раскрытии объекта.

    Объекты-контейнеры могут манипулировать своими внутренними объектами, в том числе и другими контейнерами (копировать их или сортировать в любом порядке). К типичным контейнерам относятся папки, корзины. При раскрытии контейнера демонстрируются сохраняемые им компоненты, и появляется возможность ими манипулировать. Компоненты могут обозначаться пиктограммами или представляться в виде таблицы.

    Объекты-устройства представляют устройства, существующие в реальном мире: телефоны, факсы, принтеры и т. д.их используют для обозначения этих устройств в абстрактном мире интерфейса. При раскрытии такого объекта можно увидеть его настройки.

    Каждому объекту соответствует одно окно. В исходном состоянии это окно представлено пиктограммой, но при необходимости его можно раскрыть и выполнить требуемые операции, например настройки объекта. Окно объекта в раскрытом состоянии может содержать меню и панели инструментов. Пиктограмме же должно соответствовать контекстное меню, содержащее перечень операций над объектом.

    Имя пиктограммы формируют по своему для каждого типа объектов. Пиктограммам объектов-данных присваивают имена, соответствующие именам хранимых данных, а тип данных кодируется самой пиктограммой. Имя пиктограммы-контейнера или пиктограммы устройства обозначает сам объект, а потому не зависит от содержимого.

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

    Технология Drag and Drop . Основные принципы прямого манипулирования, описанные в руководстве по разработке пользовательских интерфейсов фирмы 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