Cognitive dimensions of notations

Last updated

Cognitive dimensions or cognitive dimensions of notations [1] [2] are design principles for notations, user interfaces and programming languages, described by researcher Thomas R.G. Green [3] and further researched with Marian Petre. [1] 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. [4]

Contents

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.

List of the cognitive dimensions

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?
Are there decisions that must be made before all the necessary information is available? Can those decisions be reversed or corrected later?
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
Are there any inherent barriers to change in the notation? How much effort is required to make a change to a program expressed in the notation?
This dimension can be further classified into the following types: [5]
  • 'Knock-on viscosity' : a change in the code violates internal constraints in the program, whose resolution may violate further internal constraints.
  • 'Repetition viscosity' : a single action within the user’s conceptual model requires many, repetitive device actions.
  • 'Scope viscosity' : a change in the size of the input data set requires changes to the program structure itself.
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, [6] with different levels of adoption and refinement.

Such candidate dimensions include creative ambiguity (does the notation encourage interpreting several meanings of the same element?), indexing (are there elements to guide finding a specific part?), synopsis ("Gestalt view" of the whole annotated structure) or unevenness (some creation paths are easier than others, which bias the expressed ideas in a developed artifact).

User activities

The authors identify four main user activities with interactive artifacts: incrementation [creation], 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 (resistance to change) 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.[ citation needed ]

But this usually results in a trade-off between dimensions. A modification increasing the usability of the notation in one dimension (while keeping a second one constant) 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.[ citation needed ] 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.[ citation needed ]

See also

Related Research Articles

In computer science, an abstract data type (ADT) is a mathematical model for data types. An abstract data type is defined by its behavior (semantics) from the point of view of a user, of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations. This mathematical model contrasts with data structures, which are concrete representations of data, and are the point of view of an implementer, not a user.

Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. The term is sometimes used broadly to refer to "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying" the software, or more specifically "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."

A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure Programing language.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

Interaction design, often abbreviated as IxD, is "the practice of designing interactive digital products, environments, systems, and services." While interaction design has an interest in form, its main area of focus rests on behavior. Rather than analyzing how things are, interaction design synthesizes and imagines things as they could be. This element of interaction design is what characterizes IxD as a design field, as opposed to a science or engineering field.

In software engineering, inversion of control (IoC) is a design pattern in which custom-written portions of a computer program receive the flow of control from a generic framework. The term "inversion" is historical: a software architecture with this design "inverts" control as compared to procedural programming. In procedural programming, the code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks, but with inversion of control, it is the framework that calls into the custom (program) code.

<span class="mw-page-title-main">User interface design</span> Planned operator–machine interaction

User interface (UI) design or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the user experience. In computer or software design, user interface (UI) design primarily focuses on information architecture. It is the process of building interfaces that clearly communicates to the user what's important. UI design refers to graphical user interfaces and other forms of interface design. The goal of user interface design is to make the user's interaction as simple and efficient as possible, in terms of accomplishing user goals.

Cognitive ergonomics is a scientific discipline that studies, evaluates, and designs tasks, jobs, products, environments and systems and how they interact with humans and their cognitive abilities. It is defined by the International Ergonomics Association as "concerned with mental processes, such as perception, memory, reasoning, and motor response, as they affect interactions among humans and other elements of a system. Cognitive ergonomics is responsible for how work is done in the mind, meaning, the quality of work is dependent on the persons understanding of situations. Situations could include the goals, means, and constraints of work. The relevant topics include mental workload, decision-making, skilled performance, human-computer interaction, human reliability, work stress and training as these may relate to human-system design." Cognitive ergonomics studies cognition in work and operational settings, in order to optimize human well-being and system performance. It is a subset of the larger field of human factors and ergonomics.

<span class="mw-page-title-main">Deutsch limit</span>

The Deutsch limit is an aphorism about the information density of visual programming languages originated by L. Peter Deutsch that states:

<span class="mw-page-title-main">MagicDraw</span> Systems modelling software

MagicDraw is a proprietary visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support.

Secondary notation is the set of visual cues used to improve the readability of a formal notation. Examples of secondary notation include the syntax highlighting of computer source code, sizes and color codes for easy recognition of consumer symbols such as bank notes or coins, or the regular typographic conventions often found in technical books to highlight sections with the same type of content.

In computing, reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change. With this paradigm, it's possible to express static or dynamic data streams with ease, and also communicate that an inferred dependency within the associated execution model exists, which facilitates the automatic propagation of the changed data flow.

<span class="mw-page-title-main">Incremental computing</span> Software feature

Incremental computing, also known as incremental computation, is a software feature which, whenever a piece of data changes, attempts to save time by only recomputing those outputs which depend on the changed data. When incremental computing is successful, it can be significantly faster than computing new outputs naively. For example, a spreadsheet software package might use incremental computation in its recalculation feature, to update only those cells containing formulas which depend on the changed cells.

Node graph architecture is a software design structured around the notion of a node graph. Both the source code as well as the user interface is designed around the editing and composition of atomic functional units.

Analytica is a visual software developed by Lumina Decision Systems for creating, analyzing and communicating quantitative decision models. It combines hierarchical influence diagrams for visual creation and view of models, intelligent arrays for working with multidimensional data, Monte Carlo simulation for analyzing risk and uncertainty, and optimization, including linear and nonlinear programming. Its design, especially its influence diagrams and treatment of uncertainty, is based on ideas from the field of decision analysis. As a computer language, it combines a declarative (non-procedural) structure for referential transparency, array abstraction, and automatic dependency maintenance for efficient sequencing of computation.

In cognitive psychology, intertrial priming is an accumulation of the priming effect over multiple trials, where "priming" is the effect of the exposure to one stimulus on subsequently presented stimuli. Intertrial priming occurs when a target feature is repeated from one trial to the next, and typically results in speeded response times to the target. A target is the stimulus participants are required to search for. For example, intertrial priming occurs when the task is to respond to either a red or a green target, and the response time to a red target is faster if the preceding trial also has a red target.

Thomas R. G. Green is a British cognitive scientist, and Visiting Professor at the University of York, known for his contribution to cognitive modelling and the development of the concept of cognitive dimensions of notations.

Alan F. Blackwell is a New Zealand-British cognition scientist and professor at the Computer Laboratory, University of Cambridge, known for his work on diagrammatic representation, on data and language modelling, investment modelling, and end-user software engineering.

Marian Petre is a British computer scientist and Professor of Computing at the Open University and Director of its Centre for Research in Computing (CRC), known for her work on Visual Programming Environments, and co-developed the concept of cognitive dimensions of notations.

<span class="mw-page-title-main">PWCT</span> Visual programming language

PWCT is a free open source visual programming language for software development.

References

  1. 1 2 Green, T. R. G.; Petre, M. (1996). "Usability analysis of visual programming environments: A 'cognitive dimensions' framework". Journal of Visual Languages & Computing. 7 (2): 131–174. CiteSeerX   10.1.1.22.1477 . doi:10.1006/jvlc.1996.0009. S2CID   11750514.
  2. Green, T. R. G. (2000). "Instructions and Descriptions: some cognitive aspects of programming and similar activities". CiteSeerX   10.1.1.32.8003 .
  3. Green, Thomas RG (1989). "Cognitive Dimensions of Notations". People and Computers. V: 443–460. CiteSeerX   10.1.1.128.270 .
  4. A. F. Blackwell, C. Britton, A. Cox, T. R. G. Green, C. Gurr, G. Kadoda, M. S. Kutar, M. Loomes, C. L. Nehaniv, M. Petre, C. Roast, C. Roe, A. Wong, R. M. Young, "Cognitive Dimensions of Notations: Design Tools for Cognitive Technology", Springer Lecture Notes in Computer Science, vol. 2117, 325-341, 2001. doi : 10.1007/3-540-44617-6_31
  5. "Using Cognitive Dimensions in the Classroom as a Discussion Tool for Visual Language Design". Archived from the original on 2004-07-03. Retrieved 2007-07-12.
  6. Blackwell, Alan F. (2000). "Dealing with New Cognitive Dimensions". CiteSeerX   10.1.1.18.7947 .{{cite web}}: Missing or empty |url= (help)