Chapter 5 – Transition to Design Flashcards
Design Rules
• Principles of usability (*) - General understanding • Standards and guidelines - Direction for design • Design patterns - Capture and reuse design knowledge
Types of Design Rules
• Principles (should have) - Abstract design rules - Low authority (not a must) - High generality - Example: ~ Interface should be easy to navigate • Standards - Specific design rules ~ Very specific on certain things - High authority (a must) - Limited application - Example: ~ Use RG#1010D0 for home links • Guidelines - Lower authority (not a must) - More general application - Example: ~ Use color to highlight links
Principles to support usability
• Learnability (how easy for non-tech savvy person to learn) -Ease with which new users can: ~ Begin effective interaction ~ Achieve maximal performance • Flexibility (more than one way) -Multiplicity of ways ~ The user and system exchange information • Robustness (support system) -Level of support provided the user in: ~ Determining successful achievement ~ Assessment of goal-directed behavior
Principles of learnability
• Predictability - Determining effect of future actions based on: ~ Past interaction history - Operation visibility • Synthesizability - Assessing: ~ The effect of past actions - Immediate vs eventual honesty • Familiarity - How prior knowledge applies to new system - Guessability; affordance • Generalizability - Extending specific interaction knowledge ~ To new situations • Consistency - Likeness in input/output behavior ~ Arising from similar situations or task objectives
Principles of Flexibility
• Dialogue initiative (allow the user to do)
- Freedom
~ From system imposed constraints on input dialogue
- System vs user pre-emptiveness
• Multithreading (perform more than 1 task)
- Ability of system to:
~ Support user interaction for more than one task at a time
- Concurrent vs interleaving; multimodality
• Task migratability (transferring files)
- Passing responsibility for task execution between:
~ User
~ System
- Allowing equivalent values of input and output
~ To be substituted for each other
• Customizability
- Modifiability of the user interface by:
~ User (adaptability)
~ System (adaptivity)
Principles of robustness (stability)
- Observability
- Recoverability
- Responsiveness
- Task conformance
HCI design patterns (*)
• Human-computer interaction (HCI)
- Relationship between:
~ Computers
~ People who use them to perform their jobs
• An approach to reusing knowledge
- About successful design solutions
• Pattern:
- An invariant solution to a recurrent problem within a specific context
- Do not exist in isolation
- Linked to other patterns in languages
~ Enable complete designs to be generated
• Examples (*):
- Light on Two Sides of Every Room (architecture) – LOTSOR
- Go back to a safe place (HCI)
Characteristics of patterns
• Capture: - Design practice (not theory) - Essential common properties ~ Of good examples of design • Represent: - Design knowledge at varying levels: ~ Social ~ Organizational ~ Conceptual ~ Detailed • Embody values - Can express what is humane in interface design • Are: - Intuitive - Readable ~ Can be used for communication between all stakeholders • Pattern language: - Should be generative - Assist in the development of complete designs
System Prototyping
Prototyping: Rapid development of a system
Uses of system prototypes (*)
• Principal use:
- Help customers and developers understand the requirements for the system
• Requirements elicitation:
- Users can experiment with a prototype
~ To see how the system supports their work
• Requirements validation:
- The prototype can:
~ Reveal errors and omissions in the requirements
• Can be considered as a risk reduction activity
- Which reduces requirements risks
Prototyping benefits (*)
• Misunderstandings between: - Software users - Developers ~ Are exposed • Missing & confusing services: - Detected - Identified • Working system: - Available early in the process • Prototype: - Serve as a basis for: ~ Deriving a system specification • System can: - Support user training - System testing • Improved: - System usability - Design quality - Maintainability • Closer match to the system needed (confirmation/close enough) • Reduced overall development effort
Prototyping in the software process (*)
• Evolutionary prototyping (show user & refine the prototype)
- An approach to system develop where:
~ An initial prototype is produced and refined through a number of stages to the final system
• Throw-away prototyping
- A practical implementation of the system is produced to help discover requirements problems
~ And then discard the system is then developed using some other development process
Prototyping objectives
• Evolutionary prototyping:
- Deliver a working system to end-users - Development starts with those requirements which are best understood
• Throw-away prototyping:
- Validate or derive the system requirements - Development starts with those requirements which are poorly understood
Advantages of evolutionary prototyping
• Accelerated delivery of the system
- Rapid delivery and deployment are sometimes more important than fuctionality or long-term software maintainability
• User engagement with the system
- Not only is the system more likely to meet user requirements, they are more likely to commit to the use of the system.
Disadvantages of evolutionary prototyping
• Management problems
- Existing management processes:
~Assume a waterfall model of development
• Maintenance problems - Continual change: ~Tends to corrupt system structure - Long-term maintenance: ~ Expensive
• Contractual problems
Prototyping languages
- Smalltalk – Object-oriented
- Java – Object-oriented
- Prolog – Logic
- Lisp – List-based
Database programming languages
• Domain specific languages for business systems • Normally includes: - Database query language - Screen generator - Report generator - Spreadsheet • May be integrated with a: - CASE toolset • Language + environment = Fourth-generation language (4GL) • Small to medium business systems: - Cost-effective
Components and application assembly
• Prototypes: - Created quickly from: ~ A set of reusable components ~ Some mechanism to ‘glue’ these components together • Composition mechanism must include: - Control facilities - Mechanism for component communication • System specification: - Take into account the: ~ Availability ~ Functionality - Of existing components
Prototyping with reuse
- Application level development
* Component level development
Compound documents
• A document with active elements that allow user computations
• Example:
- Spreadsheet
Code Design
• Overview of Codes - Code: ~ A set of letters or numbers that represent a data item ~ Can be used to simplify output, input and data formats - Used to represent data - It helps: ~ Save storage space and costs ~ Reduce transmission time ~ Decrease data entry time ~ Reduce data input errors
Sequence codes (*)
• Numbers or letters assigned in a specific order
• Example:
- Employee id – 2234 hired before employee id – 3123
Block sequence codes (*)
• Blocks of numbers for different classifications
• Example:
- Subjects 100-level > year 1, 200-level > year 2
Alphabetic codes (*)
Alphabet letters to distinguish one item from another • Category codes - Identify a group of related items • Abbreviation codes – mnemonic codes - Example: ~ NY ~ JB
Significant digit codes (*)
Distinguish items by using a series of subgroup of digits
Derivation codes (*)
Combine data from different item attributes or characteristics
Cipher codes (*)
• Use a keyword to encode a number • Example: - A store might use CAMPGROUND to code prices ~ C = 1, A = 2, etc. ~ So if GRAND means RM562.90
Action codes (*)
• Action to be taken with an associated item • Example: - D – to display a record - A – to add record - X – to exit the program
Summary for types of codes
- Sequence
- Alphabetic codes
- Block sequence
- Significant digit
- Derivation
- Action
- Cipher