CS305: HCI in SW Development

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Unit 2. Software Lifecycle
CS487 Software Engineering Omar Aldawud
Chapter 4 Design Approaches and Methods
Lifecycle models For more info on these models – see text
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 – Software Processes
CS3773 Software Engineering Lecture 01 Introduction.
SECOND MIDTERM REVIEW CS 580 Human Computer Interaction.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
THE PROCESS OF INTERACTION DESIGN
The Process of Interaction Design. Overview What is Interaction Design? —Four basic activities —Three key characteristics Some practical issues —Who are.
The Process of Interaction Design
What is Interaction Design?
1 FJK User-Centered Design and Development Instructor: Franz J. Kurfess Computer Science Dept. Cal Poly San Luis Obispo.
Chapter 6 The Process of Interaction Design Presented by: Kinnis Gosha, Michael McGill, Jamey White, and Chiao Huang.
Software Engineering.
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
What is a good length of string? –Depends on its use How do you design a good length of string? –Can be determined by a process What is a good user interface?
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Computer Technology
Chapter 1 The Systems Development Environment
Imran Hussain University of Management and Technology (UMT)
CS3205: HCI in SW Development
CIS 321—IS Analysis & Design
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
The process of interaction design. Overview What is involved in Interaction Design? –Importance of involving users –Degrees of user involvement –What.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Development and Lifecycles CS201 Fall 2004 Week 11.
CS3205: HCI in SW Development Software process and user-centered design Readings: (1) ID-Book, Chapter 9 (2) Ch. 1 from Task-Centered User Interface Design.
27. august 2007 Lektion 1c 1 Interaktionsdesign- processen Sharp Kapitel 9 Anker Helms Jørgensen Interaktionsdesign Efteråret 2007 Lektion 1c.
CSCD 487/587 Human Computer Interface Winter 2013 Lecture 3 HCI and Interactive Design.
 What is involved in Interaction Design? › What is a user-centered approach? › Four basic activities  Some practical issues › Who are the users? › What.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
©2011 1www.id-book.com The process of interaction design Chapter 9.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Computer Science Department California Polytechnic State University San Luis Obispo, CA, U.S.A. Franz J. Kurfess CPE/CSC 484: User-Centered Design and.
CSCI 4163 / CSCI 6904 – Winter Housekeeping  Register from the waitlist  Facebook page: 2014 version please!  Course website under construction.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 4 User Centred Design Gary Marsden ( ) July 2002.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
IXD activities. What is Interaction Design? — a goal-directed problem solving activity informed by intended use, target domain, materials, cost, and feasibility.
©2011 1www.id-book.com The process of interaction design Chapter 9.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Interface Types and Models Dr. Dania Bilal IS 588 Spring 2008.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
LECTURE 3 Outline What is interaction design about?
CS305: HCI in SW Development Software process and user-centered design Readings: ID-Book, Chapter 9.
TK2023 Object-Oriented Software Engineering
The Process of Interaction Design
Methodologies and Algorithms
User-Centered Design and Development
The process of interaction design Chapter
The Systems Engineering Context
User-Centered Design and Development
Introduction to Software Engineering
Methodologies For Systems Analysis.
THE PROCESS OF INTERACTION DESIGN
Presentation transcript:

CS305: HCI in SW Development Software process and user-centered design Readings: (1) ID-Book, Chapter 9 (2) Ch. 1 from Task-Centered User Interface Design (on web)

CS 305: Usability Engineering Next: Process of HCI/Interaction Design Then, an intro to evaluation HW1 is an assignment on evaluating an app Integrating usability and user-centered design into “normal” software development Goal: Get you to where you can do an interesting HW quickly

What do you remember about phases in SW Design? (Your list below)

What do you remember about phases in SW Design? (Your list below) User requirements Specification verification (after all steps?) Design Validation Prototyping to get feedback from customer Or, to see how something works Implementation // Testing (includes alpha beta versions) Integration… Release (with celebration) Packaged and delivered / installers / help, documentation Maintenance

From on-line “text” figure out who's going to use the system to do what choose representative tasks for task-centered design plagiarize rough out a design think about it create a mock-up or prototype test it with users iterate build it track it change it

A simple interaction design model (more on this later) Identify needs/ establish requirements (Re)Design Evaluate Build an interactive version Final product

What Is “Design” in HCI? It is a process: a goal-directed problem solving activity informed by intended use, target domain, materials, cost, and feasibility a creative activity a decision-making activity to balance trade-offs It is a representation: a plan for development a set of alternatives & successive elaborations

Four basic activities There are four basic activities in Interaction Design: 1. Identifying needs and establishing requirements 2. Developing alternative designs 3. Building interactive versions of the designs 4. Evaluating designs

Three key characteristics Three key characteristics permeate these four activities: 1. Focus on users early in the design and evaluation of the artifact 2. Identify, document and agree specific usability and user experience goals 3. Iteration is inevitable. Designers never get it right first time

Some practical issues Who are the users? What are ‘needs’? Where do alternatives come from? How do you choose among alternatives?

Who are the users? Not as obvious as you think: those who interact directly with the product those who manage direct users those who receive output from the product those who make the purchasing decision those who use competitor’s products ??? Three categories of user: primary: frequent hands-on secondary: occasional or via someone else; tertiary: affected by its introduction, or will influence its purchase. Wider term: stakeholders

Who are the users? (cont’d) What are their capabilities? Humans vary in many dimensions! Some examples are: size of hands may affect the size and positioning of input buttons; motor abilities may affect the suitability of certain input and output devices; height if designing a physical kiosk; strength - a child’s toy requires little strength to operate, but greater strength to change batteries

What are ‘needs’? Users rarely know what is possible Users can’t tell you what they ‘need’ to help them achieve their goals Instead, look at existing tasks: their context what information do they require? who collaborates to achieve the task? why is the task achieved the way it is? Envisioned tasks: can be rooted in existing behaviour can be described as future scenarios

Where do alternatives come from? Humans stick to what they know works But considering alternatives is important to ‘break out of the box’ Designers are trained to consider alternatives, software people generally are not How do you generate alternatives? ‘Flair and creativity’: research & synthesis Seek inspiration: look at similar products or look at very different products

How do you choose among alternatives? Evaluation with users or with peers e.g. prototypes Technical feasibility: some not possible Quality thresholds: Usability goals lead to usability criteria (set early and checked regularly) safety: how safe? utility: which functions are superfluous? effectiveness: appropriate support? task coverage, information available efficiency: performance measurements

Lifecycle models Show how activities are related to each other Lifecycle models are: management tools simplified versions of reality Many lifecycle models exist, for example: from software engineering: waterfall, spiral, JAD/RAD, Microsoft from HCI: Star, usability engineering A simple interaction design model

A simple interaction design model Identify needs/ establish requirements (Re)Design Evaluate Build an interactive version Final product

Excerpts from… Introduction to Software Engineering From old slides from CS201….

What’s the Problem? Software costs are increasing as hardware costs decline. Many software development disasters: Cost overruns, late delivery Reduced or wrong functionality, non-existent documentation Many failures attributed to software Cost of failure becoming very high: Financial Loss of life or loss of equipment Inconvenience

Definition of Software Engineering Fairley’s: Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. Engineering versus science: Production, practical, quality, maintenance, reuse, standards, teams, management, etc.

SW Engineering Is and Is Not... It is (or should be): Engineering Building software systems Modifying software systems A systematic, careful, disciplined, scientific activity It is not: Just building small systems or new systems. Hacking or debugging until it works. Easy, simple, boring or pointless

One Way to Think About It Build a bridge to cross a small creek Cut down a tree. Drop a board across it. Build a bridge across the Golden Gate Need a big tree! What’s different? Size of project matters. Number of people involved. How long does it has to last. Risk. Economics. “Programming in the large” vs. “Programming in the small”

Software Lifecycle and Phases Stages or phases that are typical in software development, from “birth” to “death” There are various different models (more later) Phases might include: Requirements phase Specification phase Design phase Implementation phase Integration or “testing” phase Maintenance phase Also maybe “conception” and “planning”

Analogy: SE is like Construction Think about how buildings come to be: Requirements Architecture Construction Differences? Maintenance Buildings don’t change much Design Buildings really are less complex Number of states Remove one brick

Requirements, Design, and Implementation Statements of what the system should do (or what qualities it should have) From the customer or client point of view Not expressed in terms of a solution Design A description of how we will implement a solution A model or blueprint for meeting requirements Done before implementation, so it can be evaluated Many possible designs for a set of requirements. How to choose? Often models are used to describe either of these

Three Key Elements in SE Process: life-cycle model used, project management and assessment, quality assurance, etc. Method: Approaches for solving a particular problem. The “how to’s” for doing some specific task. E.g. object-oriented design; black-box testing; prototypes for requirements analysis. Tools: Software that supports methods and/or processes CASE: Computer-aided Software Engineering Test environments, 4GLs, Design tools, etc.

Example: Process, Method, Tools Unit testing of code modules (before integration) Process: How it’s to be done? When, who, etc.? Documents: Overall SW QA Plan Software Test Plan Based on design; includes test strategies, test cases, etc. for each module Who? Development team has a SQA lead Perhaps a department or company SQA group Independent testers, or tested by developers? How do we verify (check) that its been done?

Example: Process, Method, Tools (cont’d) Method: What approach to be used? Example: Black box testing Test cases, grouped into classes Before testing, expected outcome is documented After testing, did expected behavior occur? Example: Testing for memory leaks Tools: Software approach for process and methods Test case generator: creates test cases Regression test environment: repeats earlier tests Memory leak tool Problem reporting tool: keep problem database Test-case matrix: which tests cover which requirements

Relative Cost Per Phase

Software Development Processes Outline What’s this all about? Some example models for life-cycle General principles

Life-cycle Process Models Process means the events or tasks a development organization does, and their sequence Again, think about construction Organizations want a well-defined, well-understood, repeatable software development process. Why? Find and repeat good practices Management: know what to do next; know when we’re done with current task; know if we’re late; estimate time to completion, costs; Etc. New team-members know what to do

Various Models for SW Lifecyles “Historical Models” Waterfall model Spiral model Government Standards DoD standards: 2167, 2167A FAA standard DO-178A, DO-178B Corporate “Standards” or common practices Many companies define their own. Perhaps using: Unified Process (was the Rational U.P.) Extreme Programming

Why Learn About Process Now? There are general principles of about: What we do at various stages of SW development How to inject quality into SW How to avoid early problems that cause huge problems later Recognize that SE is not just writing code

Waterfall Model Early, simple model Do the phases shown before, in order Complete one phase before moving on to the next Produce a document that defines what to do at the start of each phase At end of each stage, a document or other work-product is produced: requirements doc, design doc, code, etc. Little or no iteration (going back to previous phase) The order of phases/stages is generally “right”, but… Following the waterfall precisely is not effective in real development practice.

Traditional ‘waterfall’ lifecycle Requirements analysis Design Code Test Maintenance

Flaws of the Waterfall Need iteration and feedback Things change (especially requirements) Change late requires change in earlier results Often need to do something multiple times, in stages As described, it’s very rigid Not realistic to freeze results after each phase The model does not emphasize important issues Risk management Prototyping Quality

A Quality-based View People who do testing and SW Quality often re-draw the waterfall to emphasize testing activities that are not explicit in the last diagram Is this a model organization a group can “follow”? No. It’s a big-picture view for understanding. A company might have a detailed standard plan (their process) It could reflect this.

The Spiral Model Important features Risk analysis and other management are explicitly shown in the model at each stage Prototyping and iterative development “fit” in this model Repetition of activities clearly in model Suggests that alternatives can be explored

The Spiral Model

Features of the Spiral Process Model Each cycle around the spiral can be like a phase Each cycle has four stages Determine objectives, constraints (i.e. plan!) Identify and manage risks. Explore alternatives as part of risk management Develop and verify next stage or level of the product Depending on the spiral, “Product” might be a requirements document, a high-level design, code, etc. Review results and plan for next stage May include getting client/customer feedback

Is the Spiral Model the Answer? For some situations, yes. (There is no one answer.) Original study that analyzed the spiral model says: Intended for internal development of large systems “Internal”: developers and clients in same organization Intended for large-scale systems where cost of not doing risk management is high But, the spiral model is important Historically And as an illustration of many desired features of a software development process

End of SW Engin Review

A simple interaction design model Identify needs/ establish requirements (Re)Design Evaluate Build an interactive version Final product

Traditional ‘waterfall’ lifecycle Requirements analysis Design Code Test Maintenance

The Star lifecycle model Suggested by Hartson and Hix Important features: Evaluation at the center of activities No particular ordering of activities. Development may start in any one Derived from empirical studies of interface designers

Star Lifecycle “model”

A Lifecycle for RAD (Rapid Applications Development) Project set-up JAD workshops Iterative design and build Engineer and test final prototype Implementation review

The Spiral Model

Usability engineering lifecycle model Reported by Deborah Mayhew Important features: Holistic view of usability engineering Provides links to software engineering approaches, e.g. OOSE Stages of identifying requirements, designing, evaluating, prototyping Can be scaled down for small projects Uses a style guide to capture a set of usability goals

Other Process Models The Unified Process A widely-adopted process model in industry Originally developed by Rational (now part of IBM) More complicated model that what we’ve seen Try looking for books on this with Google or at Amazon Many light-weight or Agile Process Models Best known example: Extreme Programming http://www.extremeprogramming.org Look at the diagram. Compare to waterfall and spiral

Agile Process Models Emphasizes Many developers and organization feel existing process models have been too “heavy weight” Too many rules and documents. Inflexible. Not fun. XP and many other agile methods try to be alternatives XP says it’s: “a deliberate and disciplined approach to software development.” (So it is a process model.) Claims to be good for risky projects with dynamic requirements, and when continuous customer involvement is crucial (and possible) Emphasizes Team development: pair-programming Write tests before code (unit testing)

Final Thoughts on Process Models Every organization does have a process Might be chaos every time But, should be defined, documented, planned and managed Should be based on the nature of the projects the team is building People have strong feelings on this subject about what works! (IMHO) There is no “silver bullet” here. I.e. no one thing that will solve all your problems all the time.

END

Some practical issues Who are the users? What are ‘needs’? (Later) Where do design alternatives come from? How do you choose among alternatives?

Who are the users? Not as obvious as you think: those who interact directly with the product those who manage direct users those who receive output from the product those who make the purchasing decision those who use competitor’s products ??? Three categories of user: primary: frequent hands-on secondary: occasional or via someone else; tertiary: affected by its introduction, or will influence its purchase. Wider term: stakeholders

Who are the users? (cont’d) What are their capabilities? Humans vary in many dimensions! Some examples are: size of hands may affect the size and positioning of input buttons; motor abilities may affect the suitability of certain input and output devices; height if designing a physical kiosk; strength - a child’s toy requires little strength to operate, but greater strength to change batteries

What are ‘needs’? Users rarely know what is possible Users can’t tell you what they ‘need’ to help them achieve their goals Instead, look at existing tasks: their context what information do they require? who collaborates to achieve the task? why is the task achieved the way it is? Envisioned tasks: can be rooted in existing behaviour can be described as future scenarios