Lec 4: Interactive System Life Cycle
Human-Computer Interface Development Life Cycle
Introduction to Human-Computer Interfaces
- The lecture introduces the topic of human-computer interface development, specifically focusing on the life cycle involved in creating interactive systems.
- Previous lectures covered software engineering life cycles and their importance in systematic software product development.
Waterfall Model Overview
- The waterfall model is highlighted as a fundamental software development lifecycle model consisting of 6 or 7 stages: feasibility study, requirement analysis, design, coding, testing, integration, deployment, and maintenance.
- Emphasis is placed on user-centric design for software intended for layman users to ensure usability.
Challenges with the Waterfall Model
- The classical waterfall model does not adequately address user feedback at each stage, which is crucial for developing usable systems.
- Iterations between stages are necessary to incorporate user input; however, this can complicate the linear flow of the waterfall model.
Refining the Life Cycle for User-Centric Design
- A refined life cycle is proposed that accommodates iterations while maintaining clarity in the process.
- This new model includes stages such as feasibility study, requirement gathering and analysis, followed by an iterative design-prototype-evaluate cycle before moving to implementation.
Stages of the Refined Life Cycle
Requirement Gathering Stage
- Focuses on identifying requirements from end-users rather than just clients using techniques like contextual inquiry and ethnographic studies.
Design-Prototyping-Evaluation Cycle
- Involves three sub-stages: designing based on requirements, building prototypes from designs, and conducting early evaluations based on user feedback.
Software Development Lifecycle for User-Centric Design
Early Evaluation and Prototyping
- The process of early evaluation and prototyping should be simplified to allow for quicker achievement, reducing the time needed to build or evaluate a prototype.
- Two key concepts in design are highlighted: interface design and interaction from the end user's perspective, which do not involve implementation or coding at this stage.
Interface vs. Code Design
- The initial focus is on designing the interface and interactions to create prototypes that can be quickly evaluated and refined until no further changes are necessary.
- Once the interface design stabilizes, attention shifts to code design, which involves iterative processes within the design team without requiring end-user feedback.
Importance of Iterative Cycles
- There are two distinct cycles mentioned: one for interface design (which includes user input) and another for code design (which relies on internal team brainstorming).
- Effective early evaluation is crucial for ensuring usability in interface design; however, prototyping is not required during code design iterations.
Implementation Phase
- Implementation involves traditional coding practices such as writing, testing, and debugging code. A well-prepared design minimizes costly modifications later.
- After implementation, an empirical study is necessary to assess overall product usability with end users, employing systematic approaches rather than ad hoc methods.
Cost Considerations in Empirical Studies
- Conducting an empirical study requires careful planning since it can be resource-intensive; ensuring a high-quality implemented product beforehand reduces potential issues.
- If earlier stages are poorly executed, multiple iterations may be needed during empirical studies, increasing costs and potentially delaying product delivery.
Summary of Key Concepts
- The discussion outlines a software development lifecycle tailored for user-centric designs that emphasizes user feedback throughout various stages.