Продолжая использовать сайт, вы даете свое согласие на работу с этими файлами.
Когнитивные измерения
Когнити́вные измере́ния — принципы разработки синтаксиса, пользовательских интерфейсов и других особенностей языков программирования, описанные исследователями Томасом Грином и Марианом Петре. Измерения могут использоваться для оценки юзабилити существующих языков или для рекомендаций по дизайну новых.
Содержание
- 1 Действия пользователя
-
2 Список измерений
- 2.1 Градиент абстракции (abstraction gradient)
- 2.2 Близость соответствия (closeness of mapping)
- 2.3 Согласованность (consistency)
- 2.4 Размытость — сжатость (diffuseness — terseness)
- 2.5 Подверженность ошибкам (error-proneness)
- 2.6 Трудность мыслительных операций (hard mental operations)
- 2.7 Скрытые зависимости (hidden dependencies)
- 2.8 Сопоставляемость (juxtaposability)
- 2.9 Преждевременная фиксация решения (premature commitment)
- 2.10 Поэтапное оценивание (progressive evaluation)
- 2.11 Выразительность ролей (role-expressiveness)
- 2.12 Вторичные обозначения и избегание формализма (secondary notation and escape from formalism)
- 2.13 Вязкость (viscosity)
- 2.14 Наглядность (visibility)
- 3 Примечания
- 4 Литература
- 5 Ссылки
Действия пользователя
Авторы концепции о когнитивных измерениях выделяют четыре типа активности с интерактивными объектами: приращение (создание), транскрипция (переписывание), модификация и исследовательское проектирование. Для каждого из этих действий подходит свой вариант соотношения в каждом из измерений. Например, высокая вязкость (сопротивление изменениям) негативно отражается на модификации и исследовании, но не так опасна для одноразовых заданий переписывания и приращения.
Список измерений
Томас Грин первоначально описал 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)
Есть ли в данном обозначении заранее заложенные ограничения для изменений? Сколько усилий потребуется, чтобы внести изменения в программу, выраженную в данном обозначении?
Это измерение может быть разделено на следующие виды:
- Кумулятивная вязкость: изменения в коде нарушают внутренние ограничения в программе, исправление которых может привести к дальнейшим нарушениям внутренних ограничений.
- Итерационная вязкость: одно действие в рамках концептуальной модели пользователя требует много повторяющихся действий устройства.
- Вязкость масштабирования: Изменение размера входного набора данных требует изменений в структуре самой программы.
Наглядность (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.