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

Действия пользователя править

Авторы концепции о когнитивных измерениях[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) править

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

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

Примечания править

  1. T. R. G. Green. «Instructions and Descriptions: some cognitive aspects of programming and similar activities» Архивная копия от 1 марта 2012 на Wayback Machine
  2. Using Cognitive Dimensions in the Classroom as a Discussion Tool for Visual Language Design. Дата обращения: 3 февраля 2010. Архивировано из оригинала 3 июля 2004 года.

Литература править

  • 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.

Ссылки править