Cognitive dimensions of notations

classificatory schemes need to be justified in concrete terms. The dimensions concept can be justified by pointing to areas where progress is slow, as I have done above; or by criticising existing systems; or by raising design issues in relation to present growth areas. Let’s take the last, and look at OOPS. Object-oriented systems have been praised as resolving some cognitive problems (Rosson & Alpert 1988), at least in principle. I take no issue with that, but are they adequately usable yet? A fundamental claim in this paper is that system = notation + environment. Research papers on OOPS, however, offer a myriad new languages, with different ideas about the semantics of inheritance, etc., but say very little about environments. Here are some questions arising from the preceding discussion, with remarks relating to one OOPS, Smalltalk-80. I shall take the five dimensions I have described in order. 1. Are there hidden dependencies and one-way links in the structure? Smalltalk-80 scores fairly well here; most relationships can be browsed in both directions, although there are times when it would nice to make dependencies more immediately visible without having to search for them, so that they could at as reminders. However, there is little support in searching for ill-specified targets. “I want something that handles a bitmap, what can I find?” Nor is it easy to find out what kind of object can fill an instance variable slot in a method. 2. If the inheritance hierarchy viscous, or is it easy to reconstruct in a different fashion? The inheritance structure lends to be viscous. For instance, given a class Animal with many sub-classes Trout, Herring, Minnow, etc.. inserting a new class Fish between Animal and its subclasses requires many operations (add a new subclass, Fish, to Animal; move Trout to Animal, etc.) Moreover, changing the inheritance hierarchy normally means changing the pattern of class and instance variables in the hierarchy — our new class, Fish, will contain information relevant to all its subclasses, and this information will have to he extracted from its previous position in the hierarchy and brought together under the new heading. 3. Is the generative order adequately decoupled? Not in Smalltalk-80, where inheritance hierarchies must be created top-down. We lack at present any published evidence on how Smalltalk programmers work, but experts have criticised this aspect in precisely the terms I would expect, namely that when designing the inheritance hierarchy the mental order in which steps are generated is not top-down, so that the effect of the environment’s insistence on top-down working is constrictive (Goldstein & Bobrow 1981; LaLonde 1987). LaLonde’s description is that the expert first designs a specific data type, by focussing on a useful set of operations, and then that data type is positioned in a logical hierarchy. 4. Is it role-expressive? Again, not adequately; although the purpose of object-oriented programming is to clarify relations between parts of programs, one finds that relationships between methods are obscure. The only browsers provided operate on

[1]  F. Détienne Program understanding and knowledge organization: the influence of acquired schemata , 1990 .

[2]  Keith Duncan,et al.  Cognitive Engineering , 2017, Encyclopedia of GIS.

[3]  John D. Gould,et al.  An experimental study of people creating spreadsheets , 1987, TOIS.

[4]  Marian Petre,et al.  Issues Governing the Suitability of Programming Languages for Programming Tasks , 1988, BCS HCI.

[5]  Wilf R. LaLonde Designing families of data types using exemplars , 1989, TOPL.

[6]  Robert S. Rist Plans in programming: definition, demonstration, and development , 1986 .

[7]  Allen Newell,et al.  The psychology of human-computer interaction , 1983 .

[8]  Thomas R. G. Green,et al.  Pictures of programs and other processes, or how to do things with lines , 1982 .

[9]  Mary Beth Rosson,et al.  The Cognitive Consequences of Object-Oriented Design , 1990, Hum. Comput. Interact..

[10]  Richard M. Young,et al.  Programmable user models for predictive evaluation of interface designs , 1989, CHI '89.

[11]  David J. Gilmore,et al.  Programming Plans and Programming Expertise , 1988 .

[12]  Linda Flower,et al.  The Dynamics of Composing : Making Plans and Juggling Constraints , 1980 .

[13]  Mark Weiser,et al.  Experiments on slicing-based debugging aids , 1986 .

[14]  T. R. G. Green Conditional program statements and their comprehensibility to professional programmers , 1977 .

[15]  John C. Thomas,et al.  Clinical— experimental analysis of design problem solving , 1979 .

[16]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[17]  David J. Gilmore,et al.  Comprehension and Recall of Miniature Programs , 1984, Int. J. Man Mach. Stud..

[18]  J Chin Working with computers: theory versus outcome , 1990 .

[19]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[20]  Thomas R. G. Green,et al.  Scope Marking in Computer Conditionals - A Psychological Evaluation , 1977, Int. J. Man Mach. Stud..

[21]  R. Young Surrogates and mappings: two kinds of conceptual models for interactive , 1983 .

[22]  Willemien Visser,et al.  Towards Modelling the Activity of Design: An Observational Study on a Specification Stage , 1988 .

[23]  Stephen J. Payne,et al.  Task-Action Grammars: A Model of the Mental Representation of Task Languages , 1987, SGCH.

[24]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[25]  John R. Anderson,et al.  Change-episodes in coding: when and how do programmers change their code? , 1987 .

[26]  Gerhard Weber,et al.  STRUEDI: A LISP-STRUCTURE EDITOR FOR NOVICE PROGRAMMERS**This work is supported by the Deutsche Forschungsgemeinschaft under Grant We 498/12. , 1987 .

[27]  Richard Southall Visual structure and the transmission of meaning , 1988 .

[28]  H. Rex Hartson,et al.  Toward Empirically Derived Methodologies and Tools for Human-Computer Interface Development , 1989, Int. J. Man Mach. Stud..

[29]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..