COMMON USER ACCESS (CUA) AND DBASE IV

This article is about CUA Standards based on a lecture by Cary Prague at the
dBASE Technical Session, 3/25/1991, San Francisco. Some information is also
from Michael Irwin's dBASE IV Programming seminar from the Borland World Tour,
July 27, 1992. I started out with Cary's slides, but added a lot of information
at the beginning from Michael Irwin's presentation, as it gives some excellent
background. The slides from Cary's presentation do not look quite the same as
what were presented during the seminar -- sorry ... I got lazy. This
information entered/gleaned from various sources by Ken Mayer (KENMAYER on the
BORBBS).

       "One of the critical determinants of user satisfaction and acceptance of a
       computer system is the extent to which the user feels in control of an
       interactive session. If users cannot control the direction and pace of the
       interaction sequence, they are likely to feel frustrated, intimidated, or
       threatened by the computer system. Their productivity may suffer, or they
       may avoid using the system at all." (The Mitre Study, 1983)

IBM's CUA (Michael Irwin)
       IBM addresses these problems through its Common User Access (CUA) for the
       Systems Application Architecture (SAA) environments. CUA, one of the
       elements of SAA, is a basic set of rules and guidelines for designing user
       interfaces. It offers directions for using dialogues for commonly
       occurring human-computer interaction. CUA is an ever-growing, refining,
       guide that was formalized in 1987 (System Application Architecture: Common
       User Access, Panel Design and User Interaction). It has undergone two
       major revisions - 1989 and 1991 (October).

       Like many of the other studies, it attempts to address interface issues
       across all three major computing environments. The results: end user
       portability of knowledge from one system to another and ease of use
       recognition within systems.

       Potential benefits of following such a user-interface architecture are:
       1.    Design of better user interfaces.
       2.    Widespread adoption of guidelines offer increased consistency of user
             interfaces.
       3.    Reduced cost and improved quality of software development for the
             interface.

       CUA is NOT intended to be a panacea for all application specific
       components. For example, it does not specify appearance or interaction
       techniques for text editors or a paint canvas. Rather CUA establishes a
       base in architecture and sets a direction for user-interface design. The
       primary principles that CUA is based upon are:

       1.    User actions should be reversible. A dialogue should offer a CANCEL
             action which returns the user to the previous state. It can be used
             to back up several steps within a menuing system. If a wrong choice
             is selected in a menu, the user can activate a popup window and
             cancel from the action. In dBASE the CANCEL key should be the Escape
             Key.
      2.    Maintain user orientation. Titles of panels and scrolling location
             information should be used to maintain the content for displayed
             information. If a sequence of popup windows are used, each succeeding
             window should be offset from the one underneath - maintaining the
             context of the current popup window.

       3.    Minimal reliance should be placed on the user's memory. Memory aids
             and reminders should always be available. Action bars and pull downs
             should be available in a 'menu'. The user should not be required to
             remember and type commands.

       4.    Feedback should be provided for every user action. Color,
             highlighting, and other selection indicators should be used when the
             cursor is moved to a choice. Audio beeps should be used when actions
             are not normal.

       5.    All potentially destructive actions must require user action. Message
             should be displayed in pop-up windows and provide options.

       6.    Consistency is key. Concepts, appearance of information, interaction
             techniques and color usage must be consistent. For example, any field
             that is multiple choice must look and act the same to the user as any
             other multiple choice field.

       Using these principles, the Common User Access process evolved. In
       addition to these principles, several others were designed into the
       standard:

            Utilize programmable workstation capabilities (i.e., if using a PC
             hooked to a mainframe, use the abilities of the local PC ... stored
             local procedures, etc.)
            Provide concurrent mouse and keyboard support if possible.
            Support graphical capabilities if available.

       CUA's primary stress is placed on consistency. It covers a diverse range
       of topics including:

            Use/definition of windows, menus, messaging and help facilities.
            Assignment of function key values (up to 24 keys).
            Movement and size of the cursor.
            Use of color.
            Common use of terms.
            Usage of short cut keys.

(The next portion of Mike's discussion goes into timing issues, User Interface
Models, and so on ..., and returns to CUA here:)

Goals of a user interface.

       Based on all the information covered so far, a clear goal can be stated:

             The primary goal of the user interface is to help the user transfer
             existing knowledge to use in automated products. If a user
             understands how to use one product, that information should be
             transportable to use of another product.

       This is the basis of IBM's CUA. In addition there are three other goals:

            Increase the client's productivity.
            Increase the user's acceptance and satisfaction of the product.
            Reduce keying (entry/edit) errors made by the user.

(The rest of this is duplicated in the information from Cary's seminar
(actually the two of them share notes back and forth a lot ...), so I am not
duplicating everything that Mike gave us ...)

CUA DISCUSSION (by Cary Prague)
Elements of a User Interface
       The Underlying Screen
       Informational/Error Messages
       Data Entry/Display Fields
       Menus
       Windows

Elements of Consistency
       Consistent Placement of Menus, Windows, Messages
             Makes the user comfortable. People normally look at the top of the
             screen.
       Consistent Sizing/Spacing of All Elements
       Consistent Use of Color
       Consistent Use of Terms
       Consistency is a Balancing Act!

Benefits of a Consistent User Interface
       Quicker Learning Curve for New Systems
       Increased Productivity
       Systems Used by More People
       Easier to Develop New Systems
       Decision Paths Recognizable Across Systems
       Takes Advantage of User Experience
Costs of a Consistent User Interface
       Creation of Standards
       Publishing and Adherence to Standards
       Training
       A STANDARD ALREADY EXISTS

IBM System Application Architecture (SAA)
       An Overall Set of Rules Which Encompass Hardware, Software, and Networks
       CUA - Common User Access
             One of the Elements of SAA
             Set of Rules and GUIDELINES
       User-Interface Components for Application Designers

CUA Covers a Variety of dBASE IV Topics
       Use of Windows
       Screen Design
       Menu Definition
       Message and Help Facilities
       Key Assignments
       Cursor Movement, Color, and Emphasis

    ͻ
                     Menu Bar                   
    Ķ
                                                
                                                
                    Screen Area                 
                                                
                                                
                                                
    Ķ
                Navigation Line/Help            
    ͼ

Common User Access (CUA)

Components and dBASE IV Equivalents
CUA Term                               dBASE IV Term

Action Bar                                   Bar Menu
Pull Down                              Pull Down Menu/Popup
Panel Body                                   Screen
Screen Area                                  Work Surface
Pop-Up Window                          Window
Entry Field                                  Data Entry Field
Single Choice Selection Field                ---- (Radio Button - program UDF)
Multiple Choice Selection Field                     ---- (Check Box - program UDF)
Slider                                       ---- (program UDF) (M. Irwin)
Spin button                                  ---- (program UDF) (M. Irwin)
Shortcut keys                                Function keys (M. Irwin)
Function Key Area                            Navigation Line

(The next slide is a screen dump of the control center, with the tools menu
showing ... followed by the ABC Company menus)

      Pads             (The whole line is a Bar Menu/Menu Bar)
 Ŀ
  Data  Reports   Queries   Help   Exit       
                                              
                                              
                                              
                                              
               ABC                            Screen
             COMPANY                          Area
            MAIN MENU                         
                                              
                                              
    Press - or - to move selection bar      
    or press first letter to select Item      
 
              Navigation Line

(I'm not gonna put the lines and arrows in ... you can figure it out)

Basic CUA Standards for dBASE IV Bar Menus
       First Letter Caps (only first)
       First Letter Unique
       Left Justified
       Top-Most Line of the Screen
             (Ken's Note: Row 0? I prefer 1, due to problems with SCOREBOARD ...)                    
       First Pad - 4 Spaces from Left Edge
             (Ken's Note: Coordinate 0,3)
       Two Spaces Between Pads
       Usually Common Pads (Help, Exit)
       Use Color to Separate Menu from Screen
       Use Single Words When Possible
       Last Choice Is Always Exit
       Next to Last Choice is Always Help
       Order Left to Right According to Use
       All Pads Are Always Available
       Highlight the Entire Choice

      Pads             (The whole line is a Bar Menu/Menu Bar)
    Ŀ
     Data  Reports   Queries   Help   Exit                         
    ͻ                                                
     Add Items                                                   
     Edit Items                                                  
     Delete Items  BARS                                          
     Browse File                                                 
    ͼ                                                
     POP-UP MENU                                                   
                                    ABC                            Screen
                                  COMPANY                          Area
                                 MAIN MENU                         
                                                                   
                                                                   
                    Press - or - to move selection bar           
                    or press first letter to select Item           
    
                         Navigation Line


Pull-Down (Pop-Up) Menus
       Located Contiguous to Bottom of Bar Menu
       First Character of Pull-Down Under First Character of Bar Menu
       Always Make it Visible
       Choices are Left-Aligned
       Use Double Line Border
       Separate Groups of Related Choices with a Line
       Use a Right Pointing Triangle () After Choices Which Result in Another
             Pop-Up
       Use an Ellipsis (...) After Choices Which Result in a Window (Dialogue
             Box)
       Use Highlighting (Dimmed) for Non-Available Choices
             (Ken's Note: Dimmed Choices are created with the color options, by
             setting colors without the '+' for the foreground color. If you do
             this, then the available options appear bright (automatically) and
             the "skip" options or unavailable options are dimmed
             (automatically).)
       Pull-Down Menus Appear When Cursor Moves to Bar Menu Pad
       Escape Cancels a Choice; Enter Selects a Choice

      Pads             (The whole line is a Bar Menu/Menu Bar)
    Ŀ
     Data  Reports   Queries   Help   Exit                         
          ͻ                                          
          Sales         Right Triangle                          
          Marketing                                             
          Engineering                                           
          Setup ...      Ellipsis                                
          ͼ                                          
           POP-UP MENU                                             
                                    ABC                            Screen
                                  COMPANY                          Area
                                 MAIN MENU                         
                                                                   
                                                                   
                    Press - or - to move selection bar           
                    or press first letter to select Item           
    
                         Navigation Line


    Ŀ
     Data  Reports   Queries   Help   Exit                         
          ͻ                                          
          Sales         Right Triangle                          
          Mͻ                                   
          EWeekly             Secondary Menu                    
          SYearly                                               
          ͺSpecial            (Dimmed Choice)                   
             Separator Line                    
            Last Year                                            Screen
            Print All Reports                                    Area
            ͼ                                   
                                                                   
                                                                   
                    Press - or - to move selection bar           
                    or press first letter to select Item           
    
                         Navigation Line

(The "dimmed choice" obviously won't appear "dimmed" here.)

Windows
       A Window is a Rectangular Area
       Usually a Different Color Than the Screen
       Double Line Border
       Sits on Top of the Screen
       Sometimes Can Be Moved or Sized By the User
       Anything Can Go Inside a Window
       Secondary Windows Should be Positioned Below (Under Title) and Two
             Characters to Right
       Size Windows Large Enough to Display Information
       Not Necessarily Centered
       Contents Include
             Messages (Text)
             Menus
             Data Entry Fields

(The following two "slides" are also based on the ABC Company Main Menu, the
first is a "poorly designed" Data Entry Window, and the second is a better
designed one, both based on CUA 1.0)

  Ŀ
      Data  Reports  Queries  Help  Exit                       
    ͻ                                          
     Add Items                                               
     Edit Items ...                                          
     Dͻ                                    
     BEnter Item Number    Window with Data Entry Area      
    AG-255                                                
       ͼ                                    
                                                               
                                                               
                                                               
                                                               
                                                               
                                                               
                      Enter Item Number and press <Enter>      
  


  Ŀ
      Data  Reports  Queries  Help  Exit                       
           ͻ                                    
           Sales                                            
           Marketing                                        
           Engineering                                      
           Setup ...                                         
           ͼ                                    
           ͻ       
                   Report Setup Dialogue                     
                                                             
             Printer Type          Network Printer           
            Ŀ        Ŀ                   
            Laser               RMT 1                    
            Dot Matrix          5 PB                     
            Color               2 GS                     
                                       
                                   Report Types              
             Number                ( ) Detailed              
             of Copies             (X) Rollup                
                      1            ( ) Summary Only          
                                   (X) Consolidation         
           ͼ       
                                                               
  

("Printer Type" and "Network Printer" are menus, Number of Copies a simple GET,
and Report Types is a CheckBox ...)CUA 2.0
       A GUI Approach
       Standard Menus
             File  Edit  View  Options  Custom  Help
       Standard Choices
       Exit Part of File Menu

  Ŀ
     File  Edit  View  Options  Custom  Help          
   ͻ                                 
    New                                             
    Open ...                                        
    Save                                            
    Save as ...                                     
    Print                                           
    Print Setup ...                                 
    Exit                                            
   ͼ                                 
  

(Otherwise standard screen for ABC Company ...)

WINDOW Samples from Cary Prague's SAA Demo:
  0,0
   Ŀ
             ABC CORPORATION          The Main Screen (0,0 To 24,79)
                                     
        COMPANY: SMITH BROTHERS      
                                     
       10,20                         
         Ŀ Window (10,20 To 14,60)
         0,0     Ŀ               
                    Inner Coordinates (0,0  To  2,38)
                      2,38          Screen Coordinates (11,21 To 13,59)
               
                            14,60    
                                     
   
                                    24,79

The dBASE Window Coordinate System

(Cary was discussing how the Window Coordinates change -- full screen goes from
0,0 to 24,79. If you place a Window from 10,20 to 14,60 on the screen, the
coordinates to place information inside that window will give you 0,0 to 2,38.
You have to keep in mind the border of the Window, which tends to throw people
for a loop) Ŀ THE UNDERLYING SCREEN
  Ŀ 
            XYZ CORPORATION          
                                     The First Window (Data Entry)
       COMPANY: [JONES BROTHERS]     
                                     
       INVOICE DATE: [12/46/89]      
        Ŀ       
            *** ERROR ***    A Second Window (An Error Message)
         ILLEGAL DATA ENTRY        
          RE-ENTER THE DATE        
               
   
 
Conceptual View of Multiple Windows

(Demo of a 'Data Entry' window with an 'Error' Window on top of it)
ͻ
                                                                             
                            Customer Number: AP-001                          
                                                                             
                                                                             
                         Company: APPLIANCE CITY                             
                                                                             
                                                                             
    Customer Information ͻ                                     
                                                                           
    Street: 210 SKY LANE                   Payment Information ͻ  
                                                                         
      City: OXNARD                           Last Sale Date: 07/25/88    
                                                   Discount: 15%         
     State: AZ  Zip Code: 95677-                    Taxable? Y           
                                                                         
    Telephone Number: (415)555-4772       ͼ  
                                                                           
   ͼ                                     
                                                                             
ͼ
(This is a data entry screen ... interesting ... he uses this for various
demos, by popping up windows on top of it based on specific keystrokes (which
are not placed on the screen ... shame on him ... <g>)

The rest of Cary's seminar was based on his Live Demonstration programs,
written in dBASE. With this ZIP file (DBASECUA.ZIP) should be a file called:
PRAGUE.COM. This self-extracting file should be copied into a directory by
itself, and executed (causing it to unextract all the dBASE programs contained
therein). If DBASE is in your DOS Path, you can then start it all up, by
typing: dBASE SAA  which will start the demo. It's quite interesting, and Cary
has shown some VERY flashy bits with ANSI/ASCII art ... 
BELOW are some "standard" Function Key settings:

F1  = HELP
F3  = Exit or Save & Exit
F4  = Picklists, Prompted Input
F10 = Action Bar or Menu Action
F12 = Cancel, or exit without Saving

Suggested TEXTs on CUA/SAA:

From IBM:
       CUA 89
       SC26-4583-0 Common User Access - Basic Interface Design Guide
       SC26-4582-0 Common User Access - Advanced Interface Design Guide

       CUA 91
       SC26-4289-0 Common User Access - Guide to User Interface Design
       SC26-4290-0 Common User Access - Advanced Interface Design Reference

From Microsoft:
       Microsoft Access Guide

(These are not specifically CUA/SAA)
From the Mitre Corporation:
       Guidelines for Designing User Interface Software

OTHER:
       Handbook of Screen Format Design, Wilbert O. Galitz


I hope that all of this helps your understanding of CUA ... it's helping me
with some programs I'm currently designing. Ken Mayer