Iterate (Requirements, Design) IMD07101: Introduction to Human Computer Interaction Brian Davison and Tom McEwan 2011/12 Content • • • • The relationship between requirements and design Process models Functional and non-functional requirements Use cases • Coursework general feedback Requirements and design • Iterate: repeat until done Requirements Design Structured process (the old way) Requirements specification Analysis Design Implementation Testing Agile process (the new way) Brief Design Implement prototype Plan Evaluate prototype Product Establishing requirements • • • • Gathering Generation Elicitation Engineering • Initial data collection – – – – Interviews Questionnaires Observation Think aloud protocols • Refining requirements – Review prototypes – Walk-throughs – Focus groups Types of requirement • Functional requirements – Define what the system must do – Can be tested – Either works or not • Non-functional requirements – – – – Define all other requirements Include usability goals, performance goals, etc. Need to be evaluated May depend on users' preferences Example: personal agenda Functional Non-functional • Store/alter/delete appointments • Deliver reminders • Synchronise with Google calendar • Runs on Android, iPhone and Windows phone • Personalised theme • Multilingual • Under 2s start up • Operates without Internet • Attractive to UK teenagers Use cases • Describe functional requirements • "Units of interaction" • Define interactions between actors and the system Personal agenda Store appointment Alter appointment Owner Delete appointment Deliver reminder Synchronise System Detailed use cases UC1: Store appointment Actor: Owner 1. 2. 3. 4. 5. Choose day Choose time Enter detail Enter duration Save UC3: Deliver reminder Actor: System Trigger: system time = appt. time 1. 2. Exception: 1. UC2: Delete appointment Actor: Owner 1. 2. Locate appointment Delete Display appointment detail Sound audible alarm Sound turned off Relationships between use cases Personal agenda Manage appointment Owner <<extends>> <<extends>> Store appointment <<extends>> Delete appointment Alter appointment <<includes>> <<includes>> Find appointment Deliver reminder Synchronise System Defining NFRs Category Requirement Compatibility Runs on Android, iPhone and Windows phone Usability Personalised theme Accessibility Multilingual Performance Under 2s start up Reliability Operates without Internet Usability Attractive to UK teenagers Design principles (Benyon) • • • • • • Visibility Consistency Familiarity Affordance Navigation Control • • • • • • Feedback Recovery Constraints Flexibility Style Conviviality Techniques Prototyping Personas Scenarios Storyboards Sketches Design Interviews Questionnaires Observation Plan Brief Implement prototype Interviews Focus groups User testing Evaluate prototype Product Short break Coursework • In 1000 words (+/- 10%), • explain how design techniques can be used to enhance the usability and accessibility of an interactive system. • You must discuss examples that you have seen in lectures, tutorials and practicals in this year's delivery of the module. • Make sure that you draw appropriate distinctions between principles (what to do) and techniques (how to do it). Important elements • Design techniques – – – – – – Methods for doing design PACT analysis Brainstorming Personas Scenarios Storyboarding • Usability • Accessibility • Examples Possible structure • Introduction • Definitions – Usability – Accessibility State purpose of report Set the context • Design techniques – – – – – General benefits PACT analysis Personas Scenarios Storyboarding • Conclusion For each example technique, explain the benefits for usability and accessibility and provide examples Common errors 1 • No mention of design techniques • Failed to distinguish between techniques for design and others • Failed to distinguish between techniques and principles • Failed to explain the link between a technique and the usability and accessibility of the final product Common errors 2 • Description of features rather than process • Majority of report spent on definitions • High-level recommendations • In my opinion... • "There are many techniques..." • Poor use of terminology – eg HCI