Когнитивные измерения
Когнитивные измерения - это принципы разработки синтаксиса, пользовательских интерфейсов и других особенностей языков программирования, описанные исследователями Томасом Грином и Марианом Петре. Измерения могут использоваться для оценки юзабилити существующих языков или для рекомендаций по дизайну новых.
Авторы концепции о когнитивных измерениях[1] выделяют четыре типа активности с интерактивными объектами: инкрементация (создание), транскрипция (переписывание), модификация и исследование дизайна.
Для оценки различных подходов и методов дизайна (синтаксиса) программ они выделили несколько когнитивных измерений:
Градиент абстракции
Каковы минимальный и максимальный уровни абстракции, принятые для данного обозначения? Могут ли учитываться более конкретные детали?
Близость соответствия
Насколько близко данное обозначение соответствует настоящей проблеме?
Согласованность
Как легко можно догадаться о полном описании объекта после изучения его частичного описания (обозначения)?
Размытость / сжатость
Сколько символов или сколько места требуется для того, чтобы с помощью данного обозначения выдать определенный результат или выразить смысл?
Помехоустойчивость
В какой степени использование данного обозначения влияет на вероятность того, что пользователь сделает ошибку?
Трудность мыслительных операций
Сколько трудных умственных усилий приходится на уровень обозначения, а не на семантический уровень? Есть ли места, где пользователь должен прибегать к дополнительным аннотациям и комментариям, чтобы отслеживать, что происходит в программе?
Скрытые зависимости
Являются ли зависимости между элементами обозначения видимыми или скрытыми? Каждая ли зависимость отображается в обоих направлениях? Будет ли изменение в одном из аспектов обозначения приводить к неожиданным побочным эффектам?
Сопоставляемость
Можно ли сравнить друг с другом в одно и то же время разные варианты обозначения?
Преварительная выполнимость
Существуют ли серьезные ограничения на порядок, с которым выполняются задачи? Требуются ли какие-то решения, которые должны быть приняты когда еще нет всей необходимой информации в наличии? Могут ли эти решения быть отменены или исправлены позднее?
Оцениваемость прогресса выполнения
Насколько легко оценить и получить обратную связь когда решение еще не полностью готово?
Выразительность ролей
Насколько очевидна роль каждого из компонентов обозначения в решении в целом?
Вторичные обозначения и избегание формализма
Может ли обозначение нести дополнительную информацию путем, не связанным с синтаксисом, таким как расположение, цвет или другие подсказки?
Вязкость
Есть ли в данном обозначении заранее заложенные ограничения для изменений? Сколько усилий потребуется, чтобы внести изменения в программу, выраженную в данном обозначении?
Это измерение может быть разделено на следующие виды: [2]
- 'Кумулятивная вязкость': изменения в коде, нарушают внутренние ограничения в программе, исправление которых может привести к дальнейшим нарушениям внутренних ограничений.
- 'Итерационная вязкость': одно действие в рамках концептуальной модели пользователя требует много повторяющихся действий устройства.
- 'Вязкость масштабирования': Изменение размера входного набора данных требует изменений в структуре самой программы.
Наглядность
Как легко необходимые части обозначения идентифицировать, получить к ним доступ и сделать наглядными?
Изменения в дизайне вдоль одного из измерений обычно затрагивает другие измерения. Т.е. они находятся в некотором балансе друг с другом.
Источники
en:Cognitive dimensions of notations
На эту статью не ссылаются другие статьи Википедии. Пожалуйста, воспользуйтесь подсказкой и установите ссылки в соответствии с принятыми рекомендациями.
|
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....