throbber
COMPUTING
`PRACTICES
`
`Controlling the Complexity of Menu
`Networks
`
`James W. Brown
`Jet Propulsion Laboratory
`
`1. Introduction
`There are many techniques com-
`monly used for communication be-
`tween humans and computer sys-
`tems. They vary widely in their ease
`of learning and use, and their general
`applicability. One technique for hu-
`man-computer interaction is menu
`selection. It makes the most of the
`computer's ability to find and display
`large quantities of information rap-
`idly and the human's ability to make
`decisions in the context of a specific
`problem. It also recognizes the slow-
`ness of the input channel, i.e., fingers
`typing (or hunt and pecking) on a
`keyboard.
`2. Menu Networks
`The menu selection technique
`presents the user with a sequence of
`"frames" or "pages," each contain-
`ing some text and a list of options.
`The text offers information to the
`user, and the options allow the user
`to choose what to do or where to go
`
`CR Categories and Subject Descriptors: H. 1.2
`[Models and Principles]: User/Machine Sys-
`tems_human factors; H.3.3 [Information Stor-
`age and Retrieval[: Information Search and
`Retrieval-query formulation; H.3.5 [Informa-
`tion Storage and Retrieval]: On-Line Infor-
`mation Services.
`General Terms: Design, Human Factors.
`Additional Key Words and Phrases: Menu
`systems, graphs, networks, structured design
`tools.
`This paper presents the results of one phase
`of research conducted at the Jet Propulsion
`Laboratory, California Institute of Technol-
`ogy, under Contract NAS7-100, sponsored by
`the Information Systems Office of the Na-
`tional Aeronautics and Space Administration,
`Office of Space Science and Applications.
`Author's present address: J.W. Brown, Jet
`Propulsion Laboratory, California Institute of
`Technology, 4800 Oak Grove Drive, Pasa-
`dena, CA 91109.
`© 1982 ACM 0001-0782/82/0700-0412 75¢.
`412
`
`SUMMARY: A common approach to the design of user inter-
`faces 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 transi-
`tions 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 unman-
`ageable 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.
`
`next, from a limited set of possibili-
`ties. The user indicates a choice by
`typing a single character, pointing,
`or other techniques [4]. The selection
`made determines which frame will
`be displayed next.
`Since each frame has several op-
`tions linking it to other frames, a
`frame can be thought of as a node in
`a network or graph, and the option
`links then correspond to "arcs" or
`"edges." Moreover, since the option
`selection represents a one-way tran-
`sition from one node to the next, the
`menu
`system
`(the collection of
`frames and option links) forms a di-
`rected graph.
`Menu
`systems are commonly
`used for two purposes: controlling
`the actions of computer applications
`systems and presenting information.
`
`In the illustrations we have taken some
`liberties with the graph-theoretic notion of an
`arc, several arcs having been combined into
`one with the joining dot notation.
`Communications
`of
`the ACM
`
`Systems of the former type typically
`contain tens or hundreds of frames,
`with the latter possibly containing
`tens of thousands [7, 8]. If the links
`between frames allow for great rich-
`ness of interconnection, the resulting
`graph can become so complex that
`understanding or modification be-
`comes virtually impossible.
`Such a situation is analogous to
`the unmanageable complexity which
`can occur with a large computer pro-
`gram containing many multiway
`branches; e.g., a program whose con-
`trol flow consists of a hundred to ten
`thousand computed ~OTOS, each
`with six to eight destinations, all in-
`terconnected, apparently at random.
`This kind of disaster has been
`averted by several modern
`tech-
`niques, especially top-down struc-
`tured programming.
`In fact,
`that
`technique suggests a useful approach
`to the design of menu networks,
`which can be called "structured
`subgraphs."
`July 1982
`Volume 25
`Number 7
`
`SKYHAWKE Ex. 1023, page 1
`
`

`

`-~.j
`-
`,,,.J
`CONCATENATION (SEQUENCE)
`
`SELECTION (IF - THEN - ELSE)
`
`third form, iteration, is the strangest.
`It is hard to imagine many uses for
`such a structure in a menu system.
`Soon we shall see that the value of
`the basic structures lies in using them
`as
`templates for combining more
`complex structures.
`4. Extended Structures
`As in structured programming,
`the basic structures are rather confin-
`ing, and so we look for useful ways
`to generalize them. Figure 2 illus-
`trates three generalizations which are
`very useful in real applications. The
`
`proach can be observed throughout
`a network which provides shortcuts
`for experienced users. It is also useful
`for implementing other kinds of op-
`tional side paths.
`The second extended structure,
`the "one-of-N," is the most common
`in most systems. It is the basis for the
`term "menu selection" and, as we
`shall see, generalizes into a tree struc-
`ture, which is a very common form
`of a menu network.
`The
`third extended
`structure,
`"M-of-N," is less commonly seen but
`is very useful. It permits the user to
`pick any number of entries (includ-
`ing zero) from a list, in any order.
`This is very important in applica-
`tions with no obvious, natural order
`for presenting things. In such cases
`each user needs the freedom to make
`decisions in the order that seems ap-
`propriate at the time, given the user's
`specific knowledge, background, and
`orientation with respect to the prob-
`lem at hand.
`5. HELP Facilities
`Menu systems are typically used
`in applications with little or no user
`training involved. A very well-de-
`signed menu network would be com-
`pletely self-teaching, unambiguous,
`
`OPTION (IF- THEN)
`
`1 OF N (CASE)
`
`ITERATION (DO - WHILE)
`Fig. 1. Basic Structured Subgraphs.
`
`3. Basic Structures
`Following the example of struc-
`tured programming, we define a
`basic set of one-in-one-out elemen-
`tary graphs, which can be used as
`building blocks to form arbitrarily
`large networks. Like the control-flow
`graph of a structured program, any
`network constructed by appropriate
`concatenation or nesting of these
`structures will be representable as a
`planar graph. In yet another analogy
`to structured programming, we find
`that three basic structures, equivalent
`to sequence, selection, and iteration,
`are sufficient to deal with a wide
`variety of applications, but some or-
`derly extensions
`to
`these provide
`much greater convenience and clar-
`ity.
`Figure l presents the three basic
`structures. The terms in parentheses
`relate the structures to commonly
`used programming constructs. We
`see that these do not represent very
`interesting or useful cases in the con-
`text of menu systems. The first, con-
`catenation, simply
`leads
`the user
`from one frame to the next without
`the necessity or opportunity of mak-
`ing any decision. The two frames
`could have been combined into one.
`The second structure, selection, al-
`lows the user a choice between two
`options. This is useful in some in-
`stances, but rather restrictive. The
`413
`
`M OF N
`(o_<M_< N)
`Fig. 2. Extended Structured Subgraphs.
`
`(CASE + WI.flLE)
`
`HELP (CALL- RETUI~I)
`
`first is a modification of IF-THEN-
`ELSE having a null ELSE-branch. This
`is commonly the entry point to any
`kind of menu network. The first
`frame asks, "Do you know how to
`use
`the system, or do you need
`help?"
`The second frame (the THEN-
`branch) provides an explanation of
`how to use the system and proceeds
`back (without the need for user ac-
`tion) to the "main-line." This ap-
`Communications
`of
`the ACM
`
`PREVIEW HELP
`Fig. 3. HELP Structures.
`
`July 1982
`Volume 25
`Number 7
`
`SKYHAWKE Ex. 1023, page 2
`
`

`

`COMPUTING
`PRACTICES
`
`and surprise-free. It may be possible
`to approach this ideal in application
`areas whose underlying subject mat-
`ter has a well-defined and well-
`known structure, and the wording of
`the menu frames and options is care-
`fully polished by incorporating feed-
`back from many users over a long
`period of time. However, this degree
`of refinement cannot be achieved in
`many cases, and so it is necessary to
`provide HELP facilities which can be
`invoked when a user becomes con-
`fused.
`Figure 3 illustrates one approach
`to providing such a facility. The help
`option is not explicitly included in
`the main frame's option list, but is
`invoked instead by some special,
`global mechanism. This mechanism
`may involve keying in "HELP", a "?",
`or simply "H", or pressing a special
`HELP key on terminals so equipped.
`This simple mechanism can only in-
`voke a single help frame from any
`given main frame, although the help
`frame itself may generalize to a help
`network.
`An extension of this technique is
`"preview help." This associates a dif-
`ferent help frame with each option
`on the main frame. If an option is
`selected by entering a corresponding
`digit or letter, the help frame for that
`option can be selected by preceding
`or following the selection character
`with a question mark. Preview help
`is useful when a user does not un-
`derstand the implications of making
`a particular selection and is afraid to
`"leap" before looking. The user can
`ask for clarification about any or all
`options before selecting one.
`What is important to note about
`these help structures is that they are
`analogous to subroutine calls. They
`always return
`to the place from
`which they were called. No special
`action from the user, beyond perhaps
`indicating "ready," should be re-
`quired to cause the return.
`414
`
`In order to keep drawings of the
`graphs uncluttered, help
`frames
`should not normally be included ex-
`plicitly in the drawings. In practice,
`a well-designed network would in-
`clude both types of help structures at
`every decision node where confusion
`might possibly arise. Single frames
`for each help node are usually best.
`Expanding a help node into a more
`complex subnetwork runs the risk of
`causing the user to forget why help
`was requested in the first place or
`that the current context is a help
`network rather
`than
`the "main"
`one.
`
`6. Building Composite
`Structures
`As in top-down structured pro-
`gramming, large networks can be
`constructed by combining the basic
`structures in two ways: nesting and
`
`concatenation. These are illustrated
`in Figure 4. Nesting is performed by
`replacing any single-exit node with a
`one-in-one-out structure. Concate-
`nation simply connects the outgoing
`"half-arc" of one structure with the
`incoming half-arc of another. Where
`arcs join at joining dots, they can be
`redrawn to terminate properly on
`frame nodes. This appears to destroy
`the one-in-one-out property, but it
`actually does not. An alternative
`would be to define the joining dots
`as null nodes and keep them in the
`graph. This is simply a matter of the
`convenience of external representa-
`tion versus mathematical rigor. The
`representation can be chosen to suit
`the purpose.
`If the concatenation is done with-
`out crossing any lines, the graph al-
`ways remains planar and well-struc-
`tured. How important this is remains
`to be determined.
`
`Fig. 4. Building Composite Structures.
`Communications
`of
`the ACM
`
`July 1982
`Volume 25
`Number 7
`
`SKYHAWKE Ex. 1023, page 3
`
`

`

`Figure 5. However, it is greatly dif-
`ferent, both topologically and psy-
`chologically. It extends uniformly to
`any N, without becoming nonplanar.
`It is used to allow the user to choose
`many or all of the N selections with-
`out returning to the precedent node.
`Its successful use necessitates that the
`list of selections be either short and
`simple enough for the user to keep
`in short-term memory (since it will
`not be seen again) or sufficiently reg-
`ular so individual items do not have
`to be remembered (e.g., the months
`of the year). It also requires that the
`user know
`in advance something
`about the local topology, and that
`each of the N selectable nodes be
`simple and nonconfusing.
`The "next" option appears to be
`appropriate only with the
`l-of-N
`structure. It can be generalized to the
`"circular next" at the cost of intro-
`ducing a minor local nonplanarity.
`This does not appear to be too trou-
`blesome as long as the user is able to
`cope with the "next" concept in the
`first place.
`8.
`Is the GOTO Harmful?
`In considering the GOTO state-
`ment, we perhaps come to a place
`where the analogy between menu
`networks and computer programs
`weakens. A branch implies a deci-
`sion, and in a menu network the
`decision-maker is a human being.
`The human user is present precisely
`because the decisions required can-
`not be preprogrammed. On the other
`hand, the user has a very limited
`ability
`to comprehend
`the static
`structure of an entire large network,
`whereas the computer can do so with
`ease. None of this tells us whether it
`is safe or desirable to use GOTO, only
`that the lessons learned in program-
`ming [2] may need to be modified.
`We should note that there are
`two types of GOTO in a menu system:
`a static or preprogrammed path in
`the network which violates the basic
`structuring rules, and a dynamic
`jump which a user may wish to con-
`struct from any node to any other.
`The first may be likened to an ex-
`press highway allowing a large vol-
`ume of traffic to bypass the local
`Communications
`of
`the ACM
`
`Fig. 5. A Nonstruetured Planar Subgraph.
`
`7. Noncanonical Forms
`At this point one might well ask
`whether the structures and opera-
`tions described above are sufficient
`for all interesting applications. In the
`case of programming,
`the answer
`would be a fairly emphatic yes (al-
`though with certain applications one
`must add provisions for dealing with
`interrupts and concurrent processes).
`In the case of menu systems, the
`answer might be no. There is at least
`one type of commonly encountered
`network, which is known to be useful
`although highly nonplanar. This is
`the cross-linked, multiple-tree struc-
`ture often seen in multiply-indexed
`library databases, organization/per-
`son/task networks, and elsewhere.
`An important question is whether
`organizing information into network
`structures which seem "natural," al-
`though not "structured" in the sense
`defined above, leads to problems of
`unmanageable complexity when the
`networks become large. Our initial
`experience, discussed below, indi-
`cates that it may.
`What are some other possibly
`useful forms? The subgraph in Fig-
`ure 5 is simple-looking, planar, one-
`in-one-out, but note that it cannot be
`extended to more (or less) than three
`selection nodes without destroying
`some of its properties. (Observe that
`the 1-of-N and M-of-N
`structures
`extend uniformly for any N greater
`than zero.) A fourth selection node,
`with an arc leading from the existing
`center node, cannot be added with-
`out making
`the result nonplanar.
`Would such a structure be useful in
`a real menu system? Perhaps, but it
`might also be a warning signal that
`some redesign is in order.
`Figure 6 presents a structure that,
`at first glance, seems the same as
`415
`
`road network, or to a direct trunk
`group bypassing the basic hierarchy
`of a telephone network. The second
`type is more akin to teleportation,
`allowing the user to arrive instantly
`at any desired destination without
`having to pass the places between the
`jump-off point and the destination.
`Direct
`paths
`are
`commonly
`found in the kinds of networks men-
`tioned above, and they seem to be
`useful and manageable. Both the
`highway network and the telephone
`network are larger than any menu
`network we are soon likely to see, yet
`users can navigate them with ease.
`Maintaining and modifying them re-
`quire massive efforts, but these ef-
`forts do not grow disproportionately
`with the size of the networks.
`Conversely, the phenomenon of
`users becoming lost or disoriented in
`menu systems is common enough
`[7], except perhaps
`in networks
`which are simple trees. Without a
`great deal of difficult experimenta-
`tion 2, it is impossible to relate the
`likelihood of getting lost with any
`measure of network complexity :~.
`
`[5] outlines some directions such exper-
`imentation might take.
`:~ [1] discusses the relative merits of sev-
`eral complexity measures.
`
`I OF N WITH NEXT
`
`1 OF N WITH CIRCULAIt NEXT
`Fig. 6. The "Next" Option.
`
`July 1982
`Volume 25
`Number 7
`
`SKYHAWKE Ex. 1023, page 4
`
`

`

`COMPUTING
`PRACTICES
`
`9. Implementation Experience
`The ideas described above were
`developed in the course of designing
`the menu-driven user interface for
`the NASA Oceanic Pilot System.
`This system is a pilot project in-
`tended to demonstrate techniques for
`providing convenient, rapid access to
`large volumes of satellite-derived
`data for the oceanographic research
`community. One of the requirements
`for the system is that infrequent,
`nonexpert users be able to easily use
`it. For this reason the menu selection
`technique was chosen as the primary
`user interface. Command language
`and OBMS query language interfaces
`supplement the menu interface for
`expert users.
`The menu interface allows access
`to the following basic system capa-
`bilities:
`(1) A bibliography of ocean remote
`sensing literature;
`(2) A directory of available data
`sets, consisting of high-level
`"abstracts" and availability in-
`formation;
`(3) A detailed inventory of avail-
`able data, including temporal
`and spatial location and access
`information;
`(4) Extraction
`of user-specified
`subsets of the archival data sets;
`(5) Formatting of extracted data
`into a variety of output prod-
`ucts, such as tabulations, plots,
`maps, magnetic tapes, and disk
`files;
`(6) Support functions such as sav-
`ing and retrieving request spec-
`ifications and files, status mon-
`itoring, accounting, etc.
`In addition,
`the menu system in-
`cludes a self-teaching option for new
`users. This feature guides the user
`through the various capabilities of
`the menu processor itself and pro-
`vides brief overviews of the various
`system capabilities.
`416
`
`A prototype menu network was
`initially designed and implemented
`with the designers' view of a typical
`use scenario in mind. The prototype
`network consisted of about 50 nodes,
`organized without
`regard
`to
`the
`structuring ideas described above.
`When the prototype was exposed to
`trial users, who were in fact more
`knowledgeable about
`the system
`than real users were expected to be,
`several important points quickly be-
`came evident. First, users can easily
`get lost in even a relatively small
`network. Second, users demand
`more flexibility in the order in which
`they specify or receive information
`than designers are likely to think
`necessary. Third, modifying an un-
`structured network, even if small, is
`unacceptably difficult.
`These observations
`led
`to the
`conclusion that a more disciplined
`methodology would be needed for
`the real network. The author's ex-
`perience with top-down structured
`programming led naturally to the
`ideas discussed in this paper. A re-
`view of the literature on human fac-
`tors in computer systems, starting
`with [6], indicated
`that no other
`work had been done in this area.
`Therefore, the concepts presented
`here may be considered tentative
`first steps in this direction.
`Although our prototype menu
`network proved imperfect, the results
`of our application were encouraging.
`The version of the network delivered
`for initial operational use is nearly
`an order of magnitude larger than
`the prototype, as illustrated in Table
`
`I. It has undergone several modifi-
`cations as features were added or
`relocated, but all changes have been
`made smoothly. Users still get lost
`occasionally, but not as frequently as
`in
`the prototype. It is not clear,
`though, that the structuring was re-
`sponsible for the latter effect, since
`considerable effort also went into
`polishing the wording of those menu
`frames which caused confusion.
`One area of the implementation
`which remains unsatisfactory is the
`bibliography. The initial version pro-
`vides access only by subject and is
`organized as a basic tree with limited
`cross-indexing added. The effort re-
`quired to organize the references into
`a hierarchy of subject categories and
`then implement the access frames
`was substantial. In addition, users
`sometimes want access by author,
`institution, title, report type, project,
`sensor, and key word. Creating ac-
`cess trees for each of these categories
`is a formidable task and still would
`not always provide the kinds of mul-
`tiple selectors which users desire.
`As a result, we plan to redesign
`the bibliography as a relational data-
`base, using the menu system to help
`users build queries. This is expected
`to yield much more flexible and se-
`lective access for users, while sub-
`stantially reducing the effort of add-
`ing new entries to the database.
`10. Design Aids
`The initial version of the frame
`network was developed manually,
`assisted by a single program which
`analyzes the network and produces
`
`I
`Table I. Oceanic Pilot System Menu Network~lnitial Version.
`Category
`Number of
`non-HELP Frames
`
`Bibliography
`access paths
`citations
`Data set directory
`access paths
`citations
`Data inventory and extraction
`Output product specification
`Support (request manipulation, file saving, etc.)
`Tutorial
`Total
`72 frames invoke 67 programs as subprocesses.
`
`50
`203
`17
`10
`37
`34
`21
`20
`392
`
`Communications
`of
`the ACM
`
`July 1982
`Volume 25
`Number 7
`
`Number of
`HELP Frames
`1
`
`1
`
`13
`12
`21
`3
`51
`
`SKYHAWKE Ex. 1023, page 5
`
`

`

`Oceanic P i l o t S~stem Menu Network
`
`DO S P e c i f ~ _ P l a t f o r m _ s e n s o r _ P a r a m e t e r s _ o f _ i n t e r e s t . . . . . . . . . . .
`
`95 SECTION C o n s t r u c t _ a _ r e a u e s t
`96
`LOOP u n t i l case 6 o r 7 i s s e l e c t e d
`97
`'You w i l l g e t a chance t o r e v i e w and modif~ ~our r e e u e s t '
`You can r e t u r n t o t h i s P a g e a s '
`98
`' b e f o r e e x e c u t i n g i t .
`99
`" o f t e n as necessar~ t o complete i t . '
`100
`SELECT menu o p t i o n :
`101
`CASE 1:
`102
`DO S P e c i f , _ r e g i o n _ o f _ i n t e r e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`103
`CASE 2t
`104
`DO S P e c i f , _ t i m e _ s P a n _ o f _ i n t e r e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`105
`CASE 3:
`106
`
`107
`CASE 4:
`108
`DO S P e c i f ~ _ P r o c e s s i n g _ l e v e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`109
`CASE 5:
`110
`DO Check_comPleteness_of_reeuest . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`111
`CASE 6¢
`112
`DO C o n s t r u c t _ o u t p u t _ P r o d u c t _ r e Q u e s t . . . . . . . . . . . . . . . . . . . . . . . . .
`113
`CASE 7~
`114
`GOTO M o d i f y _ o r _ P r o c e s s _ r e q u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`115
`ENDSELECT
`116
`REPEAT u n t i l case 6 or 7 i s s e l e c t e d
`117 END
`118 SECTION M o d i f ~ - o r _ P r o c e s s _ r e a u e s t
`119
`LOOP u n t i l case 7 i s s e l e c t e d
`120
`CALL Check~request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`121
`PAUSE
`122
`SELECT menu o p t i o n :
`123
`CASE 1:
`124
`DO D i s p l a y _ r e Q u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`125
`CASE 2:
`126
`DO M o d i f y _ r e Q u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`127
`CASE 3:
`128
`DO S a v e _ r e e u e s t _ f o r _ f u t u r e _ u s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`129
`CASE 4:
`130
`DO E x e c u t e _ s a m P l e _ o f _ r e e u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`131
`CASE 5:
`132
`DO E s t i m a t e - c o s t _ f o r _ f u l l _ r e a u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . .
`133
`CASE 6:
`134
`DO E x e c u t e _ f u l l _ r e Q u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`135
`CASE 7:
`t o B e g i n _ r e Q u e s t _ s P e c i f i c a t i o n (Erase and r e s t a r t )
`136
`E×i t
`137
`ENDSELECT
`138
`REPEAT u n t i l case 7 i s s e l e c t e d
`139 END
`
`>( 4)
`
`>(
`
`5)
`
`>( 5)
`
`>( 5)
`
`>( 10)
`
`>( 10)
`
`>( 3)
`
`> ( 2 9 )
`
`>( 19)
`
`>( 19)
`
`> ( 2 1 )
`
`> ( 2 2 )
`
`> ( 2 2 )
`
`> ( 2 2 )
`
`Fig. 7. SDDL Printout of Two Menu Subnetworks.
`
`8 - - C o n s t r u c t a r e e u e s t
`PAGE
`You w i l l get a chance t o r e v i e w and m o d i f y your r e e u e s t b e f o r e e×e c u t i n ~
`i t .
`You can r e t u r n t o t h i s Page as o f t e n as necessar~ t o complete i t .
`1 - S P e c i f ~ r e g i o n o f i n t e r e s t
`2 - S P e c i f ~ time span o f i n t e r e s t
`3 - S P e c i f ~ P l a t f o r m / s e n s o r / P a r a m e t e r ( s ) o f i n t e r e s t
`4 - S P e c i f ~ P r o c e s s i n g l e v e l
`5-Check completeness o f r e q u e s t
`6 - C o n s t r u c t o u t p u t Product r e o u e s t
`7 - M o d i f ~ o r Process r e a u e s t
`(?HELP -BACK +NEXT ~TOP :REFRESH !GRIPE ~TUTOR #GOTO >CMD $LOGOFF)
`SELECT > 7
`
`(Do above s t e p s f i r s t )
`
`100 - - M o d i f ~ or Process r e q u e s t
`PAGE
`NOW CHECKING COMPLETENESS OF YOUR REQUEST...
`REQUEST IS COMPLETE. READY TO PROCEED.
`PRESS <RETURN> TO CONTINUE
`1 - D i s P l a ~ r e a u e s t
`2 - M o d i f ~ r e e u e s t
`3-Save r e e u e s t f o r f u t u r e use
`( r e s u l t s
`4-E>:ecute sample o f r e e u e s t
`5 - E s t i m a t e c o s t f o r f u l l
`r e e u e s t
`6-E×ecute f u l l
`r e a u e s t
`7-Begin r e e u e s t s p e c i f i c a t i o n
`
`( e r a s e and r e s t a r t )
`
`t o t e r m i n a l )
`
`(?HELP -BACK +NEXT ~TOP :REFRESH !GRIPE ~TUTOR fGOTO >CMD SLOGOFF)
`SELECT >
`Fig. 8. Menu Processor Output of Frames Defined in Figure 7.
`
`417
`
`Communications
`of
`the ACM
`
`July 1982
`Volume 25
`Number 7
`
`SKYHAWKE Ex. 1023, page 6
`
`

`

`COMPUTING
`PRACTICES
`
`lists of: frames which invoke subpro-
`cesses, frame titles, frame pointers,
`pointer mismatches,
`spare
`frame
`numbers, and syntactical errors in
`the control information embedded in
`the frames. This sort of tool is essen-
`tial to weed out errors in manually
`created frame networks. Fortunately,
`it is easy to build--ours is less than
`300 lines of code, including com-
`ments.
`Because the network is expected
`to grow substantially, it has become
`necessary to look for more auto-
`mated support for the design and
`introduction of new subnetworks.
`One existing tool that has been used
`for this application is the Software
`Design and Documentation Lan-
`guage
`(SDDL) [3]. This
`is
`a
`"structured
`English"
`processor
`which is usually used for designing
`and describing program code, but
`which lends itself easily to a great
`variety of novel applications. Sample
`frame definitions using SDDL are
`shown in Figure 7, with the corre-
`sponding frames displayed to the
`user depicted in Figure 8. At this
`time, no tool is available to translate
`the SDDL representation into the for-
`mat actually used to drive the menu
`processor. The translation continues
`to be done manually. However, the
`SDDL processor provides enough sup-
`port, in the form of "call trees,"
`cross-references, and diagnostics, to
`eliminate all "topological" errors,
`such as mismatched or hanging
`pointers. The translation required is
`straightforward and can, for exam-
`ple, be automated by the modifica-
`tion of an existing structured Fortran
`preprocessor. Since errors
`intro-
`duced by manual translation are eas-
`ily found and corrected, this addi-
`tional automation does not appear to
`be warranted at this time.
`1 1. Measurement
`Because the system has not, at
`least as of this writing, been released
`to operational users, we have not
`
`418
`
`collected use-related statistics. How-
`ever, the menu processor does pro-
`duce a detailed log of all user inputs,
`with each entry time-stamped to ten
`millisecond resolution. In addition,
`there is an easy-to-use facility which
`allows users to enter comments into
`the log. Such comments are also
`time-stamped and can be analyzed
`in the context of the session history.
`From this log we intend to extract
`such information as: frequency of
`use for each frame and link, distri-
`bution of residence times at each
`frame, use of the dynamic GOTO and
`related commands, use of the HELP
`facility, requests for help when none
`is available (not all frames have HELP
`frames), and use of the user comment
`facility. In addition, we will monitor
`the use of the command language
`interface to determine to what extent
`users migrate from the menu mode
`to the command mode.
`
`12. Conclusions
`Although data is still lacking, the
`following principles for the design of
`menu networks seem reasonable:
`(1)
`If the underlying informa-
`tion has a stable, well-understood,
`and well-known structure, allow the
`network to reflect that structure.
`(2) Lacking such a structure,
`use the principles of top-down struc-
`tured network design described
`above.
`(3)
`If a demand for highly trav-
`elled shortcuts arises (measure it!),
`install direct routes (static GOTOS)
`where
`they are needed. Remove
`those
`that are
`infrequently used.
`Keep track of which links violate the
`structuring canons and always be
`alert to opportunities for eliminating
`some.
`(4) Provide a dynamic GOTO
`mechanism which users can either
`use or ignore. Monitor its use. Install
`static GOTOS for frequently used
`paths.
`(5) Look
`for software
`tools
`(analogous to structured design and
`structured programming languages)
`to aid in the construction, analysis,
`and maintenance of structured net-
`works.
`Communications
`of
`the ACM
`
`Acknowledgments
`A great deal of insight into the
`problems of users "getting lost" in a
`menu network resulted from discus-
`sions with the staff of the ZOG proj-
`ect at Carnegie-Mellon University.
`Also, the highway analogy and the
`"next" operation were inspired by
`ZOG.
`
`References
`1. Baker, A.L., and Zweben, S.H. A com-
`parison of measures of control flow complex-
`ity. Proc. IEEE Third lnternat. Comptr.
`Software and Applications Conf., Chicago,
`Ill., Nov. 6-8, 1979, pp. 695-701. Discusses
`the advantages and limitations of several
`complexity measures for program flow
`graphs.
`2. Dijkstra, E.W. Go to statement consid-
`ered harmful. Comm. ACM 11, 3 (March
`1968), 147-148.
`3. Kleine, H. Software Design and Docu-
`mentation Language. Pub. 77-24, Revision 1,
`NASA, Jet Propulsion Lab., Calif. Inst.
`Tech., Pasadena, Calif., Aug. 1977. Lan-
`guage reference with examples of use. This
`design language processor has been success-
`fully used for a wide variety of design and
`documentation tasks, from high-level func-
`tional design through detailed code design.
`4. Martin, J. Design of Man-Computer Dial-
`ogs. Prentice-Hall, Englewood Cliffs, N. J.,
`1973. A survey and discussion of interactive
`man-machine interface techniques.
`5. Newell, A. Notes for a model of human
`performance in ZOG. Tech. Rep., Dept.
`Comptr. Sci., Carnegie-Mellon Univ., Pitts-
`burgh, Pa., Aug. 1977. An outline and moti-
`vation for an experiment for measuring some
`human performance parameters in the con-
`text of a large-network, rapid-response menu
`system.
`6. Ramsey, H.R., Atwood, M.E., and
`Kirshbaum, P.J. A critically annotated bibli-
`ography of the literature on human factors in
`computer systems. Tech. Rep. SA1-78-070-
`DEN, Sci. Applications, Inc., Englewood,
`Co. (available from Defense Tech. Inform.
`Ctr., Alexandria, Va.). Abstracts and
`critiques of 564 papers selected from an
`initial set of 20,000 citations.
`7. Robertson, G., McCracken, D., and
`Newell, A. The ZOG approach to man-ma-
`chine communication. Tech. Rep. CMU-
`CS-79-148, Carnegie-Mellon Univ., Pitts-
`burgh, Pa., Oct. 1979. Describes a system
`designed for research into the characteristics
`of menu-driven man-machine communica-
`tions. Discusses the importance of large net-
`works and some general issues concerning
`menu se

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket