Practical Software Engineering
WIMPs/GUIs -- e.g. Macintosh/ MSWindows desktop
- 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
- 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
- Easy to learn and use
- Switching applications is easy
- Full screen interaction supported
- need graphical display
- allocation of control (program or user) difficult
- 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
- model specificity
- may limit attention to physical constraints
- repetitive operations are tedious
- may not conform to user expectations
- precision in manipulating objects required
- well-determined for a wide spread of users
- creates enthusiasm
- minimum of training required
- creates concrete images of objects and functions
- 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
- 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
- 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
- Scrolling menus
- Multi-column menus
- Hierarchical menus
- 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
Often a user's first impression of a system comes from its error messages.
- 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
Messages should be:
They should not make the user feel stupid,
embarrassed, frustrated, or imply it is the user's problem.
Star was introduced in 1981, it was the forerunner of the Macintosh.
- Suggest how the error could be corrected
- Allow editing or re-entry
- Provide context information
- Offer context help
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
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"
- 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
- 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
- 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:
- show properties
- copy properties
- 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
- Universal commands
- Star commands used throughout system e.g. COPY can be used in the same way
on a word, line or paragraph.
- 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.)
- 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
- 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 tailorability
- Star has many provisions for extensibility built in so users can speed up
UIMSs are powerful development
tools, providing prototyping capabilities, control over interface standards,
and productivity enhancements.
- A special category of CASE tools.
- First designed as tools that allow a user to program a personalized
- 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
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
- OPEN LOOK,
- OS/2 Presentation Manager,
- Microsoft Windows 3.0,
- 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
- Generates resource files, C templates, makefiles.
- Developer must customize C templates to add interface logic and back-end
- 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
- 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