Rob Kremer
Practical Software Engineering
- Use the user's model
- Seeing and pointing vs. remembering and typing
- Avoid acausality
- Provide feedback
- Uniformity and consistency
- Reset and undo
- Provide shortcuts for the power user
- Provide informative error messages
- Don't let errors happen
- Make the system crash proof
- Base manuals/tutorials on user interaction
- Users don't read manuals
WIMPs/GUIs -- e.g. Macintosh/ MSWindows desktop
These have:
- Multiple, overlapped windows including different applications
- Icons for files, folders, applications
- Command selection via menus, keyboard, or direct manipulation
- Pointing device, usually a mouse
- Graphical and text display
Advantages
- Easy to learn and use
- Switching applications is easy
- Full screen interaction supported
Disadvantages
- complex
- need graphical display
- allocation of control (program or user) difficult
Advantages
- novices can learn basic functionality quickly
- experts can work extremely rapidly
- casual users can retain operational concepts
- error messages are rarely needed
- users can see if they are doing what they thought
- reversibility available (usually)
- users have reduced anxiety
Disadvantages
- model specificity
- may limit attention to physical constraints
- repetitive operations are tedious
- may not conform to user expectations
- precision in manipulating objects required
Advantages
- well-determined for a wide spread of users
- creates enthusiasm
- minimum of training required
- creates concrete images of objects and functions
Disadvantages
- needs graphical display
- complex and difficult to design
- concrete metaphors may not be applicable to all office tasks
- extension of metaphor may conflict with user's model
- continually switching between mouse and keyboard
Advantages
- minumally requires only a text display
- restricted keyboard or mouse can be used
- actions allowed need not be remembered
- no typing required
- little user training required
- pop-up and pull-down save screen space
Disadvantages
- overdetermined or inflexible
- only a few items can be displayed
- frustrating to experienced users
- discourages typing ahead
- problems negotiating large hierarchies
- uncertainty about content of a category
- retrieval will fail if item not there
- confusion and disorientation in large system
- difficulty in recalling path causes erratic searches
Types
- Scrolling menus
- Multi-column menus
- Hierarchical menus
Advantages
- simple
- terse -- little typing
- feedback of dialog state
- commonality between interface and previous experience
- popular with computer experts
- immediacy of response
- allows parallel events to occur in dialog
Disadvantages
- minimal feedback on system state
- encourages a mixture of interfaces from different applications
- impossible to refer to previously displayed information
- very underdetermined or overly secretive
Often a user's first impression of a system comes from its error messages.
Messages should be:
- Polite
- Positive
- Concise
- Consistent
- Constructive
They should not make the user feel stupid,
embarrassed, frustrated, or imply it is the user's problem.
They should:
- Suggest how the error could be corrected
- Allow editing or re-entry
- Provide context information
- Offer context help
Star was introduced in 1981, it was the forerunner of the Macintosh.
Based on a physical office or desktop metaphor.
It is a multifunctional system combining document creation, data processing,
electronic filing, mailing, and printing.
It adheres to a small set of design principles which make it seem familiar and
friendly, simplify the HCI, unify its functions and allow transfer of
experience.
Aim is to minimize modes of interaction, e.g.:
- E(verything)--select whole document
- D(elete)--delete it
- I(nsert)--enter insert mode
- T--type a "T"
- Mouse
- Windows
- Document creation -- text editing, page layout, graphics editing,
mathematical formula editing
- Data processing -- relational database
- Electronic filing -- Ethernet LAN
- Electronic mail -- communication among workstations
- Printing -- laser printer for hard copy
- Data icons -- documents, folders, record files -- objects on which actions
are performed.
- Function icons -- file drawers, floppy disks, calculators, printers --
objects which perform actions.
- Property sheets associated with objects e.g. icons -- alternate
representation to icon display, only properties relevant to the object are
displayed
- Option sheets associated with commands -- displays arguments to a command,
lets you execute the command
- Command classes:
- Editing -- conventional editing, conceptual editing (e.g. desktop)
- Information retrieval -- traditional database, extensions to notion of
database (e.g. file drawers of documents, in-baskets of mail)
- Copying -- creation by copying.
- Universal commands:
- move
- copy
- delete
- again
- show properties
- copy properties
- undo
- help
- Familiar user's conceptual model
- desktop metaphor -- electronic counterparts of physical objects made users
more comfortable and cut down training needed.
- Seeing and pointing vs remembering and typing
- Star displays commands and features to the user. Desktop functions are
displayed as icons, property/option sheets define available options.
- What you see is what you get
- Star gives accurate view of what user does. No conversion needed for text
documents.
- Universal commands
- Star commands used throughout system e.g. COPY can be used in the same way
on a word, line or paragraph.
- Consistency
- Mechanisms are used in the same way wherever they occur. This is achieved
through the setting up of strict paradigms and aided by the use of classes and
subclasses. (Some minimal contradiction does occur.)
- Simplicity
- Trade-offs between easy novice use and efficient expert use were made.
Common functions were made simple at the expense of uncommon ones being more
difficult.
- Modeless interaction
- Modes are not desirable -- can lead to unexpected results. (Few areas
where modes are implemented.) When a mode is accessed, it is made clear to the
user.
- User tailorability
- Star has many provisions for extensibility built in so users can speed up
often-performed operations.
- A special category of CASE tools.
- First designed as tools that allow a user to program a personalized
interface:
- Organize and design screen layouts
- Interactively create layout, icons, menus, help screens
- Now usually used by software developers as:
- User has to be quite knowledgeable
- User must have programming experience
UIMSs are powerful development
tools, providing prototyping capabilities, control over interface standards,
and productivity enhancements.
Some UIMS allow porting to other platforms e.g. Open Interface, XVT.
Neuron Data Open Interface
- Designed to radically change the economics of developing applications with
GUIs for any standard windowing system.
- Multi-standard, multi-platform GUI development environment.
- Comprises a set of ANSI C libraries and an interface layout tool with
which developers can build GUIs which are portable across all major windowing,
operating system and hardware standards.
- These include
- OSF/Motif,
- OPEN LOOK,
- OS/2 Presentation Manager,
- Microsoft Windows 3.0,
- Macintosh.
- Superset used of widgets available in all native toolkits, and extensible
to new widgets not offered in any toolkit.
- Open Editor is used to layout components of an applications's GUI using
point-and-click.
- Generates resource files, C templates, makefiles.
- Developer must customize C templates to add interface logic and back-end
functionality.
- Makefile is used to compile code and link to Open Interface libraries.
- To port to another platform the resource and C source code files are
transferred, then recompiled and relinked with Open Interface libraries for
that platform.
Java
- OO language that comes with an run-time environment
- includes self-sufficient GUI library
- very fast acceptance by a large community
- still in its infancy
- limited widgets, but that's being fixed fast
- network communication tools integrated into I/O system
- good (not great) security allows for program migration
- currently Java is the language of choice for application with a high portability requirement
Practical Software Engineering, Department of Computer Science
Rob Kremer