Cognitive dimensions or cognitive dimensions of notations are design principles for notations, user interfaces and programming languages, described by researcher Thomas R.G. Green and furthered researched with Marian Petre. The dimensions can be used to evaluate the usability of an existing information artifact, or as heuristics to guide the design of a new one, and are useful in Human-Computer Interaction design. Cognitive dimensions are designed to provide a lightweight approach to analyse the quality of a design, rather than an in-depth, detailed description. They provide a common vocabulary for discussing many factors in notation, UI or programming language design. Also, cognitive dimensions help in exploring the space of possible designs through design maneuvers, changes intended to improve the design along one dimension.
Thomas Green originally defined 14 cognitive dimensions: ; Abstraction gradient : What are the minimum and maximum levels of abstraction exposed by the notation? Can details be encapsulated? ; Closeness of mapping : How closely does the notation correspond to the problem world? ; Consistency : After part of the notation has been learned, how much of the rest can be successfully guessed? ; Diffuseness / terseness : How many symbols or how much space does the notation require to produce a certain result or express a meaning? ; Error-proneness : To what extent does the notation influence the likelihood of the user making a mistake? ; Hard mental operations : How much hard mental processing lies at the notational level, rather than at the semantic level? Are there places where the user needs to resort to fingers or penciled annotation to keep track of what's happening? ; Hidden dependencies : Are dependencies between entities in the notation visible or hidden? Is every dependency indicated in both directions? Does a change in one area of the notation lead to unexpected consequences? ; Juxtaposability : Can different parts of the notation be compared side by side at the same time? ; Premature commitment : Are there strong constraints on the order in which the user must complete the tasks to use the system? ; Progressive evaluation : How easy is it to evaluate and obtain feedback on an incomplete solution? ; Role-expressiveness : How obvious is the role of each component of the notation in the solution as a whole? ; Secondary notation and escape from formalism : Can the notation carry extra information by means not related to syntax, such as layout, color, or other cues? ; Viscosity ; Visibility : How readily can required parts of the notation be identified, accessed and made visible?
Other dimensions
In addition to the above, new dimensions are sometimes proposed in the HCI research field, with different levels of adoption and refinement. Such candidate dimensions include creative ambiguity, indexing, synopsis or unevenness.
User activities
The authors identify four main user activities with interactive artifacts: incrementation , transcription, modification and exploratory design. Each activity is best served by a different trade-off in the usability on each dimension. For example, a high viscosity is harmful for modification and exploration activities, but less severe for the one-off tasks performed in transcription and incrementation.
Design maneuvers
A design maneuver is a change made by the designer in the notation design, to alter its position within a particular dimension. Dimensions are created to be pairwise independent, so that the design can be altered in one dimension while keeping a second one constant. But this usually results in a trade-off between dimensions. A modification increasing the usability of the notation in one dimension will typically reduce its usability in a third dimension. This reflects an assumption in the framework that there is no perfect interface and that trade-offs are a fundamental part of usability design. An example of a design maneuver is reducing the viscosity of a notation by adding abstraction mechanisms. This can be done by incorporating style sheets, an abstraction that represent the common styling attributes of items in a document, to a notation where each item in a document has defined its own individual style. After this design maneuver is made, an editor that changes the style sheet will modify all items at once, eliminating the repetition viscosity present in the need to change the style of each individual item.