Интерфейс

Основы пользовательского интерфейса

Задачи пользователя компьютерной программы заключаются в манипуляции с объектом и его свойствами – данными. В отличие от операторов, пользователи выполняют профессиональную задачу с иной психологической структурой действий, другими целями, объектом труда и операциями, ресурсами, иной социальной средой взаимодействия. Разнообразие ситуаций, в которых могут работать интерактивные программные системы, затрудняет для разработчика выбор целей, которым необходимо следовать для создания удачного интерфейса. Различные исследователи и организации-разработчики программного обеспечения приводят разные рекомендации, но основные из них следующие:

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

Дружественность( юзабилити) Интерфейс дружественный, если пользователь, работая с ним, не испытывает дискомфорта. У пользователя должно складываться впечатление, что он управляет процессом. Кроме того, графический интерфейс должен быть построен в соответствии с эргономическими требованиями: цвета экрана и элементов, их размер, композиция. Важен темп выполнения операций, который должен соответствовать естественному темпу человека, среднее время отклика и его дисперсия. Сообщения должны быть корректными по форме, точными и информативными, совершенно недопустимы безграмотные тексты. Пользователь должен всегда знать, на какой стадии процесса он находится.

Естественность интерфейса Естественный интерфейс — такой, который не вынуждает пользователя суще¬ственно изменять привычные для него способы решения задачи. Это, в частности, означает, что сообщения и результаты, выдаваемые приложением, не должны требовать дополнительных пояснений.

Функциональность Хотя вычислительная система и бывает в некоторых организациях в роли большой игрушки, но чаще её пытаются использовать для дела, особенно в том случае, когда выполнение работы иными средствами менее эффективно. Функциональность системы обозначает наличие значительной эффективности в выполнении операций, что делает её использование рентабельным. Интерфейс должен отражать ее функциональность и давать возможность успешной работы пользователям различной квалификации.

Умеренная цена Речь идет о производственных системах. Понятно, что система, имеющая слишком дорогостоящий интерфейс, но недостаточную функциональность, будет, возможно, куплена, но пользователь останется ею недоволен: срок окупаемости системы во многом зависит от функциональности. С другой стороны, экономия на интерфейсе – очень недальновидная политика. Некачественный интерфейс создаёт у пользователей плохое мнение о системе и может вообще привести к отказу от её использования.

Стадии проектирования

Стадии проектирования, как и вообще весь процесс создания интерфейса, очень похожи на стадии в процессе разработки информационной системы в целом.
1. Анализ деятельности пользователей. Это предпроектная стадия, на которой определяются задачи, процедуры, уточняется характер производства, контингент пользователей и т.п.
2. Формализация результатов анализа в виде схем и диаграмм бизнес-процессов и сценариев выполнения каждой задачи.
3. Проектирование интерфейса для обеспечения каждого сценария и процесса. Синтез решения в виде прототипа интерфейса.
4. Тестирование с пользователями прототипа или готового интерфейса.
Синтез решения (рисование экранных форм) часто занимает гораздо меньшее время, нежели этап анализа. Прототип интерфейса – это результат синтеза полученных знаний о требованиях, ограничениях, среде, задачах и пользователях.
Можно встретить и другой, но похожий, подход, где процесс проектирования разбивается на 6 этапов. На каждом из них используются свои методы, а результаты их становятся отправной точкой для других методов. Этапы следующие:

  • планирование и оценка;
  • составление требований к проекту;
  • дизайн и проектирование;
  • реализация и программирование;
  • тестирование и оценка;
  • выпуск.

Виды интерфейсов

Благодаря этому экскурсу в историю мы только что открыли, что бывают разные виды интерфейса. Этот, посредством перфокарт, называется командным интерфейсом. Получив команды в виде перфокарт, компьютер выдавал результат. Это так называемая пакетная технология. Человек формировал пакеты задач в виде перфокарт, они в свою очередь обрабатывались пакетом программ. Результат распечатывался на бумаге. Метод был неидеальным, так как слишком велик был риск человеческого фактора.
Технологии шагнули вперед, и на компьютерах начали устанавливать операционные системы с функцией командной строки. Перфокарты более не использовались. Для ввода команд применялась клавиатура. Результат отображался на экране монитора. Это технология командной строки. Она применяется и до сих пор. Обычному пользователю ноутбука ни к чему знать, где находится командная строка, а вот профессионалы ей пользуются как основным инструментом работы. Если вы хотите себя почувствовать себя хакером, найдите через Пуск – Стандартные командную строку, и, удерживая клавишу Alt, наберите код 128. В командной строке отобразится символ «А». Если набрать код 160, мы получим «а».

Интерфейс Windows 8

Прогресс не стоит на месте, и со временем выработался привычный для нас вид интерфейса – графический интерфейс. Именно к нему можно применить понятие дружественного или интуитивно понятного интерфейса. За его появление стоило б поблагодарить Стива Джобса, но, к сожалению, с благодарственным письмом ему мы немного опоздали. Он первый сообразил, как можно облегчить управление компьютером, используя мышь. Его конкуренты не придумали ничего нового, лишь много позже скопировали этот способ взаимодействия машины и человека. Мы управляем компьютером, кликая мышкой по иконам программ. Даже человек без навыка работы на компьютере довольно быстро сообразит, как набрать текст или запустить пасьянс «Косынка», ориентируясь только на картинки. Называется такой тип управления компьютером «WIMP» интерфейсом. W – window (окно), I – image (картинка, изображение), M – menu (меню), P – pointer (указатель). То есть можем открывать окошки на мониторе, выбирать необходимые нам пиктограммы или картинки, работать в программах посредством меню, используя курсор мыши или тачпада, или навигационные клавиши клавиатуры.

Чем более простой и понятный интерфейс имеет игра или программа, тем больше вероятности, что она приживется на нашем компьютере. Именно поэтому сейчас так востребована профессия разработчика. От него зависит, канет ли программа в Лету или обоснуется на ноутбуке. Но мало разработать удобный интерфейс. Его необходимо постоянно оптимизировать и выпускать обновления.
Все знают, кто такой маркшейдер, благодаря фразе : «Окей, Гугл, кто такой маркшейдер?» Вот так ненавязчиво мы подошли к третьему виду интерфейса – SILK интерфейсу. S – speech (речь), I – image (картинка, образ), L – language (язык), K – knowledge (знание). При таком типе интерфейса управлять программой или компьютером можно, используя свое поведение. Например, Гугл на наших телефонах управляется речью. Это речевая технология. Во многих играм своим персонажем можно управлять, двигаясь самому. Компьютер получает команды через движения человека, считываемые видеокамерой. Это биометрическая технология.

Речевой интерфейс

Речевой интерфейс, SILK-интерфейс (Speech Image Language Knowledge) на данный момент существует только как «голосовой» (не считая биометрические интерфейсы, которые применяются не для управления ПК, а только для идентификации пользователя). Использование речевого интерфейса является очень перспективным направлением, т.к. введение информации с помощью голоса – самый быстрый и удобный способ. Т.к. качество распознавания устной речи пока не идеально, практическая реализация речевого интерфейса еще не стали доминирующими.

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

Рисунок 3.

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

  • указывает пользователю ошибки в работе и находит пути их решения;
  • сообщает о ситуациях, которые нуждаются в исправлении;
  • осуществляет поиск справок из информационно-поисковых систем.

Замечание 2

Современные операционные системы поддерживают командный, графический и речевой интерфейсы.

В последнее время внимание привлекают новые виды интерфейса, такие как биометрический (мимический) и семантический (общественный). В связи с этим поставлена проблема создания общественного интерфейса, который будет включать в себя лучшие решения графического и речевого интерфейсов

Friends of Figma Moscow

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

Всем привет! Меня зовут Игорь, я ведущий Продуктовый дизайнер в ВТБ.

Что это за сообщество такое, для чего оно, и кому будет полезно! Начну с самого начала, отправил заявку на официальном сайте Figma, предоставил все материалы которые были необходимы для рассмотрения моей заявки вступить в сообщество и быть организатором(представителем) Figma сообщества в России. Буквально 2-3 недели и мою заявку рассмотрели, прислав письмо с поздравлениями.

TCP BBR: быстрый и простой способ ускорения загрузки страниц. Доклад Яндекса

Современные протоколы прикладного уровня используют для ускорения передачи данных мультиплексирование, которое повышает требования к надёжности канала. На конференции YaTalks Александр Грянко phasma рассказал, как мы ускоряем загрузку страниц на каналах с большими потерями пакетов на примере протоколов HTTP/2 и TCP BBR.— Привет. Я Саша, работаю в Яндексе, в последние три года занимаюсь разработкой L7-балансировщика нагрузки. Расскажу о быстром и простом способе ускорения сети. Мы начнем с седьмого уровня, HTTP, и опустимся к четвертому уровню, TCP. Сегодня мы поговорим только об этих двух уровнях и остановимся на них довольно подробно.
В последние восемь лет я занимаюсь больше бэкенд-разработкой, и, скорее всего, мои знания остались на уровне AngularJS первых версий. Вы, скорее всего, лучше меня знаете, как это все работает. Вы всё уже оптимизировали, всё сжали, и здесь я вам ничего посоветовать не смогу.
Но я могу вам посоветовать, как ускорить вашу сеть с помощью оптимизации самого сервера, самой операционной системы.

Безопасность

Одним из основных направлений исследований в области обеспечения безопасности пользовательских интерфейсов, и, в частности, визуальных интерфейсов пользователя, является разработка моделей информационной безопасности при условии комплексного учета информационных, функциональных, психофизиологических и экологических аспектов безопасности. Это связано, прежде всего, с включением информационного фактора в состав факторов среды систем человек-компьютер и информационным характером почти всех происходящих в области распространения ИП процессов.
Наименее разработанным областям проблематики защиты информации в системе человек-компьютер (СЧК) соответствуют такие угрозы, как:

  • искажение воспринимаемой пользователем информации за счет её зашумления источниками среды на рабочем месте пользователя;
  • потеря или искажение воспринимаемой пользователем информации из-за физической, семантической или синтаксической несогласованности её представления пользователю;
  • искажение представлений пользователя о реальном состоянии объекта управления за счет скрытых информационных воздействий и неадекватное принятие им решений в процессе решения задач в рамках СЧК.

Ретроспектива разработки интерфейса листа персонажа

Из песочницы

Близится 2021 год, а значит, минуло почти 4 года с момента, когда я присоединился к разработке Pathfinder:Kingmaker в качестве разработчика интерфейсов. За это время игра превратилась из маленького прототипа с минимальным функционалом в огромную, сложную систему. Игра пережила релиз, год активного багофикса и поддержки DLC, а также портирование на консоль. И теперь, когда разработку этого проекта можно считать завершенной, пришло время оглянуться и попробовать собрать ретроспективу того, как проектировались и создавались интерфейсы.

Я решил начать с основного, на мой взгляд, интерфейса игры, с листа персонажа.

Интерфейсы для плагинов

Самый простой пример — plug-in. Помню, до появления интерфейсов в Delphi приходилось извращаться и одно из таких извращений я показывал в первой книге Delphi глазами хакера. Тогда Delphi не поддерживал интерфейсов, когда я писал тот пример.  

Что такое plug-in? Это какой-то объект, который выполняет отделенные действия. Основной программе (основному коду) плевать, как выполняется действие и возможно, что даже по барабану, что там происходит, наша задача всего лишь предоставить возможность плагину зарегистрироваться у нас, и нам нужно знать, как можно запустить плагин на выполнение. 

Итак, нам нужно описать протокол, как буду общаться между собой код и расширение плагин. Для этого описываем интерфейс: 

interface IInterface 

{ 

 void getTest(); 

} 

Сразу же хочу извинится за возможные отпечатки и ошибки в коде. Я пишу эту заметку на iPad в OneNote, у которого нет компиляторе и проверки на ошибки в C# коде.  

Это всего лишь интерфейс с одним методом и он абсолютно ничего не делает и у него нет никакой реализации метода getTest. Вот тут у многих возникает вопрос — и на фиг это нужно? Не лучше ли объявить абстрактный класс и наследовать его? А не торопитесь, все самое интересное впереди.  

Теперь мы можем объявить класс, который будет описывать дом и этот дом может реализовывать наш протокол: 

class Home : Interface  

{ 

 public void GetTest() 

 { 

  // вот тут находится реализация интерфейсы 

 } 

} 

Точно так же, как классы наследуют другие классы, они могут наследовать и интерфейсы. В этом случае дом наследует интерфейс. Для того, чтобы такой класс корректным, у него должны бать все методы, которые объявлены в протоколе, причем они должны быть открытыми, иначе от них толку ноль.  

Теперь мы можем создать интерфейс класса Home: 

IInterface test = new Home(); 

Так как дом реализует наш протокол, то такая операция абсолютно легальна.  

Пока никакой выгоды особо не видно, но теперь мы подошли к тому моменту, когда когда уже можно увидеть выгоду. Дело в том, что в C# двойное расследование запрещено. А что, если наш plugin должен наследоваться от какого-то класса? Если вы хотите реализовать расширения в виде абстрактного базового класса, то люди, которые будут писать расширения не смогут объявить класс, который будет наследовать ваш класс и класс, который им нужен. Нужно будет использовать извращения, которые не стоят выделки.  

Так что нам не нужен абстрактный класс, нам нужен именно интерфейс. В этом случае программист сможет написать любой свой класс, реализовать наш интерфейс и все будет работать.  

Посмотрим на полноценный код возможного примера:  

using System; // классика 

using System.Collections.Generic; // нам понадобится List 

// возможно я здесь забыл что-то еще подключить и код не скомпилируется 

// ну ничего, тем, кто любит искать ошибки, будет чем заняться  

namespace OurApplication 

{ 

    // объявляем интерфейс 

    interface IInterface 

    { 

        void getTest(); 

    } 

    // объявляем дом 

    class Home : IInterface 

    { 

        public void getTest() 

        { 

        } 

    } 

    // еще один класс утка, который реализует интерфейс 

    class Duck : IInterface 

    { 

        public void getTest() 

        { 

        } 

    } 

    // это началась наша программа 

    class Program 

    { 

        static void Main(string[] args) 

        { 

           // создаем список расширений 

            Listtests = new List(); 

            // добавляем в него объекты 

            tests.Add(new Home()); 

            tests.Add(new Duck()); 

           // запускаем каждый объект на выполнение 

            foreach (IInterface test in tests) 

                test.getTest(); 

        } 

    } 

} 

В этом примере мы создали два совершенно разных класса — дом и утку. Они могу происходить от любых других классов и могут быть совершенно разными, но они все же схожи в том, что они реализуют один и тот же протокол (интерфейс), а это все, что нам нужно.  

В своей программе мы можем создать список из интерфейсов:  

Listtests = new List(); 

Это список, который состоит из объектов любого класса, но все они реализуют интерфейс IInterface.  

После этого я создаю утку и дом, добавляю из в список и запускаю цикл, в котором выполняют метод getTest.   

Свойства пользовательского интерфейса

Интерфейс является совокупностью, т.е. он состоит из элементов, которые также могут состоять из элементов (например, экран дисплея содержит в себе окна, которые содержат панели, кнопки и прочие элементы.

Интерфейс характеризуется удобством, эффективностью, понятностью и часто к интерфейсу применяется понятие «дружественный».

Дружественный интерфейс предоставляет пользователю наиболее удобный способ взаимодействия с программным обеспечением путем обеспечения логичности и простоты в расположении элементов управления.

Принципы дружественного интерфейса:

  • обеспечивает право пользователя на ошибку, которое защищают информационно-вычислительные ресурсы системы от непрофессиональных действий на ПК;
  • предоставляет широкий набор иерархических меню, систему подсказок и обучения и т.п., которые облегчают процесс взаимодействия пользователя с ПК;
  • существование системы «отката», которая позволяет при выполнении действия, результаты которого не удовлетворили пользователя, вернуться к предыдущему состоянию системы.

Одной из важнейших функций интерфейса пользователя является формирование у пользователя одинаковой реакции на одинаковые действия приложений, их согласованность.

Функциональные возможности коллекцийCollection Functionality

Универсальный интерфейс ICollection<T> представляет собой базовый интерфейс для универсальных типов коллекций.The ICollection<T> generic interface is the basic interface for generic collection types. Он предоставляет базовые функции для добавления, удаления, копирования и перечисления элементов.It provides basic functionality for adding, removing, copying, and enumerating elements. ICollection<T> наследуется от универсального интерфейса IEnumerable<T> и неуниверсального интерфейса IEnumerable.ICollection<T> inherits from both generic IEnumerable<T> and nongeneric IEnumerable.

Универсальный интерфейс IList<T> расширяет универсальный интерфейс ICollection<T> с помощью методов для получения элементов по индексу.The IList<T> generic interface extends the ICollection<T> generic interface with methods for indexed retrieval.

Универсальный интерфейс IDictionary<TKey,TValue> расширяет универсальный интерфейс ICollection<T> с помощью методов для получения элементов по ключу.The IDictionary<TKey,TValue> generic interface extends the ICollection<T> generic interface with methods for keyed retrieval. Универсальные типы словарей в библиотеке базовых классов .NET также реализуют неуниверсальный интерфейс IDictionary.Generic dictionary types in the .NET base class library also implement the nongeneric IDictionary interface.

Универсальный интерфейс IEnumerable<T> предоставляет структуру универсального перечислителя.The IEnumerable<T> generic interface provides a generic enumerator structure. Универсальный интерфейс IEnumerator<T>, реализуемый универсальными перечислителями, наследуется от неуниверсального интерфейса IEnumerator. Члены MoveNext и Reset, которые не зависят от параметра типа , присутствуют только в неуниверсальном интерфейсе.The IEnumerator<T> generic interface implemented by generic enumerators inherits the nongeneric IEnumerator interface; the MoveNext and Reset members, which do not depend on the type parameter , appear only on the nongeneric interface. Это означает, что любой потребитель неуниверсального интерфейса также может использовать универсальный интерфейс.This means that any consumer of the nongeneric interface can also consume the generic interface.

Пользователи электронных устройств взаимодействуют с этими устройствами с помощью интерфейса

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

Логические интерфейсы представляют из себя различные сложные математические вычисления и системы, которые основываются и работают на базовых понятиях алгебры. Физические интерфейсы представляют из себя, взаимодействие всех отдельных частей вычислительного устройства, сюда входят процессоры, материнские платы, чипы памяти, видео карты, блоки питания, периферийные устройства и так далее.

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

Условно для компьютерных программ, интерфейс можно разделить на простой и сложный.

Так если взять к примеру текстовый редактор WordPad, то в основе его лежит интуитивно понятный «интерфейс», представляющий из себя набор меню, с помощью которых пользователь может выполнять основные функции по набору, редактированию, печати и других функций, связанных с обработкой текстовой информации. Такой редактор имеет простой «интерфейс», так как в программе используется один вид меню и функционал её не имеет расширенных возможностей.

Текстовый редактор Microsoft Word по сравнению с редактором WordPad имеет более сложный «интерфейс». Помимо более расширенного функционала, программа имеет отладчик-компилятор, на основе языка программирования Visual Basic. Возможности данной программы выходят далеко за рамки обычного редактора текста. Это позволяет в свою очередь создавать сайты для интернета и многое другое.

Такая же аналогия между сложным и простым интерфейсом проходит и в других программах, которые выполняют другие задачи. Опять приведём пример, для полного понимания их различий, вне зависимости от выполняемых задач. Программа Paint, которая входит в стандартную комплектацию операционных систем Windows. Она представляет собой графический редактор с простым интерфейсом (ИФ) и ограниченным набором функций по работе с цифровым изображением.

Графические редакторы Adobe Photoshop и Corel Draw имеют более сложный программный интерфейс по сравнению с редактором Paint и обладают более широким набором инструментов для обработки цифровых изображений.

Создание Tone of Voice

Всем привет, на связи Лиза, UX-писатель, и Стася, UX-аналитик Центра Развития Финансовых Технологий Россельхозбанка. 

Ближе к релизу наших площадок в продуктовых командах все чаще стали слышны споры о текстах. Все началось с экрана «404» — кто-то считал, что в сообщении об ошибке нужно пошутить, чтобы расслабить пользователя, а другие, что шутить с человеком, раздраженному ошибкой — некорректно. Любители шуток победили в том споре, но появился следующий вопрос: а допустим ли юмор в нашей экосистеме? Все-таки мы серьезная организация, банк. Если юмор допустим, то насколько игривый? У нас не было однозначного ответа на эти вопросы.

За короткое время у нас накопился приличный список вопросов и проблем, которые касались текстов. Мы поняли, что даже если зажмуримся, список не пропадет, и начали думать, как бы нам помочь себе писать оригинальные тексты, а командам — больше не тратить время на споры.

Составляющие

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

Средства:

  • вывода информации из устройства к пользователю — весь доступный диапазон воздействий на организм человека (зрительных, слуховых, тактильных, обонятельных и т. д.) — экраны (дисплеи, проекторы) и лампочки, динамики, зуммеры и сирены, вибромоторы и т. д. и т. п.
  • ввода информации/команд пользователем в устройство — множество всевозможных устройств для контроля состояния человека — кнопки, переключатели, потенциометры, датчики положения и движения, сервоприводы, жесты лицом и руками, даже съём мозговой активности пользователя.

По наличию тех или иных средств ввода, интерфейсы разделяются на типы — жестовый, голосовой, брэйн, и т. д., возможны смешанные варианты.
Средства эти должны быть необходимыми и достаточными, быть удобными и практичными, расположенными и скомпонованными разумно и понятно, соответствовать физиологии человека, не должны приводить к негативным последствиям для организма пользователя (всё это входит в понятие эргономики).

Методы:

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

Увеличение в устройстве (при равной функциональности) средств ввода-вывода даёт упрощение построения методов управления и упрощение правил пользования, но зато приводит к сложности восприятия информации пользователем — интерфейс становится перегруженным.
И наоборот — уменьшение средств отображения и контроля приводит к усложнению правил управления — каждый элемент несёт на себе слишком много функций.
Потому проектировщики интерфейсов стараются принять компромиссное решение между этими двумя крайностями в каждом отдельном случае.

2.4 Биометрическая технология

Эта технология возникла в конце 90-х годов XX века и на момент написания книги еще разрабатывается. Для управления компьютером используется выражение лица человека, направление его взгляда, размер зрачка и другие признаки. Для идентификации пользователя используется рисунок радужной оболочки его глаз, отпечатки пальцев и другая уникальная информация. Изображения считываются с цифровой видеокамеры, а затем с помощью специальных программ распознавания образов из этого изображения выделяются команды

Эта технология, по-видимому, займет свое место в программных продуктах и приложениях, где важно точно идентифицировать пользователя компьютера

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *