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]
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:
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).
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.
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 ]
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.
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.
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.
The Deutsch limit is an aphorism about the information density of visual programming languages originated by L. Peter Deutsch that states:
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.
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.
PWCT is a free open source visual programming language for software development.
{{cite web}}
: Missing or empty |url=
(help)