July 1982 - Vol. 25 No. 7
Features
Controlling the complexity of menu networks
A common approach to the design of user interfaces for computer systems is the menu selection technique. Each menu frame can be considered a node in an information/action network. The set of nodes and the permissible transitions between them (menu selections) form a directed graph which, in a system of substantial size, can be large and enormously complex. The solution to this problem of unmanageable complexity is the same for menu networks as for programs: the disciplined use of a set of well-defined one-in-one-out structures. This paper defines a set of such structures and offers some guidelines for their use.
Subprogram packages are groups of related subroutines used to extend the available facilities in a programming system. The results of developing several such packages for various applications are presented, with a distinction made between external and internal design criteria— what properties packages should offer to their users and the guidelines designers should follow in order to provide them. An important issue, the design of reusable software, is thus addressed, and the concept of abstract data types proposed as a desirable solution.
Authoring systems in computer based education
The idea of a programming system which generates other programs (referred to as automatic programming or metasoftware) has always been a popular one in computer science. Despite the interest, however, few such systems have actually been inplemented and used. An exception is the development and use of authoring systems in the domain of Computer Based Education (CBE). This article surveys the development and characteristics of authoring systems.
On the inevitable intertwining of specification and implementation
Contrary to recent claims that specification should be completed before implementation begins, this paper presents two arguments that the two processes must be intertwined. First, limitations of available implementation technology may force a specification change. For example, deciding to implement a stack as an array (rather than as a linked list) may impose a fixed limit on the depth of the stack. Second, implementation choices may suggest augmentations to the original specification. For example, deciding to use an existing pattern-match routine to implement the search command in an editor may lead to incorporating some of the routine's features into the specification, such as the ability to include wild cards in the search key. This paper elaborates these points and illustrates how they arise in the specification of a controller for a package router.
The impact of scanners on employment in supermarkets
A brief review is given of the early estimates of the rate at which scanners would be installed in supermarkets and the resulting labor and consumer responses. The actual situation in 1979 is then discussed and detailed labor savings achieved by one supermarket chain are given. A fully scanner-equipped supermarket is estimated to have a 5 percent lower labor requirement than an unautomated store with the same volume. It is projected that 50 percent of the 23,000 large supermarkets will install scanners by 1984 with the remainder doing so by 1988. At full penetration, scanners will reduce total industry employment by approximately 50,000. Few actual layoffs will occur because of the high turnover in the industry. Furthermore, the stores that install scanners may attract customers from nonautomated stores leaving those stores to handle the job losses.
Programmers use slices when debugging
Computer programmers break apart large programs into smaller coherent pieces. Each of these pieces: functions, subroutines, modules, or abstract datatypes, is usually a contiguous piece of program text. The experiment reported here shows that programmers also routinely break programs into one kind of coherent piece which is not coniguous. When debugging unfamiliar programs programmers use program pieces called slices which are sets of statements related by their flow of data. The statements in a slice are not necessarily textually contiguous, but may be scattered through a program.
This paper consists of three interrelated parts. In the first part forms are intoduced as an abstraction and generalization of business paper forms. A set of facilities for the manipulation of forms and their contents is outlined. Forms can be created, stored, found, viewed in different media, mailed, and located by office workers. Data on forms can also be processed in a completely integrated way. The facilities are discussed both abstractly and in relation to a prototype system. In the second part a facility is outlined for the specification and implementation of automatic form procedures. These procedures specify actions on forms which are triggered automatically when certain preconditions are met. The preconditions, actions, and specification method are based on forms. The discussion is centered on our implementation of such a specification framework. Finally, in the third part, techniques for the analysis of office flow are specified. An algorithm is outlined for the categorization of forms into classes depending on the local routing and actions on the forms. In this way, we can obtain the paths that forms take and analyze the system for correctness and loading characteristics.
Searching in a dynamic memory with fast sequential access
This communication presents an algorithm for searching in the Aho-Ullman dynamic memory consisting of (2m - 1) cells. Mean search time of 1.5m steps to the first specified record is obtained with a subsequent sequential access capability. Thus, in such a dynamic memory, the mean access time for content addressing is the same as the mean access time for random addressing.
Estimating block accesses and number of records in file management
We consider the problems of estimating the number of secondary storage blocks and the number of distinct records accessed when a transaction consisting of possibly duplicate requested records is presented to a file management system. Our main results include (1) a new formula for block access estimation for the case where the requested records may have duplications and their ordering in immaterial and (2) a simple formula for estimating the number of distinct records in the transaction.