Command Language Command language user interfaces use artificial languages, much
ID: 440217 • Letter: C
Question
Command Language Command language user interfaces use artificial languages, much like programming languages. They are concise and unambiguous, but they are often difficult for a novice to learn and remember. However, since they usually permit a user to combine constructs in new and complex ways, they can be more powerful for advanced users. For them, command languages provide a strong feeling that they are in charge and that they are taking the initiative rather than responding to the computer. Command language users must learn the syntax, but they can often express complex possibilities rapidly, without having to read distracting prompts. However, error rates are typically high, training is necessary, and retention may be poor. Error messages and on-line assistance are difficult to provide because of the diversity of possibilities and the complexity of relating tasks to computer concepts and syntax. Command languages and lengthier query or programming languages are the domain of the expert frequent users (power users), who often derive satisfaction from mastering a complex set of concepts and syntax. Command language interfaces are also the style most amenable to programming, that is, writing programs or scripts of user input commands. Menu Menu-based user interfaces explicitly present the options available to a user at each point in a dialogue. Users read a list of items, select the one most appropriate to their task, type or point to indicate their selection, verify that the selection is correct, initiate the action, and observe the effect. If the terminology and meaning of the items are understandable and distinct, users can accomplish their tasks with little learning or memorization and few keystrokes. The menu requires only that the user be able to recognize the desired entry from a list rather than recall it, placing a smaller load on long-term memory. The greatest benefit may be that there is a clear structure to decision making, since only a few choices are presented at a time. This interaction style is appropriate for novice and intermittent users. It can also be appealing to frequent users if the display and selection mechanisms are very rapid. A principal disadvantage is that they can be annoying for experienced users who already know the choices they want to make and do not need to see them listed. Well-designed menu systems, however, can provide bypasses for expert users. Menus are also difficult to apply to "shallow" languages, which have large numbers of choices at a few points, because the option display becomes too big. For designers, menu selection systems require careful task analysis to ensure that all functions are supported conveniently and that terminology is chosen carefully and used consistently. Software tools to support menu selection help in ensuring consistent screen design, validating completeness, and supporting maintenance. Form Fill-in Menu selection usually becomes cumbersome when data entry is required; form fill-in (also called fill-in-the-blanks) is useful here. Users see a display of related fields, move a cursor among the fields, and enter data where desired, much as they would with a paper form for an invoice, personnel data sheet, or order form. Seeing the full set of related fields on the screen at one time in a familiar format is often very helpful. Form fill-in interaction does require that users understand the field labels, know the permissible values, be familiar with typing and editing fields, and be capable of responding to error messages. These demands imply that users must have some training or experience. Natural Language The principal benefit of natural language user interfaces is, of course, that the user already knows the language. The hope that computers will respond properly to arbitrary natural language sentences or phrases has engaged many researchers and system developers, but with limited success thus far. Natural language interaction usually provides little context for issuing the next command, frequently requires "clarification dialog," and may be slower and more cumbersome than the alternatives. Therefore, given the state of the art, such an interface must be restricted to some subset of natural language, and the subset must be chosen carefully--both in vocabulary and range of syntactic constructs. Such systems often behave poorly when the user veers even slightly away from the subset. Since they begin by presenting the illusion that the computer really can "speak English," the systems can trap or frustrate novice users. For this reason, the techniques of human factors engineering can help. A human factors study of the task and the terms and constructs people normally use to describe it can be used to restrict the subset of natural language in an appropriate way, based on empirical observation. Human factors study can also identify tasks for which natural language input is good or bad. Although future research in natural language offers the hope of human-computer communication that is so natural it is "just like talking to a person," such conversation may not always be the most effective way of commanding a machine. It is often more verbose and less precise than computer languages. In settings such as surgery, air traffic control, and emergency vehicle dispatching, people have evolved terse, highly formatted languages, similar to computer languages, for communicating with other people. For a frequent user, the effort of learning such an artificial language is outweighed by its conciseness and precision, and it is often preferable to natural language. Direct Manipulation In a graphical or direct manipulation style of user interface (GUI), a set of objects is presented on a screen, and the user has a repertoire of manipulations that can be performed on any of them. This means that the user has no command language to remember beyond the standard set of manipulations, few cognitive changes of mode, and a reminder of the available objects and their states shown continuously on the display. Examples of this approach include painting programs, spreadsheets, manufacturing or process control systems that show a schematic diagram of the plant, air traffic control systems, some educational and flight simulations, video games, and the Xerox Star desktop and its descendants (Macintosh, Windows, and various X Window file managers). By pointing at objects and actions, users can rapidly carry out tasks, immediately observe the results, and, if necessary, reverse the action. Keyboard entry of commands or menu choices is replaced by cursor motion devices, such as a lightpen, joystick, touchscreen, trackball, or mouse, to select from a visible set of objects and actions. Direct manipulation is appealing to novices, is easy to remember for intermittent users, encourages exploration, and, with careful design, can be rapid for power users. The key difficulty in designing such interfaces is to find suitable manipulable graphical representations or visual metaphors for the objects of the problem domain, such as the desktop and filing cabinet. A principal drawback of direct manipulation is that it is often difficult to create scripts or parameterized programs in such an inherently dynamic and ephemeral language. In a well-designed direct manipulation interface, the user's input actions should be as close as possible to the user's thoughts that motivated those actions; the gap between the user's intentions and the actions necessary to input them into the computer should be reduced. The goal is to build on the equipment and skills humans have acquired through evolution and experience and exploit these for communicating with the computer. Direct manipulation interfaces have enjoyed great success, particularly with new users, largely because they draw on analogies to existing human skills (pointing, grabbing, moving objects in space), rather than trained behaviors. the question is I need a software example for every style??Explanation / Answer
USER INTERFACES
For articles on related subjects, see HUMAN FACTORS IN COMPUTING SYSTEMS;INTERACTIVE INPUT DEVICES; INTERACTIVE SYSTEM; and WINDOW ENVIRONMENTS.A user interface is that portion of an interactive computer system that communicates withthe user. Design of the user interface includes any aspect of the system that is visible to theuser. Once, all computer user were specialists in computing, and interfaces consisted of jumperwires in patch boards, punched cards prepared offline, and batch printouts. Today a wide rangeof nonspecialists use computers, and keyboards, mice, and graphical displays are the most commoninterface hardware. The user interface is becoming a larger and larger portion of thesoftware in a computer system—and a more important portion, as broader groups of people usecomputers.
As computers become more powerful, the critical bottleneck in applyingcomputer-based systems to solve problems is now more often in the user interface, rather thanthe computer hardware or software.Because the design of the user interface includes anything that is visible to the user, interfacedesign extends deep into the design of the interactive system as a whole. A good userinterface cannot be applied to a system after it is built but must be part of the design processfrom the beginning. Proper design of a user interface can make a substantial difference intraining time, performance speed, error rates, user satisfaction, and the user’s retention ofknowledge of operations over time. The poor designs of the past are giving way to elegant systems.Descriptive taxonomies of users and tasks, predictive models of performance, and explanatorytheories are being developed to guide designers and evaluators. Haphazard and intuitivedevelopment strategies with claims of ‘‘user friendliness’’ are yielding to a more scientific- 2 -approach.
Measurement of learning time, performance, errors, and subjective satisfaction isnow a part of the design process.Design of a User InterfaceDesign of a user interface begins with task analysis—an understanding of the user’sunderlying tasks and the problem domain. The user interface should be designed in terms ofthe user’s terminology and conception of his or her job, rather than the programmer’s. A goodunderstanding of the cognitive and behavioral characteristics of people in general as well as theparticular user population is thus important. Good user interface design works from the user’scapabilities and limitations, not the machine’s; this applies to generic interfaces for largegroups of people as well as to designing special interfaces for users with physical or other disabilities.Knowledge of the nature of the user’s work and environment is also critical. The taskto be performed can then be divided and portions assigned to the user or machine, based onknowledge of the capabilities and limitations of each.Levels of DesignIt is useful to consider the user interface at several distinct levels of abstraction and todevelop a design and implementation for each. This simplifies the developer’s task by allowingit to be divided into several smaller problems. The design of a user interface is oftendivided into the conceptual, semantic, syntactic, and lexical levels. The conceptual leveldescribes the basic entities underlying the user’s view of the system and the actions possibleupon them. The semantic level describes the functions performed by the system. Thiscorresponds to a description of the functional requirements of the system, but it does notaddress how the user will invoke the functions. The syntactic level describes the sequences ofinputs and outputs necessary to invoke the functions described. The lexical level determineshow the inputs and outputs are actually formed from primitive hardware operations.- 3 -The syntactic-semantic object-action model is a related approach; it, too, separates thetask and computer concepts (i.e., the semantics in the previous paragraph) from the syntax forcarrying out the task. For example, the task of writing a scientific journal article can be decomposedinto the sub-tasks for writing the title page, the body, and the references. Similarly, thetitle page might be decomposed into a unique title, one or more authors, an abstract, andseveral keywords. To write a scientific article, the user must understand these task semantics.
To use a word processor, the user must learn about computer semantics, such as directories,filenames, files, and the structure of a file. Finally, the user must learn the syntax of the commandsfor opening a file, inserting text, editing, and saving or printing the file. Novices oftenstruggle to learn how to carry out their tasks on the computer and to remember the syntacticdetails. Once learned, the task and computer semantics are relatively stable in human memory,but the syntactic details must be frequently rehearsed. A knowledgeable user of one word processorwho wishes to learn a second one only needs to learn the new syntactic details.User Interface Management SystemsA user interface management system (UIMS) is a software component that is separatefrom the application program that performs the underlying task. The UIMS conducts theinteraction with the user, implementing the syntactic and lexical levels, while the rest of thesystem implements the semantic level. Like an operating system or graphics library, a UIMSseparates functions used by many applications and moves them to a shared subsystem. It centralizesimplementation of the user interface and permits some of the effort of designing toolsfor user interfaces to be amortized over many applications and shared by them. It alsoencourages consistent ‘‘look and feel’’ in user interfaces to different systems, since they sharethe user interface component.
A UIMS also supports the concept of dialogue independence,where changes can be made to the interface design (the user-computer dialogue) without affectingthe application code. This supports the development of alternative user interfaces for the- 4 -same application (semantics), which facilitates both iterative refinement of the interface throughprototyping and testing and, in the future, alternative interfaces for users of different physicalor other disabilities. A UIMS requires a language or method for specifying user interfaces precisely;this also allows the interface designer to describe and study a variety of possible userinterfaces before building any. UIMSs are emerging as powerful tools that not only reducedevelopment effort, but also encourage exploratory prototyping.
Syntactic Level Design: Interaction StylesThe principal classes of user interfaces currently in use are command languages, menus,forms, natural language, direct manipulation, virtual reality, and combinations of these. Eachinteraction style has its merits for particular user communities or sets of tasks. Choosing a styleor a combination of styles is a key step, but within each there are numerous minute decisionsthat determine the efficacy of the resulting system.Command LanguageCommand language user interfaces use artificial languages, much like programminglanguages. They are concise and unambiguous, but they are often difficult for a novice to learnand remember. However, since they usually permit a user to combine constructs in new andcomplex ways, they can be more powerful for advanced users. For them, command languagesprovide a strong feeling that they are in charge and that they are taking the initiative ratherthan responding to the computer.
Command language users must learn the syntax, but they canoften express complex possibilities rapidly, without having to read distracting prompts. However,error rates are typically high, training is necessary, and retention may be poor. Error messagesand on-line assistance are difficult to provide because of the diversity of possibilities andthe complexity of relating tasks to computer concepts and syntax. Command languages andlengthier query or programming languages are the domain of the expert frequent users (power- 5 -users), who often derive satisfaction from mastering a complex set of concepts and syntax.Command language interfaces are also the style most amenable to programming, that is, writingprograms or scripts of user input commands.