User-Centered Development

Similar documents
Software Engineering Lifecycles. Controlling Complexity

Dilbert Scott Adams. CSc 233 Spring 2012

The requirements engineering process

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University

Introduction to Software Engineering

Certified Tester Foundation Level(CTFL)

Passionate designer with a love for solving design problems using feasible and creative solutions

Planning for Information Network

COMP6471 WINTER User-Centered Design

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Process of Interaction Design and Design Languages

Requirements and Design Overview

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Specifying and Prototyping

User Testing & Automated Evaluation. Product Hall of Shame! User Testing & Automated Evaluation. Visual Design Review. Outline. Visual design review

Bridge Course On Software Testing

*ANSWERS * **********************************

Object Oriented Programming

Foundation Level Syllabus Usability Tester Sample Exam

Chapter 9. Software Testing

Foundation Level Syllabus Usability Tester Sample Exam Answers

Software Prototyping Animating and demonstrating system requirements. Uses of System Prototypes. Prototyping Benefits

Development Methodology TM

Software Development and Usability Testing

09/07: Project Plan. The Capstone Experience. Dr. Wayne Dyksen Department of Computer Science and Engineering Michigan State University Fall 2016

Evolutionary Architecture and Design

Software Process. Software Process

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Verification and Validation

Enabling Performance & Stress Test throughout the Application Lifecycle

Objectives. Connecting with Computer Science 2

Examination Questions Time allowed: 1 hour 15 minutes

CUBE. Configuration Management Report. Hakan Nizamoğlu Yiğitalp Ertem Murat Toprak Saim Güveloğlu

Software Development Process Models

Quality Management Plan (QMP)

The process of interaction design and Prototyping

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Network Simulator Project Guidelines Introduction

Choosing the Right Usability Tool (the right technique for the right problem)

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

Systems Analysis & Design

CS3205 HCI IN SOFTWARE DEVELOPMENT INTRODUCTION TO PROTOTYPING. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford)

Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not.

OBJECT-ORIENTED MODELING AND DESIGN. Process Overview

Design, prototyping and construction

User Experience Metric (UXM) and Index of Integration (IoI): Measuring Impact of HCI Activities

Architecture and Design Evolution

SWEN 444 Human Centered Requirements and Design Project Breakdown

1: Introduction to Object (1)

The Joel Test: 12 Steps to Better Code.

Connecting with Computer Science Chapter 13 Review: Chapter Summary:

Java SE 11 Certification Questions Answered

Redesigning a Website Using IA Principals

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered.

Ch 1: The Architecture Business Cycle

INTRODUCTION. 2. User-centred interface design.

Chapter 1: Principles of Programming and Software Engineering

Up and Running Software The Development Process

Welcome to CS 241 Systems Programming at Illinois

Design, prototyping and construction

App Development. Mobile Media Innovation Module 6

Part 5. Verification and Validation

Terminology. There are many different types of errors and different ways how we can deal with them.

Eliminating Routing Congestion Issues with Logic Synthesis

Sample Exam. Advanced Test Automation - Engineer

Case study on PhoneGap / Apache Cordova

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

MGA Developing Interactive Systems (5 ECTS), spring 2017 (16 weeks)

Chapter 2 Web Development Overview

Software Testing. An Overview

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Process Models. Projects Process. Common Process Models. Typical Student Process Model. Waterfall Model

Agile Development

PROJECT DELIVERY LIFECYCLE. Our Methodology for delivering successful website projects

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Usability Testing CS 4501 / 6501 Software Testing

ENSC 305W/440W Grading Rubric for Project Proposal

Introduction to Software Engineering

3Lesson 3: Web Project Management Fundamentals Objectives

SWEN 444 Human Centered Requirements and Design Project Breakdown

IBM Workplace Services Express - Technical Overview and Directions. Stuart Duguid Asia Pacific Portal & Workplace Technical Lead

This course includes 14 lessons and 5 Course Activities. Each lesson contains one or more Lesson Activities. The lessons cover the following topics:

Responsive Redesign dispatch.com 10tv.com thisweeknews.com

Systems Analysis and Design in a Changing World, Fourth Edition

IBM s approach. Ease of Use. Total user experience. UCD Principles - IBM. What is the distinction between ease of use and UCD? Total User Experience

Verification, Testing, and Bugs

Strategies for Rapid Development in Internet Time. William A. Cunningham December 5, 2000 NYOUG New York, NY

Trello is a task and project management tool that s comprised of Boards, Lists, and Cards.

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

VO Software Engineering

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Meltem Özturan

How To Get Your Word Document. Ready For Your Editor

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

Shree.Datta Polytechnic College,Dattanagar, Shirol. Class Test- I

DESIGN AS RISK MINIMIZATION

Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing.

Transcription:

Software Lifecycle CS470 User-Centered Development User-centered development refers to a design process for creating a system that meets the needs of the user Users should be included in the design process Textbook talks about design in the context of web sites, but here we will apply the same concepts to an arbitrary software system Corporate examples Redesign of IBM site increased sales 400%, use of help button decreased 84% Basic idea is to get user input at all stages of the development process, avoid developer s preference for how to do something 1

Cognitive Foundations Users generally won t have training for your application, so it must be easy to use Particularly true for web-based applications But users probably have prior context of other web-based applications or Office apps Predictability helps ease of use Expect blue text to be a hyperlink Expect shopping cart not item cache What if your word processor behaved differently every time you used it? Software Development Process - Metaphors Software Farming Growing a system like growing crops? Software Oyster Farming System Accretion How an oyster makes a pearl by gradually adding small amounts of calcium carbonate Incremental development Building Construction If frame not designed to support the weight 2

Development Methodologies Classic: Waterfall Model Activity Planning Requirements Analysis Design Implementation Testing Maintenance Statement of Requirements, Functional Specs Requirement Specifications Design, Architectural Specifications Implementation Specifications Test Specifications and Reports User Manual Document Waterfall Model Why develop this way? Each activity builds on the previous activity Sequential nature critical before proceeding Formal development process ensures a wellthought out and well-crafted project rather than slinging code willy-nilly Many entry points for formal review and verification Used successfully for many years 3

Development Methodologies Other end of the spectrum: Prototyping Prototyping is A controlled experiment with specific questions to answer More than a demo, less than an alpha Functional for limited deployment Iterative process, e.g. making stone soup Good way to start, not always a good way to end Goal-oriented, way to fail early rather than fail later Prototyping Why prototype? Quickly answer critical questions up front Allows feedback in all areas without an existing product A picture is worth 1000 words, a prototype is worth 1000 pictures 4

Prototyping Steps 1. Start with reasonable concept of end product 2. Ask what the key technologies, risks, issues, and questions are along with expected outcomes 3. Determine best approach to answer the questions 4. Acquire the resources to implement the prototype 5. Implement prototype, using non-critical filler if needed for completeness 6. Run experiment or system, examine results, iterate as necessary We still need specification documents in prototyping! Sequential or Iterative approach? You might choose a sequential approach: Requirements are stable Design is well understood Development team familiar with the application Low risk Long term predictability Cost of changing requirements, design and code downstream is high 5

Sequential or Iterative? You might choose an iterative approach: The requirements are not well understood or you expect them to be unstable The design is complex or unknown The development team is unfamiliar with the application area The project contains a lot of risk Long term predictability is not important The cost of changing requirements, design, and code downstream is low extreme Programming practice is an iterative approach Requirements & Documentation Benefits of Requirements Documentation: Forces you to think the problem all the way through If you can t write it down, you probably don t understand it Defines why you are doing it, what you will be doing, and how it will be done Vehicle for communications Defines commitments and reduces misunderstandings and feature creep Bugs found/fixed in requirements are much less expensive than if found after construction 6

Myth of Stable Requirements For a real project, expect requirements to change Average project experiences 25% change in requirements during development which accounts for 70-85% of rework Options to handle changing requirements Use checklist from SWE to assess the quality of your requirements Make sure everyone knows the cost of requirements change Set up a change-control procedure Use evolutionary or prototyping approaches Dump the project Examing business case for changes 7

Software architecture and design Architecture is the high-level part of software design; overall framework Good architecture makes construction easy Typical components Major classes Data design Business rules User interface design Security Performance Scalability Error Processing How much time? A well-run project devotes 10-20% of its effort and 20-30% of its schedule to requirements, architecture, and up-front planning If requirements are unstable you ll probably need to resolve requirements issues yourself Allow time for defining requirements well enough that their volatility will have a minimal impact on construction Treat requirements or architecture work as its own project if unknown; estimate remaining project 8

User Centered Lifecycle Variation of the traditional model with more emphasis on the user 1. Define the mission of the system and the user population Clearly decide the goal and the targeted users, establish boundaries for collecting user requirements 2. Collect the user requirements for the system Requirements come from the users, we ll see later several ways to collect the requirements 3. Create the conceptual design of the system No coding yet! Abstract design, layout, data structures, objects, etc. 4. Create the physical design of the system The long nights of coding 5. Perform usability testing of the system Developer, alpha, beta, other test methodologies 6. Implement and market the system System goes live 7. Evaluate and improve the system Planning Estimating Effort Planning is estimating the effort for each activity Example for Waterfall Model: 10% 15% 5% 15% 20% Requirements Design Implementation Testing Writeup Presentation 35% 9

Plug in Actual Hours E.g. if have 150 hours over the entire semester to work on the project: 150*0.05 = 7.5 hours for presentation 150*0.35 = 52.5 hours for development Etc. Can begin to see how realistic a schedule may be and what work is actually involved Hard part is coming up with good estimates programmers are notorious for underestimating! 10% 15% 5% 35% 15% 20% Requirements Design Implementation Testing Writeup Presentation Project Scheduling Guidelines Use previous experience in estimate Build in contingency time Software engineers are notoriously optimistic Use bottom-up scheduling for better accuracy Take deadlines and other commitments into account and limit project activities accordingly or make tradeoffs Set clear milestones with specific timelines 10

Gantt Chart Can create on paper, in Excel, Project, Web applets Excel probably the easiest Graphical view of schedule with dependencies Gantt Chart 11

Project Skills Success of a project is not just good project management, but effective documentation, communications, publishing, writing, and presentation skills Simplest Method Project Notebook Can be hardback or electronic Keep references, new ideas, software designs, reports, timelines, etc. Where project management software is useful: these things are easily categorized, dates, etc. Project Communications Regular progress reports Keep a weekly status report of what issues arose, what was accomplished, etc. Makes it much easier to write the final report and maintain a history of the project Useful tool for communications w/supervisor Organize project meetings w/supervisor Develop agenda for meetings Report of prior material Current progress Plans Issues Other business 12

Project Status Reporting Report in terms of milestones and deliverables and be specific Yes: Design approved, Interface finalized No: Code 80% done (In terms of what? This the easy 80%?) Report problems early Flag problems or potential slips early, don t try to hide them and hope it will work out later Articulate unknowns Margin of error and major unknowns should be declared Ready, Fire, Aim Everyone is always behind, don t try to make up by coding before defining the work, deliverables, etc. This Class In this class we ll focus on coding and debugging techniques that are not normally covered in other classes Practice with technical writing, giving presentations, evaluating code Exercises built around your project so there is not too much extra work 13

Which language? Many students often use a new programming language for their project Many languages are better suited to particular projects E.g. PHP for Web; better than C++ Use an appropriate language but it can be a big risk to learn a new programming language during the short span of the semester Usually better to stick with the language you know best, if it applies. If it doesn t consider changing requirements if possible 14