Software Tools: Human Computer Interaction

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 7

Software Tools

Human Computer Interaction


Introduction

User-Interface Architects
Similar to Building Architects
UI Jobs (even domain specific!)
Ideal: Complete design before starting to build
Multiple designers AND engineers
Sit down and think about what needs to be done
Still design, even though it will change!
Standard GUIs have enabled 50% to 500%
productivity gains
Desktop Computer is losing its prominence
More mobile, more distributed
Software must support greater plasticity (ex.
resolution)
Display size, telephone access, web access, languages
Device-independent programming
Specification Methods

Goal: How do we specify the GUI


Natural Language
Pros: easy to understand,
sketchpad, blackboard
Cons: Lengthy, vague,
ambiguous, difficult to prove
Formal and Semiformal languages
Grammars for command
languages
Backus-Naur Form BNF
More difficult for GUIs usually
describe sequence of actions
Transition diagrams
Menu-tree structures
Statecharts
Graphical specifications
Grammars

Specify Textual Commands or Expressions that a


program would understand
Still used in spreadsheet calculators
Multiparty Grammars
Non terminals that depict the actor (user/computer)
for interactive programs
Text-oriented sequences
Voice Recognition Systems
Pros:
Aspects can be formally written down
Verification of completeness and correctness
Cons:
Doesnt scale well
Graphics apps still difficult to do
Menu-Selection and Dialog-box

Menu-Selection Tree
Create menus graphically
Tools exist for:
Creation
Design
Pros:
Review
Consistency
Totality
Completeness
Redundancy (examples?)
Cons:
Menu trees often do not show all possible actions
(incomplete)
Sometimes menus are not a tree
Same thing for dialog-box trees
Transition Diagram
Most commonly used
Set of nodes and links
Many ways to display
Text
Link Frequency
State Diagram
Tools to create them (IBM Rational Suite)
Also doesnt scale well (spaghetti displays)
Replace nodes with screenprints
Pros:
Similar to Finite-State-Automata (plenty of
research in CS on that)
Can we reach every state?
Is there a way out?
Cons: Difficulty in evaluating
Usability
Visibility
Modularity
Synchronization
Statecharts

Uses nested roundtangles


Extensions have been
developed for
Concurrency
External events
User Actions
Example: Ilogixs Statemate
Unified Modeling Language
(UML)
Standard for visualizing and
documenting software systems
Goal: link specification with
interface-building tools
Why is this difficult?
conformity, flexbility

You might also like