Разработчики программного обеспечения создают какой интерфейс

Обновлено: 19.05.2024

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

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

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

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

· Всегда назначайте клавиатурные эквиваленты команд.

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

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

· Используйте заметную, но ненавязчивую обратную связь с пользователем. Например, всплывающая подсказка на кнопках или окрашивание полей в красный цвет, если они заполнены некорректно или если они должны быть заполнены в обязательном порядке.

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

Если в программе присутствует несколько форм, необходимо определиться с видом интерфейса:

· однодокументный (SDI). Однодокументный интерфейс - это тип интерфейса, в котором предоставляется возможность работы только с одним документом в одном окне. Для работы с несколькими документами в таком интерфейсе необходимо многократно запускать приложение. Для каждого типа данных и документов требуется своя форма и, соответственно, свое приложение с интерфейсом типа SDI .

· многодокументный (MDI). Главная особенность MDI заключается в том, что для этого типа интерфейса можно многократно открывать форму одного вида документа для нескольких разных по содержанию документов (например, программа Microsoft Word). Для интерфейса такого типа характерно наличие одного главного окна (MDI-окно), которое обычно именуется родительским окном, и необходимого для работы количества подчиненных (вложенных) окон, называемых дочерними. Количество открытых дочерних окон ограничено лишь возможностями компьютера.

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

Рекомендации по созданию пользовательского интерфейса:

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

Одинаковое расстояние между элементами управления. Элементы управления на форме приложения располагаются на разном расстоянии между ними.

TabOrder . "Правильный" порядок. TabOrder — это порядок, в котором экранный курсор перемещается по элементам управления в форме при нажатии клавиши b > на клавиатуре компьютера. На стадии разработки программы, при размещении элементов управления на форме, TabOrder эквивалентен тому порядку, в котором создаются эти элементы. Однако в процессе проектирования программы автор многократно меняет расположение элементов на форме, какие-то из них удаляет, добавляет новые компоненты. В результате почти всегда оказывается, что TabOrder не соответствует тому порядку, в котором визуально расположены элементы, и при нажатии клавиши b > курсор хаотично скачет по экрану вместо последовательного перемещения по компонентам.

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

Выбор цветов. При создании интерфейса забудьте о свойстве Цвет ( Color ) элементов управления. Оставьте цвета стандартными, и пусть ваша программа выглядит так, как этого хочет ее пользователь. Если вы хотите указать цвета в своей программе, то это может послужить причиной возникновения одного неприятного эффекта. Так как с помощью Панели управления можно легко изменить цветовую гамму Windows . Жестко фиксируя в своей программе выбранные цвета, автор не учитывает, что его программа выглядит хорошо только до тех пор, пока она работает на компьютере с такой же цветовой гаммой, как и на компьютере разработчика. Если же ее запускают в системе с другим цветовым оформлением, то результат может выглядеть, мягко говоря, не очень хорошо. Для предотвращения таких досадных ошибок в процессе разработки программы нужно время от времени переключаться на другие цветовые "схемы" Windows .

В графическом пользовательском интерфейсе элемент управления — это средство, при помощи которого пользователь взаимодействует с компьютерной программой. Качество этого взаимодействия зависит от двух аспектов:

· соответствия элемента управления выполняемой им задаче;

· от последовательности правил, по которым функционирует элемент управления.

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

Заголовок окна (формы). Данный элемент определяется свойством Заголовок ( Caption ) объекта Форма ( Form ).Заголовок главного окна программы традиционно используется для вывода информации о двух вещах: названии программы и названии документа, с которым в данный момент работает пользователь.


Меню - с писок команд по работе с программой, предлагаемых на выбор пользователя. Рекомендации по созданию меню:

· Группировать пункты меню в логическом порядке и по содержанию.

· Для группировки пунктов в раскрывающихся меню использовать разделительные линии

· Избегать избыточных меню.

· Избегать пунктов меню верхнего уровня, не содержащих раскрывающихся меню

· По возможности использовать клавиатурные эквиваленты команд и "горячие" клавиши.


Списки. Элемент управления Список ( ListBox ) позволяет легко просматривать большие объемы информации и осуществлять выделение нужных строк. Например, его удобно использовать для формирования группы учащихся, перетаскивая из списка всех учащихся данного курса в список учащихся формируемой группы.

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



Принципы построения интерфейсов

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

а : b = b : с или с : b = b : а.

Отрезки золотой пропорции выражаются бесконечной иррациональной дробью 0,618. если с принять за единицу, а = 0,382. Отношение же отрезков а и b составляет 1,618. Прямоугольник с таким отношением сторон стали называть золотым прямоугольником.

Формы диалоговых окон и элементов управления, стороны которых относятся как 1,618, очень привлекательны для пользователей.



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

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

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

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

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

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

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

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

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

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

Во втором же случае незнакомый интерфейс повой версии может оказаться психологическим барьером, не преодолев который пользователь так и не сможет воспользоваться преимуществами новой версии. Яркий пример такой ситуации — неожиданно медленный (для Microsoft) переход пользователей от Windows3.* к Windows 9*.

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

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

Важное следствие: разработчик приложения должен знать, что такое хороший интерфейс, и как его построить.

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

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

- системы с жестким сценарием диалога - стандартизированное представление информации обмена;

- тезаурусные системы - семантическая сеть дескрипторов, образующих словарь системы (аналог - гипертекстовые системы);

Наиболее просты для реализации и распространены диалоговые системы с жестким сценарием диалога, которые предоставлены в виде:

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

- действия запрос-ответ - фиксирован перечень возможных значений, выбираемых из списка, или ответы типа Да/Нет;

Диалоговый процесс управляется согласно созданному сценарию, для которого определяются:

- точки (момент, условие) начала диалога;

- инициатор диалога - человек или программный продукт;

- реакция программного продукта на завершение диалога.

Описание сценария диалога выполняют:

- специализированные объектно-ориентированные языки построения сценариев.

Для создания диалоговых процессов и интерфейса конечного пользователя наиболее подходят объектно-ориентированные инструментальные средства разработки программ.

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

В ряде СУБД и электронных таблиц, текстовых редакторов существуют различные типы диалоговых окон содержащих разнообразные объекты управления:

- поля ввода информации пользователя;

- списки возможных альтернатив для выбора;

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

Графический интерфейс пользователя

Графический интерфейс пользователя (Graphics User Interface - GUI) - ГИЛ является обязательным компонентом большинства современных программных продуктов, ориентированных на работу конечного пользователя. К графическому интерфейсу пользователя предъявляются высокие требования как с чисто инженерной, так и с художественной стороны разработки, при его разработке ориентируются на возможности человека.

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

Стандартный графический интерфейс пользователя должен отвечать ряду требований:

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

- ориентироваться на конечного пользователя, который общается с программой на внешнем уровне взаимодействия;

- удовлетворять правилу "шести" - в одну линейку меню включать не более 6 понятий, каждое из которых содержит не более 6 опций;

- графические объекты сохраняют свое стандартизованное назначение и по возможности местоположение на экране.

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

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

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

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

Согласованность в пределах продукта

Одна и та же команда должна выполнять одни и те же функции, где бы она ни встретилась, причем одним и тем же образом. Например, если в одном диалоговом окне команда Копировать означает немедленное выполнение соответствующих действий, то в другом окне oнa не должна требовать от пользователя дополнительно указать расположение копируемой информации. Надо использовать одну и ту же команду, чтобы выполнить функции, которые кажутся подобными пользователю.

Согласованность в пределах рабочей среды

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

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

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

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

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

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

Гибкость интерфейса — это его способность учитывать уровень подготовки и производительность труда пользователя. Гибкость предполагает возможность изменения структуры диалога и/или входных данных. Концепция гибкого (адаптивного) интерфейса в настоящее время является одной из основных облас­тей исследования взаимодействия человека и ЭВМ. Основная проблема состоит не в том, как организовать изменения в диалоге, а в том, какие признаки нужно использовать для определения необходимости внесения изменений и их сути.

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

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

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

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

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

3. Скорость решения задачи с помощью данного приложения; при этом должно оцениваться не быстродействие системы и не скорость ввода данных с клавиатуры, а время, необходимое для достижения цели решаемой задачи. Исходя из этого, критерий оценки по данному показателю может быть сформулирован, например, так: пользо­ватель должен обработать за час не менее 20 документов с ошибкой не более 1%.

4. Субъективная удовлетворенность пользователя при работе с системой (которая количественно может быть выражена в процентах или оценкой по n-бальной шкале).

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

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

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

• Целесообразно учитывать особенности и традиции той предметной области, к которой относится создаваемое приложение.

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

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

Вопросы для самопроверки

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

Охарактеризуйте значение пользовательского интерфейса для эффективности работы пользователя.

Приведите классификацию систем, поддерживающих диалоговые процессы.

В каком виде могут быть представлены диалоговые системы с жестким сценарием диалога?

Каким требованиям должен отвечать стандартный графический интерфейс пользователя?

Что означает согласованность интерфейса?

В чем заключается принцип дружественности интерфейса?

Что означает гибкость интерфейса?

На каких принципах основано создание простого, но эффективного интерфейса?

На основе каких показателей можно оценить качество интерфейса?

Похожие документы:

Обучение, как способ тестирования программного продукта Григорьев Виктор Карлович ( grigoriev@ ) Регентов Георгий Александрович (

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

Все программы по характеру использования и категориям пользователей можно разделить на два класса (рис. 4) утилитарные программы и программные продукты (изделия). У т и лит арные прогр амм ы

. ­дукта; установление требований пользователя к характеру взаимодействия с программным продуктом, типу пользовательского интерфейса (система меню, использование .

Контрольно-оценочные средства по профессиональному модулю пм. 01 Разработка программных модулей программного обеспечения компьютерных систем для специальности

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

. сравнительный анализ данных методов. Программный продукт обладает дружественным интерфейсом и необходимым набором функциональных . независимо от уровня компьютерной подготовки пользователя. Требования программного продукта следующие: Win XP и выше .

Программа упорядоченная последовательность команд (инструкций) компьютера для решения задачи. Классификация программных продуктов

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

Аннотация: Рассмотрены основы интеграции и преобразования разноязыковых программ и данных, методы изменения (реинженерия, реверсная инженерия и рефакторинг) компонентов и систем, дана характеристика стандарта о независимости типов и структур данных от языков программирования, а также рассмотрены принципы взаимодействия неоднородных компонентов в современных промежуточных средах

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

Определены общие задачи неоднородности ЯП, платформ и сред, влияющих на установление связей между разноязыковыми программами, сформулированы пути их решения. Рассмотрены рекомендации стандарта ISO/IEC 11404-1996 по обеспечению независимых от современных ЯП типов данных.

Рассмотрены подходы к преобразованию форматов данных и данных в БД , а также методы изменения (эволюции) программ.

8.1. Задачи интерфейса при разработке программ

Общее определение. Интерфейс - это связь двух отдельных сущностей. Виды интерфейсов: языковые, программные, аппаратные, пользовательские, цифровые и т. п. Программный ( API ) и/или аппаратный интерфейс (port) - это способы преобразования входных/выходных данных во время объединения компьютера с периферийным оборудованием. В ЯП - это программа или часть программы, в которой определяются константы , переменные, параметры и структуры данных для передачи другим.

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

В случае, когда один из элементов ( программа , процедура или функция ) записаны на разных ЯП и, кроме того, если они располагаются на разных компьютерах, то возникают проблемы неоднородности типов данных в этих ЯП, структур памяти платформ компьютеров и операционных сред, где они выполняются. Понятие интерфейса, как самостоятельного объекта, сформировалось в связи со сборкой или объединением разноязыковых программ и модулей в монолитную систему на больших ЭВМ ( mainframes ) [8.1, 8.2].

Интерфейс играл роль посредника между вызываемым и вызывающим модулями. В нем давалось описание формальных и фактических параметров, производилась проверка соответствия передаваемых параметров (количества и порядка расположения), а также их типов данных. Если типы данных параметров оказывались не релевантными (например, передается целое, а результат функции - вещественное или наоборот), то производилось прямое и обратное их преобразование с учетом структуры памяти компьютеров. На рис. 8.1 приведена схема программы , в которой содержатся два вызова - и с параметрами, которые через интерфейсные модули-посредники и производят преобразование данных и их передачу модулям и . После выполнения и результаты преобразуются обратно к виду программы .

8.1.1. Интерфейс в ООП и в современных средах

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

  • публичные, доступные всем клиентам:
  • защищенные, доступные классу п подклассу:
  • приватные, доступные классу.

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

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

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

Дальнейшим развитием идеи взаимодействия, основанного на действиях, является язык AL (Action language), обеспечиывющий вызовов процедур (локальных или распределенных) с разверткой каждого вызова в программу [8.4], состоящую из операторов действий. Программа из вызовов процедур рассматривается в AL как ограниченное множество конечных программ, взаимодействующих со средой, в которую они погружаются.

Сети строятся на основе стандартной семиуровневой модели открытых систем OSI (Open Systems Interconnection) [8.5]. Объекты уровней в этой модели связываются между собой по горизонтали и вертикали. Запросы от приложений поступают на уровень представления данных для их кодирования (перекодирования) к виду используемой в приложении платформы. Открытые системы предоставляют любым приложениям разного рода услуги: управление удаленными объектами, обслуживание очередей и запросов, обработка интерфейсов и т. п.

Доступ к услугам осуществляется с помощью разных механизмов:

  • вызова удаленных процедур RPC (Remote Procedure Call) в системах ОNС SUN, OSF DSE [8.5, 8.6];
  • связывания распределенных объектов и документов в системе DCOM [8.7];
  • языка описания интерфейса IDL ( Interface Definition Language) и брокера объектных запросов - ORB ( Object Request Broker ) в системе CОRBA [8.8];
  • вызова RMI (Remote Methods Invocation) в системе JAVA [8.9, 8.10] и др.

Взаимосвязь процесса с удаленно расположенным от него другим процессом (например, сервером) на другом компьютере выполняет протокол UDP или TCP/IP, который передает параметры в stub - интерфейсе клиента stub -серверу для выполнения удаленной процедуры.

Механизм посылки запроса в системе CORBA базируется на описании запроса в языке IDL для доступа к удаленному методу/функции через протокол IIOP или GIOP . Брокер ORB передает запрос генератору, затем посылает stub / skeleton серверу, выполняющему интерфейс средствами объектного сервиса (Common Object Services) или общими средствами (Common Facilities). Так как брокер реализован в разных распределенных системах: CORBA, COM, SOM , Nextstep и др. [8.2], то он обеспечивает взаимодействие объектов в разных сетевых средах.

Вызов метода RMI в системе JAVA выполняет виртуальная машина (virtual machine), которая интерпретирует byte-коды вызванной программы, созданные разными системами программирования ЯП (JAVA, Pascal, С++) на разных компьютерах и средах. Функции RMI аналогичны брокеру ORB .

8.1.2. Интерфейс в среде клиента и сервера

В распределенной среде реализуется два способа связывания: на уровне ЯП через интерфейсы прикладного программирования и компиляторов IDL, генерирующих клиентские и серверные Stab. Интерфейсы определяются в языках IDL или APL , динамический интерфейс от объектаклиента к объектусервера и обратно выполняет брокер ORB . Интерфейсы имеют отдельную реализацию на ЯП и доступны разноязыковым программам. Компиляторы с IDL как часть промежуточного слоя сами реализуют связывание с ЯП через интерфейс клиента и сервера, заданного в том же ЯП [8.8, 8.11-8.13].

Интерфейс в IDL или в API включает описание формальных и фактических параметров программ, их типов и порядка задания операций передачи параметров и результатов при их взаимодействии. Это описание есть не что иное, как спецификация интерфейсного посредника двух разноязыковых программ (аналогично, как на рис. 8.1), которые взаимодействуют друг с другом через механизм вызова интерфейсных функций или посредников двух типов программ (клиент и сервер), выполняемых на разных процессах.

В функции интерфейсного посредника клиента входят:

  • подготовка внешних параметров клиента для обращения к сервису сервера,
  • посылка параметров серверу и его запуск в целях получения результата или сведений об ошибке.

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

Описание интерфейсного посредника не зависит от ЯП взаимодействующих объектов и в целом одинаково для всех вызывающих и вызываемых объектов. Посредник описывается в языке спецификации интерфейса IDL.

Интерфейсные посредники задают связь между клиентом и сервером ( stub для клиента и skeleton для сервера). Их описания отображаются в те ЯП, в которых представлены соответствующие им объекты или компоненты. Эти интерфейсы используются в системах CORBA, DCOM, LAVA и др. Они предоставляют всевозможные сервисы разработки и выполнения приложений в распределенной среде. Системные сервисы подключаются к приложению с помощью брокера. Брокер обеспечивает интероперабельность компонентов и объектов при переходе из одной среды другую.

Под интероперабельностью понимается способность совместного, согласованного взаимодействия разнородных компонентов системы для решения определенной задачи.

К средствам обеспечения интероперабельности и передачи данных между разными средами и платформами относится, например, стандартный механизм связи между JAVA и C/C++ компонентами, основанный на применении концепции Java Native Interface ( JNI ), реализованной как средство обращения к функциям из JAVA- классов и библиотек, разработанных на других языках.

native

Эти средства включает в себя анализ JAVA-классов в целях поиска прототипов обращений к функциям, реализованных на языках C/C++, и генерацию заголовочных файлов для использования их при компиляции C/C++ программ. В средстве JAVA классу известно, что в нем содержится обращение не к JAVA-методу (он называется и для загрузки необходимых C/C++ библиотек добавляется вызов функции), ориентируется именно на такую связь. Данная схема действует в одном направлении - от JAVA к C/C++ и только для такой комбинации ЯП.

Еще вариант реализации аналогичной задачи предлагает технология Bridge2Java,которая обеспечивает обращение из JAVA- классов к COM-компонентам. В этих целях генерируется оболочка для COM-компонента, который включает прокси-класс, обеспечивает необходимое преобразование данных средствами стандартной библиотеки преобразований типов. Данная схема не требует изменений в исходном Java-классе и COM-компоненты могут быть написаны в разных языках.

Такой подход позволяет реализовать доступ к компонентам, которые были разработаны раньше без ориентации на платформу . Net, например к COM-компонентам. Для этого используются стандартные средства генерации оболочки для COM-компонента, с помощью которой он представляется как . Net-компонент. При такой схеме реализуются все виды связей и для любых ЯП данной среды.

Команда AskUsers


Если рассматривать техническое значение, то интерфейс включает в себя:

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

Например, когда пользователь открывает программу Microsoft Word, он видит лист, разметку, фон и другие элементы. Это внешнее оформление. Возможность ввести текст, изменить шрифт, откорректировать содержимое – это функционал. А за кнопками скрывается внутренняя часть ПО, работа которой не видна пользователям.

Зачем нужен интерфейс?

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

Оказавшись на этой странице, вы:

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

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

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

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

Командная строка

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

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

Графический, текстовый

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

Классический пример – ОС Windows. Его внутренние процессы работают точно так же, как у командной строки, но внешне он принципиально отличается от предыдущего примера. Меню, кнопки, значки, картинки – одно нажатие на них заменяет сотни символов программного кода, который нужно было бы вводить вручную для выполнения тех же действий.

Большинство иконок стандартизированы и используются в разных интерфейсах. Например, разворачивающиеся меню и списки чаще всего отражаются тремя полосками или точками, музыка – в виде ноты, настройки – как шестеренка и т.д.

Современные UI включают текстовые и графические элементы.

Жестовый, голосовой, тактильный, нейронный

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

Технология voice user interface известна благодаря голосовым помощникам – Siri от Apple, Alexa от Amazon или Алиса от Яндекса. Помимо этого, на клавиатурах многих смартфонов есть опция записи звука, которая переводит его в текст. Тактильный UI – один из вариантов для управления, который был создан для незрячих людей, но его возможности применяются и при разработке смартфонов. Пример – разная степень вибрации при наборе клавиш на сенсорном экране.

Программный, аппаратный, аппаратно-программный

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

  • Аппаратный: дает возможность соединить два объекта, например, подключить принтер к ноутбуку с помощью WiFi или кабель USB.
  • Программный: создает связь между программами, к примеру – подключение API одного приложения к другому. Чтобы на сайте можно было залогиниться через социальные сети или аккаунт Google, используется именно эта технология.
  • Аппаратно-программный: комбинация технических элементов под управлением ПО.

Пользовательский интерфейс

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

В рамках этого понятия можно выделить подвиды. У каждого из них – свои особенности.

Сайты давно перестали нести в себе только информационную функцию. На доменах размещаются целые приложения, которые пользователи видят через призму web interface. Их преимущество в том, что не нужно устанавливать ПО – все функции доступны в браузере. Сейчас для их написания используются элементы JavaScript, HTML и CSS, а главная задача при разработке – продумать юзабилити так, чтобы посетителям было удобно.

Игровой

Разные игры сочетают все элементы перечисленных UI. Они не ограничиваются задачами геймдизайна. В них прорабатывается не только графика, но и элементы геймплея: кнопки, жесты, движения мыши или взаимодействие с сенсором на экране.

Материальный

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

Мобильный

Выделяется в отдельную группу SIMP (Screen, Icon, Menu, Pointer), поскольку его функционал отличается от разработки для десктопов. Элементы здесь заполняют экран полностью, а блоки и системы зависят от требований операционной системы. Поведение пользователей при взаимодействии со смартфонами отличается от работы на компьютере из-за размера экрана и отсутствия отдельной клавиатуры с мышью/тачпадом. Юзабилити приложений должно строиться на поведенческих паттернах пользователей, например, как они держат телефон в руке, каким пальцем набирают текст и листают страницы, какие действия удобно совершать на ходу и т.д.

Как проработать UI?

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

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

Читайте также: