Before changing topic, here is a paper that goes a more into cognitive dimensions.
T. R. G. Green and M. Petre: Usability Analysis of Visual Programming Environments: a ‘cognitive dimensions’ framework. Journal of Visual Languages and Computing, Vol. 7, No. 2, pages 131-174 (1996).
The complexity of programming environments is not handled well by HCI techniques, which take into account low-level details. In an attempt to illustrate cognitive dimensions approach, the authors perform an exhaustive analysis of the visual programming languages LabView and Prograph. These are also compared with Basic to emphasize differences with respect to text-based languages.
The authors characterize LabView, Prograph and Basic in terms of thirteen cognitive dimensions. The way information is presented is described by the following dimensions: closeness of mapping, abstraction gradient, role-expressiveness, secondary notation, hidden dependencies and diffuseness. Other dimensions related more to the effort required from the user include consistency, visibility, error-proneness, hard mental operations, premature commitment, progressive evaluation, and viscosity. In general the dimensions are utilized to organize the analysis but this does not diminish the need for references or experimental data.
The interrelations between different dimensions are explored, specifically, the influence of the level of abstraction on resistance to local changes; the distance between the notation and the problem domain; the complexity of mental operations; and the visibility of code portions and dependencies. However, future work is necessary to define the relations between dimensions precisely and to decrease the degree of intersection between them.
The authors conclude that cognitive dimensions should be used in combination with GOMS and programming walking analyses. These two other approaches will make it possible to evaluate low-level details of interaction and to assess how much knowledge is required from users.