Когнитивные измерения

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Когнити́вные измере́ния — это принципы разработки синтаксиса, пользовательских интерфейсов и других особенностей языков программирования, описанные исследователями Томасом Грином и Марианом Петре. Измерения могут использоваться для оценки юзабилити существующих языков или для рекомендаций по дизайну новых.

Действия пользователя[править | править вики-текст]

Авторы концепции о когнитивных измерениях[1] выделяют четыре типа активности с интерактивными объектами: приращение (создание), транскрипция (переписывание), модификация и исследовательское проектирование. Для каждого из этих действий подходит свой вариант соотношения в каждом из измерений. Например, высокая вязкость (сопротивление изменениям) негативно отражается на модификации и исследовании, но не так опасна для одноразовых заданий переписывания и приращения.

Список измерений[править | править вики-текст]

Томас Грин первоначально описал 14 когнитивных измерений для оценки различных подходов и методов дизайна (синтаксиса) программ.

Градиент абстракции (abstraction gradient)[править | править вики-текст]

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

Близость соответствия (closeness of mapping)[править | править вики-текст]

Насколько близко данное обозначение соответствует настоящей проблеме?

Согласованность (consistency)[править | править вики-текст]

Как легко можно догадаться о полном описании объекта после изучения его частичного описания (обозначения)?

Размытость — сжатость (diffuseness — terseness)[править | править вики-текст]

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

Подверженность ошибкам (error-proneness)[править | править вики-текст]

В какой степени использование данного обозначения влияет на вероятность того, что пользователь сделает ошибку?

Трудность мыслительных операций (hard mental operations )[править | править вики-текст]

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

Скрытые зависимости (hidden dependencies)[править | править вики-текст]

Являются ли зависимости между элементами обозначения видимыми или скрытыми? Каждая ли зависимость отображается в обоих направлениях? Будет ли изменение в одном из аспектов обозначения приводить к неожиданным побочным эффектам?

Сопоставляемость (juxtaposability)[править | править вики-текст]

Можно ли сравнить друг с другом в одно и то же время разные варианты обозначения?

Преждевременная фиксация решения (premature commitment)[править | править вики-текст]

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

Поэтапное оценивание (progressive evaluation)[править | править вики-текст]

Насколько легко оценить и получить обратную связь когда решение ещё не полностью готово?

Выразительность ролей (role-expressiveness)[править | править вики-текст]

Насколько очевидна роль каждого из компонентов обозначения в решении в целом?

Вторичные обозначения и избегание формализма (secondary notation and escape from formalism)[править | править вики-текст]

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

Вязкость (viscosity)[править | править вики-текст]

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

Это измерение может быть разделено на следующие виды[2]:

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

Наглядность (visibility)[править | править вики-текст]

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

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

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • Blackwell, A. Ten years of cognitive dimensions in visual languages and computing (англ.) // Journal of Visual Languages & Computing. — 2006. — Vol. 17, no. 4. — P. 285—287. — ISSN 1045926X. — DOI:10.1016/j.jvlc.2006.04.001.
  • Rogers, Y. HCI Theory: Classical, Modern, and Contemporary. — Morgan & Claypool, 2012. — P. 35-36. — ISBN 9781608459001.

Ссылки[править | править вики-текст]