Kognitive dimensioner er principper for udvikling af syntaks , brugergrænseflader og andre funktioner i programmeringssprog , beskrevet af forskerne Thomas Green og Marian Petre. Målingerne kan bruges til at vurdere anvendeligheden af eksisterende sprog eller til at lave designanbefalinger til nye.
Forfatterne af begrebet kognitive målinger [1] identificerer fire typer aktivitet med interaktive objekter: inkrement (skabelse), transskription (omskrivning), modifikation og forskningsdesign. For hver af disse handlinger er dens egen version af forholdet i hver af dimensionerne egnet. For eksempel har høj viskositet (modstand mod forandring) en negativ effekt på modifikation og forskning, men er ikke så farlig for engangs-omskrivnings- og inkrementjob.
Thomas Green beskrev oprindeligt 14 kognitive dimensioner til evaluering af forskellige tilgange og metoder til programdesign (syntaks).
Hvad er minimums- og maksimumsniveauer for abstraktion accepteret for denne notation? Kan mere specifikke detaljer overvejes?
Hvor tæt svarer denne betegnelse til det egentlige problem?
Hvor let er det at gætte den fulde beskrivelse af et objekt efter at have studeret dets delvise beskrivelse (betegnelse)?
Hvor mange tegn eller hvor meget plads kræves der for at give et bestemt resultat eller udtrykke mening med en given notation?
I hvilket omfang påvirker brugen af denne notation sandsynligheden for, at brugeren begår en fejl?
Hvor meget hård mental indsats går der på betegnelsesniveauet og ikke det semantiske niveau? Er der steder, hvor brugeren skal ty til yderligere anmærkninger og kommentarer for at holde styr på, hvad der foregår i programmet?
Er afhængigheder mellem betegnelseselementer synlige eller skjulte? Går enhver afhængighed kort i begge retninger? Vil en ændring i et aspekt af notationen føre til uventede bivirkninger?
Er det muligt at sammenligne forskellige betegnelser med hinanden på samme tid?
Er der alvorlige begrænsninger i rækkefølgen, hvori opgaverne udføres? Er der nogen beslutninger, der skal træffes, når alle nødvendige oplysninger endnu ikke er tilgængelige? Kan disse beslutninger omgøres eller ændres på et senere tidspunkt?
Hvor nemt er det at evaluere og få feedback, når løsningen endnu ikke er færdig?
Hvor indlysende er hver af betegnelseskomponenternes rolle i løsningen som helhed?
Kan symbolet formidle yderligere information på en måde, der ikke er relateret til syntaks, såsom placering, farve eller andre ledetråde?
Har denne betegnelse foruddefinerede begrænsninger for ændringer? Hvor meget indsats vil det kræve at foretage ændringer i programmet udtrykt i denne notation?
Denne måling kan opdeles i følgende typer [2] :
Hvordan kan de nødvendige dele af betegnelsen let identificeres, tilgås og synliggøres?
De viste dimensioner er ikke ortogonale: designændringer langs en af dem påvirker normalt de andre dimensioner. Det vil sige, at de er i et eller andet forhold til hinanden.