Когнитивные измерения
Когнити́вные измере́ния — принципы разработки синтаксиса, пользовательских интерфейсов и других особенностей языков программирования, описанные исследователями Томасом Грином и Марианом Петре. Измерения могут использоваться для оценки юзабилити существующих языков или для рекомендаций по дизайну новых.
Действия пользователя
Авторы концепции о когнитивных измерениях[1] выделяют четыре типа активности с интерактивными объектами: приращение (создание), транскрипция (переписывание), модификация и исследовательское проектирование. Для каждого из этих действий подходит свой вариант соотношения в каждом из измерений. Например, высокая вязкость (сопротивление изменениям) негативно отражается на модификации и исследовании, но не так опасна для одноразовых заданий переписывания и приращения.
Список измерений
Томас Грин первоначально описал 14 когнитивных измерений для оценки различных подходов и методов дизайна (синтаксиса) программ.
Каковы минимальный и максимальный уровни абстракции, принятые для данного обозначения? Могут ли учитываться более конкретные детали?
Насколько близко данное обозначение соответствует настоящей проблеме?
Как легко можно догадаться о полном описании объекта после изучения его частичного описания (обозначения)?
Сколько символов или сколько места требуется для того, чтобы с помощью данного обозначения выдать определенный результат или выразить смысл?
В какой степени использование данного обозначения влияет на вероятность того, что пользователь сделает ошибку?
Сколько трудных умственных усилий приходится на уровень обозначения, а не на семантический уровень? Есть ли места, где пользователь должен прибегать к дополнительным аннотациям и комментариям, чтобы отслеживать, что происходит в программе?
Являются ли зависимости между элементами обозначения видимыми или скрытыми? Каждая ли зависимость отображается в обоих направлениях? Будет ли изменение в одном из аспектов обозначения приводить к неожиданным побочным эффектам?
Можно ли сравнить друг с другом в одно и то же время разные варианты обозначения?
Существуют ли серьёзные ограничения на порядок, с которым выполняются задачи? Требуются ли какие-то решения, которые должны быть приняты когда ещё нет всей необходимой информации в наличии? Могут ли эти решения быть отменены или исправлены позднее?
Насколько легко оценить и получить обратную связь когда решение ещё не полностью готово?
Насколько очевидна роль каждого из компонентов обозначения в решении в целом?
Может ли обозначение нести дополнительную информацию способом, не связанным с синтаксисом, таким как расположение, цвет или другие подсказки?
Есть ли в данном обозначении заранее заложенные ограничения для изменений? Сколько усилий потребуется, чтобы внести изменения в программу, выраженную в данном обозначении?
Это измерение может быть разделено на следующие виды[2]:
- Кумулятивная вязкость: изменения в коде нарушают внутренние ограничения в программе, исправление которых может привести к дальнейшим нарушениям внутренних ограничений.
- Итерационная вязкость: одно действие в рамках концептуальной модели пользователя требует много повторяющихся действий устройства.
- Вязкость масштабирования: Изменение размера входного набора данных требует изменений в структуре самой программы.
Как легко необходимые части обозначения идентифицировать, получить к ним доступ и сделать наглядными?
Приведённые измерения не являются ортогональными: изменения в дизайне вдоль одного из них обычно затрагивает другие измерения. То есть, они находятся в некотором отношении друг с другом.
Примечания
Литература
- 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.