Download Implementation of a hypertext help system for GLAD
Transcript
800* nclassified ! page ;curiry Classification of this REPORT DOCUMENTATION PAGE Report Security Classification i Markings lb Restrictive 3 Distribution Availability of Report Unclassified Security Classification Authority Approved Declassification/Downgrading Schedule (> Performing Organization Report Number(s) Name t 6b Office Symbol of Performing Organization aval Postgraduate School Address (city, state, ana /JP code) 93943-5000 tonterey, 7a Name 8b Office Symbol unlimited. Naval Postgraduate School Monterev, of Funding/Sponsoring Organization is of Monitoring Organization 7 b Address (city, state, CA Name Monitoring Organization Report Number(s) 52 (If Applicable) for public release; distribution 5 and ZIP code) CA 93943-5000 Procurement Instrument Identification Number 9 (If Applicable) Address (city, state, and ZIP code) Source of Funding Numbers 1 Program Element Number Project No Ti&k No Work Unit Accession 5 Page Count No Title (Include Security Classification) I. JIPLEMENTATION OF A HYPERTEXT HELP SYSTEM FOR GLAD, A GRAPHICS LANGUAGE FOR DATABASE Personal Authors) Yeary, Lon M. la Type of Report Kaster's Thesis 13b Time Covered From To 14 Date of Report (year, month.day) 1 June 1989 63 Supplementary Notation The views expressed in this thesis are those of the author and do not reflect the official plicy or position of the Department of Defense or the U.S. Government. :» Cosati Codes Group eld 1 8 Subject Terms (continue on reverse Abstract (continue on reverse necessary and identify by block number) On-line Help System, Hypertext, Subgroup User > if if Interface, GLAD, ACTOR, Object-Oriented, Graphical Database necessary and identify by block, number This paper explores the design and implementation of a help system for a graphical user interface named LAD (Graphics LAnguage for Database). It examines help system design alternatives. Emphasis is on the nplementation of a hypertext help system for GLAD using the Windows utility GUIDANCE and the objectiented programming language ACTOR. Discussion includes the advantages of hypertext for on-line help /stems. Distribution/Availability of Abstract ) ]X| unclassified/unlimited same 2 as report J ['.a '• Name DTIC users Abstract Security Classification 22b Telephone of Responsible Individual Thomas Wu FORM 1473, 84 MAR 1 Unclassified (Include Area code) (408)646-3391 Prof. C. 83 APR edition may be used until exhausted All other editions are obsolete 22c Office Symbol Code 52Wu security classification of this page Unclassified Approved for public release; distribution is unlimited. Implementation of a Hypertext Help System for GLAD, a Graphics LAnguage for Database by Lon M. Yeary Captain, United States Marine Corps B.S., United States Submitted Naval Academy in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE IN COMPUTER SCIENCE from the NAVAL POSTGRADUATE SCHOOL June 1989 ABSTRACT This paper explores the design and implementation of a help system for a graphical user interface named GLAD system design alternatives. sys:em for GLAD (Graphics Emphasis using the is Windows programming language ACTOR. LAnguage for Database). It examines help on the implementation of a hypertext help utility GUIDANCE and the object-oriented Discussion includes the advantages of hypertext for on-line help systems. in TABLE OF CONTENTS I. II. ID. INTRODUCTION I A. OVERVIEW 1 B. BACKGROUND 1 C. DEVELOPMENT OF GLAD 2 D. MOTIVATION FOR DEVELOPMENT OF A HELP SYSTEM 5 E. ORGANIZATION 5 HELP SYSTEM ALTERNATIVES A. WHAT B. TYPES OF HELP SYSTEMS IS 7 A HELP SYSTEM? 7 9 Dynamic 1. Static versus 2. Multi-level Help System 11 3. System-Initiated Help 12 4. User-Initiated Help 13 5. Screen Options 14 6. Extensibility 16 9 C. HYPERTEXT 16 D. SUMMARY 18 THE GLAD HELP SYSTEM 19 A. DESIGN CONSIDERATIONS 19 B. GLAD DESIGN CHOICES 20 C. GUIDE AND GUIDANCE 24 IV IV. V. GLAD HELP SYSTEM IMPLEMENTATION 29 A. INTEGRATING GLAD AND GUIDANCE 29 B. IMPLEMENTING THE HELP SYSTEM ACCELERATOR KEY C. GLAD HELP ORGANIZATION 36 D. MEMORY MANAGEMENT 42 CONCLUSIONS ... 35 45 A. STRENGTHS AND WEAKNESSES 45 B. FUTURE AREAS OF RESEARCH 47 APPENDIX A - SAMPLE SECTION OF GLADV02.RC 48 APPENDIX B - GLAD INITMENUID METHODS 51 LIST OF REFERENCES INniAL DISTRIBUTION LIST 53 55 LIST OF FIGURES GLAD Window Figure 3.1 Standard Position of Help Figure 3.2 Structure of Guidance Help Figure 3.3 Shape of Guide Buttons Figure 4.1 GLAD Figure 4.2 Guidancelnitialise Routine Figure 4.3 Example Figure 4.4 Guidance Use of Search String Figure 4.5 GladApp Class shouldClose Method 34 Figure 4.6 Demonstration of Expansion Button 37 Figure 4.7 Help Figure 4.8 GLAD Figure 4.9 Example Numbering Used To Minimize User Disorientation Figure 4.10 GLAD Figure 4.11 Example Note Button in System 25 26 Hierarchy GLAD 21 . Methods Window With 32 Utilizing GuidanceSetContext Replica of to 33 Find Context-Sensitive Help ... DML Window 34 39 Index Guideline Help 31 39 Window Menu .... 41 41 43 VI I. A. INTRODUCTION OVERVIEW GLAD (Graphics LAnguage for data manipulation and for Database) is program development with originally proposed in 1985 by Dr. C. Thomas This unified interface Monterey, California. a coherent, graphics-oriented interface Wu is a database (WU, 1989). principal of GLAD information whenever desired was that (WU, the 1989). user was of the Naval Postgraduate School, designed for easy learning and use A while providing a comprehensive visual representation of a database schema. design It should have access This thesis proposes to major additional a context-sensitive help system utilizing hypertext to augment the information available to GLAD users and increase the overall usability of the database interface. B. BACKGROUND In order to world, it is manage the vast amounts of information generated vital that a simple, yet in today's complex powerful database management system be available. Desirable systems would not require a costly database specialist to program every modification. that it A second desirable characteristic of a database management system must be easy-to-leam and use. GLAD desire to develop a theory identifying the best is research has been motivated by the method of graphical user interface for interaction with a database. facility for by was It comparing and many as GLAD methodology could be established. data model, however, widely used abstraction (WU, generalization a database use of a database management holds C. is is interfaces unique in that it believed that as possible, a "best" is not based upon a provides a visual representation of the four most it concepts: aggregation, 1987, p. GLAD schema, graphical WU GLAD. accessing databases that led to the proposal for proposing specific the lack of an easy-to-learn, easy-to-use query association, classification m Through the use of simple visual represe 3). easy to learn and use. We management system. This believe is model of wide-spread critical for this and database for the best potential as an end-user interaction tool. DEVELOPMENT OF GLAD There have been two cycles a rudimentary prototype to see oriented GLAD facility programming and in the development of whether a ACTOR 1 was full GLAD. Version implementation of feasible (WU, 1989). GLAD .01 developed using object- The second cycle of added a data definition component, bitmap display capability, and updated the of the first version. Version .02 has added some classes to increase the functionality of this and future versions. GLAD as a this to be infeasible (Wu, 1989). Originally, plans were made A system compatible with Sun Microsystems' workstation. ACTOR is a Attempts were made to implement registered trademark of The Whitewater Group, to study showed GLAD Inc. develop using C; however, use. it was found were too low-level and very that available routines For example, the code required to display a single (WU, parameters Due 1989). deemed unwieldy. A to interface; therefore, a search was critical to the began for a development and easier method of developing windowing routines. to be capable of rapid prototyping Command, a GLAD running on an bar required ten scroll budget and manpower constraints rapid prototyping tool difficult to this approach was success of this visual which provided tool a quicker This development tool needed and provide extensibility. Naval Data Automation sponsor, imposed the requirement that the system be capable of IBM PC/AT compatible MS-DOS machine. It was also considered desirable to keep the system capable of being ported to other platforms such as Unix and Macintosh. It was felt that features of an object-oriented programming language such as inheritance, encapsulation and polymorphism would best expedient implementation of languages, information on GLAD. ACTOR facilitate the most After exploring Smalltalk and other similar was found. ACTOR appeared to meet most of the requirements specified above. ACTOR is an object-oriented language introduced in 1987 for developing Microsoft Windows (MS-Windows) 2 applications. It is a language that appeals to intuition and does not depend upon the user possessing a wide background in traditional computer science topics (Rowell, 1988, p. 77). MS, In 1988, a GLAD prototype was successfully Microsoft and Windows are trademarks of Microsoft, In' implemented using ACTOR (Williamson, 1988. language to be utilized for the development of p. 32). GLAD. ACTOR Interactive in nature. features several powerful tools that provide a sophisticated for developing Among MS-Windows the tools provided in the for viewing, modifying, a Debugger ACTOR ACTOR as the ACTOR programming environment 1989, p. 3). programming environment are a Browser and creating classes, an Inspector for viewing object structure, debugging for (WU & HSIAO, applications was selected ACTOR and an Editor for simple code, te? ting. allows static and dynamic binding of variables which are useful for rapid prototyping of application software while not compromising the efficiency of the final software product. ACTOR is designed to run within Microsoft compatible personal computer with et al., 1989, desirable, p. An EGA 1). though optional. or VGA VGA memory and EGA GLAD for an IBM a hard disk (Duff, memory was developed using are highly ACTOR on color monitor and a 386 machine with a color monitor. GLAD provides an object-oriented data model which provides a close relationship between the structure of the database the object-oriented to be modeled and the logical entities used within programming environment. six design principles for the development of Provide more information • of color monitor and extra The prototype an AT-compatible machine with an 640K least at Windows on when Wu and Hsiao (1989) have identified GLAD. The program asked. Recover from the unintended or erroneous operation. Perform the same operation in more than one way. should be able to: • Perform logically equivalent operations Display multiple information at the in a consistent same manner. time. Display multiple views of the same information. D. MOTIVATION FOR DEVELOPMENT OF A HELP SYSTEM While it is computer program theoretically possible to develop a designed that no user assistance The philosophy of any information GLAD the ever required, practically speaking, is project that will permit the is that the end-user should maximum should have access to additional information envisioned that user a will be able to obtain assistance environment concerning any operation, term, or process. to research, design proposed by E. Wu and implement a help system which will impossible. have easy access to when requested. from within the The purpose of It is GLAD this thesis is meets the design principles that promote even greater end-user usability for GLAD. ORGANIZATION The remainder of this thesis is system design alternatives. development of the current imposed by the GLAD. It is it Design principle one possible usability. states that the user that is so well GLAD organized as follows. Chapter GLAD III Chapter II discusses help discusses the design decisions help system. It made in the includes a discussion of constraints environment and the decision to incorporate hypertext into Chapter IV discusses the implementation details of the GLAD includes a discussion of the utilization of dynamic link libraries with help system. ACTOR and the incorporation of the hypertext research for GLAD Guidance is a are discussed in system GUIDANCE 3 . Conclusions and future Chapter V. registered trademark of Owl International, Inc. EL A. WHAT A HELP SYSTEM ALTERNATIVES A HELP SYSTEM? IS help system is a program (or several programs) that operation of another, usually, larger program. program that program that 3). The help system can runs concurrently with the larger program or, as is user manual. the user in the either be a separate is more common, completely integrated within the larger application (Kearsley, 1988, Help encompasses a continuum of assistance of available assist commands to on-line to the user, a p. from a memoiy jogger documentation which includes or supplements the Help includes error messages, and detailed explanations of terminology. tutorials to assist in the learning process, Help also includes prompts which guide the user through the available choices within the program. Help for a computer user comes in two basic forms. which includes user manuals and reference guides, or it It can be printed (hard-copy) can be on-line. Tutorials are another form of computer help; they can be printed, on-line or both. advantages and disadvantages to both printed and on-line help. that speed and comprehension from a CRT work and is (Shneiderman. 1987, Research has shown greater using printed materials than p. 360). There are when reading Printed help allows the user to refer to his the help information simultaneously without interrupting the program. On-line help provided in a windowed environment will also provide this capability. On-line help has the advantage of being available any time the program While at the terminal, the user does Additionally, on-line help manual which may be outdated with respect updated with the software; therefore, it is is who know how did not purchase multiple to the software, on-line help more completely replace the printed user manual. to generally current. Unlike a user A is usually likely to be current. Regardless of the advantages of on-line help systems, use to a naive user running. not have to be concerned with locating the manual, and manifold users within an organization will not have copies of documentation. is it is clear that they cannot "perfect" help system would be of no computer on. Instead, an on- to turn the help system can be thought of as a method of enhancing or augmenting the line information available to a program user. on-line help system. It This thesis addresses the development of an will not discuss the need to develop a good user manual for GLAD. Dumas One (1988, p. 50) proposes seven principles for a good interface design. of these design principles is the incorporation of an on-line help facility. A well designed help system contributes to the overall usability of a program by reducing the time it made. takes to complete an on-line function and by reducing the number of errors Jackson and Lefrere (1986), Shneiderman (1987), and Kearsley (1988) all discuss research which confirms the advantages of a well designed on-line help system. Improving the design of the help system will improve its benefit to the user. Improved user performance and user satisfaction can result from having a system integrated into a software program. planned help If only skillfully by providing increased confidence for the user, a help system can be beneficial, speeding the process of familiarization (Jackson and Lafrere, 1986, To be a truly useful, an on-line help manual (Roberts, 1970, p. 547). any confidence the user might have useful if it p. 64). system must be easier and quicker to use than In addition, in it it must be accurate or (Killory, 1987, p. 19). it will destroy On-line help is only capable of providing assistance to a user to derive or debug a plan of is When action (Jackson and Lefrere, 1986, p. 63). users request help, normally they are seeking a specific explanation for an immediate problem. A assume The help system must that a user possesses a specific proficiency level. help system cannot present information commensurate with the user's level of expertise. B. TYPES OF HELP SYSTEMS 1. Static versus Dynamic There are many design alternatives available when developing an on-line help One of system. that is independent of where the user dynamic, were. the first considerations that Static is is is whether the help offered should be in the dependent on where the user is program and any previous static, actions, or and what the user's previous actions help could be thought of as a kind of "on-line glossary of terms" (Kearsley, 1988, p. 14). A list of terms is provided with a brief explanation when a user requests execution, Regardless help. the same information 4 WordPerfect's F3 key user list of whenever appear will an example of a is presented with the same is of the function being performed during program static When F3 help system. command know what term requires further explanation. much user While it is information, unnecessary the is pressed, the sometimes helpful it information that the user becomes lost or distracted. through requested. user may be is in however, the user must every detail to the user searching for a solution to a problem, so is options regardless of where he Static help allows requests for specific terms, the program. help is to provide possible wide * search takes the If the delayed in actual task completion. Dynamic help be developed. that is sensitive to the Dynamic or sequence of user requests or actions can context-sensitive help offers function being performed during program execution. the edit mode available user can be as is would be provided without simple in the For instance, if based on the the user of a program and requests help, an explanation of edit as an explanation program or commands. listing unrelated of an sophisticated, providing detailed information of user assistance error message is it By Dynamic help can be more the increasing the degree of increased. 'WordPerfect is a registered trademark of WordPerfect Corporation. 10 in commands program options based on where the function being performed. context sensitivity, the usefulness of the help or is A powerful form of dynamic help a dialog is between the user and the system. dialog guides the user through the problem providing step-by-step instructions The (Kearsley, 1988, p. Dialog 16). help difficult is develop. to requires It the incorporation of assistance for every possible user action or question into the help system. These help systems require extensive error checking to ensure correct user input. SHERPA, example of a help system developed by ComTrain for a dialog-type help system which uses prompts LOTUS 1-2-3, to assist the user is good a through a series of functions (Kearsley, 1988, p. 35). 2. Multi-level Help System It is clear that providing a not be desirable and complex step-by-step procedure may even slow for every user processing time considerably for the experienced user. Therefore, another design alternative more detailed information for each successive level of help requested. is to provide multiple levels of help, giving increasingly detailed information, successive levels of help qualifiers on use, or descriptions of related commands. MicroPro's WordStar' allow users to initiated. menu WordStar users have of choices on screen at all of a multi-level help system "WordStar is a is set the level In addition to would provide examples, Some programs such of help when the the choice of four levels of help, ranging times to no help prompts displayed. one may as program from is a full Another example that utilizes different terms to request different registered trademark of MicroPro International Corporation 11 levels of help, for example, "Define," "Explain," "Example," or "Limitations" (Kearsley, 1988, p. 17). Having different levels of help available is an attempt to meet the specific needs of various users including the novice, the occasional user needing only a memory aid, as well as the experienced programmer. System-Initiated Help 3. Help requests may be Initiated by the user or by the system. help, usually given as advice or as a suggestion, condition. For example, function, the Some if a user types a system would provide a of list frequently triggered by an error is command all System -initiated inappropriate for the current that is the correct alternative commands. users perceive system-initiated help as an interruption or as a delay in using the program, and necessary in may even consider the messages as "nagging". some systems to prevent users systems where errors could result from making in catastrophic also assists the user by pointing out shortcuts that System-initiated help "fatal errors", especially in consequences. may have System-initiated help previously been unknown. This could prove useful to the novice and experienced user alike. system may be designed to inform the user when he is is For example, the using several operations to accomplish a task which should be incorporated into a single operation. If system-initiated help is utilized, the option of turning p. 20). it it is recommended off or specifying the level of user be given message desired (Kearsley, 1988, Specific messages of highest priority could be 12 that the left on. while allowing the user to turn off advisory messages may that not be pertinent to their use. In order to provide the advantages of system and user-initiated help, a system can be designed which incorporates both. User-Initiated Help 4. User-initiated help can be activated through a variety of means, including typing a help a command, pressing a designated help key, or by selecting a help option from The advantage of menu. of typed input. this method The disadvantage that the help is that the user is may may not remember which key help key unless a method for keeping a reminder on screen command may the the correct syntax of the help command. specific menus with command options command choices. displayed Menu that the is menu is eliminating the The user need the same problem is eliminated if the system is menu-driven does not necessarily imply 13 context-sensitive. that it is will to have the the screen at as designated help help systems allow the user to select from an index of topics. is a help remember to reminded every time he looks Menus have available. the however, the user will have both require the user to specify the topic on which help greater specificity system in Typing utilized. a help option has several advantages. In addition, the user that the help option in area is is allows for complex syntax to be used to take assistance; a Utilizing keys it of needed user to remember be desirable in that be obtained independently effective. is required. The need The fact for that a "In fact, poorly designed menus are one of the most (Dumas, 1988, common problems with application software" p. 60). Menu-driven systems are becoming increasingly popular. MicroPro's WordStar, and Wordperfect Corporation's Wordperfect have menu Aids driven systems. are already on the market. While ease of learning. design, it in converting existing Macintosh's iconic this is primarily a 5. menu system is command released very popular due to movement toward improving remember all , menu-driven programs to use. Commands directly affects help systems available to the user. screen, eliminating the need to proper programs Word 6 Microsoft's the exact syntax of the its -face will be command on or the key. Screen Options Formatting of the capabilities of the operating environment. It it is to large extent, if the help will message a separate screen will appear. if difficult for users to have to switch back a remember what Word is a will be located within the the help screen states to the operating screen (Weiss, 1985). may be dependent upon the Critics of on-line help systems displayed on part of the operating screen, for example available line, be system being used and the constraints of the programming must be determined existing screen or state that screen, at the when Help messages they that are bottom or on the next limited in the depth the help message can display due to limited registered trademark of Microsoft, Inc. 14 space. It also may be desirable, as mentioned information needed to access the help system, located either at the top or the systems Operating windows that i.e., keep on the screen the "F-l = Help". many bitmapped graphics allow information. Some are that excessive usually of the problems in screen formatting. Windowing and the help screen size to if be displayed to utilized will dictate if the overlap each other, potentially blocking part of the other screen, or in is independent The operating system being be moved and adjusted This for support capabilities allow for both the operational screen simultaneously. to bottom of the screen. that can eliminate earlier, windows the will window can allow the user to have access to both sets of of the problems that have been identified in the use of window manipulation may be time consuming and windows distracting, the need for window borders consumes valuable screen space, and small windows with large p. amounts of information may lead to excessive, bothersome scrolling (Galitz, 1989, 99). Another consideration page or scroll should keep in screen formatting through the information in mind that if it is whether the help screen should exceeds the space available. Both methods the user should have to exert minimal effort to go both forward and backward in retrieving information to minimize any delay. 15 6. Extensibility Extensibility can be defined as "the ease with adapted to changes of specifications" (Meyer, keep pace to As the software remain useful. program evolves, The user may also adding more information to the help message to (Kearsley, 1988, p. 23). added to the help A Extensibility 1988, p. 5). The information contained important to the design of a good help system. must be modifiable. which software products may be want is many who help need to to "personalize" the help system, reflect the way the commar used system of preventing inaccurate information from being system must be utilized users very in the the help system will in order to maintain the integrity of the help system. If a user altered an existing help message inaccurately, affect is also utilize the program. to allow additions to the help The proposed it would ultimately solution to this problem system while preventing modifications to the original content of the help system. C. HYPERTEXT Hypertext has been hailed as ideally suited to help systems (Kearsley, 1988, While hypertext has been around upsurge in interest for over it 19). has recently enjoyed an With hypertext, windows on the screen (Conklin, 1987, p. 32). associated with objects in a database. two decades, p. are Links are provided between these objects both graphically and in the database as pointers. selected that will then be further explained. 16 Major terms or control options can be Any term or graphic display can be used to provide further help. transactions boundaries; Hypertext capable of performing "high-speed, branching is on textual chunks" (Conklin, 1987, at same time the interface modality (Conklin, it is a database for various kinds of help information It on-line help system that across traditional way Any uses is. It on hypertext. it automated for high speed, text item can act as a "trigger" and actions (Kearsley, 1988, application with a simple interface so that (Guidance, 1988, a is p. 3). International introduced "Guidance" in 1988. sensitive cuts It method, a representation scheme, and an 1987, p. 33). browsing through information (Guide, 1988, 32). p. 43). p. its simplest level, It is a "read-only Owl, a context- windows can be driven by a host application" p. 5). Although there are many advantages to using hypertext, Conklin (1987) lists these nine as significant: Ease of tracing references. Ease of creating new references. Information structuring. Global views. Customized documents. Modularity of information. Consistency of information. Task stacking. Collaboration. He also identifies lost in the the two major problems document because document. This there is "disorientation in the use of hypertext. not the traditional linear problem" solutions, such as the use of a graphical user can get way of moving through can be corrected through technical browser 17 First, a that can "map" the network that is linked. Secondly, "cognitive overhead" or the additional effort needed tasks at once may become to juggle several However, troublesome with hypertext. a rapid utilizing cross-reference node can ease this problem, as can an instantaneous one to three line window explanation in a pop up Through in as a side reference. the use of hypertext, it is help design alternatives that promote static possible to incorporate maximum usability. and dynamic context-sensitive help on a multi-level many of the concepts Hypertext allows for both basis. It can acce ^cific information needs through the use of major terms which serve as pointers or triggers to elaborate further information. SUMMARY D. Help system design provides several between space, time and functionality. alternatives. Tradeoffs Design decisions needed will be required in creating a help system have been delineated. Major decisions include: dynamic • Utilizing static or • • Making the help system multi-leveled. Making help user or system-initiated. • Selecting screen options. • Incorporating extensibility. • Utilizing hypertext. help. Hypertext appears ideal for the development of a help system. will incorporate the best features of each design alternative. 18 A good help system ID. A. THE GLAD HELP SYSTEM DESIGN CONSIDERATIONS The objective of this project is to develop a help system for within this project are certain constraints. a is IBM PC that Windows is -based application. Windows are and a the use of a is, The design These Second, on GLAD A few examples of these conventions of closing as well. GLAD windows. In addition, a it is common menu is a graphical logical that the Windows help easily facilitates bitmapped graphics. principles for six to run provides certain conventions and capabilities In order to maintain the desired consistency, the presentation of Inherent therefore, logical to develop a help mouse, adjustable windows, common method system provide graphical capabilities system. It the design of a help system. and capabilities presentation 7 Windows-based. which influence interface. program must be able compatible computer as requested by the project sponsors. a Microsoft system First, the GLAD. Glad were established prior to the design of the help design principles must be adhered to in order to keep the help system consistent with GLAD. Previous developers of GLAD Microsoft Windows hereafter referred to as "Windows' 19 have suggested that it Wu should include a context-sensitive help system (Williams, 1988, These suggestions have directed the design of the Another consideration development. A would provide extensibility considered quality in designing this help method of implementing and easy modification. when working on any B. help system. is that the help system One is under which must be The time time. still available for finite. help system were obvious. system for developers of GLAD, GLAD GLAD GLAD First, since must also run is a windows. in certain choices Windows-based application, Second, since previous specified the need for context sensitivity, a capable of sensing the location of the user within the document dynamic help system is preferred. Third, be useful to both the novice and the experienced user, the help system must be multi-leveled, allowing the user to view as The requirement of having in many ways, a design GLAD as infonnation as required. advantage. states Windows environment The Microsoft Windows development its conventions and capabilities. "be able to provide 20 Naturally, GLAD. the help system run within the environment eases design decisions through design principle of much on the same hardware the system has to run is, is was needed which final constraint the above constraints and the design principles for for the help to GLAD GLAD DESIGN CHOICES Given the system project of this nature was the completion of this project GLAD and Hsiao, 1989). The first more information when asked". The Windows programming environment convenient method of incorporating Windows recommends establishes a conventions position for help (Petzold, 1988, p. 361). menu 1988, p.406). Windows F1=HELP box on every menu bar of the left mouse button on «'««. it on the menu Modify Figure 3.1 . . a .- bar as the standard the HELP from other menu selections (Petzold, GLAD, F1=HELP appears in the see Figure 3.1. within the menu standard position enclosed in Help can be accessed by clicking bar from any Open v .-i^^ Remove in 21 of J> GLAD. tf F1=Help Quit a^ M^-^^^aa^j^^ Standard Position of Help window =t: C L R b HMmibtiraitiaraara»imn Programming recommends enclosing ??WW&tt>vr»-.X«VX:C!**MX>T&JSeiK&X3^ I Create a provides simple methods which allow menus to be developed utilizing these conventions. a also It box which separates selection within a help system. this principle into the the right justified position which provides ., GLAD Window :nvarwimi:MUUiiaaiassaaB!& Another convention the Fl key establishment of the A of Window Programmers as the standard keyboard accelerator allows users can also be executed using the mouse. Fl key has been incorporated into perform the same operation in keyboard accelerator to execute a mouse from command the is for access to help. using the keyboard which This convention of accessing help through the GLAD. Design principle more than one way". given two methods to access the help system. the Manual Reference tliree Thus, the He can states "be able to GLAD either select user has been F1=HF ising Help window menu bar or use the keyboard accelerator Fl. the Regardless of the method used to access help, the Fl=Help box flashes on the menu bar to give the user visual feedback that help has been accessed. Using Windows provides screen options It is frustrating when the user longer visible in order to back while remembering overlapping in a window separate is that make the help system more utilitarian. required to switch to a screen where his work no reference the on-line help, only to be required to switch all of the pertinent information just viewed. Losing an allows the user to simultaneously view his work and refer to help window. The user will not have to memorize information before switching to his work screen. This ability to overlap and position a help anywhere on is the screen has been incorporated into the GLAD window help system. The information provided must be neatly formatted and presented in such a manner that each screen explains a complete operation or concept. 22 Forcing the user to scroll unknown amount of information can cause "information through an anxiety" as in continuous scroll help systems. Windows provides GLAD incorporated into the keystroke combination methods standard for clicking on the control-menu or by double-clicking on the control-menu box. window are consistent with windows which have been The help window can be closed with help system. ALT_F4, closing box and selecting close These methods of closing the help Windows-based programs. all the This consistency and adhere to design principles three and four, "perform the same operation flexibility more than one way" and "be in able to perform the logically equivalent operation in a consistent manner." The problem system for ACTOR, then, GLAD. the to incorporate these design conventions amount of code needed could be amounts of time someone study and ACTOR how into a help Consideration was given to writing the entire help system using however, substantial is to In addition, changes generate. re-write the help system code for each would allow graphics unwieldy and require would demand change to GLAD. to be incorporated into the help system; that Using however, this could be difficult unless the graphics were limited to simple geometric figures such as circles and rectangles. The decision was made program designed to to research the incorporation of produce a Windows-based help. be capable of being easily integrated into GLAD. 23 GLAD with an existing This program would have to Consideration was given to using a stand alone help application program called "HELP" produced by R Company would run independently of GLAD, but it C. This was ruled out, because did not allow the use of graphics within the help system. inadequate solution for GLAD's This would provide an easy method of providing textual help for Window-based applications. it (1988). It was considered an help system. GUIDE AND GUIDANCE A second application which was considered and ultimately selected for incorporation into the GLAD read-only help system Windows utility is OWL International's Guidance is a designed to allow users to display help while running a host application under Microsoft Windows. Guidance permits system which meets the design requirements of in files referred to as Guidance (1988). GLAD. the integration of a help Help infonnation is contained Guidelines. These Guidelines can contain both text and bitmapped graphics. Guidelines are created using a program called Guide*. Guide is a general purpose hypertext document generator supplied with Guidance (Guidance Manual, 1988, p 9). Guidance not only furnished a simple means of incorporating into the GLAD GLAD, ACTOR, allows the easy integration of Guidance without excessive coding. a and graphics help system, but also provided the advantages of hypertext. the implementation language of Guide is text reqistered trademark of Owl International, 24 Inc. When accessed, Guidance opens an Index Guideline which of Contents". This Index then connects Secondary Guideline, see Figure to either is similar to a "Table another part of the Index or to a 3.2. GLAD udqt ,w« APPLICATION . . | INDEX GUIDELINE SECONDARY GUIDELINES Structuie of Guidance Help Figure 3.2 Guide furnishes four types of buttons Guidelines: System as a Reference, Expansion, Note and means of accessing information within Command. These blocks which create the help system structure. system which is linked to additional material 25 buttons are the building Information contained within the help is indicated by these buttons. Reference buttons provide a means of linking material within a Guideline or between Guidelines. move This powerful cross-referencing capability allows the user to reference the cursor is indicated by the word or words of the Guideline shown linked to Clicking the is a left reference mouse are button when the cursor See Figure is the cursor changing to in this EXPANSION BUTTONS REFERENCE BUTTONS NOTE BUTTONS COMMAND BUTTONS GUIDE BUTTONS Shape of Guide Buttons 26 Arrow. arrow shape will cause the reference link to be traversed and the additional information to be displayed. Figure 3.3 When Graphics or areas of a graphic which indicated by also linked to a in italics. positioned over a reference, the cursor changes to an arrow. is 3.3 for the cursor shape of reference buttons. are Information which quickly to other areas of the help system. Expansion hierarchically nested. indicated in bold type. to change allow buttons contained information Text within a Guideline which When to a cross hair. infinite revealing left hidden below the button to appear. number of levels. more and more When asterisk. an Expansion button also the information level to level as desired, continually details. to access small pieces of the cursor is supplementary information Text which is positioned over a Note button linked to a note it changes See Figure 3.3 for an example of the shape of the Note button cursor. the cursor is changes to an positioned over a graphic which asterisk. window appears When the user clicks are well suited to an on-line glossary, Command is to an When linked to a Note button, the cursor on a Note button a small overlapping containing the additional information. only as long as the user continues to hold system. is mouse button causes about a topic and are intended for temporary display. underlined. is This information can be nested to an The user can go from Note buttons allow the user is an expansion button is be a user positions the cursor over an expansion button displaying the cross hair, clicking die is to See Figure 3.3 for the cursor shape of an Expansion button. Positioning the cursor over an area of a graphic which which system help Positioning the cursor over this bold type will cause the cursor to a cross hair. changes the cursor the in down the left This window remains mouse button. example fomiulas or short helpful visible Note buttons hints. buttons allow the user to launch other applications from within the help This would be useful if the user wanted to open up a text editor or a 27 spreadsheet to obtain information for entry or modification to a user could also use this feature to open a text editor to jot database he was using in positioned over a shape of Command Command Utilizing GLAD. The cursor changes button. Guidance in to notes about the to a solid black GLAD implement a help system for Microsoft Windows' conventions. hypertext. arrow when Guidance allows the It Windows and furnishes to the is GLAD GLAD has several help sy^ executable file. capabilities through The next chapter incorporating Guidance into the GLAD will discuss help system. 28 the implementation be Guidance able to take full advantage of multi-level other to all of use of to be details of the Guidance also provides functions which allow the help system context-sensitive. A See Figure 3.3 for an example of the cursor expanded or updated without requiring changes designed to run down database. buttons. advantages not previously mentioned. is GLAD GLAD HELP SYSTEM IMPLEMENTATION IV. A. INTEGRATING GLAD AND GUIDANCE Guidance takes advantage of a feature interapplication communication. Data Exchange (DDE). (DLL) Utilizing the Windows environment In essence, it is is GLAD the GLAD is referred to as is enables Dynamic Gydance.exe, a dynamic linked library Dynamic linked libraries are a feature of allow separate applications to dynamically able to file an executable in file. communicate with Guidance through become an extension of executable is the GLAD linked to help only smaller and less modules which need several different applications can share the especially critical in a large integrated of DLLs. Windows Windows which compiled and linked separately also faster because only those ACTOR Microsoft to this are that the application file Most importantly, 59). that allows Guidance to when needed, making link is DLL, Gydance.exe, The advantages The Within Guidance Each module share code. DDE. This feature of or dynalink (Petzold, 1988, p. 805). the Microsoft in at memory program. run tune intensive. to be linked are linked. same resource, which programming environment (Draganza, 1989, is p. provides the library and procedure classes which allow easy integration Gydance.exe furnishes three routines which aLlow These routines GLAD to interface with Guidance. are: Guidancelnitialise. • • GuidanceSetContext. • GuidanceTerminate. As name the Guidance. Once A link to called. requests Guidancelnitialise implies, Guidance must be established through Guidancelnitialise pn help Guidancelnitialise must include the guideline using name o any GuidanceSetContext the of the index guideline. routine. GLAD The is index All files associated with the help system are noted by the file index. gui. is and established this link remains until the GuidanceTerminate routine context-sensitive for GLAD a link between initializes the ".gui" extension. Figure 4.1 shows the Guidance method of object is established. is the GLAD The Guidancelnitialise GladWindow created. This figure indicates where the link to hierarchy. class. Figure 4.2 This method shows the routine is is executed in the InitGuidance executed each time a Glad ACTOR code associated Window with the Guidancelnitialise routine. Notice that prior to executing the Guidancelnitialise routine, GLAD library must create a new Each GLAD window which contains a a user requests help by selecting sent to the appropriate a call to the GLAD and add the three routines provided by Guidance. menu bar provides access to help. "F1=HELP" from the menu bar, a help window. The help method of each window GuidanceSetContext routine. When message is class includes This routine enables the help system to be 30 Object GladObj Library GladApp Windows- Collection Error Box Object Indexed Set Window Dialog Collection Point Byte Array Collection Ordered Struct About MyWindov DBDialog Window Attribute Collection Describe Dialog Window Object ColorTable |_ Dialog DMWindov-i Type Graphics Object GLAD Window Dialog Proc Delete Rect NestedDM Window DD- Window Window ListMem Window GuidanceTerminate Routine Contained in Identified Class OneMemGuidancelntialise Called ^Vindow from Identified Class X GuidanceSetContext Routine Contained in Identified Classes AddOne- Display- Window DneWindov Guidancelntialise Routine Executed in Identified Class Bitmaps Figure 4.1 GLAD Hierarchy 31 /* Initialialse call to Def Guidance */ initGuidance(selflaStr,aString) (Lib := new (Library); Lib. name := "Gydance.exe"; add(Lib, #GUIDANCEINTnALISE, add(Lib, #GUlDANCESETCONTEXT, 0, #(0 #GUIDANCETERMINATE, 0, #(0)); add(Lib, 0, #(0 10 1 1 0)); 0)); load(Lib); aString := "GLAD"; aStr := "index. gui"; HGuide :=pcall(Lib.procs[#GUIDANCEINrnALISE], HInstance, handle(self), lP(aString), lP(aStr), 1,1); HI Figure 4.2 Guidancelnitialise Routine context-sensitive. the name of Included in the current GLAD methods which calling window is this GLAD utilize the GuidanceSetContext window. call is Figure 4.3 contains GuidanceSetContext routine. contained in a string in each method. a string that contains some examples of the name of the Notice the Guidance searches the index guideline for this string, then traverses the link to the guideline containing information about the requesting window. This guideline then appears on the screen. See Figure 4.4. Figure 4.1 also indicates the location of the GuidanceTerminate routine within the GLAD hierarchy. class. When the This routine is executed by the shouldClose method of the GladApp shouldClose message is sent to the 32 Glad Application, the GladWindow Def Class topHelp(selflaStr) {aStr :=asciiz("GLAD WINDOW"); pcall(Lib.procs[#GUIDANCESETCONTEXT],HGuide. lP(aStr),l); freeHandle(aStr); DMWindow Def Class help(selflaStr) {aStr :=asciiz("Data Manipulation Window"); pcall(Lib.procs[#GUIDANCESETCONTEXT],HGuide. lP(aStr),l); freeHandle(aStr); DDWindow Def Class help(selflaStr) (aStr :=asciiz("Data Definition Window"); pcall(Lib.procs[#GUIDANCESETCONTEXT],HGuide, lP(aStr),l); freeHandle(aStr); ListMemWindow Def Class help(selflaStr) Members Window"); pcall(Lib.procs[#GUIDANCESETCONTEXT],HGuide, {aStr :=asciiz("List lP(aStr),l); freeHandle(aStr); ) Figure 4.3 Example GLAD Methods 33 Utilizing GuidanceSetContext Data Manipulation [fi=help f "DHL WINDOW " 1 DML WINDOW Data Manipul Windo Index .gui HELP DML. gui Figure 4.4 Guidance Use of Search Stnng to Find Context-Sensitive Help /* If it any cleaning up needs to be done in the application before closing, should be done here. */ Def shouldClose(self) pcall(Lib.procs[#GUIDANCETERMINATE],HGuide) { Figure 4.5 GladApp Class shouldClose Method 34 } ! on GuidanceTerminate routine executed. is Figure 4.5 depicts the shouldClose method. GLAD. GuidanceTerminate removes the link between Guidance and IMPLEMENTING THE HELP SYSTEM ACCELERATOR KEY B. Menus ASCII (Duff, GLAD for and others, 1989, Incorporating the Fl key is are defined in the "resource script file". A 343). p. GLAD's contains a portion of gladv02.rc. \a"Fl=Help\ HELPER, HELPER with this Fl, is menu HELPER contained in the ACTOR was is gladv02.rc. is file. the Fl accelerator "HELPER" selection. The word HELP associates the causes a box to be In gladv02.rc, the line HELPER, VIRTKEY file HELPER. The The menu integer 950 can then be used selections for each similar to an array in procedural arbitrarily chosen; line 950 glad.h. dictionary which contains the in strings. resource script implement to to be right justified. associates the Fl key with the identifier #define GLAD's file an HELP placed around the words "Fl=Help". VK Code script is In the line "Fl=Help" on the menu the (\a) causes resource accelerator key involves altering delineated in bold lettering. identifier This which contains GLAD's menus, dialogs, accelerator keys, icons and file Appendix windows however, it had GLAD window. programming languages. to be higher than the 35 as an index to the A dictionary This number number of menu options. This is a standard and header Windows convention files refer to for calling help. Petzold (1988) which associates method class. each C. each appropriate GLAD window the identifier Appendix B contains the "HELPER" with the help InitMenuID methods for class. GLAD HELP ORGANIZATION The Guidelines for GLAD each window within the to RC The InitMenuID method of each window . class contains the dictionary for For further explanation of were designed GLAD to provide modules of infonnation for These Guidelines were further developed hierarchy. provide multi-leveled help within each Guideline. only as much This enables the user Figure 4.6 demonstrates information as desired. how access nested information through the use of expansion buttons. Figure 4.6 shows a section of the GLAD Data Definition user desires additional infonnation pertaining to the the user "QUIT" to a cross hair confirms that the text mouse button Window QUIT menu minimal effect the GLAD an expansion button. below displays the information The modular design of is is shown able to Guideline. If the selection, he can The bold font The cursor changing an expansion button. in the is The top window of obtain this information by positioning the cursor over the text "QUIT". visually indicates that the text to retrieve Clicking the bottom window of Figure left 4.6. help system allows Guidelines to be altered with on the remainder of the help system. permits quick, easy reading and reduces the amount of 36 Keeping the Guidelines small memory required. Print Top for Guidance for Back Search a nested : Gl AD F1-HELI object. .5)DELETE - Selecting delete will delete entities from database schema which are no longer needed (4.1 the HELP -Provides comprehensive user assistance. For information concerning the reading of hypertext and using this help system, click on HELP at beginning of this paragraph. For an index to G LAD help topics click on " G LAD help Index (4.1 .6) following this paragraph. (4.1 7)QU IT- leave current window CLAD he/p /ndex Help concernig QUIT prior to expanding Guidance for ; GLAD F1-HELP .5)DELETE - Selecting delete will delete entities from database schema which are no longer needed. the (4.1 (4.1 .6) HELP -Provides comprehensive user assistance. information concerning the reading of hypertext HELP at help system, click on an index to G LAD For and using this beginning of this paragraph. For help topics click on " G LAD help Index following this paragraph. DDL window and returns the user to the GLAD WIN DOW. When in the GLAD Window QUIT returns the (4.1 .7)QU IT- Closes the user to the Windows operating system. CLAD he/p /ndex Help concerning QUIT after expanding Figure 4.6 Demonstration of Expansion Buttons 37 The help system for each GLAD designed is window emulate the look and feel of to GLAD. The contains a replica of that window, see Figure 4.7. GLAD help system will behave identically to the provided with help information when an operation Guideline Ideally, the program, except the user will be is This allows the user to selected. visually associate a GLAD HELP For example, the user can obtain help by positioning the cursor Guidelines. operation with a replica of that over the item in the replica's in the GLAD to menu bar that corresponds with the same action Clicking the mouse on this item causes the help system to window. respond similarly menu operation contained in the GLAD and provide help on Examples of that operation. operations will also be included whenever possible within help to make GLAD the information as clear as possible. As mentioned hypertext documents incorporated into the accessing help. Guideline he is and a would the potential to disadvantage a is II, GLAD using. become of hypertext. disoriented while reading A numbering system was help system in order to rrunirnize user disorientation while The numbering system allows Index Guideline. indices. Chapter in the user to, at The Guideline number corresponds GLAD Figure 4.8 shows the Each successive nesting minimum, to a identify which number assigned in the index Guideline and level within the Guideline will is two levels an example of the numbering system. deep associated add a decimal point digit indicating the user's relative position in the Guideline. indicate the user its in the fourth Guideline. For example, 4.1.2 Figure 4.9 shows Should the user become disoriented. Guidance 38 Describe Expand ListMembers ShowConnection Quit Change Query ELEC SVS AIR FN TOOLS ENU SVS The GLAD DML Window is displayed each time an existing database is Opened The content of this window is dependent on the database selected. The window above shows an example of opening a AH IS Helicopter database. For additional information on GLAD DML window operations, expand Glad DML Window menu . Figure 4.7 Help Print Window Jop with Replica of DML Window Guidance for Search Sack : GLAD HELP INDEX 1 .0 4 6 rTRFl GLAD F1=HELP J | *1 Giad Window 2.0 Open Database Diaiog 3 Remove Database D/a/og Data Definition Window 5.0 Defining a Database Data Maniputation Window 7.0 DispiayOne Window 9.0 Describe 9.0 List Members Window 1 0.0 Stiowconnection GLAD Papers .0 1 1 1 2.0 Usmg t/ie Hypertext heip system i*J Figure 4.8 GLAD Index Guideline 39 menu provides the BACK selection on the help window menu user to retrace the steps that he has taken within the provides a TOP menu Links beginning of the Guideline. familiar should he TOP the to GLAD become Windows and In addition, lost. searches current the corresponding is displayed If the to the dialog box Guideline it which allows the user to access help in This includes information concerning that requires explanation, he can use the the user selects SEARCH infonnation locate is contained on this in the current topic. from any Guidance If a string Guideline, the Guideline of the infonnation. user desires a printed copy of the on-line help information, PRINT a position appears requesting the search topic. to requested topic at that position by selecting printed as a automatically takes the user to the it When search capabilities provided by Guidance. window menu, Guidance also operations, not contained in the current Guideline. Should the user have a specific topic help Guideline. Index Guideline been have dispersed areas not contained in the current Guideline. other This allows the This provides the user easy access to throughout the help system. is Selecting selection. bar. from any GLAD appears on screen. If help window menu bar. it can be printed The document will be an extended print-out of on-line information desired, expansion buttons can be unfolded providing the full information available is on the screen. If fewer details are required copy, only the desired information should be displayed, prior to selecting window with the PRINT. Figure 4.10 displays an example of a TOP, SEARCH, and PRINT menu 40 selections. GLAD help Guidance for : GLAD F1-HELP DDL WINDOW (4 1) (4.1.1) selections SAVE- This menu selection database schema to a disk tile (4.1.2) DEFINE- objects for an existing or (4.1 3)ATTRIBUTE EXPAND a nested (4.1 - new . Permits definitions of attributes for defined entities. (4.1 .4) for save changes to the Selecting define allows the user to define new data will for later use. -Allows the definition of specialization entities object. 5)DELETE - Selecting delete will delete entities from the database schema which are no longer needed. HELP -Provides comprehensive user assistance For information concerning the reading of hypertext and using this help system, click on HELP at beginning of this paragraph. For " an index to G LAD help topics click on " G LAD help Index (4 1 .6) Figure 4.9 Example Numbering Used Print (1.1) Top Search To Minimize UserTDisorientation gacli GU\D WINDOW menu : (1.1.1) CREATE (1 .1 .2) MODIFY - allows an existing database to be changed (1 .1 .3) OPEN (1 .1 Figure 4.10 .4) - - allows generation of new database presents existing database for manipulation REMOVE - delete an existing database GLAD Help Window Menu 41 Any word may or concept within the Guideline that linked to a Note button. a Note button which Text which "Select". Guidelines Manuals. are is a Note button constructed in visually indicated is to present a complete descript: User of an This prevents the user from being required to scroll through multiple windows to obtain the infonnation desired. Some by an underline. accordance with the Guide and Guidance Help windows have been designed situations. show an Figure 4.11 example used to provide further explanation for the term is operation within a single window. all is This serves as an on-line glossary of terms, providing the user quick explanations of unfamiliar terminology. example of require further explanation This was not possible in more than one screen operations required to fully explain the operation. D. MEMORY MANAGEMENT Throughout the development of the been a troublesome ACTOR solution Attempts issue. program environment on which allowed GLAD a GLAD help system, integrate to Guidance and 640K machine were and Guidance to Guidance utility to run within the 386 ACTOR Max 9 unsuccessful. additional were required. , 42 Inc. has within the The only ACTOR megabyte of memory GLAD and was believed that This enabled programming environment. 386 Max is a trademark of Qualitas GLAD run simultaneously within the programming environment was expanded memory. An and the memory manager memory management It Erlnt Jop Search Guidance for gack In (2.0) GLAD : % GLAD -o F1-HELP order to select an Item, position Op the desired Item and click the When selected, the item will left be trie cursor over |±| mouse button. highlighted. D«_ Leisure Planning MPS Lab Equipment Pine Ualley Furniture Test Connection DB ^ OPEN [ ] Co, ABOUT HELP [ ( CANCEL ] ) ) 1 Select Open from the GLAD Window menu. A list box containing a listbox of the G LAD Databases similiar to the one shown above will apear. Select the name of the database you want to open from the listbox. After a database is selected it will appear highlighted in the listbox. 2. Figure 4.11 Example Note Button once development was complete and a stand-alone version of expanded memory would be unnecessary. using ACTOR For example, the ACTOR removed and consequendy freed memory incorporate Guidance with GLAD produced, Development of a stand-alone application involves a process of removing portions of by the application. GLAD was for which are not used Debugger, Editor and Browser were GLAD. written a stand-alone did not produce the desired results. Once and environment, a stand-alone application was produced. 43 ACTOR tested the code required to within the ACTOR Unfortunately, development of The help system operates with one correctly Opening more than two windows reduces system to a point where Insufficient memory more windows. If memory is two GLAD amount of memory Windows open. available to the help insufficient to correctly display the Guidelines. results in an error expanded memory the or is message requesting the user available, perfectly together. 44 GLAD to close one or and the help system work CONCLUSIONS V. STRENGTHS AND WEAKNESSES A. The purpose of this thesis was to design a help system developed met the six design principles of features necessary in a help system. • The hypertext • It is intuitive, • The GLAD GLAD. The help while incorporating important strengths of the design are: provides capability system for access to virtually endless amounts of information without reading unnecessary information. easy to learn and use. terms of time to implement. It is powerful and cost effective • It is extensible. • Minimal changes • Graphics as well as text are easily incorporated. The weaknesses of to GLAD in were required the proposed help system to incorporate the help system. are: expanded memory. • The help system • Despite the indexing system, the potential for the user to will not run correctly without within a hypertext document The major weakness of order to achieve state that memory, this design functionality. become disoriented exists. is the requirement for expanded memory While the design constraints did not this is the most common memory for additional memory capability of IBM 45 640K of compatible computers. limits the use of this help have expanded memory. in specifically help system was limited to operation on a computer with The requirement that its full this still system to computers The implications of this too limiting for a project the size and scope of interfaces require resources, specifically features are added to a system. memory. If 640K is As GLAD. memory. GLAD More memory expands, an absolute requirement, it GLAD choice must be inferior help it more will continue to require more will better serve the needs of the suits the will result in GLAD needs of project. a situation such that, as GLAD project. memory 6 to Restricting is more capable, is .1. GLAD system which would allow GLAD. The GLAD is will not only limit the capabilities of operate within 640K, or the proposed help system which change and is required as project must not be constrained by limiting made between an 640K be that Intuitive, user friendly, graphic the help system, but also the capabilities of the entire The memory may requirement for additional is A to easier to help system as proposed best GLAD to a 640K of environment developed and expanded, the help system will necessarily deteriorate. The limitations associated with the 640K memory operating system have been documented for become at least five imposed by years. These limitations have the a driving force behind the development of operating systems such as which provide greater capabilities. This hurdle of memory limitation with, in order to implement any help system as well as to develop potential. 46 DOS barrier must be GLAD to its OS2, dealt fullest B. FUTURE AREAS OF RESEARCH Methods to make maximum use of available memory need GLAD areas of research include exploring development of alleviate memory difficulties. MS-DOS would allow Along with research machines to take advantage of OS2 OS2 with Possible UNIX or to and UNIX, methods which memory beyond 640K memory demanded by Investigations into optimizing the investigated. into to be explored. should be GLAD would also be beneficial. Constructing hypertext documents to provide the best access to information for users another area of possible research. is where he is in the disorientation a user An hypertext may intelligent help suggests courses exploration animation. of action and research. document need experience system or Additional methods of indicating to the user that when in developed determines where the user corrects Sound may eliminate to the reading a hypertext document. mistakes also tenns of actual benefits to the 47 is an area is in that a is GLAD program and deserves enhance the help system, These features require technology which be too costly be to as further well not currently available and project. as may APPENDIX A - SAMPLE SECTION OF GLADV02.RC This appendix contains a portion of the to the file gladv02.rc. implementation of the help system menus GladTopMenu MENU BEGIN MENUTTEM MENUTTEM MENUTTEM MENUTTEM MENUTTEM MENUTTEM END GladDmlMenu "Create", 1 "Modify", 2 "Open", 3 "Remove", 4 "Quit", 6 HELPER. HELP "\aFl=Help", MENU BEGIN MENUTTEM MENUTTEM POPUP BEGIN "Expand". 1 2 "ListMembers" MENUTTEM MENUTTEM END POPUP BEGIN "Describe", "All at Once", 3 "One by One", 4 "Change" MENUTTEM "Add data", 5 MENUTTEM "Delete data", MENUTTEM "Modify data", 7 END MENUTTEM "Query", 8 MENUTTEM "ShowConnection", 9 MENUTTEM "Quit", 11 MENUTTEM "\aFl=Help", HELPER, HELP END 48 is shown. Only the section pertinent GladDdlMenu MENU BEGIN MENUITEM MENUITEM MENUTTEM MENUTTEM MENUTTEM MENUTTEM MENUTTEM END GladLMMenu nn Save * it 1 , "Define", 2 "Attribute", 3 4 "Expand", "Delete", 5 "Quit", 7 "\aFl=Help", HELPER,HELP MENU BEGIN MENUTTEM MENUTTEM MENUTTEM MENUTTEM END "More", 1 "Modify", 2 4 "Quit", "\aFl=Help", GladOMMenu BEGIN MENU MENUTTEM MENUITEM MENUTTEM MENUITEM MENUITEM "Add", HELPER,HELP 1 "Delete", 2 "Modify", 3 4 "Prev", "Next". 5 POPUP "GoTo" BEGIN MENUTTEM MENUITEM MENUITEM END MENUTTEM MENUTTEM MENUITEM END "First", 7 "Last", "I th", "All", 6 8 9 "Quit", 11 "\aFl=Help". HELPER,HELP 49 GLADV02 ACCELERATORS BEGIN VK_INSERT, EDIT_PASTE, V1RTKEY VK_SUBTRACT, EDIT_CUT, VIRTKEY VK_ADD, EDIT_COPY, VIRTKEY VK_LEFT, VK_LEFT, VIRTKEY VK_UP, VK_UP, VIRTKEY VK_RIGHT, VK_RIGHT, VIRTKEY VK_DOWN, VK_DOWN, VIRTKEY "A "A "A a", r", z'\ EDIT_SELALL BR_REFORM BR_ZOOM VKJF1, HELPER, VIRTKEY VK_TAB, EDIT_TAB, VIRTKEY VK_PRIOR, EDIT_PRIOR, VIRTKEY VK_NEXT. EDIT_NEXT, VIRTKEY VK_HOME, EDIT_HOME, VIRTKEY VK_END, EDIT_END, VIRTKEY VK_DELETE, EDIT_CLEAR, VIRTKEY VK_DELETE, EDIT_CUT, VIRTKEY, SHIFT VKJNSERT, EDIT_COPY, VIRTKEY, CONTROL VK_INSERT, EDIT_PASTE, VIRTKEY, SHIFT END 50 APPENDIX B - GLAD INITMENUID METHODS GLAD WINDOW CLASS Def initMenuID(self) < menuID := %Dictionary ( l->#makeNewDb 2->#modifyDb 3->#openDb 4->#removeDb 950->#topHelp 6->#close ) it } DM WINDOW CLASS Def initMenuID(self) ( menuID := %Dictionary( l->#describe 2->#expand 3->#listMembers 4 ->#one Member 5->#addMember 6->#deleteMember 7 ->#modify Member 8->#query 9->#showConnection 950->#help ll->#close ) III 51 DDWINDOW CLASS Def initMenuID(self) ( menuID := %Dictionary(l->#saveSchema, 2->#defineObj, 3->#attacliAttr, 4->#defNestedObjects, 5->#deleteObj, 950->#help, 7->#quit) DISPLAY ONE WINDOW CLASS Def initMenuID(self) I menuID := %Dictionary( l->#addMember 2->#deleteMember 3 ->#modify Member 4->#prev 5->#next 6->#first 7->#last 8->#goToIth 9->#allAtOnce 950->#help 1 l->#close) }!! LIST MEMBERS WINDOW CLASS Def initMenuID(self) ( menuID := %Dictionary( l->#more 2->#modify 950->#help 4->#close Ml ) LIST Conklin, Jeff, "Hypertext: An OF REFERENCES Introduction and Survey", IEEE, September 1987. Draganza, Michael, "Dynamic Link Libraries Under Windows", Computer Language, Vol. 6, no. 5, 1989. Duff, Charles, and others, Actor Dumas, Joseph S., Galitz, Wilbert, Language Manual, The Whitewater Group, 1989. Designing User Interfaces for Software, Prentice Hall, 1988. Handbook of Screen Format Design, 3rd Edition, QED Information Sciences, Inc., 1989. Guidance: Hypertext Help Hypertext for System. Software Developers, Owl Techniques to the International, Inc., 1988. Guide: Help, Hypertext for the PC, R Company Owl International, Inc., 1988. Ltd., 1988. Jackson, Peter and Lefrere, Paul, "On Design of Advice Giving Systems", the Application of Rule-based Int. Journal of Man-Machine Studies, Vol. 20, 1983. Kearsley, Greg, Online Help Systems: Design and Implementation, Ablex Publishing, 1988. "Computer-Human and People, Vol. 30, Nos. 5 & Killory, J.F., Interaction and the Documentation Puzzles", Computers 6, 1987. Meyer, Bertrand, Object-Oriented Software Construction, Prentice-Hall, 1988. Petzold, Charles, Programming Windows, Microsoft 53 Press, 1988. "Help Roger, Roberts, - A Question Answering System", AFIPS Conference Proceedings, Vol. 37, Fall Joint Computer Conference, 1970. Rowell, Michael, The Suitability of an Object Oriented Language for Prototyping and Abstracting Data Types, Master's Thesis, Naval Postgraduate School, June 1988. Shneiderman, Computer Weiss, Ben, Designing the User Interface, Strategies for Effective Human Interaction, Addison- Wesley Publishing, 1987. Edmond H., How to Write a Usable User Manual, ISI Press, 1985. Williamson, Michael, An Implementation of a Data Definition Facility for the Graphics Language for Database, Master's Thesis, Naval Postgraduate School, December 1988. Wu, C. Thomas, GLAD: Graphics Language for Database, Prepared for Chief of Naval Research, 1987. Wu, C. Thomas and Hsiao, David K., Implementation of Visual Database Interface Using an Object Oriented Language. Presented at 1F1P TC-2 Working Conference on Visual Database Systems, Tokyo, Japan, April 1989. Wu, C. Thomas, "Benefits of Object-Oriented Programming to Implement a Visual Database Interface", Case Studies of Object-Oriented Programming, Addison- Wesley, Publication pending. 54 INITIAL DISTRIBUTION LIST 1. Defense Technical Information Center Cameron 2 Station Alexandria, Virginia 22304-6145 2. Library, Code 0142 2 Naval Postgraduate School Monterey, California 93943-50022 3. Commandant Code TE 06 of the Marine Corps 1 Headquarters, U.S. Marine Corps Washington, D.C. 20360-0001 4. Department Chairman, Code 52 2 Department of Computer Science Naval Postgraduate School Monterey, California 93943-5000 5. Curriculum Officer, Code 37 1 Computer Technology Naval Postgraduate School Monterey, California 93943-5000 6. Professor C. Thomas Wu, Code 52Hq Computer Science Department 10 Naval Postgraduate School Monterey, California 93943-5000 7. Professor David Hsiao 1 Computer Science Department Naval Postgraduate School Monterey, California 93943-5000 55 Captain Lon M. Yeary Lon O. Yeary 2N236 Pearl Avenue c/o Mr. Glen Ellyn, Illinois 60137 56 Thesis Y336 c.l Yeary Implementation of a hypertext help system for GLAD, a Graphics LAnguage for Database. 13 FEB 93 Thesis Y336 c.l 3 ? G 9 Yeary Implementation of a hypertext help system for GLAD, a Graphics LAnguage for Database. .<">"«*> # ff B£mcKj