Когнитивные измерения
Когнити́вные измере́ния — принципы разработки синтаксиса, пользовательских интерфейсов и других особенностей языков программирования, описанные исследователями Томасом Грином и Марианом Петре. Измерения могут использоваться для оценки юзабилити существующих языков или для рекомендаций по дизайну новых.
Действия пользователя
правитьАвторы концепции о когнитивных измерениях[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)
правитьКак легко необходимые части обозначения идентифицировать, получить к ним доступ и сделать наглядными?
Приведённые измерения не являются ортогональными: изменения в дизайне вдоль одного из них обычно затрагивает другие измерения. То есть, они находятся в некотором отношении друг с другом.
Примечания
править- ↑ T. R. G. Green. «Instructions and Descriptions: some cognitive aspects of programming and similar activities» Архивная копия от 1 марта 2012 на Wayback Machine
- ↑ 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.
Ссылки
правитьДля улучшения этой статьи желательно:
|